MMF-《Deep Continuous Fusion for Multi-Sensor 3D Object Detection》论文翻译

《Deep Continuous Fusion for Multi-Sensor 3D Object Detection》论文翻译

 这篇论文是CVPR2019年的论文,方法在KITTI数据集中的3D object detection上排名很高。创新点主要是第一次将图像特征投影到BEV图做回归,其次是解决了BEV和Image feature map融合的问题,但是代码还没有开源,有很多地方也没搞明白,欢迎讨论。现在主要讲一下方法。我去年就想优化AVOD可以从做点云特征和图像特征融合改进,可惜储备不够,力不从心。

3 多层传感器 3D 目标检测

 最近,几个工作[19,38,39,18,6,5]在BEV上的3D目标检测已经取得突破成果。这些检测器有效是因为BEV保持了像激光雷达这类3D传感器的固有结构。因此,卷积网络容易训练,而且有对象尺寸这样的强先验可以利用。由于大多数自动驾驶汽车都配备了激光雷达和摄像头,因此需要在这些模式之间进行传感器融合,以进一步提高性能。
 激光雷达和图像的信息融合很重要的,图像代表真实世界在相机的投影,激光雷达捕捉世界的原生3D结构。一种手段是一种可能是将激光雷达点投影到图像上,附加一个具有深度信息的额外通道,并利用传统的二维检测架构。这被证明在相机空间推理中是非常有效的。[32, 15, 9]不幸的是,第二部操作从2D输出中得到3D检测是非常必要的。
 相反地,在本文我使用相反的操作。我通过卷积网络提取图像特征,然后投影图像特征到BEV,与基于激光雷达的探测器卷积层融合。这种融合操作是非常重要的,因为图像特征发生在离散的位置上;因此需要用“内插”去生成稠密BEV feature map。为了实现这个操作,对于BEV空间的每一个点,我们利用连续卷积去从最近的对应图像特征提取信息。我们的完整架构包括两个流,一条是图像特征提取,另一条是激光雷达BEV特征提取。为了实现多尺度的多传感器融合,我们设计了continuous fusion layer,将两侧的多个中间层桥接起来。该体系结构允许我们根据我们的自主驾驶应用程序的需要在BEV空间生成最终检测结果。我们让读者参考图1,了解我们的架构。
MMF-《Deep Continuous Fusion for Multi-Sensor 3D Object Detection》论文翻译
图1.模型的整体结构。分为两个流程,命名为相机流和BEV激光雷达流。连续融合层被用于融合图片特征和BEV特征
 在本节的其余部分,我们首先回顾连续卷积,然后展示如何利用它们来融合来自激光雷达和图像的信息。在此基础上,我们提出了一种利用这种新的连续融合层的深部多传感器检测体系结构。

3.1连续融合层

 深度参数化连续卷积(Deep Parametric Continuous Convolution):深参数连续卷积[36]是一种在非网格结构数据上操作的可学习运算符。此运算符的动机是将标准的网格结构卷积扩展到非网格结构数据,同时保持高容量和低复杂性。这个方法的关键点是利用多层感知器作为连续卷积的参数化核函数。这个参数核函数跨越了整个连续域。此外,全部有限相邻点加权求和用于近似其他计算禁止连续层。根据每个相邻点相对于目标点的相对几何偏移量,对每个相邻点进行不同的加权。更具体一点,参数化连续卷积可以推导成以下操作:
hi=jMLP(xixj)]fjh_i=\sum_{j}MLP(x_{i}-x_{j})]\bullet f_{j}

