Apollo感知模块算法详解
感知
Apollo 3.0
June 27, 2018
简介
Apollo 3.0 主要针对采⽤低成本传感器的L2级别⾃动驾驶车辆。在车道中的⾃动驾驶车辆通过⼀个前置摄像头和前置雷达要与关键车辆(在路径上最近的车辆)保持⼀定的距离。Apollo 3.0 ⽀持在⾼速公路上不依赖地图的⾼速⾃动驾驶。深度⽹路学习处理图像数据,随着搜集更多的数据,深度⽹络的性能随着时间的推移将得到改善。
安全警告
Apollo 3.0 不⽀持没有包含本地道路和说明标⽰的急转弯道路。感知模块是基于采⽤深度⽹络并结合有限数据的可视化检测技术。因此,在我们发布更好的⽹络之前,驾驶员应该⼩⼼驾驶并控制好车辆⽅向⽽不能依赖与⾃动驾驶。请在安全和限制区域进⾏试驾。
推荐道路
道路两侧有清晰的⽩⾊车道线
禁⽌
急转弯道路
没有车道线标记的道路
路⼝
对接点或虚线车道线
公共道路
感知模块
每个模块的流程图如下所⽰。
图 1: Apollo 3.0的流程图
深度⽹络
深度⽹络摄取图像并为Apollo 3.0提供两个检测输出,车道线和对象。⽬前,对深度学习中使⽤单⼀任务还是协同训练任务还存在⼀些争议。诸如车道检测⽹络或物体检测⽹络的单⼀⽹络通常⽐⼀个协同训练的多任务⽹络执⾏得更好。然⽽,在给定有限资源的情况下,多个单独的⽹络将是昂贵的并且在处理中消耗更多时间。因此,对于经济设计⽽⾔,协同训练是不可避免的,并且在性能上会有⼀些妥协。在Apollo 3.0, YOLO [1][2] 被⽤作对象和车道线检测的基础⽹络。该对象具有车辆、卡车、骑车⼈和⾏⼈类别,并由表⽰成具有⽅向信息的2-D边界框。通过使⽤具有⼀些修改的相同⽹络进⾏分段来检测车道线。对于整条车道线,我们有⼀个单独的⽹络,以提供更长的车道线,⽆论是车道线是离散的还是连续的。
物体识别/跟踪
在交通场景中,有两类物体: 静态物体和动态物体。静态物体包括车道线、交通信号灯以及数以千计的以各种语⾔写成的交通标⽰。除了驾驶之外,道路上还有多个地标,主要⽤于视觉定位,包括路灯,障碍物,道路上的桥梁或任何天际线。对于静态物体,Apollo 3.0将仅检测车道线.
在动态物体中,Apollo在路上关⼼乘⽤车,卡车,骑⾃⾏车者,⾏⼈或任何其他物体,包括动物或⾝体部位。Apollo还可以根据物体所在的车道对物体进⾏分类。最重要的物体是CIPV(路径中最近的物体)。下⼀个重要对象将是相邻车道中的物体。
2D-to-3D 边界框
给定⼀个2D盒⼦,其3D⼤⼩和相机⽅向,该模块搜索相机坐标系统中的3D位置,并使⽤该2D盒⼦的宽度,⾼度或2D区域估计精确的3D 距离。该模块可在没有准确的外部相机参数的情况下⼯作。
对象跟踪
对象跟踪模块利⽤多种信息,例如3D位置,2D图像补丁,2D框或深度学习ROI特征。 跟踪问题通过有效地组合线索来表达为多个假设数据关联,以提供路径和检测到的对象之间的最正确关联,从⽽获得每个对象的正确ID关联。
车道检测/追踪
在静态对象中,我们在Apollo 3.0中将仅处理通道线。该车道⽤于纵向和横向控制。车道本⾝引导横向控制,并且在车道内的对象引导纵向控制。
车道线
我们有两种类型的车道线,车道标记段和整个车道线。车道标记段⽤于视觉定位,整个车道线⽤于使车辆保持在车道内。
该通道可以由多组折线表⽰,例如下⼀个左侧车道线,左侧线,右侧线和下⼀个右侧线。给定来⾃深度⽹络的车道线热图,通过阈值化⽣成分段的⼆进制图像。该⽅法⾸先到连接的组件并检测内部轮廓。然后,它基于⾃我车辆坐标系的地⾯空间中的轮廓边缘⽣成车道标记点。之后,它将这些车道标记与具有相应的相对空间(例如,左(L0),右(R0),下左(L1),下(右)(L2)等)标签的若⼲车道线对象相关联。
CIPV (最近路径车辆)
CIPV是当前车道中最接近的车辆。对象由3D边界框表⽰,其从上到下视图的2D投影将对象定位在地⾯上。然后,检查每个对象是否在当前车道中。在当前车道的对象中,最接近的⼀个将被选为CIPV。
跟车
跟车是跟随前车的⼀种策略。从跟踪对象和当前车辆运动中,估计对象的轨迹。该轨迹将指导对象如何在道路上作为⼀组移动并且可以预测未来的轨迹。有两种跟车尾随,⼀种是跟随特定车辆的纯尾随,另⼀种是CIPV引导的尾随,当检测到⽆车道线时,当前车辆遵循CIPV的轨迹。
输出可视化的快照如图2所⽰。
图 2: Apollo 3.0中感知输出的可视化。左上⾓是基于图像的输出。左下⾓显⽰了对象的3D边界框。左图显⽰了车道线和物体的三维俯视图。CIPV标有红⾊边框。黄线表⽰每辆车的轨迹
雷达 + 摄像头融合
汽车给定多个传感器,它们的输出应以协同⽅式组合。Apollo 3.0,介绍了⼀套带雷达和摄像头的传感器。对于此过程,需要校准两个传感器。每个传感器都将使⽤Apollo 2.0中介绍的相同⽅法进⾏校准。校准后,输出将以3-D世界坐标表⽰,每个输出将通过它们在位置,⼤⼩,时间和每个传感器的效⽤⽅⾯的相似性进⾏融合。在学习了每个传感器的效⽤函数后,摄像机对横向距离的贡献更⼤,雷达对纵向距离测量的贡献更⼤。异步传感器融合算法也作为选项提供。
伪车道
所有车道检测结果将在空间上临时组合以诱导伪车道,该车道将被反馈到规划和控制模块。某些车道线在某帧中不正确或缺失。为了提供平滑的车道线输出,使⽤车辆⾥程测量的历史车道线。当车辆移动时,保存每个帧的⾥程表,并且先前帧中的车道线也将保存在历史缓冲器中。检测到的与历史车道线不匹配的车道线将被移除,历史输出将替换车道线并提供给规划模块。
超声波传感器
Apollo 3.0⽀持超声波传感器。每个超声波传感器通过CAN总线提供被检测对象的距离。来⾃每个超声波传感器的测量数据被收集并作为ROS主题⼴播。将来,在融合超声波传感器后,物体和边界的地图将作为ROS的输出发布。
感知输出
PnC的输⼊将与之前基于激光雷达的系统的输⼊完全不同。
车道线输出
折线和/或多项式曲线
车道类型按位置:L1(左下车道线),L0(左车道线),R0(右车道线),R1(右下车道线
对象输出
3D长⽅体
相对速度和⽅向
类型:CIPV,PIHP,其他
分类:汽车,卡车,⾃⾏车,⾏⼈
Drops:物体的轨迹
世界坐标是3D中的当前车辆坐标,其中后中⼼轴是原点。
参考
[1] J Redmon, S Divvala, R Girshick, A Farhadi, “You only look once: Unified, real-time object detection,” CVPR 2016
[2] J Redmon, A Farhadi, “YOLO9000: Better, Faster, Stronger,” arXiv preprint
发布评论