self_drive car_学习笔记–第9课:预测系统

前言:这节课主要是介绍无人车里面的预测系统。水平有限,有些理解错误地方,还望大大们不吝赐教。觉得写得还行,麻烦赏个赞哈。好了,不废话,开始主题。

概要:
1 PNC OVERVIEW
2 PREDICTION TASK
3 VEHICLE PREDICT
4 PEDESTRIAN PREDICT

补充,PNC【planning and control】(预测系统是其组成之一)、感知是L4级别的两大重点模块

1 PNC OVERVIEW

1.1自动驾驶软件框架

4)平均跑多远需要一次人工接管(业界称为MPI=行驶总里程/人工干预次数)

2)必要性
—-实时性【障碍物很多,能给的判断时间很短的】、准确【感知过滤掉不合理的信息,获取得到的信息更加准确,同时感知也会对场景进行一个深加工,让后面的模块可以更容易处理】

3)理解corner case【一些不规律动态障碍物移动轨迹,比如怎么判断一个马路边上的人,怎么预测到那人是否要过马路呢】

4)人怎么考虑的(指的是考虑行走路线)呢如,corner case 场景,人过马路,会实时根据自己走的方向,看有没有来车,是不是绿灯,就选择过马路与否】

2.1 两种方法(two methods)
【主流预测方法】

2)基于数据驱动的方法:【数据越多,效果越来愈好;但是,代码可读性会降低】
–机器学习
–越多数据(效果越好)

3)特点:
–基于模型的方法,更容易结合人类经验,对于corner case的处理更加方便
–基于数据驱动方法,随着功能的完善,代码的可读性会降低
–应该结合两者的进行使用

4)图片的案例就是将两种方法结合起来考虑

5)如何知道业界怎么处理预测问题
–上业界最牛的公司招聘官 ,看他们的招聘要求。比如

3 VEHICLE PREDICT

案例介绍:阿波罗
步骤:
—-【下载代码】
—-Git checkout r3.5.0【切换当时最新分支,该版本去除ros了】
—-Modules/prediction【找到预测模块】

预测模块截图

2)classification(分类)【结合上面的车道模型来看,列举出车所有可能走的路线;这是车道建模的思想,预测车辆行走的可能性】
—-线:0->1->3->7
—-线:0->2->6【为了便于建模,所有不把2区域内的建模情况计算进来】
—-线:0->4->5
—-更多可能

【道路建模思想,就是分类出车辆所可能的行走可能性】

3)道路建模考虑点【将上述的复杂状态,做出简化,方便分析处理;将连续空间离散化处理】

3-1)lane feature(车道特征)【如下左侧图片】:
—-lane S【车前进方向的,这里S,L是指的是车道线坐标系里面的两轴线】
—-lane L【车与车道边界线距离】
—-reference lane【跟道路中心线差多远】
—-curvature(曲率)【车道的弯曲情况】
—-traffic law【交通信 】

3-2)vehicle state(车辆状态)【如图下右侧】【速度、加速度、车头角度】
—-velocity【速度】
—-Acc【Adaptive cruise control ,自适应巡航控制】
—-Heading【朝向】
—-Heading rate【车头速度】
—-Type【车类型,如私家小车、卡车;车类型不同,行为也不一样】
—-Size【大小】
—-等等

3-3)environment(环境信息)【比如,无人车感知到左侧有车,那么变道就不选择左侧了】
【上述三特征是lane model考虑的重点】

3.2 SEQUENCE DATA NETWORK【序列化数据 络】

1)常用处理方式:
—-MLP
—-CNN

—-RNN【RNN运作时候,需要一步一步推进,CPU、GPU存在等待的过程,是其一个缺点】
——–LSTM【这种属于处理序列化数据比较好方式】
——–GRU

—-Attention【注意力机制】
—-TCN【时间上序列卷积,是CNN的改进版本;也是RNN的替代版本,比较热门】

2)这里介绍的是RNN方式【预测任务可理解为一种监督学习】

【概率论是无人驾驶的基础课程之一,因为现在都是使用数据驱动的;无人车涉及的知识很多,需要根据你选择其中的方向来选择学习】【车规级的要求,是当前无人车的一大难点】

3)感知模块输入样式,以阿波罗为例:

【注意感知输入跟传感器数据输入有区别的,感知是前面经过处理后的信息,而不是传感器输入数据】
【阿波罗感知输入时,使用到ID,位置,角度和速度等信息】

