0. 简介

在阅读了许多多传感器工作后,这里作者对多传感器融合的方法做出总结。本文将从单传感器讲起,并一步步去向多传感器方向总结。之前的《多传感器融合详解》博客从算法层面介绍了多传感器的分类以及数据传输的能力,而《多传感器融合感知 —传感器外参标定及在线标定学习》博客则是从标定层面向读者介绍了如何对多传感器进行先一步的标定处理。而这篇文章将从方法层面总括多传感器的分类以及作者对多传感器的理解与思考。
在这里插入图片描述

1. FOV视角

FOV作为一种最接近人类的视角,拥有悠久的历史,如今的2D\3D object detection皆从FOV视角做起。在深度学习方面,FOV相较于最近几年才流行的BEV方法来说,其拥有更快的相应速度(BEV大多数都是在使用Transformer)以及更多的数据集。但是,FOV的信息也有一些缺点:遮挡问题,尺度问题(不同的物体在不同深度下尺度不同)、难以与其他模态融合、融合损失高(Lidar Radar等适合于BEV视角)等。

1.1 FOV—-物体识别2D

这里不过多介绍,基本前几年主流的物体识别算法都是在FOV视角下完成的。其识别算法又主要分为one-stage, two-stage, anchor-based, anchor-free这几种。这里我们给出一个近几年anchor-free的开创性工作的文章FCOS。这个模型是第一个不基于anchor,但可以和基于anchor的单阶段或双阶段目标检测模型比较。FCOS重新定义目标检测,基于每个像素的检测;它使用多级预测来提高召回率并解决重叠边界框导致的歧义.它提出了“center-ness”分支,有助于抑制检测到的低质量边界框,并大幅提高整体性能.它避免了复杂的计算,例如并集交叉(IoU),FCOS 方法也用于 VFNet、YOLOX 和其他一些模型。
在这里插入图片描述

1.2 FOV—-物体识别3D

这里我们给出一个FCOS3D的方法。论文作者在FCOS基础上,对Reg分支进行部分修改,使其能够回归centerpoint的同时,加入其他指标:中心偏移、深度、3D bbox大小等,实现了将2D检测器用于3D检测器的跨越。除此之外,包括YOLO3D等工作,将传统的2D detector经过简单修改直接用于3D检测的方法。
在这里插入图片描述

1.3 FOV—-深度估计

由于深度学习的快速发展,最近几年也出现了深度估计的工作,其中比较有名的就是Pseudo-LiDAR。对于立体或单眼图像,首先预测深度图(从视差图到深度图),然后在激光雷达坐标系中将其向后投影到三维点云中。称为伪激光雷达,并像处理激光雷达一样处理它——任何基于激光雷达的检测算法都可以应用。
在这里插入图片描述
使用深度估计的工作解决方法主要分为三种方法:

  1. 训练专门的backbone编码深度信息,但是这种方法并不准确
  2. 将深度信息处理成pseudo-lidar作为点云信息
  3. 是通过BEV方式学习BEV特征到图像的映射,避免直接预测深度信息带来的误差损失。

文中作者做了一个实验,下图中左边一列是原始的深度图和其对应的pseudo-lidar。对原始深度图采用卷积操作后得到了右上角的深度图,然后将其生成pseudo-lidar(右下角)。可以看见,经过卷积后的深度图产生很大的深度变形。
在这里插入图片描述

1.4 FOV—-激光相机融合

PointPainting:图像辅助点云检测,并行。作者认为,FOV to BEV方法深度信息不准确会导致融合效果不佳,在FOV检测上纯点云检测的稀疏性导致了点云的误识别问题和分类效果不佳问题,为解决纯激光雷达点云存在的纹理信息缺少等问题,以PointPainting为首的融合方法将图像分割结果融入点云图像,丰富点云语义,提高了检测性能。

