智能驾驶进阶7——感知

感知概貌

  • 感知技术不能产生0~1的质变,没有终极解决方案,不能进行代码逐行的code reading

  • 目标

    • 理解感知问题的复杂性
    • 看清主要的技术路径
    • 理解目前主流方法的思路
  • 感知是一种机器人学科。机器会向人学习,扬长避短。

  • 感知系统的机器输出依赖高精地图,不要求实时分析。输出障碍物信息(位置、类别、形状、跟踪)。输出传感器融合数据。v2x是长远目标。

感知技术模块

  • 小感知:检测、(语义)分割、(属性)识别、跟踪、融合
  • 大感知:标定、定位、障碍物行为预测

多维度看感知

  • 传感器维度
  • 输出维度:障碍物、车道线和路边界、红绿灯
  • 问题空间维度:2D问题、3D问题、静态帧处理、时序处理
  • 机器视觉维度:模型计算(高级)、几何计算(低级)
  • 机器学习维度:深度学习(数据驱动),后处理(启发式)
  • 系统维度:硬件和软件

传感器和标定

传感器

  • 64线激光雷达TOF,主动式
    • 难以做识别;发射存在功率限制,距离远的地方难以检测。
  • 相机,被动式
    • 光线影响大,精度不准;但是稠密感知,可以探测较远的地方
  • 毫米波雷达,主动式
    • 可以利用多普勒效应测量相对速度;噪点较多,非金属材质反射强度低
  • 超声波雷达
  • image-Lidar的4D数据指的是RGN颜色信息加上深度信息
    在这里插入图片描述
    在这里插入图片描述

标定

  • 标定的核心问题

    • 将不同传感器的数据再同一个坐标系里表示
      • 内参:传感器自身性质
      • 外参:传感器之间的相对位置和朝向(用3自由度的旋转矩阵和3自由度的平移向量表示)
    • 两个要进行标定的传感器要再观测同一个物体的情况下进行标定相对位置,然后解决优化问题。可能要利用传递关系,通过C知道AB的相对位置。
  • camera和camera基于标定间的标定在这里插入图片描述

  • Lidar和相机基于标定间的标定

    • Lidar-Rigel:ICP(Iterative Closest Point,迭代最近点)
    • camera-Rigel:P2P
      在这里插入图片描述
  • Lidar内参标定:Lidar与Rigel做匹配,如果激光雷达的内参不准确,会出现远距离地面点浮在空中的现象。

  • Lidar和GPS外参标定:将车辆在空旷地区绕八字行驶多次,记录多个时间点GPS给出的车辆位置信息(相对于GPS为原点的世界坐标系),将Lidar捕捉的多帧点云投影到世界坐标系中,并进行拼接,求解优化获得外参。

  • 自然场景的Lidar-to-camera外参标定:在标定的场景中寻找具有明显边缘的物体作为参照物将该参照物的点云边缘和Camera拍摄图像的边缘对齐作为参数标定效果的考量指标,如果对齐,这表示标定结果良好。

  • 自然场景中的Bifocal Camera外参标定:类似于Camera-to-Camera外参标定,但是需要在自然场景中找到边缘锐利的物体作为参照物。

  • camera-to-radar:得到Radar相对于Camera的Pitch角的上下倾斜问题。通常情况下Radar是水平安装的,问题就转换为求得Camera相对于地面的Pitch角。由于Camera-to-Lidar已经标定好,可以通过Lidar采集到的平面信息解决倾角问题。

感知算法

Lidar感知(检测)

在这里插入图片描述

  • 垂直视野:最下面的激光头和最上面的激光头的角度为26.8°,最上面的激光头是正2°
  • 点云障碍物感知的主要任务:感知障碍物的位置、大小、类别、朝向、轨迹、速度等
  • 核心:点云检测分割技术

启发式方法:Ncut

  • 算法思路
    • 基于空间平滑性假设,空间上接近的点来自同一个障碍物
    • 基于graph聚类算法的步骤
      • 预处理:例如去掉感兴趣区域之外的点云,降低点云图的复杂度
      • 构建加权图G=(V, E, W),将点云分割转换为图分割的问题(如KNN建立)
      • 利用图聚类的算法求解,最终求解的每一个cluster就代表一个障碍物
      • 后处理:异常过滤
    • 基于graph聚类算法的优缺点
      • 优点是解释性好,能很好的进一步改进,缺点是分割规则过于简单,难以应对实际情况(草丛、绿化带),核心缺点在于缺乏语义信息。

深度学习方法:CNNSeg

  • 主要思想:利用卷积神经网络来处理激光雷达捕获的点云数据,并对点云中的目标进行识别。
  • 深度学习:数据驱动,把人工构造特征转化为机器的特征学习,全局考虑(考虑全局关系,不是基于graph的那种只考虑相邻点关系的方法;把任务融合到一个任务里解决)
  • 算法研发历程
    • 将所有点云都投到前视图(front-view)(投影面是一个圆柱面)来构造特征,将点云问题转化为矩阵问题,进而使用深度学习进行处理。通过构建全卷积神经网络对前向视图进行处理。

    • 借助自采集车队,采集更多的实际数据(数据更多得到结果更准确),并且扩展数据视角,制作俯视图(bird-view),通过将俯视图+前视图相结合的方式进行训练。同时,修改Loss函数,包括使用3D回归和Segmentation的损失函数。经过多次实验,发现基于俯视图的Segmentation方法效果最好。该方法目前已经在Apollo中开源。
      (下图是两个视角的对比)在这里插入图片描述

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