【感知数据是实时变化的,但是,感知处理时候,会使用timestamp来保存输入感知信息的,而不是传一个就处理一个或者过了很久的也拿来用,也就是处理的是对应的时间的感知数据】

4)预测模块输出样式:

【输出:轨迹+概率;轨迹使用轨迹点来代替,这个点的定义函数TrajectoryPoint里面,id,速度,加速度,相对时间(相对给出预测信息的时间),转向角信息等等;】

3.3 APOLLO MODEL
【介绍阿波罗如何做预测】

1)MLP model
2)RNN model

【训练过程就是线上,预测过程就是在线下做的,线下拿到数据回来线上继续训练,训练得到的模型(参数),再部署到线下预测】

感知机器学习里面的数据管道样例2:【waymo公司】

1)kalman filter(卡尔曼滤波)

【卡尔曼滤波轨迹应用:叠加平移到达目标点位置】
【拟合方法,比如,在5秒钟内,以每一步5%的拟合度,从A拟合到B点;那么kalman filter里面观测值,以观测结果的目标值乘以95%的方式往B点状态转移,每一次叠加以后,5秒后达到B点;这就是卡尔曼滤波在轨迹上面的运用样式】

【阿波罗项目也有类似使用】

2)polynomial(多项式拟合)

【轨迹使用多项式拟合出来的;假设利用的是三次多项式(ax(3立方)+bx(2次方)+cx+d)拟合平移过程轨迹,多项式的参数可以人为设定;此外,也可以使用模型输出启发项(常数项d),根据abc和d的对应关系,计算出abc,从而获取多项式表达式,从而可以算出,走多远才能在规定时间内到达B点】

【多项式拟合,属于计算机图形学的简单知识】

3)Velocity(速度)【这里的速度理解为速率比较合适】
【速度,属于动力学推理;公式可以理解为s=s0+vt,从而获取运动轨迹】

【上述关于阿波罗的预测方案案例,算是一个主流预测方案,其他的差异主要就是在特征的提取上,以及一些场景预测处理差异】

3.6 STATE OF THE ART
【比较新的预测方案(19年初)】

较新关于预测方法样例1:

【预测公开数据集较少,而且一般不通用;不通用原因有,抽取特征不一致,不会把所有信息公开出来的】

—-CNN model【CNN模型】

—-Graph generate【生成图】
——–full information【信息完整,图一般包括很多信息,包括交规,道路信息等等;】

—-Trajectory generate【路线生成】
——–regression problem【回归问题】【上面介绍,属于分类方式解决预测;这里采用的是回归方式解决预测】

—-Mid-to-mid learning 【中到中的学习】
—-Multi-task【多任务】
—-imitation learning【模仿学习】
—-combine prediction and planning【规划和预测结合方式】

4 PEDESTRIAN PREDICT

4.1 简介

【行人预测,主要介绍李飞飞团队的文章来介绍】
【行人预测在无人驾驶中很重要,也很难;轨迹难以预测,不存在高精地图里面;行人安全受交通规则保护】

5 小结

self_drive car_学习笔记--第9课:预测系统
【这节课内容,主要是讲预测,分成4部分。PNC是什么东西,预测任务是做什么的;车辆预测;阿波罗的车辆预测,也包含了行人和自行车,介绍他们的预测具体怎么做的;简单介绍了行人预测】
【对于无人车来说,行人预测场景相对较少的,除非是在拥挤的有人的马路上行走;相对而言,小机器人跟行人交互多一些,其更加注重行人预测】

老师答疑环节

感知特征信息要求有哪些r> 这个要根据实际的任务需要来定的,并没有一个绝对的结构化标准。

【感知、预测规划组成的PNC是L4级别自动驾驶的两大核心,也是非常难的两块】

思考:交通违规怎么办r> 交互预测怎么处理说,让行概率有多大,是一个博弈问题。【该问题也是业界一大难题,包括waymo在内,都做得不好】

个人总结:
这一节就是介绍预测,预测到底在无人车里面位置怎么样。区分预测和轨迹跟踪区别。预测采用的方式有模型驱动和数据驱动。重点介绍了数据驱动,也就是机器学习。介绍了,关于预测的机器学习到底怎么做的。接着,介绍车辆预测方法,并以阿波罗项目为例子,介绍了里面一些源码得含义。最后以李飞飞团队的三篇文章为例子,简单介绍行人预测的方法。个人感觉,听得很迷惑。没错,菜是原罪。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年2月16日
下一篇 2021年2月16日

相关推荐