自动驾驶汽车中的激光雷达和摄像头传感器融合传感器融合是自动驾驶汽车的关键技术之一。这是任何自动驾驶汽车工程师必备的技能。原因很简单:感知无处不在,无处不在。自动驾驶汽车通过4项关键技术工作:感知、定位、规划和控制。传感器融合是感知模块的一部分。我们希望融合来自视觉传感器的数据以增加冗余、确定性或利用多个传感器。传感器数据与融合在感知步骤中,通常结合使用激光雷达、雷达和摄像头来了解环境。这3个传感器各有利弊,使用它们将帮助您拥有所有这些传感器。如上图所示:相机擅长物体分类和场景理解。作为飞行时间传感器,激光雷达是估算距离的理想选择。雷达可以直接测量障碍物的速度。在本文中,我们将学习融合激光雷达和摄像头,利用摄像头的分辨率、理解背景和分类对象的能力,以及激光雷达技术来估计距离并以3D方式查看世界。摄像头:2d传感器摄像头是一种众所周知的传感器,可输出边界框、车道线位置、交通灯颜色、交通标志和许多其他内容。在任何自动驾驶汽车中,摄像头从来都不是问题。如何使用这个2D传感器并将其应用于具有LiDAR等3D传感器的3D世界?激光雷达:3d传感器激光雷达代表光检测和测距。它是一个输出一组点云的3D传感器;每个都有一个(X,Y,Z)坐标。许多应用程序都可以在3D数据上执行:包括运行机器学习模型和神经网络。下面是一个示例输出。如何将此3D传感器与2D传感器(如相机)一起使用?今天,我们介绍激光雷达和相机之间的融合数据。传感器融合算法有许多传感器融合算法。许多不同的方法是可能的。“我们想要什么类型的融合?”很关键。正如文章所属,有3种方法对融合算法进行分类:按抽象级别:“何时”进行融合?什么时候按集中程度:融合发生在“哪里”?比赛级别在哪里:融合“什么”?“什么”很明确:我们的目标是竞争和冗余。“在哪里”并不重要,有许多解决方案可用。剩下“何时”……在传感器融合中,有两种可能的过程:早期融合:融合原始数据——像素和点云。PostFusion:融合结果——来自激光雷达和相机的边界框。在本文中,我们将研究这两种方法。然后我们检查点云是否属于用相机检测到的2D边界框。这个3步过程如下所示:我们从早期融??合开始。早期传感器融合:融合原始数据早期融合是融合来自传感器的原始数据。因此,一旦插入传感器,这个过程就会很快发生。最简单和最常见的方法是将点云(3D)投影到2D图像上。然后检查点云和相机检测到的二维边界框的重合情况。此3步过程如下所示:此过程在本文中被归类为低级传感器融合。1.点云投影到2D第一个想法是将激光雷达框架中的3D点云转换为相机框架中的2D投影。为此,需要应用如下几何原理:(输入点云在激光雷达框架/欧几里德坐标中。)(1)将每个3D激光雷达点转换为齐次坐标。输出:激光雷达坐标系/齐次坐标(2)为该变换点应用投影方程(平移和旋转),将该点从激光雷达坐标系变换到相机坐标系。输出:相机框架/齐次坐标(3)最后,将点转换回欧氏坐标。输出:相机框架/欧氏坐标如果您不熟悉投影、旋转和齐次坐标,请学习立体视觉课程。这是步骤1的结果。2.2D对象检测接下来的部分是用相机检测对象。这部分就不过多描述了,像YOLOv4这样的算法都可以进行物体检测。有关它的更多信息,您可以阅读YOLOv4ResearchReview。3.ROI匹配的最后一部分称为感兴趣区域匹配。我们将简单地融合每个边界框内的数据。输出是什么?对于每个边界框,相机给出分类结果。对于每个激光雷达投影点,都有一个非常精确的距离。??因此,我们得到准确测量和分类的对象。可能会出现一个问题:我们选择哪个点作为距离呢?每个点的平均值?中位数?中心点?最近的?在使用2D障碍物检测时,会遇到以下问题。如果我们选择的点属于另一个边界框怎么办?还是属于幕后?这是一个棘手的过程。分割方法可能会更好,因为点与像素完全匹配。这是结果的样子,箭头显示融合可能失败的点。LateSensorFusion:FusionResultsLateFusion是独立检测后的结果融合。我们可以想到的一种方法是运行独立检测,得到两端的3D边界框,然后融合结果。另一种方法是运行独立检测,得到两端的2D边界框,然后融合结果。所以我们有两种可能性;2D或3D融合。这是一个2D示例:在本文中,我将介绍3D过程,因为它更难。相同的原则适用于2D。过程如下:1.3D障碍物检测(LiDAR)使用LiDAR在3D中寻找障碍物的过程是众所周知的。有两种方法:朴素方法,使用无监督3D机器学习。深度学习方法,使用RANDLA-NET等算法。这两种方法都在激光雷达课程中教授。2.3D障碍物检测(相机)这个过程要困难得多,尤其是在使用单目相机时。在3D中寻找障碍物需要我们准确地知道我们的投影值(内在和外在校准)并使用深度学习。如果我们想要获得正确的边界框,了解车辆的大小和方向也很重要。这篇文章是关于融合的,不介绍检测部分。文章可以查看。最后,注重匹配。这是来自论文3DIou-Net(2020).3的示例。IOU匹配空间中的IOU匹配是相同的。下面是论文3DIou-Net(2020)中的示例。使用这个想法,我们可以关联空间中的对象,从而关联不同的传感器。此过程在文章中被归类为中级传感器融合。中级传感器融合与高级传感器融合的区别在于,高级传感器的融合包括跟踪。要添加时间跟踪,我们需要一个称为时间关联的类似过程。时间IOU匹配在障碍物跟踪课程中,涵盖了使用卡尔曼滤波器和匈牙利算法在帧与帧之间暂时关联对象的技术。结果使我们能够在帧之间跟踪对象,甚至预测它们的下一个位置。如下:IOU匹配的原理是完全一样的:如果从第一帧到第二帧的boundingboxes有重叠,我们就认为这个障碍物是一样的。在这里,我们跟踪边界框位置并使用IOU(IntersectionOverUnion)作为度量。我们还可以使用深度卷积特征来确保边界框中的对象是相同的——我们将此过程称为SORT(简单在线实时跟踪),如果使用了卷积特征,则称为深度SORT。由于我们可以在空间和时间上跟踪物体,因此我们也可以在这种方法中使用完全相同的高级传感器融合算法。总结我们现在已经研究了激光雷达和相机融合的两种方法。让我们总结一下我们学到的东西:传感器融合过程是关于融合来自不同传感器的数据,在本例中是激光雷达和相机。可以有早期或晚期融合——早期融合(低级传感器融合)是关于融合原始数据。Latefusion是融合物体(中级传感器融合)或轨迹(高级传感器融合),而在做早期传感器融合时,需要将点云与像素或框相关联。在做post-sensorfusion的时候,我们要做结果之间的相关性(boundingboxes),所以有匈牙利算法,卡尔曼滤波等算法来解决。
