自动驾驶(五十三)---------浅析深度学习与自动驾驶

     之前有分析过深度学习和自动驾驶的关系,但是主要是在视觉的基础上来分析的:连接

     这里想从各个角度来分析深度学习在自动驾驶中的应用,如果你正好有这方面的需要,不妨选择一个着力点,笔者从事自动驾驶3年来,也处于瓶颈期,需要在一个特定的领域深挖,这里也建议大家,在了解自动驾驶各模块之间的关系之后,需要在一个特定的领域深挖,才能称之为自动驾驶领域内的专家。又因为传统技术很难有所突破,深度学习提供了很好的机遇。

1. 场景感知与定位

      深度学习方法特别适合于从摄像机和lidar设备获取的2d图像和3d点云中检测和识别对象。具体应用有如下几个方面:

      1. 目标边界识别;图像中最常用的二维目标检测结构是单级和双级检测器。单级探测器(只看一次):Yolo、SSD;双级检测器:如RCNN、Faster RCNN或R-FCN,其将目标检测过程分为两部分:感兴趣区域候选方案和边界框分类。单级探测器的性能不如双级探测器,但速度要快得多。

      2. 语义和实例分割;驾驶场景的理解也可以通过语义分割来实现,图像中每个像素标记出不同分类:可驾驶区域、行人、交通参与者、建筑物等。其中Segnet、ICnet、ENET、Adapnet或Mask R-CNN等语义分割网络具有像素级分类的能力。

      3. 定位;一般理解定位是查分GPS的任务,实际上基于视觉、lidar、毫米波雷达等车身传感器也能进行定位,而这些定位方法就可以使用深度学习技术,之前文章有介绍过基于深度学习的点云配准方法,不记得的可以翻看我之前的文章;另外深度学习和视觉SLAM也有很深的结合,在SLAM的特征匹配阶段,深度学习可以直接选取比较好的关键点,从而方便后面的计算。

2. 占用网格

      占用网格是将驾驶空间划分为一组单元并计算每个单元的占用概率的环境表示。深度学习用于Occupancy Maps的上下文中,用于动态对象检测和跟踪,车辆周围占用图的概率估计或用于推导驾驶场景上下文。在后一种情况下,Occupancy Maps是通过随着时间的推移积累数据来构建的,而深层神经网络则用于将环境标记为驾驶上下文类,例如高速公路驾驶、停车场或市中心驾驶。Occupancy Maps代表一个车内虚拟环境,以更适合路径规划和运动控制的形式集成感知信息。深度学习在估计中起着重要作用,因为用于填充网格单元的信息是从使用场景感知方法处理图像和lidar数据中推断出来的。

3. 路径规划和行为仲裁

       在路径规划过程,自动驾驶汽车应考虑周围环境中存在的所有障碍物,并计算出无碰撞的轨迹。解决方案是构造一个由部分可学习和部分非可学习组成的策略函数。可学习的策略试图最大化奖励功能(包括舒适性、安全性、超车机会等)。同时,不可学习策略遵循功能安全的硬约束,同时保持可接受的舒适度。深度学习可直接训练出路径规划和行为仲裁的网络,由于路径规划的有其优缺点,例如,驶离车道、车辆碰撞等,这些数据是稀缺的,使得训练网络在遇到不可见数据时的响应是不确定的。另一方面,尽管DRL系统能够在模拟世界中探索不同的驾驶情况,但这些模型在移植到现实世界时往往会有偏差行为。

4. 汽车运动控制器

      传统控制器是利用由固定参数组成的先验模型,例如:模型预测控制MPC,无法预见系统必须处理的所有可能情况。深度学习的控制器可以把所以信息全部输入,能够考虑各种可能的情况,输出最优的横纵向控制参数。

5. End2End学习系统

      上面提到的还是传统自动驾驶的思路,感知、决策、控制,实际上深度学习可以提供一种端到端的学习方法:

                 

      端到端的学习方法实际上是一种扩展到复杂模型的反向传播算法,直接利用传感器的数据训练出最终的控制结果,并利用理想的结果或者错区惩罚机制,结合反向传播算法训练网络。第一阶段是模拟,第二阶段是测试车。

6. 自动驾驶安全

       深度学习和自动驾驶安全相结合,主要是利用深度学习的推理,深度学习可以理解可能的故障和其影响;更广泛的系统中的上下文;定义安全行为的含义,包括非功能约束。