自动驾驶汽车(AV)是如何观看外部世界的?
你可能听说过LiDAR或其他奇怪的摄像头。但它们是如何工作的,它们如何能看到这个世界,与人类相比,它们到底看到了什么?如果我们想让AV上路,了解它们的工作原理是至关重要的,尤其是如果你在政府工作参与到制定法规,或作为被服务的对象。
我们通过Tesla AI DAY了解过特斯拉的车辆是如何工作的,但它们与传统的AV不同。特斯拉只使用摄像头来了解世界,而大多数其它公司,如Waymo,使用普通摄像头和3D LiDAR。这些LiDAR相当简单易懂,它们不会像普通摄像头那样产生图像,而是产生3D点云。LiDAR测量物体之间的距离,计算它们投射到物体上的脉冲激光的飞行时间。
这样一来,它们就会产生很少的数据点,这些数据点都是有价值的、准确的距离信息,正如你在这里看到的。这些数据点被称为点云,它只是意味着我们看到的只是在相应位置上的许多点,创造了某种世界的3D模型。
在这里,你可以看到右边的LiDAR并不是那么精确地了解它所看到的东西,但它只用了很少的信息便获得了解深信息,这对于有效地实时计算数据是完美的。
这种最小的数据量和高空间精度是完美的,因为加上RGB图像,如左图所示,我们既有准确的距离信息,又有单独使用LiDAR数据所缺乏的准确物体信息,特别是远处的物体或人。这就是为什么Waymo和其它AV公司使用这两种传感器。
尽管如此,我们如何才能有效地结合这些信息,并让车辆理解这些信息?而车辆最终看到的是什么?只有那些点吗?这对在道路上行驶来说足够了吗?我们将通过Waymo和Google Research的新研究论文来研究这个问题,该论文名为“4D-Net: Learning Multi-Modal Alignment for 3D and Image Inputs in Time”。
这篇论文总结到,“我们提出了4D-Net,它学会了如何结合3D点云和RGB摄像头图像,以便在自动驾驶中广泛地应用3D物体检测。”
这就是我们所说的3D物体检测。这也是汽车最终会看到的东西。这是一个非常准确的车辆周围世界的表现,所有物体都出现并被精确识别。
这看起来很酷。但更有趣的是,他们是如何得到这个结果的?
他们使用LiDAR数据(PCiT,Point Clouds in Time)和普通摄像头(或这里称为RGB视频)制作了这个视图。这些都是四维输入,就像我们人类看待和理解世界一样。这四个维度来自拍摄的视频,因此车辆可以访问过去的帧帮助理解上下文和对象,以猜测未来的行为,就像我们一样,创造了第四维度。其他三个是我们所熟悉的3D空间。
我们把这项任务称为场景理解,它在计算机视觉中得到了广泛的研究,并随着该领域和机器学习算法的最新进展而取得了许多进步。在AV中,它也是至关重要的,我们希望对场景有一个近乎完美的理解。
如果我们回到上面看到的网络,你可以看到这两个网络总是通过连接互相“交谈”。这主要是因为当我们拍摄图像时,在镜头中有不同距离和不同比例的物体。
你面前的车看起来会比远处的车大得多,但你仍然需要考虑这两方面。
就像我们一样,当我们看到远处的人,感觉是自己的朋友,但等走近了确定后才会喊他的名字,对于这种远处的物体,车辆会缺乏细节。
为了解决这个问题,我们将从网络的不同层次中提取和分享信息。在整个网络中共享信息是一个强大的解决方案,因为神经网络使用固定大小的小检测器来压缩图像,我们越深入到网络。
意味着早期的层将能够检测到小物体,且只能检测到大物体的边缘或部分。更深的层将失去小物体,但能够非常精确地检测大物体。
这种方法的主要挑战是通过这些连接将这两种不同类型的信息结合起来,LiDAR 3D空间数据和更常规的RGB帧。如前所述,在所有的网络步骤中使用这两种信息,是更好地理解整个场景的最好方法。
但我们如何才能将两个不同的信息流合并起来,并有效地利用时间维度?这两个分支之间的数据转换是网络在训练过程中以一种有监督的方式学习的,其过程与self-attention机制类似,试图重新创建世界的真实模型。但是为了促进这种数据转换,他们使用了一个叫做PointPillars的模型,它采用点云并给出一个二维的表示。
你可以把它看作是点云的伪图像,正如他们所说的那样,创造出某种程度上代表点云的常规图像,其属性与我们在其他分支中的RGB图像相同。像素不是RGB的颜色,而是简单地代表物体的深度和位置(x,y,z)坐标。这个伪图像也确实非常稀疏,这意味着这种表示的信息只在重要物体周围密集,而且很可能对模型有用。关于时间,我们只是在输入图像中设置了第四维来跟踪帧。
我们看到的这两个分支是卷积神经网络,它们对图像进行编码,然后对这些编码信息进行解码,重新创建我们在这里看到的3D表示。因此,这两个分支都使用了非常相似的编码器,彼此共享信息,并使用解码器重建世界的3D模型。
这就是Waymo车辆如何看世界的,通过我们在上图右边看到的这些世界的3D模型。它可以在164ms内处理32个点云和16个RGB帧,产生比其他方法更好的结果。这看起来可能没什么,所以我们可以把它与次好的方法进行比较,后者的精确度较低,需要300ms,处理时间几乎是两倍。
[参考文章]Combine Lidar and Cameras for 3D object detection - Waymo