在这里插入图片描述
MV3D:lidar辅助图像,并行。文中作者认为,雷达点云主要存在以下问题:1)稀疏性(2)无序性(3)冗余性,这里使用点云和图像作为输入。点云的处理格式分为两种:第一种是构建俯视图(BV),构建方式是将点云栅格化,形成三维栅格,每一个栅格是该栅格内的雷达点最高的高度,每一层栅格作为一个channel,然后再加上反射率(intensity)和密度(density)的信息;第二种是构建前视图(FV),将雷达点云投影到柱坐标系内,也有文章叫做range view,然后栅格化,形成柱坐标系内的二维栅格,构建高度、反射率和密度的channel。

在这里插入图片描述
F-PointNet:图像辅助雷达,串行。文中在 RGB 图像上运行的 2D detector,产生的2D bbox用于界定3D视锥包含前景目标点云。然后基于这些视锥区域中的 3D 点云(centerfusion的灵感来源于此),使用PointNet++ 网络实现 3D实例分割并随后实现3D 边界框估计。
在这里插入图片描述

2. BEV视角

BEV是鸟瞰图(Bird’s Eye View)的简称,也被称为上帝视角,是‍‍一种用于描述感知世界的视角或坐标系(3D),BEV也用于代指在计算机视觉领域内的一种‍‍端到端的、由神经网络将‍‍视觉信息,从图像空间转换到BEV空间的技术。这里提供一个上海人工智能实验室2022年6月22日的直播分享—-《BEV感知:下一代自动驾驶感知算法新范式》

BEV特征具有以下优点:1. 能够支持多传感器融合,方便下游多任务共享feature。2. 不同物体在BEV视角下没有变形问题,能够使模型集中于解决分类问题。3. 能够融合多个视角解决遮挡问题和物体重叠问题。但是,BEV特征也有一些问题,例如grid的大小影响检测的细粒度,并且存在大量背景的存储冗余,因为BEV存储了全局的语义信息。
在这里插入图片描述

2.1 BEV一般使用在哪里

虽然理论上BEV可以应用在前、中、后融合过程中,不过因为前融合实现难度大,一般很少将BEV应用在前融合,偶尔也会用在后融合上,更多会应用在介于数据级融合和目标级融合之间的特征级融合,即中融合上。

所谓前融合,是指把各传感器的数据采集后,经过数据同步后,对这些原始数据进行融合。其优势是可以从整体上来处理信息,让数据更早做融合,从而让数据更有关联性。不过其挑战也很明显,因为视觉数据和激光雷达点云数据是异构数据,其坐标系不同,在进行融合时,只能在图像空间里把点云放进去,给图像提供深度信息,或者在点云坐标系里,通过给点云染色或做特征渲染,而让点云具有更丰富的语义信息。

所谓中融合,就是先将各个传感器通过神经网络模型提取中间层特征(即有效特征),再对多种传感器的有效主要特征进行融合,从而更有可能得到最佳推理。对有效特征在BEV空间进行融合,一来数据损失少,二来算力消耗也较少(相对于前融合),所以一般在BEV空间进行中融合比较多。

所谓后融合,是指各传感器针对目标物体单独进行深度学习模型推理,从而各自输出带有传感器自身属性的结果,并在决策层进行融合。其优势是不同的传感器都独立进行目标识别,解耦性好,且各传感器可以互为冗余备份。不过后融合也有缺点,当各自传感器经过目标识别再进行融合时,中间损失了很多有效信息,影响了感知精度,而且最终的融合算法,仍然是一种基于规则的方法,要根据先验知识来设定传感器的置信度,局限性很明显。

在这里插入图片描述
上图为毫末采用的是 BEV Transformer 来识别车道线,遍布车身的摄像头在得到车身周围的图像数据后,首先对 2D 图像用 Resnet + FPN 进行处理,之后进行 BEV Mapping,即鸟瞰视觉的映射,这部分会利用 Cross Attenion 来动态确定某一帧图像的内容在相机所属鸟瞰视觉空间中的位置。通过多个 Cross Attention,最终组成一个完整的 BEV空间。但是这时感知信息是没有「上下文联想」能力的,还需要在此基础上加入历史鸟瞰视觉这类与时间有关的特征,让系统具备前后关联的能力,进一步提升感知准确率。

2.2 BEV空间内中融合的优势

1)跨摄像头融合和多模融合更易实现

