本文主要参考论文《基于计算机视觉和深度学习的自动驾驶方法研究_白辰甲》,记录一些理论知识。
自动驾驶定义
自动驾驶是指车辆通过传感器感知周围环境,在没有人为干预的情况下,实时改变驾驶行为,完成驾驶任务。
基于计算机视觉的自动驾驶技术
基于计算机视觉的自动驾驶技术使用视觉传感器的观测图像作为输入,驾驶动作作为输出。
现有方法主要分为间接感知型(Mediated Perception)方法、直接
感知型(Direct Perception)方法和端到端控制(End-to-End Control)方法。
间接感知型方法
间接感知型方法是传统的自动驾驶方法。
间接感知型方法将自动驾驶任务分为目标检测、目标跟踪、场景语义分割、相机模
型和标定、三维重建等多项子任务,分别作为计算机视觉的标准任务
进行计算,随后将计算结果进行转换和整合作为决策的输入。
算法使用目标检测技术探测与驾驶相关的目标,如道路、交通标志、信号灯、车、行人等,使用场景语义分割技术对交通场景进行分割,使用标定和重建技术算与障碍物距离等。系统将所有信息进行组合,形成无人车环境的完整表示,决策系统利用这种环境表示进行决策。
间接感知型方法的优势在于模块化清晰,可以利用计算机视觉领域内多个子任务的研究成果,设计和优化每个模块,各模块之间耦合度低,容易进行组合和调整,在系统出现问题后容易排查故障。但是,这种方法也一定存在缺陷。
首先,计算机视觉中的各项子任务均是针对标准数据集设计的,不一定完全适合自动驾驶系统所面临的道路交通环境。
其次,系统冗余性和复杂度较高。系统输入由多个子模块组成,输入维度较高,但系统输出一般只有角度和速度等变量,输出维度很低。
高维的输入最终转化低维输出,表明冗余性较高,造成了不必要的资源浪费,导致成本较高。
目标检测
自动驾驶车辆在交通环境中与其他交通工具和行人共享道路资源,尤其在城市交通中,交通工具种类繁多,行人、宠物等目标也经常出现。自动驾驶车辆需要检测这些目标的位置并进行分类,根据
目标的种类采取相应措施。
目标跟踪
自动驾驶中目标跟踪的目的是实时掌握交通环境中车辆、行人等目标的位置、
速度和加速度等信息,并预测目标未来可能的位置,预测可能发生的碰撞,这些信
息对于自动驾驶汽车至关重要。
场景语义分割
场景语义分割是自动驾驶技术的一个重要分支,其目的是将一幅场景图像中的每个像素点都归属到某个类别中。交通场景中一般将图像分割成车、行人、道路等,为自动驾驶车辆理解环境提供了重要参考。该问题的难点在于交通场景较为复杂且种类繁多。
相机模型和标定
三维重建
自动驾驶中的常见的三维重建技术主要基于立体视觉。
基于立体视觉的三维重建模仿人眼成像原理,由两台前向平行对准的相机进行成像,从两幅图像中寻找匹配点来估计深度信息,从而重建三维环境。
深度信息在自动驾驶中可以用来探测障碍物距离、探索安全区域等。
立体视觉系统主要包括图像获取、相机标定、特征提取、立体匹配、深度计算、重建等部分。
其中,图像获取主要通过双目立体相机;
相机标定用于计算相机内
参数、外参数、畸变系数等;
特征提取是指提取二维图像的角点、边缘、轮廓等特征,要求特征具有明显的区分性和独立性,在匹配中需要使用提取到的特征;
立体匹配将两幅图像的相同像素点进行对应,是立体视觉技术的关键;
深度计算是指匹配的 2D 图像中获取深度信息,主要依据三角测量原理从视差图中估计深度,影
响深度计算的因素有标定误差、特征提取精度和匹配精度等;
重建主要目的是恢复三维场景的表面信息,视差图中仅包含部分点的视差,因此需要由视差图插值来进行重建。
直接感知型方法(直接学习距离)
直接感知型方法首先人工设计与自动驾驶相关的关键指标,学习交通环境的关键指标,随后由控制逻辑进行控制。
在间接感知型方法的基础上进行了优化,直接学习与驾驶相关的关键指标。这些关键指标需要根据驾驶环境进行设计,一般包括与前车的距离、与左侧标志线的距离、与右侧标志线的距离等。
但是,该方法也存在问题。因为算法直接学习距离,因此需要使用带有目标与无人车距离的数据集进行训练。在真实交通场景中,采集带有精确距离信息的数据集往往需要使用超声和激光雷达等设备,采集成本高。
直接感知型结构的优势在于没有单独设计各项任务的检测模块,而直接学习与当前交通环境相关的各项指标,因此在构建完整的交通环境表示的同时拥有较为简单的系统结构。其缺陷在于,由于需要人工设计与交通状况相关的指标,因此难以应对非结构化的交通场景。
直接感知型结构所需的训练数据在真实交通环境中较难获取,因为精确的距离测量往往需要超声和激光雷达等设备,采集成本高,所以数据采集需要依赖仿真环境。
端到端控制方法
端到端控制方法也称表现反射型(Behavior Reflex)方法,该结构不行任务拆分,直接从图像中学习转向角等决策信息。
基于端到端控制的自动驾驶技术采取另一种思路,不对系统进行任务划分,而直接利用监督学习的方法学习驾驶动作。
相关科技公司
以谷歌(google)、特斯拉(Tesla)、英伟达(Nvidia)为代表的科技公司;
百度。