视觉感知(全面)

  • ADAS:高级驾驶辅助系统https://blog.csdn.net/hebbely/article/details/78372969
  • ADAS相对轻量,采用人工构造的特征和浅层分类器的方式实现辅助驾驶,low-level视觉算法,目前难以满足自动驾驶的需求
  • 视觉感知的主流路线:深度学习+后处理计算
  • 面向自动驾驶的深度学习算法的特点
    • 2D感知向3D感知渗透,模型输出更丰富(后处理需要的3D信息、跟踪信息、属性信息等都会放在CNN中进行学习)
    • 环视能力构建(传统方法靠一个Camera完成前向检测、碰撞检测、车道线检测。无人驾驶需要环视,知道后向侧向状态)
    • 感知+定位+地图紧密结合(布置ADAS的汽车以众包方式回传地图)

深度学习检测和分割

  • 检测
  • (参考何凯明)
  • 计算机视觉里的检测和自动驾驶里的检测还是有不同之处
    • 一、自动驾驶视觉感知相机是第一视角,在规则化结构化的道路上,有很多其他的几何约束条件
    • 二、自动驾驶里的输出不仅仅是2D框和类别,还要输出更多信息辅助后处理,得到障碍物在3D世界里的信息,包括障碍物的尺寸、朝向,考虑时序性,考虑历史帧。
      • 局部end-to-end:(感知的主要输出)检测——2D-to-3D——(2D,3D,检测结果)跟踪做时序——输出位置速度。原先检测阶段用CNN来做,目前趋势是把2d-to-3d以及跟踪步骤也都转向CNN处理,使得后处理更加轻量化。在这里插入图片描述
    • 三、多任务学习,网络结构适配。所有元素功能使用一个模型。
    • 属性识别。除了障碍物级别的输出以外,还需了解速度类别朝向等问题,例如车尾灯状态,车门开闭状态。可以通过标注数据,由数据驱动的深度学习来自动学习这些更细的属性。
  • 分割
  • 分割是一种更细粒度刻画物体边界信息的检测方法,不再是画框,而是进行边缘分割
  • 对于不规则物体,往往要进行分割处理
  • 场景分割
    • 绿植分割:和Lidar结合,把3D点投到图像上去,是绿植则标注为绿植
  • 可行驶区域感知
    • 刨去障碍物区域之外的可行驶的区域,对一些非结构化道路的路径规划提供支持
  • 车道线
    • 对图像进行二进制的分割,车道有标注的部分标注为1,其他物体都是背景,后处理得到边缘,得知哪些是车道线,做一个曲线拟合,再投到3d里
    • 逐行选点检测连线传递给pnc

后处理:跟踪,2D-to-3D,多相机融合

  • 2D-to-3D的几何计算
    • 相机pose的影响(相机捕捉到的画面变化)
    • 接地点、2D框、绝对尺寸多条途径回3D在这里插入图片描述
    • 稳定性(不能上一帧是正向误差,下一帧是负向误差,要保持平滑性)
  • 时序信息计算,主要用于跟踪
    • 对相机帧率(高,至少是15fps)和延时有要求,要求跟踪必须是一个轻量级的模块,因为检测已经占据大部分时间
    • 充分利用检测模型的输出信息(特征、类别等)进行跟踪。
    • 可以考虑轻量级专门针对跟踪的Metric Learning
  • 多相机的环视融合
    • 相机布局决定融合策略,要做好视野重叠 (截断状态,保证冗余状态要做好)
  • 几何计算+时序计算+环视融合,密不可分

红绿灯(感知与地图交互)

  • 红绿灯感知的任务:在距离停止线50~-2米的范围内精准识别红绿灯亮灯状态。
  • 难点
    • 绿灯要求准确度高(3个9/99.9%),否则闯红灯违规
    • 各种环境下都要能工作
    • 各种制式的红绿灯都要可以识别(距离、高度、横纵、信号形状、频闪)
      在这里插入图片描述
  • HDR高动态比,越高越好,亮暗都能在同一个画面里;双相机,6mm用于近距离,25mm用于远距离,拍摄图像的分辨率要达到1080P,满足15pixel大小的灯能够看得到。

Radar感知(检测)

  • 金属的反射信号比较好,所以雷达点会成直线分布。基于该特征,可以用Radar反射信号来做高速路道路边缘栅栏的检测。在这里插入图片描述

超声波感知(检测)

  • 每个探头覆盖一个角度,探头反馈距离,只能进行近距离感知,并且无法感知具体的位置。如果两个探头感知范围存在over lap,这两个传感器的两根绿线会交接,就可以确定障碍物的准确位置。在这里插入图片描述

感知中的机器学习

  • 和一般的机器学习不同,对系统的准确性、召回率和延时要求严格
  • 应对corner case
    • 训练和测试独立同分布
    • 训练是封闭集、测试是开放集
      • 要么把模型能力扩展,使之识别泛化能力足够好;要么就把应用场景设计为几乎没有corner case
  • 可解释性
    • 如何评估模型、如何回归测试(了解改变参数带来的影响)、如何知道应用边界
  • 要结合其他非机器学习,如一些算法

感知的未来

  • sensor迭代非常快,成本会大幅度下降
  • 深度学习+仿真数据(点云仿真、图像仿真)+车载AI芯片
  • 智能交通设施,v2x普及
  • 人工智能技术进一步提升
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/z_vanilla/article/details/107745939