自动驾驶汽车严重依赖输入的训练数据来做出驾驶决策,从逻辑上来说,数据越详细,车辆做出决策就越好,最重要的是更安全。虽然现代相机可以捕捉到非常详细的真实世界特征,但输出结果仍然是2D的,效果并不够理想,因为它限制了我们可以提供给自动驾驶汽车神经网络的信息,这意味着汽车必须学会对3D世界做出猜测。与此同时,相机捕捉信息的能力有限,比如在下雨的时候,相机捕捉到的图像几乎无法辨别,而激光雷达仍然可以捕捉信息。因此,2D相机无法在所有环境下工作,由于自动驾驶汽车是神经网络一个高危应用场景,我们必须确保构建的网络尽可能完美,这一切要从数据说起。理想情况下,我们希望我们的网络将3D数据作为输入,因为它需要对3D世界进行预测,这就是激光雷达的用武之地。
本文旨在对LiDAR技术和使用它的网络进行全面的介绍,包括以下内容: LiDAR 是什么以及它是如何工作的 神经网络如何处理 LiDAR 数据以及它们面临的挑战 LiDAR 数据与 2D 图像有何不同以及标注过程如何变化
LIDAR究竟是什么?
LiDAR代表光检测和测距。简而言之,它是一种遥感技术,使用激光脉冲形式的光来测量传感器和目标物体之间的距离和尺寸。在自动驾驶场景下,激光雷达用于检测物体相对于车辆的位置,例如其他汽车、行人和建筑物。人工神经网络的日益普及使激光雷达比以前更有用。 激光雷达技术自 1960 年代以来一直被人们使用,当时它被安装在飞机上以扫描它们飞过的地形。随着 GPS 的出现,LiDAR 在 1980 年代变得越来越流行,当时它开始被用于构建真实世界位置的 3D 模型。
LIDAR是如何工作的?
大多数 LiDAR 系统由四个部分组成: 1) 激光:向物体发送光脉冲(通常是紫外线或近红外线)。 2) 扫描仪:调节激光扫描目标物体的速度和激光到达的最大距离。 3) 传感器:测量来自激光的光从目标物体反弹并返回系统所需的时间(从而测量距离)。 4) GPS:跟踪激光雷达系统的位置,以确保距离测量的准确性。 现代 LiDAR 系统通常每秒可以发送高达 500k 的脉冲。来自这些脉冲的测量值被聚合成一个点云,它本质上是一组坐标,代表系统已经感应到的物体。点云用于创建 LiDAR 周围空间的 3D 模型。
点云(Velodyne LiDAR)
有两种一般类型的 LiDAR 系统:机载和地面。由于我们讨论的应用场景是自动驾驶汽车,我们将主要关注地面激光雷达。地面激光雷达附着在固定在地面上的物体上,并在所有可见方向上进行扫描。它们可以是静态的(例如,连接到不动的三脚架或建筑物上)或移动的(例如,连接到汽车或火车上)。
使用激光雷达数据进行深度学习
鉴于 LiDAR 系统生成的输出类型,将它们与神经网络相结合十分合理,并且确实在点云上运行的神经网络已被证明是有效的。激光雷达点云在自动驾驶汽车上的应用可以分为两类:
1)以目标检测和场景理解为目的的实时环境感知和处理。
2)生成用于目标定位和参考的高清地图和城市模型。
听起来可能很复杂,但实际上它只是意味着 LiDAR 数据用于语义分割、目标检测/定位和对象分类,唯一的区别是现在我们在 3D 中进行,这使得我们的模型有更多的细微差别。 对于在激光雷达数据上运行的神经网络来说的一个挑战是,根据扫描时间、天气条件、传感器类型、距离、背景和大量其他因素存在大量变化。由于激光雷达的工作方式,物体的密度和强度变化很大。再加上传感器经常有噪声,尤其是 LiDAR 数据通常不完整(由于某些材料的低表面反射率和城市背景杂乱等因素),处理 LiDAR 数据的神经网络需要能够处理很多变化。 3D 数据的另一个问题是,与 2D 图像不同,LiDAR 传感器的点没有直观的顺序,这在我们的模型中引入了对排列和方向不变性的需求,并非所有架构都满足。 为处理 LiDAR 数据而提出的四个架构系列如下:
1)基于点云的方法:这些网络使用不同的方法直接在点云上运行。一种这样的方法是直接通过 MLP 学习每个点的空间特征,并通过最大池化来累积它们。
2)基于体素的方法:将3D数据划分为体素的3D网格(本质上是立方体网格),并在类似CNN的架构中应用3D卷积和池化。
3)基于图的方法:这些方法使用点云中存在的固有几何来构建图,并应用常见的 GNN 架构,如图 CNN 和图注意力网络(它们也恰好满足前面提到的置换不变性条件)。
4) 基于视图的方法:这些方法依赖于使用来自 2D 计算机视觉的久经考验的架构创建点云的 2D 投影。在这种情况下,一种有助于提高模型性能的策略是从不同角度创建多个投影并投票支持最终预测。
标注LIDAR数据
正如我们现在所知,激光雷达数据上最常见的深度学习任务是目标检测、语义分割和分类的变体。因此,LiDAR 标注与为这些任务标注图像非常相似。人工标注非常常见,但由于 LiDAR 数据更复杂且可能令人困惑的性质,许多公司正试图使用预先训练的网络尽可能地自动化标注过程。 由于 3D 数据的特点,对 3D 数据进行标注似乎会变得很麻烦。但实际情况不一定如想象的那么复杂,对于 3D 语义分割和 3D 对象分类,除了 3D 空间中的点比 2D 图像中的像素要多,实际标注过程与 2D 对应物几乎是一致的。至于 3D 目标检测,相对于 2D 图像唯一增加的复杂性是除了要标注目标的位置之外,我们还需要标注它的方向,也就是目标面对的方向。 可以看出,LiDAR 数据标注的主要障碍并不是真正源于其数据有多么复杂。只是 LiDAR 数据看起来不像 2D 图像那样简单直观,因此标注可能需要更长的时间,尤其是对于不熟悉此类数据的人,所以一套加强视觉性和可操作性的标注工具表现地十分重要,冰山數據为自动驾驶LiDAR数据开发了一套十分易于操作的标注工具,基于CVAT(在之前的文章《2022年10款最佳计算机视觉开源数据标注工具》中我们有详细的介绍过)的优秀特性开发,在之后的文章中,我们将详细介绍我们的LiDAR标注工具。
结论
如上文所述,LiDAR 是一种使用激光脉冲和传感器构周围环境的 3D 视图技术。虽然它自 1960 年代以来一直在使用,但如今最常见的用例之一是将 LiDAR 数据与自动驾驶汽车的神经网络相结合。常见的神经架构已被用于对 LiDAR 数据进行操作,尽管需要进行一些必要的调整。虽然 LiDAR 生成的点云的性质使得数据格式与 2D 图像截然不同,但 LiDAR 标注过程并没有太大变化。