j索引了点i的全部邻居,fj是输入特征,Xj是关联该点的连续坐标。MLP计算每个相邻点的卷积权重。优点是利用标准卷积的概念,从邻近的观测捕获局部信息,避免光栅化阶段的几何信息丢失。本文认为,连续卷积很适合我们的任务,因为摄像机视场和BEV都是通过一个三维点集连接起来的,以无损的方式建模它们之间的几何关系是融合信息的关键。
连续融合层(Continuous Fusion Layer):我们提出的连续融合层利用连续卷积来克服上述两个问题,即观测数据的稀疏性和摄像机图像空间离散特征的处理。给定输入是相机图像featrue map和一系列激光雷达点,连续融合层的目标是创建密集的BEV特征映射,其中每个离散像素包含相机图像特征。这样的密集特征很容易和激光雷达生成的BEV fearure融合。BEV-图像融合的一个难点就是不是所有的BEV离散像素都能在图像中可视。为了克服这个问题,每个稠密特征中的目标像素,我们在2D BEV平面上利用欧氏距离找到K个最近点。然后在目标像素,我们利用MLP从K个最近点融合信息去“内插”非可视特征。首先,我们通过投影原激光雷达点到图像平面去提取相应的图像特征。在连续坐标用双线插值来得到。然后,为了模拟每个激光雷达点对目标相对位置的影响,在源激光雷达点和稠密BEV特征中的目标像素生成3D相邻偏移。总的来说,对于每个目标像素给了我们K×(Di+3)-d(我不明白这个3和这个d是怎么来的)维MLP输入,Di是输入特征的维度。对于每个目标像素,MLP通过对所有相邻的MLP输出求和来输出一个Do维输出特性。就是说:
hi=jMLP(concat[fj,xixj])h_i=\sum_{j}MLP(concat[f_{j},x_{i}-x_{j}])

这里的fj是点j的输入图像特征,xj-xi是领近点j到目标i的3D偏移,concat是多重向量的串联。实际上,我们利用3层感知器,每层有Di个隐藏层。MLP的输出特征通过元素求和结合上一层的BEV特征来融合多传感器信息。整个运算图如图2。
MMF-《Deep Continuous Fusion for Multi-Sensor 3D Object Detection》论文翻译
图2:连续融合层:给定一个BEV图的目标像素,我们首先挑选K个最近邻的激光雷达点(第一步);然后投影这些3D点到图像平面(第二步第三步);这有助于检索相应的图像特征(第四步);最后我们将图像特征和连续几何偏移送入MLP然后生成目标像素。(第五步)
 与Continuous Convolution比较:与标准Parametric Continuous Convolution比较[36],提出的Continuous Fusion Layer利用MLP直接输出目标特征,而不是输出权重去求和特征。这使我们有更强的能力和更大的灵活性来聚合来自多个邻居的信息。另一个优势是内存效率。由于MLP直接输出特征而不是权重,因此我们的方法不需要在GPU内存中显式存储额外的权重矩阵。

3.2 多传感器目标检测网络

 多层传感器检测网络分为两条流:图像特征网络和BEV网络。我们运用四个continuous fusion layer从低层到高层去融合多层尺度的图像特征到BEV网络。整个结构如图1.在这章节我们将讨论更加细节的问题。

主干网络:我们选择轻量级ResNet18作为主干图像网络。在我们的应用域,实时预测是对于安全是非常重要的。BEV网络被定制为具有一组卷积层(第一组)和四组残差块。每组的卷积数分别为2、4、8、12和12。除第一组外,所有组均以步长2卷积开始,所有其他卷积均以步长1开始。每组特征维数分别为32、64、128、192、256。

融合层:采用四个连续融合层将多尺度图像特征融合到BEV网络的四个残差群中。每个连续融合层的输入是由四个图像残差组的输出组合而成的图像特征图。我们使用与特征金字塔网络(FPN)相同的组合方法[21]。BEV空间中的输出特征与相应的BEV层具有相同的形状,并通过元素求和组合成BEV。我们最后的BEV特征输出还以类似于FPN[21]的方式组合最后三个剩余组的输出,以便利用多尺度信息。

检测头:我们使用一个简单的检测头来实现实时效果。在最终的BEV层上计算1×1卷积层,以生成检测输出。在每个输出位置,我们使用两个固定尺寸和两个方向的锚,分别为0和π/2弧度。每个锚点的输出包括每个像素类的置信度及其关联框的中心位置、大小和方向。接下来是一个非最大抑制(NMS)层,根据输出映射生成最终的对象框。

训练:都是Faster RCNN的训练方式,不说了。

 当只需要BEV检测时,中心点高度和方向项将从回归损失中删除。正样本和负样本是根据到ground_true目标中心的距离来确定的。采用Hard negative ming对负样本进行采样。特别是,我们首先随机选择5%的负anchor,然后根据分类分数,仅使用其中的Top-K进行培训。我们使用ImageNet预先训练的权重初始化图像网络,并使用Xavier初始化来初始化BEV网络和连续融合层[14]。整个网络通过反向传播进行端到端的训练。注意,对图像流没有直接的监督,误差是沿着连续融合层到BEV特征空间传播。