计算机视觉
对计算机而言,图像只有红色、蓝色和蓝色值的集合。无人驾驶有四个感知世界的核心任务:检测、分类、跟踪、语义分割。
检测:找出物体在环境中的位置;
分类:指明对象是什么;
跟踪:指随时间推移观测移动的物体(如行人、车辆);
语义分割:将特许肮脏的每一个像素与语义类别进行匹配。
摄像头图像
摄像头图像是最常见的计算机视觉数据,图像中的每一个像素只是一个值,这些值构成图像矩阵,可以改变像素的值,比如添加一个标量整数改变图像亮度。
彩色图像被构建为值的三维立方体,每个立方体都有高度、宽度和深度,深度为颜色通道数,RGB图像深度为3。
LiDAR图像
激光雷达传感器创建环境的点云表征,提供摄像头难以获取的距离或者高度信息。激光点云可以提高物体许多信息,比如其形状和表面纹理,通过对点进行聚类和分析,能通过对象检测、跟踪或分类信息。
机器学习
机器学习涉及使用数据与相关的真值标记来进行模型训练。
监督学习:提供真值数据;
无监督学习:不提供真值数据;
半监督学习:提供少量真值和大量未标记数据;
强化学习:允许模型通过尝试许多不同的方法来解决问题,然后权衡哪种方法最成功。
神经网络
人工神经网络是通过数据来学习复杂模式的工具,神经网络由大量的神经元组成,人工神经网络负责传递和处理信息,也可对神经元进行训练。
反向传播算法
一个训练周期包含三部分:前馈、误差测定和反向传播。首先随机分配权重值,即神经元,通过神经网络来馈送每个图像,产生输出值,称之为前馈;误差是真值标定与前馈过程所产生输出之间的偏差;反向传播通过神经网络反向发送误差。
卷积神经网络
CNN属于神经网络中的一种,接收多维输入,包含大多数传感器数据的二维和三维形状。CNN通过将过滤器连续划过图像收集信息,每次收集信息时,只对整个图像的一小部分区域进行分析,这称为“卷积”。
检测与分类
首先使用检测CNN来查找图像中对象的位置,然后将图像发送给另一个CNN进行分类,也可以使用单一的CNN体系结果对对象进行检测和分类。
追踪
追踪在检测失败时至关重要,追踪可以解决被遮挡问题,另外的原因是可以保留身份,障碍物检测的输出为包含对象的边界框。
追踪的第一步是通过查找特征相似度最高的对象,将之前帧检测到的所有对象与当前帧中检测到的对象进行匹配;确定使用对象的位置并结合预测算法,以估计在下一个时间步的速度和位置,该预测可识别下一帧中的相应对象。
分割
语义分割涉及到对图像的每个像素进行分类,作用是尽可能详细地了解环境,并确定车辆的可行驶区域。语义分割依赖依赖于一种特殊类型的CNN,被称为全卷积网络或FCN。
Apollo感知
对三维检测,Apollo在高精地图上使用感兴趣区域(ROI)来重点关注相关的对象,将ROI过滤器应用于点云和图像数据,以缩小搜索范围并加快感知,然后通过检测网络馈送已过滤的点云输出用于构建围绕对象的三维边界框,最后使用检测跟踪关联的算法来跨时间步识别单个对象,该算法先保留在每个时间步要跟跟踪的对象列表,然后在下个时间步中找到每个对象的最佳匹配。Apollo使用YOLO来检测车道线和动态物体,然后在线检测模块会并入来自其他传感器的数据,对车道线预测进行调整,车道线最终被并入名为“虚拟车道”单一的数据结构中,同样,也通过其他传感器的数据对YOLO网络所检测到的动态对象进行调整以获得每个对象的类型、位置、速度和前进方向,虚拟通道和动态对象均被传输到规划与控制模块。
传感器比较