传统跨摄像头融合或者多模融合时,因数据空间不同,需要用很多后处理规则去关联不同传感器的感知结果,操作非常复杂。在BEV空间内做融合后,再做目标检测,算法实现更加简单,BEV空间内视觉感知到的物体大小和朝向也都能直接得到表达。

2)时序融合更易实现

在BEV空间时,可以很容易地融合时序信息,形成4D空间。

在4D空间内,感知网络可以更好地实现一些感知任务,如测速等,甚至可以直接输出运动预测(motion prediction)给到下游的决策和规控。

3)可“脑补”出被遮挡区域的目标

因为视觉的透视效应,2D图像很容易有遮挡,因而,传统的2D感知任务只能感知看得见的目标,对于遮挡完全无能为力,而在BEV空间内,可以基于先验知识,对被遮挡的区域进行预测,从而“脑补”出被遮挡区域可能存在物体。虽然“脑补”出的物体,有一定“想象”的成分,但这对于下游的规控模块仍有很多好处。

4)更方便端到端做优化

传统做感知任务时,依次做目标识别、追踪和运动预测,更像是个“串行系统”,上游的误差会传递到下游从而造成误差累积,而在BEV空间内,感知和运动预测在统一空间内完成,因而可以通过神经网络直接做端到端优化,“并行”出结果,这样既可以避免误差累积,也大大减少了人工逻辑的作用,让感知网络可以通过数据驱动的方式来自学习,从而更好地实现功能迭代。

在这里插入图片描述

2.3 BEV架构

基于深度学习的BEV架构基本大同小异,基本由以下五个部分组成。

  1. 先将摄像头数据输入到共享的骨干网络(Backbone),提取每个摄像头的数据特征(feature)。

  2. 把所有的摄像头数据(跨摄)进行融合,并转换到BEV空间。

  3. 在BEV空间内,进行跨模态融合,将像素级的视觉数据和激光雷达点云进行融合。

  4. 进行时序融合,形成4D时空维度的感知信息。

  5. 就是多任务输出,可以是静态语义地图、动态检测和运动预测等,给到下游规控模块使用。
    在这里插入图片描述

    2.4 BEV四维空间(时序)

    BEV空间内的目标检测更容易做到“不重不漏”。在BEV中如果单帧图像下被完全遮挡,因为加入了时序信息,即使在某几帧下被遮挡,只要不是一直被遮挡住,就可以在BEV空间‘脑补’出来。

虽然BEV在动态车辆、行人、车道线等更适合在BEV中进行检测,但不代表2D感知任务会完全被“弃用”,还是会与BEV空间内的检测任务结合进行使用。因为比如红绿灯检测,路标牌检测这些是BEV空间内做不了或者更合适在2D空间内做的感知任务。

在BEV空间做目标检测时,对于被遮挡区域,感知模型会根据先验知识,“脑补”出被遮挡部分的目标。这种“脑补”的功能,无疑是非常令人惊喜的。业内专家普遍认为,对于神经网络所“想象”出来的感知结果,应该和实际看到的感知结果做好区分,比如可以让感知结果输出时带一个“置信度”的标签,告诉下游这个结果到底是实际看到,还是“脑补”出来的。

因为对于下游而言,对不同置信度的结果的“可信赖度”是不同的,使用的时候也会做好甄别,比如对低置信度的感知结果使用时会做一些限制。

地平线的架构师刘景初在线上分享时提到,对于低置信度的感知结果,只能用一些比较粗糙的信息,比如车道线是不能用的,但是如果前面有个路口,能看到人行横道,那么大概率两边会有延伸出去的道路,这个感知结果就是可以用的。

毫末智行的潘兴也认为,复杂拓扑结构道路环境下,“脑补”出的车道线准确度很一般,“经常出错,比如会在小路口时“脑补”将车道线延长,或者将待转区的线“脑补”成了车道线”,对于这类识别结果,毫末的选择是不使用,甚至直接选择不输出这些“脑补”的车道线感知结果。

鉴智机器人的朱政认为,“脑补”出的结果,可以作为隐变量或者放在隐空间存储起来,交给模型自行判断使用,而不去加太多人为规则去约束。

