在特斯拉公司的 2019 年无人驾驶日上,埃隆·马斯克对 LiDAR(光探测与测距)技术发布重要“指示”,预测称:“任何依赖 LiDAR 技术的人都将注定失败”。虽然激光雷达已经在过去十多年中得到众多无人驾驶汽车厂商的肯定,但马斯克宣称:特斯拉只需要安装在车辆上的现有摄像头与传感器套件即可实现无人驾驶功能。在他看来,通往无人驾驶的道路不在于增加更多传感器,而在于引入大量来自现实世界的训练数据。很明显,特斯拉的车队有能力收集庞大的数据,并与行业领先的计算机视觉技术结合起来。
马斯克的预测强调了无人驾驶汽车开发领域中愈发严重的一大难题:到底是选择像人类驾驶者那样通过视线实现无人驾驶的解决方案,还是利用 LiDAR 类传感器弥补计算机视觉技术中的一些局限性。目前这场辩论还没有结束,毕竟这两种方法都没有实现大规模无人驾驶车辆部署,而且可用于比较的公开技术数据也非常有限。面对这个挑战,本文作者 Nathan Hayflick 希望利用自己的工具,利用 Scale 拥有的一套专为无人驾驶开发商构建的数据标记产品,对两种实现理念进行一番测试。
魔鬼就在数据当中
首先咱先聊点背景信息:感知系统不仅需要学会自行理解高速公路路况,还需要使用由人类验证数据建立起的庞大训练数据集。这种方法被归类为“监督学习”系统。具体训练数据包括汽车传感器的部分输出(例如前方道路的视频图像或者车辆周边环境的 3D LiDAR 点云)。这些输出被发送给人类操作员,后者负责对其中的各个物体位置及类型做出标注。无人驾驶车辆需要借此学会“观察”。由于标记数据被作为汽车训练中的主要感知输入内容,因此我们往往通过观察训练数据的质量来判断无人驾驶车辆的感知系统能否良好运作。要建立起一套拥有极高准确度并驱动汽车本体的传感器感知系统,单单拥有大量数据是不够的——我们还必须能够以极高的准确度对数据进行注释,否则感知系统的性能会发生显著倒退。
我们的实验也由此展开!Scale 拥有一整套能够从任意传感器组合中生成数据集的工具链,我们最近通过 Aptiv 为 nuScenes 提供注释。nuScenes 是一套 3D 视频集,由车载摄像头与 LiDAR 配合 Aptiv 共同创建。我们能否比较各个系统生成的训练数据,进而将基于摄像头的系统与基于 LiDAR 的系统进行效能比较?为了回答这个问题,我们从 3D 数据集当中提取出一系列驾驶场景,但只采用 2D 视频图像,而后通过重新标记将其创建为一套不采用 LiDAR 感知系统时的 2D 数据集。此后,我们将这些 2D 注释投射[1]至原始 3D 数据,并逐个比较对象以查看其中是否发生了准确度损失。
对决:摄像头对 LiDAR
在两套数据集完成标记与准备之后,我们对结果进行了比较,并发现其中存在一系列重大差异。很多在叠加至视频上时看起来完全合理的注释,在被延伸至 3D 环境时会产生明显的错误表达。以下图为例——如果大家只观察左侧的 2D 图像,乍看之下两套数据集似乎都很准确。但在右侧的纯 3D 场景中,我们会发现纯视频数据集的注释太长,而且缺少了整整一侧的环境观察结果。
为什么 2D 场景下的准确度在延伸至 3D 时会变差?是不是为车辆勾勒边界框体的操作员犯了什么错误?并不是这样——换言之,利用平面图像推断精确的 3D 量化结果本身就极具挑战。这相当在某个外观并不规则的物体周围(汽车拥有各种形状以及不同配件,而且无人驾驶汽车在行驶过程中可能遇到多种车辆、行人以及野生动物)绘制一个标准的 3D 长方体,这要求系统明确了解所有边界点的位置。在 2D 透视图当中,我们至少可以保证这些边界点要么融入对象本身,要么被对象本身所遮挡。以图中的小型货车为例,车辆的左右边缘很容易找到,但由于同场景内的背景色调相似,系统很难找到明确的视觉元素,以准确绘制车辆的左后角位置。更糟糕的是,小货车背面采用倾斜的流线形设计。标注者虽然可以尝试填补这些空白,但最终却低估了物体的宽度,导致长方体在旋转时无法对齐,最终使得 3D 视图中车辆左侧的观察点被齐齐截断。
如果我们认真观察最左侧的边缘,主举看到 2D 注释结果同样低估了对象高度,因为其无法判断小货车弯曲的引擎罩会延伸到具体哪个位置。这种状况来自一顶基本数学特性——深度信息在 2D 图像中会自然“缩小”。当物体接近垂直于地平线时,只移动远边处的几个像素,就能够显著增加感知到的长方体深度。
当将 2D 投射至 3D 时,LiDAR 加摄像头注释(白色)中仅为几个像素的误差,会被纯摄像机注释(橙色)放大为更严重的错误
为了解决这个问题,我们可以采取硬编码方式将车辆尺寸添加到系统当中(录入所有汽车的设计尺寸)。但很快,又会有大量例外情况产生(包括装载有货物的车辆),或者缺少标准尺寸的对象类别(例如建筑区域)。这促使我们利用基于机器学习的解决方案从对象当中提取大小——但这种方法同样会带来新的挑战,我们将在后文中具体解释。
根据我们的经验,解决这类问题的最好办法,就是参考高分辨率 3D 数据——这正是 LiDAR 的专长所在。看看 LiDAR 点云,我们就会意识到它几乎能够解决所有难题,因为捕捉到的点会跟踪车辆左右两条边界,确保我们利用这些结果设置长方体边缘。此外,前文中提到的深度失真问题在 LiDAR 场景下同样不复存在。
第二局:夜间驾车
考虑到无人驾驶汽车需要面对的种种实际场景,第一轮对决中的案例似乎太过简单。现在,我们得往测试中引入一点现实世界中的复杂性元素,并让两套数据集之间的差异变得更加极端。在这里,我们看到系统捕捉到一辆夜间行驶的汽车,其在无人驾驶车辆面前突转变。现场能见度很差,右侧交通指示牌发生遮挡,对向车辆的大灯还造成了视觉干扰。在这种情况下,3D 数据能够为车辆提供更精确的转向与深度结论——这是因为安装位点较高的 LiDAR 传感器能够帮助车辆越过交通指示牌进行查看,进而测量目标车辆的边缘与行驶角度。
当然,汽车只是我们在行驶途中可能遇到的众多对象之一。我们还需要识别较小的载具,例如自行车或电动踏板车,并确保能够在照明条件较差的夜间快速分析路况。下面来看一个简单的测试——在下图中,我们一起找找交通参与者藏在哪里:
可以看到,在图片右侧的路灯杆与灌木后面,确实有一位骑着电动车的驾驶者。骑手身着黑色衣物,再加上颗粒感极强的低光图像,导致我们难以判断其属于阴影还是真实对象。纯视频训练数据中完全忽略了该对象,好在 LiDAR 注释成功将其记入了捕捉结果。
左:摄像头看到的电动车与骑手,大部分对象被低矮的灌木所遮挡;右:LiDAR 中的俯视图,对象点表示存在电动车与骑手
无法识别这类对象会给无人驾驶车辆带来巨大的风险。由于视频图像太过模糊,不具备 LiDAR 的汽车只有两种选择:直接忽略这些物体;或者能见度较差或驾驶风格过于谨慎时产生幻觉,把移动的阴影视为另一名骑手(导致汽车紧急制动以避免与假想目标发生碰撞)。这两种作法,对于行驶在公共道路上的无人驾驶车辆而言显然都不安全。
感知与预测
可以看到,利用纯 2D 传感器数据预测 3D 标记结果会带来一系列挑战,但这些问题是否广泛存在?我们对数据集中的所有长方体旋转误差进行了统计,并发现纯视频注释与经过 LiDAR 验证的对应结果之间平均相关 0.19 弧度(10.8 度)。在进一步分析数据后,我们发现夜间注释的平均误差为 0.22 弧度,远高于日间场景中的误差 0.16 弧度,且误差会随着目标与摄像头间的距离增加而扩大,准确度自然同步降低。
为了进一步量化这种模式,我们将所有 2D 与 3D 注释结果。利用对象检测任务的标准质量指标 IOU 评分进行了分级。(IOU 的全称为 Intersection Over Union,是对象检测任务中的常用衡量标准,其测量两个形状之间的「差异」,同时考虑结果在位置、形态与大小等方面的错误。)整体数据集的平均得分为 32.1%,但一般来讲,通常要得到 90%以上的 IOU 得分才会被视为“正确”。
相关启示
那么,这样的结论有何意义?简单来讲,这强调了与无人驾驶汽车的软件相比,人类大脑在感知世界方面采取着完全不同的观察角度。在涉及物理运动规划时,我们不需要在头脑当中进行基于环境的数学运算,而能够自然而然地快速判断潜在风险并及时制动。
如果你的感知系统不够强大或者不够准确,那么预测能力将大打折扣。
相比之下,无人驾驶汽车必须进行这类计算,且主要通过初始设计实现。利用神经网络这类预测系统(往往需要大量调试,且结果混淆度很高)直接控制无人驾驶汽车(端到端学习方法)将非常危险;相反,我们应当把无人驾驶汽车的“大脑”拆分成多个较小的系统,例如首先建立感知系统、而后是预测、规划与最终行动操作系统。感知是基础,因为预测与规划等后期步骤的执行,都将依赖于感知系统能够正确预测对象位置及其将如何与无人驾驶汽车进行互动。如果你的感知系统不够强大或者不够准确,那么预测能力将大打折扣。
在高速公路这类相对简单的环境下,这些可能不那么重要,毕竟车辆的活动范围较小;但在全面普及无人驾驶的情况下,仍有大量需要提前预测的安全操纵场景存在(例如判断何时可以安全地向左侧移动,或者绕过静止不动的汽车)。此外,几乎所有无人驾驶堆栈都采取自上而下的视角以进行路线规划,因此一旦误判对象汽车的宽度(如我们提出的第一个示例),则可能导致系统错误预测前方车辆的行动或者距离。虽然不少反对激光雷达的观点认为,“我们人类可以在无需旋转 LiDAR 传感器的情况下正常开车,所以好的神经网络应该也行”。但毫无疑问,无人驾驶汽车的软件架构应该提供更好的预测能力,从而实现比人类更出色的感知准确度。
目前,非 LiDAR 系统开发人员面对的主要挑战,在于想办法从 2D 数据当中获取理想的注释准确度。正因为如此,特斯拉公司才会在其无人驾驶日活动展示的一系列系统实验研究当中,努力探索如何预测物体的尺寸与位置。最近引起热议的方法之一,在于利用立体摄像头创建一套点云(类似于人类利用双眼的视差判断距离)。但到目前为止,还没有证据表明这是个理想的选择,因为这要求我们使用分辨率极高的摄像头测量物体距离。演示中的另一种方法,则是利用额外的机器学习层以理解物体的大小与深度。最终,这意味着车辆上的安全系统将更加依赖神经网络,并带来更严重的不可预测性与极端情况下的可怕后果。基于 LiDAR 的系统能够直接测量距离与大小,使得车辆的感知系统以更从容的方式应对神经网络给出的错误结果。特斯拉方面展示了一个利用神经网络系统进行俯视角深度预测的例子,但即使是在相对简单的场景(白天、高速公路)中,预测出的车辆尺寸也存在明显的尺寸与角度扭曲。
特斯拉基于摄像头数据计算出的车辆边界框。在从俯视角观察时,左车道中的车辆在距离摄像头较远时显示出深度扭曲,而右车道中的车辆则存在宽度与旋转度不准确问题。资料来源:2019 年特斯拉无人驾驶日。
总结陈词
虽然 2D 注释看起来可能还算准确,但其中往往隐藏着更深层次的不准确因素。错误的数据会操控机器学习模型的可信度,而这些模型的输出又会进一步影响到车辆的预测与规划软件。如果不能在计算机视觉研究领域有所突破,那么此类驾驶系统可能很难实现真正的自主能力——毕竟车辆必须在每一英里的行驶过程中进行数千次预测,且不容有失。
不过,2D 注释仍然可以作为整体传感器系统中的重要组成部分,或者用于处理某些简单的任务——例如在保持本车道行驶或高速公路驾驶时进行对象分类。
拥有多种传感器模式总会令人更加安心。将摄像头与激光雷达数据结合起来的主要优势之一,在于当某一种传感器类型无法识别路况时(例如前方有汽车被交通指示牌遮挡,或者刚刚驶入桥下摄像头因调节曝光时间而暂时无法成像),我们还可以依靠另一种传感器填补缺失的信息。
从更广泛的角度来看,我们的研究结果也有望给机器学习开发带来良性循环:利用更强大的传感器生成准确度更高的训练数据,这意味着我们的感知模型将表现更好,并反过来降低我们对任一传感器的依赖程度。但这里也存在着另一种比较糟糕的可能:即使在理论上存在不使用 LiDAR 建立安全无人驾驶系统的可能,单独利用摄像头获取良好训练数据的难度也必然更高。因此除非机器学习技术发生颠覆性变化,否则大量平庸的训练数据只会让我们长期原地踏步。没有高质量数据作为依托,开发人员将面临一场艰苦的战斗——如何将自己的感知系统训练至真正符合无人驾驶安全要求的准确度水平。
备注
1.我们利用Nuscenes摄像头的内部数据将 2D 长方体校准为伪 3D 形式,而后利用外部数据将长方体等比例放大至 3D 环境中的已知参考点处(在我们的示例中,即最接近地面的点),从而获取可比较的两测量对象。
评论