作者 | Alan 编辑 | 汽车人
原文链接:https://zhuanlan.zhihu.com/p/430323552
点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
在自动驾驶汽车中,传感器融合是融合来自多个传感器数据的过程。该步骤在机器人技术中是强制性的,因为它提供了更高的可靠性、冗余性以及最终的安全性。
为了更好地理解,让我们考虑一个简单的例子,如激光雷达和相机都在看着行人 。
如果两个传感器中的一个没有检测到行人,我们将使用另一个传感器作为冗余来增加检测到行人的机会。
如果两个传感器都检测到了行人,传感器融合技术将使我们更准确地知道行人的位置……通过处理两个传感器的噪声值。
由于传感器是有噪声的,因此需要传感器融合算法来处理这些噪声,并尽可能进行最精确的估计。
在融合传感器时,我们实际上是在融合传感器数据,或者叫做数据融合。有9种方法可以构建数据融合算法。这9种方法又可以分为3大类。
本文将重点介绍传感器融合的3种分类和9种算法。
1按抽象级别进行传感器融合
最常见的融合类型是抽象级别的。在这种情况下,问题是“应该什么时候进行融合?”
文章激光雷达和摄像头的融合[1]中描述了早期(EARLY)和后期(LATE)融合两种过程。
在业界,还有其他称呼:低级(Low Level)、中级(Mid-Level)和高级(High-Level)传感器融合。
低级别融合:融合原始数据
低级别传感器融合是关于融合来自多个传感器的原始数据。例如,融合来自激光雷达的点云数据和来自摄像头的像素级数据。
✅ 这种类型的融合在未来几年具有很大的潜力,因为其考虑了所有数据。
❌早期融合(Low-Level)几年前还很难做到的,因为所需的处理量很大。每毫秒可以将数十万个点与数十万个像素融合在一起。
下面是一个摄像头和激光雷达低级别融合的示例。

中级别融合:融合检测数据
中级传感器融合是将传感器独立检测到的物体进行融合。
如果摄像头检测到障碍物,雷达也检测到它,我们把这些结果融合到一起形成对障碍物的位置、类别和速度的最佳估计。通常使用的方法是卡尔曼滤波器(贝叶斯算法)[2]。
✅这个过程很容易理解,并且包含了几个现有的实现。
❌ 它严重依赖于检测器。如果一个失败,整个融合都可能失败。卡尔曼滤波器来解决这个问题!
如果您想了解更多关于卡尔曼滤波器的信息,传送门[3]。
中级传感器融合示例:

在此示例中,我们将来自激光雷达的3D边界框与来自对象检测算法的2D边界框融合在一起。该过程有效;但也可以逆转。可以将3D激光雷达的结果映射到2D中,并在2D影像中进行数据融合。
高级别融合:融合轨迹
最后,高级传感器融合是关于融合对象及其轨迹。我们不仅依赖于检测,还依赖于预测和跟踪。
✅ 此过程高一级,其优点是简单。
❌ 一个主要问题是可能会丢失太多信息。如果追踪是错误的,那么整件事都是错误的。
雷达和摄像头之间按抽象级别的数据融合图:

2中心化级别的传感器融合
融合算法的第二类方法是按中心化级别来区分的。该场景下的问题是“融合在哪里发生?”。主计算机可以做,或者每个传感器可以做自己的检测和融合。一些方法是通过使用称为卫星架构的技术来做融合的。
我们来了解一下3种类型的融合:
中心化:一个中央单元处理融合(低级别)。
去中心化:每个传感器融合数据并将其转发到下一个。
分布式:每个传感器在本地处理数据并将其发送到下一个单元(后期融合)。我们以一辆经典的自动驾驶汽车为例。在这种情况下,每个传感器都有自己的计算机。所有这些计算机都连接到一个中央计算单元。
与此相反,Aptiv开发了一种卫星架构的架构。这个想法是:所有传感器都连接到一个中央单元上,该单元处理称为主动安全域控制器的智能。

在这个过程中,利用传感器的位置和传递的信息类型,可以帮助减轻车辆的总重量,并随着传感器的数量可以更好地扩展。
左图的情况如下:
传感器只是“卫星”:它们只是用来收集原始数据的。
主计算机中进行360°的融合:不必安装非常好的传感器,因为不会进行单个检测。
检测是在360°的全景图上完成的。
✅ 这有几个优点,请阅读[4]。
这是“中心化融合”的两个例子。当我们使用经典架构时,可能会遇到另外两种类型的融合。
雷达和摄像头之间按抽象级别的数据融合图:

3按竞争级别的传感器融合
对传感器融合算法进行分类的最后一种方法是按竞争级别。
在抽象级别,问题是“什么时候”融合应该发生。
在中心化级别,它是关于“在哪里”的。
在竞争级别,问题是“融合应该做什么?” 同样,有3种可能。
竞争融合
竞争融合是指传感器用于相同目的。例如,当同时使用雷达和激光雷达来检测行人时。这里发生的数据融合过程称为冗余,使用术语“竞争”。
互补融合
互补融合是指使用不同的传感器观察不同的场景来获取我们使用其他方式无法获得的东西。例如,使用多个摄像头构建全景图时。由于这些传感器相互补充,使用术语“互补”。
协同融合
最后,协同融合是关于使用两个或更多传感器来产生一个新场景,但是关于同一个对象的。例如,在使用2D传感器进行3D扫描[5]或3D重建时。
要学习如何实现这种类型的融合,可以学习立体视觉课程[6],该课程可以协调融合两个摄像头以产生3D结果。

希望这篇文章可以帮助您更好地了解如何使用传感器融合,以及如何区分不同的融合算法。
融合通常由贝叶斯算法完成,例如卡尔曼滤波器。我们可以融合数据来估计物体的速度、位置或类别。
译自:Learn Self-Driving Cars, Computer Vision, and cutting-edge Artificial Intelligence[7]
4参考
[1] https://medium.com/cometheartbeat
[2] https://www.thinkautonomous.ai/blog/sensor-fusion/
[3] https://courses.thinkautonomous.ai/kalman-filters
[4] https://www.aptiv.com/en/insights/article/satellite-architecture-basics
[5] https://www.youtube.com/watch?v=TiA4C7vRjZI
[6] https://courses.thinkautonomous.ai/stereo-vision
[7] https://www.thinkautonomous.ai/blog/9-types-of-sensor-fusion-algorithms/
【自动驾驶之心】全栈技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D感知、多传感器融合、SLAM、高精地图、规划控制、AI模型部署落地等方向;
加入我们:自动驾驶之心技术交流群汇总!
自动驾驶之心【知识星球】
想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D感知、多传感器融合、目标跟踪)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球(三天内无条件退款),日常分享论文+代码,这里汇聚行业和学术界大佬,前沿技术方向尽在掌握中,期待交流!