在BEV空间内,进行时序融合后形成的4D空间,除了上述提到的可以实现对暂时被遮挡的物体有更好的跟踪效果外,还可以更方便地对运动物体进行测速和运动预测。

测速:在BEV空间内,因为能够直接获取到目标物体每帧下的具体位置信息,再加上前后帧的时间戳信息,就可以很容易求出目标物体的速度
在这里插入图片描述
运动预测:由于BEV有了4D时空信息,所以可以准确地知道接下来每个目标物的运动轨迹。直接从感知传递到运动预测,全部在BEV空间内完成,减少信息损失的同时,还可以端到端做优化,减少了人工逻辑,大大提升数据迭代的效率。

在这里插入图片描述

2.5 BEV视角—-纯视觉

BEVFormer:BEVFormer作为为数不多开源的BEV方案,作者通过初始化一个HWC的规则、显式BEV queries作为queries。同时,加入了上一时刻的时序信息,当前时刻的空间信息。两个主要创新点模块伪:TSA和SCA,也就是时间注意力和空间注意力。具体来说,每一个时刻对上一时刻的BEV queries做deformable式的局部注意力,同时每一个grid划分为多个高度,同一方格的多个高度的方格对不同图像做空间局部注意力,最后生成原BEV queries大小的BEV特征作为下一帧的输入,同时作为特征图用于下游任务为地图分割和目标检测。
在这里插入图片描述
纽劢提出的对多相机配置的BEV语义分割任务的BEVSegFormer架构,也用到了Transformer,并在nuScenes验证集的语义分割任务上取得了当前最优水平(SOTA)。这里作者之前已经写文章介绍过这种方法。
在这里插入图片描述

2.6 BEV视角—-相机雷达融合

这部分的工作比较多,比如说Transfusion、DCAN这些,这些都可以在nuScenes detection task以及WAYMO Open Dataset中找到。或者可以直接在Cver的GITHUB中查找
在这里插入图片描述
在这里插入图片描述
其中22年有两篇BEV-FUSION开源了,分别是MIT(韩松团队)和阿里巴巴达摩院开源的BEV算法。

《BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird’s-Eye View Representation》开源地址为:https://github.com/mit-han-lab/bevfusion。文中提出了统一BEV表征空间中的多模态特征,很好地保留了几何和语义信息。可无缝支持不同的3D感知任务。它统一了共享鸟瞰图(BEV)表示空间中的多模态特征,很好地保留了几何和语义信息。为了实现这一目标,我们通过优化的 BEV 池来诊断和提升视图转换中的关键效率瓶颈,将延迟减少 40 倍以上。 BEVFusion 基本上与任务无关,并且无缝支持不同的 3D 感知任务,几乎没有架构变化。这篇文章主要是从模型加速的角度出发

在这里插入图片描述

《BEVFusion: A Simple and Robust LiDAR-Camera Fusion Framework》开源地址为:https://github.com/ADLab-AutoDrive/BEVFusion。这篇文章从工业落地的角度出发,提出解决鲁棒性问题的方法。融合摄像头和激光雷达的方法,依赖于激光雷达传感器的点云,但是在这种假设条件下,当前的融合框架不可能在激光雷达出现故障时产生任何预测,无论是轻微故障还是重大故障。这从根本上限制了实际自动驾驶场景的部署能力。本文提出一个简单融合框架,也称为BEVFusion,包括两个传感器输入工作流,其中摄像头流不依赖于激光雷达数据的输入,从而解决了以前方法的缺点。
在这里插入图片描述

3. 参考链接

https://mp.weixin.qq.com/s/Zm26u6-0onLJKU_Nxa3Qng

https://mp.weixin.qq.com/s/VZIW9ohFxeYlm6xJ63MdmQ

https://blog.csdn.net/wuchaohuo724/article/details/115563293

https://k.sina.com.cn/article_1644027280_61fddd9000101g7xu.html?from=tech&subch=otech&sudaref=www.google.com.hk&display=0&retcode=0

https://zhuanlan.zhihu.com/p/417375291

https://zhuanlan.zhihu.com/p/523387955

https://zhuanlan.zhihu.com/p/521402618

https://zhuanlan.zhihu.com/p/522471007