深度学习与自动驾驶

时间:2024-03-27 13:39:59

1、什么是深度学习

1.1  基本概念

深度学习即深度神经网络学习,其概念源于人工神经网络的研究,是一种特殊的机器学习形式;其目的在于建立和模拟人脑进行分析学习的神经网络,通过模仿人脑的接受和反馈机制来解释数据;深度学习整个过程就是数据采集、数据处理、数据训练和数据优化,最后形成高准确率的识别分类模型;

深度学习与自动驾驶

图1. 深度学习、机器学习及人工智能三者关系

1.2  多层感知器

多层感知器包含三种类型的神经网络层:输入层 、隐藏层和输出层;输入层是深度学习模型网络的第一层,输出层是网络的最终层,隐藏层则是网络中的中间层;隐藏层负责对输入数据执行特定任务,并将其产生的结果数据传递到下一层;

输入层和输出层是可见的,而中间层则是“隐藏”不可见的。含多个隐藏层的多层感知器(MLP)就是一种深度学习结构。

深度学习与自动驾驶

图2. 多层感知器(MLP)结构示意图

1.3  CNN 卷积神经网络

CNN是自动驾驶中比较常用的深度学习模型,由卷积层、池化层和全连接层构成,在图像处理上具有优势:

1)卷积层 

目的:用于目标图像特征初步提取

原理:通过一个可调参数的卷积核与上一层特征图进行滑动卷积运算,再加上一个偏置量得到一个净输出,然后调用**函数得出卷积结果。

深度学习与自动驾驶

图3. 卷积层工作原理示意图

2)池化层 

目的:a、图像降维采样  b、减少过拟合现象

原理:将输入的特征图像用n × n 的窗口划分成多个不重叠的区域,然后对每个区域计算出最大值或者均值,使图像缩小n倍,最后加上偏置量通过**函数得到抽样数据。

深度学习与自动驾驶

图4. 池化层工作原理示意图

3)全连接层 

目的:分类并输出结果

原理:全连接层的工作原理类似传统神经网络部分,需把池化层输出的张量重新切割成一些向量,乘上权重矩阵,再加上偏置值,然后对其使用ReLU**函数,最后用梯度下降法优化参数;

1.4  深度学习需要的核心能力

—— 海量的标签化数据

—— 优异的算法(模型函数)

—— 巨大算力

 

2、 深度学习在自动驾驶中的应用

基于深度学习的自动驾驶系统研究中,有两种比较常见的实现解决方案:

1)基于规则的解决方案

该方案可理解为“按部就班”式,依据常规的 感知/定位 → 决策/规划 → 控制/执行的流程步骤依次进行;在目标任务的实现过程中,应用到了多个深度学习模型,首先在感知和定位模块利用一个深度模型后输入图像或点云数据信息,其次在高层级路径规划模块利用一个深度学习模型进行规划路径,再次在行为仲裁模块进行控制命令决策,最后发给运动控制器执行相应命令;

深度学习与自动驾驶
图5. 基于规则的解决方案

2) 端到端( End2End)的解决方案

该方案可理解为“一步到位”式 ,系统从环境和定位模块获取输入后,经过一个深度学习模型,便可直接输出对车辆的控制执行命令;即从感知数据到控制执行命令的直接映射;相比传统方式省略了中间的一些过程;当然该模式也需要一个“守护者”- 安全管理器,来确保自动驾驶执行过程中每个模块的安全。

深度学习与自动驾驶

图6. 端到端的解决方案

3)两种实现方案优劣势对比

基于规则的解决方案:

优势:系统可解释性强,我们可以检测到每个模块的性能,一旦系统某个模块出了问题,可以快速的诊断到问题所在,便于有针对性的去解决;

劣势:a、由于系统是使用多个步骤、多个模型解决一个复杂的目标任务,因此系统的计算量较大,对硬件要求较高;b、由于是多个模型来解决问题,前一模型产生的偏差会影响下一个模型的输出结果,这必然会产生累积误差,这就导致系统很难达到最优的性能;

基于端到端的解决方案:

优势:仅使用一个模型来解决问题,规避了基于规则的多模型解决方案的一些弊端,在一定程度上减少了工程的复杂度,从而降低了系统的成本;

劣势:a、系统的可解释性较差,因为系统就一个模型,我们很难检测到模型内部各个模块各自的性能;b、系统灵活性较低,对于不同的车辆和传感器,系统都需要进行重新校准;

 

3、自动驾驶领域的深度学习模型

1)应用于目标探测问题:

a、单步算法 :不用产生候选区域,直接从图像中获得目标检测结果;特点是速度快,但准确率低一些;

YOLO系列算法-YOLO,YOLO v3,YOLO 9000

SSD系列算法-SSD, R-SSD、D-SSD、DSOD、FSSD

b、双步算法:需要产生目标物体的候选区域,然后在使用分类器在候选区域上做分类与回归;特点是准确率高,但速度相对较慢一些;

R-CNN系列算法:R-CNN 、Fast R-CNN、Faster R-CNN

2)应用于图像分割问题:

a、基于反卷积的分割方法:FCN

b、基于提高特征分辨率的分割方法 :DeepLab

c、基于区域选择的方法 :Mask R-CNN

3)用于处理激光雷达点云数据问题:

—— YOLO3D,BirdNet, VoxelNet,PointNet等;

4)用于解决激光雷达摄像头融合问题:

—— PointRCNN,PointFusion,RoarNet等;

 

注:文章首发于公众号“筋斗云与自动驾驶”,扫描下方二维码关注公众号并在主页面点击左下角“福利”,有40余篇自动驾驶与EE架构相关国外参考技术文献赠送。
深度学习与自动驾驶