如果两个传感器中的一个没有检测到行人,我们将使用另一个传感器作为冗余来增加检测到行人的机会。
如果两个传感器都检测到了行人,传感器融合技术将使我们更准确地知道行人的位置……通过处理两个传感器的噪声值。
由于传感器是有噪声的,因此需要传感器融合算法来处理这些噪声,并尽可能进行最精确的估计。
本文将重点介绍传感器融合的3种分类和9种算法。
最常见的融合类型是抽象级别的。在这种情况下,问题是“应该什么时候进行融合?”
低级别传感器融合是关于融合来自多个传感器的原始数据。例如,融合来自激光雷达的点云数据和来自摄像头的像素级数据。
✅ 这种类型的融合在未来几年具有很大的潜力,因为其考虑了所有数据。
❌ 早期融合(Low-Level)几年前还很难做到的,因为所需的处理量很大。每毫秒可以将数十万个点与数十万个像素融合在一起。
下面是一个摄像头和激光雷达低级别融合的示例。
在此过程中使用了对象检测,但真正完成这项工作的是将3D点云投影到图像中,然后将其与像素关联起来。
中级传感器融合是将传感器独立检测到的物体进行融合。
如果摄像头检测到障碍物,雷达也检测到它,我们把这些结果融合到一起形成对障碍物的位置、类别和速度的最佳估计。通常使用的方法是卡尔曼滤波器(贝叶斯算法)。
✅ 这个过程很容易理解,并且包含了几个现有的实现。
❌ 它严重依赖于检测器。如果一个失败,整个融合都可能失败。卡尔曼滤波器来解决这个问题!
中级传感器融合示例:
在此示例中,我们将来自激光雷达的3D边界框与来自对象检测算法的2D边界框融合在一起。该过程有效;但也可以逆转。可以将3D激光雷达的结果映射到2D中,并在2D影像中进行数据融合。
高级别融合:融合轨迹
✅ 此过程高一级,其优点是简单。
❌ 一个主要问题是可能会丢失太多信息。如果追踪是错误的,那么整件事都是错误的。
雷达和摄像头之间按抽象级别的数据融合图:
融合算法的第二类方法是按中心化级别来区分的。该场景下的问题是“融合在哪里发生?”。主计算机可以做,或者每个传感器可以做自己的检测和融合。一些方法是通过使用称为卫星架构的技术来做融合的。
我们来了解一下3种类型的融合:
中心化:
一个中央单元处理融合(低级别)。
去中心化:
每个传感器融合数据并将其转发到下一个。
分布式:
每个传感器在本地处理数据并将其发送到下一个单元(后期融合)。
我们以一辆经典的自动驾驶汽车为例。在这种情况下,每个传感器都有自己的计算机。所有这些计算机都连接到一个中央计算单元。
与此相反,Aptiv开发了一种卫星架构的架构。这个想法是:所有传感器都连接到一个中央单元上,该单元处理称为主动安全域控制器的智能。
在这个过程中,利用传感器的位置和传递的信息类型,可以帮助减轻车辆的总重量,并随着传感器的数量可以更好地扩展。
左图的情况如下:
传感器只是“卫星”:
它们只是用来收集原始数据的。
主计算机中进行360°的融合:
不必安装非常好的传感器,因为不会进行单个检测。
检测是在360°的全景图上完成的。
✅ 这有几个优点,请阅读。
这是“中心化融合”的两个例子。当我们使用经典架构时,可能会遇到另外两种类型的融合。
雷达和摄像头之间按抽象级别的数据融合图:
对传感器融合算法进行分类的最后一种方法是按竞争级别。
在抽象级别,问题是“什么时候”融合应该发生。
在中心化级别,它是关于“在哪里”的。
在竞争级别,问题是“融合应该做什么?
同样,有3种可能。
互补融合是指使用不同的传感器观察不同的场景来获取我们使用其他方式无法获得的东西。例如,使用多个摄像头构建全景图时。由于这些传感器相互补充,使用术语“互补”。
希望这篇文章可以帮助您更好地了解如何使用传感器融合,以及如何区分不同的融合算法。
融合通常由贝叶斯算法完成,例如卡尔曼滤波器。我们可以融合数据来估计物体的速度、位置或类别。
译自:Learn Self-Driving Cars, Computer Vision, and cutting-edge Artificial Intelligence