Apllo进阶课程13- Apollo感知之旅——感知算法

Apollo感知之旅——感知算法

讲到感知,首先不得不讲到传感器。传感器是自动驾驶感知环节中最主要的工具,我们必需对传感器能够提供的数据类型、适用的工况以及局限性都非常了解和熟悉,才能让算法工程师更好的适配传感器所采集和提供的数据写出更好的算法。

感知算法根据使用的传感器不同而不同。对于激光雷达Lidar点云感知,本节主要介绍两个检测算法,分别是启发式的Ncut和深度学习算法CNNSeg。对于视觉感知,将全面介绍深度学习检测和分割技术、跟踪技术,2D-to-3D技术以及多相机融合技术,此外还会介绍红绿灯检测算法。最后简要介绍Radar检测和超声波检测算法。

点云感知

点云障碍物感知的主要任务是感知障碍物的位置、大小、类别、朝向、轨迹、速度等。核心是点云检测分割技术,可以用启发式算法NCut和深度学习算法CNNSeg完成。

启发式方法:NCut

在这里插入图片描述

深度学习方法:CNNSeg

主要思想是利用卷积神经网络来处理激光雷达捕获的点云数据,并对点云中的目标进行识别。深度学习是数据驱动的,它把人工构造特征这一任务交给机器和算法去完成(即特征学习)。在百度的深度学习感知实现过程中,团队尝试了很多方法,下面就简单介绍算法研发的历程。

1、将所有点云都投到前视图(front-view)(投影面是一个圆柱面)来构造特征,将点云问题转化为矩阵问题,进而使用深度学习进行处理。通过构建全卷积神经网络对前向视图进行处理。

2、借助自采集车队,采集更多的实际数据,并且扩展数据视角,制作俯视图,通过将俯视图+前视图相结合的方式进行训练。同时,修改Loss函数,包括使用3D回归和Segmentation的损失函数。经过多次实验,发现基于俯视图的Segmentation方法效果最好。该方法目前已经在Apollo中开源,如下所示。

3、因为俯视图没有高度信息,因此我们把前视图和Camara图像加进来进行辅助检查,利用Lidar的测距准和Camera识别准优势完成了Middle-Level Fusion方法(Multi-View 3D Object Detection Network for Autonomous Driving),发表在CVPR 2017。该方法使用俯视图提取Proposal,利用前视图和光学图像辅助进行更加精准的位置回归。

视觉感知

视觉感知最早从ADAS发展而来。ADAS算法相对轻量,采用人工构造的特征和浅层分类器的方式实现辅助驾驶,该方法目前已经难满足自动驾驶的需求。随着深度学习技术的发展,尤其是在视觉领域的巨大成功,视觉感知的主流技术路线已经变为“深度学习+后处理计算”的方法。该方法带来了以下几个变化,第一是要求计算硬件升级,第二是数据的需求量大增,第三是如何评估保证安全性。面向自动驾驶的深度学习算法具有以下几个特点:

2D感知向3D感知渗透,模型输出更丰富(后处理需要的3D信息、跟踪信息、属性信息等都会放在CNN中进行学习)
环视能力构建(传统方法靠一个Camera完成前向检测、碰撞检测、车道线检测。无人驾驶需要环视)
感知+定位+地图紧密结合

CNN检测、分割、后处理

CNN检测是深度学习里一个十分火热的应用,从最开始的AlexNet,VggNet到ResNet等,持续提高了ImageNet图像检测的精度,更多的细节和最新进展可以参考Kaiming He(何凯明)的系列工作。需要注意的是,目前发表的大部分关于检测的成果都是面向计算机视觉应用的,与自动驾驶领域的检测还有很大的区别。

首先,自动驾驶中,摄像头是安装在车上的,汽车行驶在结构化、规则化道路上,面向的场景更具体,有很多的几何约束可以用来辅助检测。

其次,自动驾驶中的检测模型需要输出的信息更多,包括障碍物的尺寸、朝向。同时自动驾驶还需要考虑时序性。我们称之为局部的End-to-End,检测、2D到3D转换、跟踪三步是自动驾驶视觉感知的组成,后面两步都由CNN来学习,减少人工干预。

分割(Segmentation)与detection在本质上是一样的,是对一个目标的不同力度的刻画。分割是一种更细粒度刻画物体边界信息的检测方法,不再是画框,而是进行边缘分割。在感知中,对于不规则物体,往往需要进行分割处理。例如场景分割和可行驶区域感知。场景分割可以用于多传感器融合,例如对绿植进行分割,结合LiDAR点云,就可以测出绿植的类别和距离。可行驶区域则可以对一些非结构化道路的路径规划提供支持。在车道线感知中,应视具体情况使用分割或者检测方法。

一个完整的系统除了深度学习模型,还需要做一些后处理,后处理是直接针对下游模块,对后续的影响比较直接。在视觉感知中,后处理主要分为三个部分。
第一是2D-to-3D的几何计算。2D到3D的转换需要考虑的因素包括:相机pose的影响、接地点、 稳定性。第二是时序信息计算,主要是针对跟踪处理,需要注意以下几点:
• 对相机帧率和延时有要求,要求跟踪必须是一个轻量级的模块,因为检测已经占据大部分时间
• 充分利用检测模型的输出信息(特征、类别等)进行跟踪。
• 可以考虑轻量级Metric Learning
第三是多相机的环视融合相机布局决定融合策略,要做好视野重叠 。

红绿灯感知

在这里插入图片描述
在这里插入图片描述

Radar感知

在这里插入图片描述
上图右边是Radar的点云信号投影的成像。图中有很多的点,但是并不是所有的点都是障碍物,存在很大的噪音,需要进行鉴别。图中明显成一条线的点是对路边界金属栅栏的感知结果。因为金属的反射信号比较好,所以雷达点会成直线分布。基于该特征,可以用Radar反射信号来做高速路道路边缘栅栏的检测。

超声波感知

在这里插入图片描述
超声波只能进行近距离感知,并且无法感知具体的位置。对无人驾驶来说,行驶过程中帮助并不大,更多的是用于倒车和特别近距离的感知。上图给出了超声波感知的一个例子,我们在车上布了12个超声波传感器,每个超声波探头覆盖一个角度,大概检测到三米范围内的障碍物。当某个地方有障碍物,传感器发送超声波,收到回波信号以后可以得到障碍物的距离信息,但是并不能确定在覆盖范围内哪个地方有障碍物,如图中的绿线。如果两个探头感知范围存在over lap,这两个传感器的两根绿线会交接,就可以确定障碍物的准确位置。

猜你喜欢

转载自blog.csdn.net/qq_17437129/article/details/107927266