自动驾驶发展现状及热点研究——感知模块

对自动驾驶而言,传感器、感知、地图定位和规划控制是目前研究的热点,本文奇点汽车美研中心首席科学家兼总裁黄浴博士从多个方面综述了目前自动驾驶的技术水平以及不同板块的重要性。感知模块 下面谈感知模块。 感知是基于传感器数据的,以前反复提过了,传感器融合是标配,信息越多越好吗,关键在于怎么融合最优。比如某个传感器失效怎么办?某个传感器数据质量变差(某个时候,比如隧道,比如天气,比如夜晚,比如高温低温等等造成的)怎么办?如果你要用数据训练一个感知融合模型,那么训练数据是否能够包括这些情况呢? 这里当然谈到深度学习了,而且深度学习也不仅仅用在图像数据,激光雷达点云数据也用,效果也非常好,明显胜过传统方法。不过,深度学习有弱点,毕竟还是靠大量数据“喂”出来的模型,有时候很敏感,比如像素上改变一点儿对人眼没什么而机器识别就造成错误,还有当识别类别增多性能会下降,同时出现一些奇怪的误判,比如谷歌曾经把黑人识别成猩猩。机器学习一个问题是泛化问题(generalization),如何避免overfitting是一个模型训练的普遍问题,当然大家都提出了不少解决方法,比如data augmentation,drop out等。 深度学习发展还是很快的,好的模型不断涌现,如ResNet, DenseNet;好的训练方法也是,比如BN成了标配,采用NAS基础上的AutoML基本上可以不用调参了(GPU设备很贵呀);具体应用上也是进步很大,比如faster RCNN,YOLO3等等。 在激光雷达数据上,最近深度学习应用发展很快,毕竟新吗,而且这种传感器会逐渐普及,成本也会降下来,毕竟是3-D的,比2-D图像还是好。这里要提到sync和calibration问题,要做好激光雷达和摄像头数据的同步也不容易,二者的坐标系校准也是,去年有个CNN模型叫RegNet,就是深度学习做二者calibration的。
7.jpg
8.jpg
谈到融合,这里包括几个意思,一是数据层的直接融合,前面提到硬件层可以直接完成,软件也可以,而且还可以解决硬件做不了的问题:激光雷达毕竟稀疏,越远越稀疏,有时候还会有“黑洞”,就是不反射的物质,比如车窗玻璃;而图像可以致密,分辨率也可以很高,毕竟造价便宜,二者在深度图(depth map)空间结合是一个互补,深度学习可以帮上忙,有兴趣的可以看看MIT的论文。
9.jpg
除了数据层,还有中间模型层融合,以及最后任务层(一般指多个模型结果输出)的融合,目前深度学习用在激光雷达数据以及结合图像数据融合的目标检测识别分割跟踪等方面有不少论文,基本可以在这三个层次划分。 很有趣的现象是,激光雷达点云投射到平面上变成图像数据是一个很讨巧的方法,而且鸟瞰平面比前视平面(摄像机方向)效果好,当然也有直接在3-D数据上做的,比如VoxelNet,PointNet。很多工作都是将图像领域成功的模型用在激光雷达数据上,做些调整和推广,比如faster RCNN,其中RPN和RCNN部分可以通过不同传感器数据训练。 这里是一个激光雷达+摄像头融合做目标检测的论文截图:
10.jpg
谈到深度学习在图像/视频/深度图/3-D点云上的应用,不局限在检测识别分割上,这个以后再谈吧,又要写一篇才行。 感知的任务是理解自动驾驶车的周围环境,除了定位跟地图有关,像障碍物检测,运动目标跟踪,红绿灯识别,道路标志识别,车道线检测(根据需要而定,比如有些地图直接用路标或者特征匹配实现定位,车道线就是由地图给出)都是感知的任务。更高级的任务会涉及对周围其他物体的行为预测,比如行人,尤其是路口行人过马路的预测,比如行驶车辆,到底是打算cut-in还是仅仅偏离了车道,在高速入口的车辆,到底是想加速先过还是减速等你,这些都是“老司机”很擅长的,而提供线索的恰恰是感知模块。 这里是一个做红绿灯检测识别的NN模型例子:
11.jpg
而一个检测路牌的NN模型:
12.jpg
这是一个车道线检测的NN模型LaneNet示意图:车道线proposal network和车道线localization network。
13.jpg
14.jpg
这个NN模型就是对行人预测的:
15.jpg
应用场景可以看下面的示意图:激光雷达点云作为输入
16.jpg
顺便说一下,我对一些大讲“感知已经OK,现在最重要的是规划决策”的言论难以苟同,毕竟感知在这些行为细节上缺乏充分的数据提供给预测和规划部分,所以也很难有更细腻的规划决策模型来用。当然采用大数据训练的规划决策模型可以包括这些,但仅仅凭轨迹/速度/加速度这些输入信息够吗?大家也可以注意到一些startup公司已经在展示人体运动跟踪,头部姿态,路上人工驾驶车辆的驾驶员视线方向 (gaze detection) 和面部表情/手势识别的结果,说明大家已经意识到这些信息的重要性。 这里展示最近一些基于深度学习的人体姿态研究论文截图:
17.jpg
18.jpg
19.jpg
另外,感知模型基本上是概率决策,是软的推理(soft inference),最后是最小化误差的硬决定(hard decision),所以误差是难免的。现在一些安全标准,比如ASIL,ISO26262, NHTSA,要求做到功能安全,还有最近的SOTIF,要求考虑unknown safe/unsafe,这些对感知在自动驾驶的作用是提出了更严格的标准。说白了就是,以前给出判断就行,现在必须给出判断的可靠性以及不自信的警告(confidence score)。有时候融合就要考虑这个问题,最好给出多个模型输出,当一个模型可靠性不高的时候,就要采用其他可靠性高的模型输出,当所有模型都不可靠,自然就是准备进入安全模式了。对突发性事故的适应性有多强,就考验安全模型了。 以前提到过L2-L3-L4演进式开发自动驾驶模式和L4这种终极自动驾驶开发模式的不同,提醒大家可以注意一个地方:特斯拉的演进模式在用户自己人工驾驶的时候仍然运行自动驾驶程序,称之为“影子”模式,当用户的驾驶动作和自动驾驶系统的判断出现矛盾的时候,相关上传的数据会引起重视,以帮助提升自动驾驶系统性能,比如一个立交桥出现,自动驾驶系统误认为是障碍物,而驾驶员毫无犹豫的冲过去,显然这种传感器数据会重新被标注用来训练更新模型,甚至引导工程师采集更多相关数据进行训练;另外,当驾驶员突然刹车或者避让,而自动驾驶系统认为道路无障的情况,收集数据的服务器一端也会将这种数据重新标注。 这种影子模式就是演进式开发模式系统升级的法宝,同时大量驾驶数据的收集也可以帮助规划决策的提升,这个下面再讲。相比之下,谷歌模式在安全员操控车辆时候,自然也在收集数据,当运行自动驾驶出现报警或者安全员觉得危险需要接管的时候,这种数据也会像影子模式一样需要注意。两种开发模式都会及时获取特别数据方法,唯一不同的是前者是付钱的(买车),而后者是要钱的(工资)。

0 个评论

要回复文章请先登录注册