背景介绍

有监督学习需要大量的标注数据。可以完全由人工标注,也可以由机器自动标注,也可以人机混合。这三种模式分别称为人工标注,自动标注和半自动标注。

自动驾驶中,感知系统对标注需求很大,尤其是障碍物感知。其自动标注主要可利用不同传感器之间的相互标注。

障碍物感知有三大主流传感器: 激光雷达(LiDAR),相机(Camera),毫米波雷达(Radar)。 从自动标注的数据流向来看,一般是依靠激光雷达和毫米波雷达给相机标注, 因为感知系统输出给下游的障碍物都需要提供三维信息:3D位置和3D尺寸,最不济也需要给出障碍物在BEV上(缺少高度方向)的大小和位置。

激光雷达输出的点云及其检测模型输出的障碍物都具有完整的3D信息,即中心点位置和长宽高。

毫米波直接输出BEV上的障碍物信息,有2D BEV位置有速度,但缺少高度。

相机的分辨率很高,具有丰富的语义信息。2D的视觉障碍物检测也是一个很热门且比较成熟的研究方向。 要相机独立给出具有3D信息的障碍物结果,通常可以通过以下几种途径进行3D恢复:

  1. 纯粹的2D检测结合一些先验几何假设。例如假设框的下边中心点为障碍物的地面接触点,且地面是平的,然后根据相机外参确定地面高度,以此即可估计出障碍物的3D位置。最后根据类别取一个先验长宽高,作为其大小。这类方法的缺点是鲁棒性差。
  2. 检测模型不仅预测障碍物的2D信息,还预测一些3D信息,例如角度,尺寸,深度,投影关键点等,然后通过一些几何约束及必要的先验恢复其3D信息。这类方法很多,预测对象非常多样,也是当前3D视觉检测的热门研究方向。
  3. Pseudo LiDAR。对相机图片进行深度估计,得到稠密的伪点云,然后用点云模型进行障碍物检测。这类方法的关键和难点在于准确的深度估计。

下面通过几个例子来说明可以尝试的自动标注方法。

激光雷达提供点云级别的深度信息

将激光雷达的点云投影到相机上,可以得到像素级别的稀疏深度图。这个深度图可以用来训练纯视觉的单目深度估计模型。 基于无监督学习的纯视觉单目深度估计是一个很有潜力的研究方向。直觉上,结合激光雷达的数据理论上有助于模型正确收敛。

若同时使用双目和激光雷达,这个深度图也可以转换为视差的真值。

激光雷达点云投影相机主要存在的问题包括:

  • 稀疏,且距离稍远就没有点云了。
  • 遮挡。相机和激光雷达安装位置肯定有相互偏移,激光雷达能看到的相机不一定能看到。所以可能存在被遮挡的点,它本身虽然位于相机的FOV内,但投影到相机上却没有对应的像素,错误的像素深度就这样产生了。 相机和激光雷达间的安装偏移越大,出现遮挡的概率和程度越高。
  • 同步。理论上可以在激光雷达转到和相机相同角度时触发相机曝光,但在实践中并没想象的那样简单:设备状态、网络状况都会影响到同步的实际效果。而且,常用的机械式激光雷达转一圈需要100毫秒,而相机曝光时间通常只有数毫秒。低速场景受非理想同步的影响不大, 但高速场景受其影响严重。并且,这里的速度不是指自车的速度, 而是指自车相对于环境中其他物体的速度。

一些可供参的论文:

Deeper Depth Prediction with Fully Convolutional Residual Networks

Semi-Supervised Deep Learning for Monocular Depth Map Prediction

Unsupervised Learning of Depth and Ego-Motion from Video
Unsupervised Learning of Depth and Ego-Motion from Monocular Video Using 3D Geometric Constraints

激光雷达提供障碍物的3D位置和尺寸

激光雷达障碍物检测模型输出的物体一般都具有完整3D信息:3D位置和3D尺寸。 将其3D框投影到相机上后可以提供视觉障碍物的以下信息:

  • 中心点及8个角点的2D位置
  • 物体的实例深度和角度
  • 2D框位置

这些信息可供上文提到过的第二种相机3D恢复方法需要的真值。 不过也存在不少缺点:

  • 激光雷达的障碍物检测模型可能漏检、误检,或检测结果不准确, 特别是高度方向:3D关键点的2D投影受高度方向的准确度影响极大。
  • 激光雷达的障碍物检测距离一般比相机要短
  • 可能将非误检但不存在于相机上的物体投影到相机上, 例如被遮挡物体

一些可供参考的论文:

MonoGRNet: A Geometric Reasoning Network for 3D Object Localization

3D Bounding Box Estimation Using Deep Learning and Geometry

RTM3D: Real-time Monocular 3D Detection from Object Keypoints for Autonomous Driving

毫米波雷达提供实例深度

毫米波可提供障碍物的BEV位置和速度。速度在单帧检测中很难用上。另外还需要注意的是,毫米波雷达输出的障碍物位置不一定是障碍物的中心点位置: 一般在障碍物体上,但不能确定是物体的哪一个点。

Tesla在2019的自动驾驶日视频[1]大概71分钟处中给了个应用举例:在图像上自动匹配radar和camera物体, 以radar的深度作为真值训练camera物体的实例深度估计。 3D形状也由camera通过关键点的形式预测。




genesis2000自动标注脚本_图片标注尺寸


这种radar自动标注方法只能提供实例深度, 其投影关键点仍需要人工标注(Tesla没有LiDAR)。

结语

总的来说, 自动标注产生的数据普遍存在噪声,但胜在数据量近乎无限且不需要人工标注。使用海量有噪声的数据的弱监督训练的潜力也已经证实[2]

从传感器融合的角度来看, 自动标注也是比前融合更前的融合。

值得探索的自动标注方向很多。 对自动驾驶公司来说, 通过对自动标注的探索,更有效充分地利用采集的海量测试数据,也是一件很有价值的事情。

参考

  1. ^https://medium.com/syncedreview/facebook-model-pretrained-on-billions-of-instagram-hashtags-achieves-sota-results-on-top-1-imagenet-ae8113bb3145