GraphAlign:Enhancing Accurate Feature Alignment by Graph matching forMulti-Modal 3D Object Detection

摘要

        LiDAR和相机是用于自动驾驶中的3D物体检测的互补传感器。然而,点云与图像之间的非自然交互是一个具有挑战性的问题,关键在于如何进行异构模态的特征对齐。目前,许多方法仅通过投影标定实现特征对准,没有考虑传感器间坐标转换精度误差的问题,导致对准效果不理想。本文提出了一种基于图匹配的特征对齐策略GraphAlign。具体地,我们在图像分支中融合来自语义分割编码器的图像特征,并且在LiDAR分支中融合来自3D稀疏CNN的点云特征。为了节省计算量,我们通过计算划分为点云特征的子空间内的欧氏距离来构造最近邻关系。通过图像与点云之间的投影定标,将点云特征的最近邻投影到图像特征上。然后,通过将单个点云的最近邻与多幅图像进行匹配,寻找更合适的特征对齐方式。此外,我们提供一个自我注意模块,以增强重要关系的权重,以微调异质模态之间的特征对齐。在nuScenes基准测试平台上的大量对比实验表明了该方法的有效性. 

 1.引言

        3D物体检测是自动驾驶中至关重要的计算机视觉任务,它依赖于深度学习来准确地在3D空间[34,35,58,60,86]中识别和定位对象[8,36,43,50,52,65-67]。随着摄像机、激光雷达等传感器数据的广泛应用,三维目标检测研究取得了显著进展。然而,由于每种方式的固有局限性,挑战和困难依然存在。LiDAR点云虽然提供了精确的深度信息,但缺乏语义信息。相反,相机图像包含语义信息,但缺少深度信息[34,58]。因此,已经提出了多模态3D对象检测,以利用两种模态的互补优势来提高检测性能。尽管多模态三维目标检测具有潜在的应用前景,但如何有效融合不同模态特征的方法还没有得到充分的研究。在这项工作中,我们主要把目前训练多模态检测器的困难归结为两个方面。一方面,许多方法[4,5,11,15 - 17,22,27-29,32,37,39,49,54,55,61,63,64,70,72,78-81,84,85]依赖于建立点和图像像素之间的确定性对应关系来融合点云和图像,如图1(a)所示。然而,由于LiDAR和相机传感器之间的差异而导致的精度误差,例如定时同步误差,特别是长距离特征融合中的小物体的未对准,会导致检测性能的下降。另一方面,一些方法[1,6,7,24]采用基于注意力的解决方案来实现特征对齐而不是投影,如图1(B)所示。然而,在多模态3D目标检测中使用基于注意力的点云和图像特征对齐的关键问题是,它的计算量太大,并且不能满足实时检测的要求。在这项工作中,我们提出了GraphAlign,一种基于图匹配的特征对齐策略,以提高多模态3D对象检测的准确性,如图1(c)所示。GraphAlign包含两个关键模块:图特征对齐(GFA)和自注意特征对齐(SAFA)。GFA模块将点云空间划分为子空间,并为每个点云生成K个最近邻特征。该方法首先将点云的局部邻域信息通过投影校正矩阵转化为图像邻域信息,然后将单个点云特征与K个邻域图像特征进行一对多特征融合。SAFA模块采用自注意机制来提高融合特征中重要关系的权重,并从K个融合特征中选择最关键的特征。我们的工作的主要贡献可以总结如下:·我们提出了GraphAlign,一个基于图匹配的特征对齐框架,以解决多模态3D对象检测中的错位问题。·我们提出了图特征对齐(GFA)和自注意特征对齐(SAFA)模块,以实现图像特征和点云特征的精确对齐,这可以进一步增强点云和图像模态之间的特征对齐,从而提高检测精度。·使用KITTI [12]和nuScenes [2]基准进行实验,证明GraphAlign可以提高点云检测精度,特别是对于长距离目标检测。

图1.特征对准策略的比较:(a)基于投影的方法快速建立模态特征之间的关系,但可能由于传感器误差而遭受未对准。(b)基于注意力的算法通过学习对齐来保持语义信息,但计算代价较高。(c)我们提出的GraphAlign使用基于图的特征对齐来匹配模态之间更合理的对齐,同时减少了计算量并提高了准确性。

2.相关工作

2.1.单模态3D目标检测

        3D物体检测通常使用单一模态进行,例如相机或LiDAR传感器。基于相机的3D检测方法[18,20,23,25,30,33,48,73 -75]将图像作为空间中的输入和输出对象定位。一些方法使用具有单目相机的修改的2D对象检测框架来直接从图像回归3D框参数[18,20,33,48]。然而,单目相机不能提供深度信息,这导致了使用立体或多视图图像来生成用于3D对象检测的密集3D几何表示的其他方法[42,59]。虽然基于相机的3D物体检测已经取得了显着的进步,但其准确性不如使用LiDAR的3D检测方法。基于LiDAR的3D物体检测[9,19,46,68,69,71]使用PointNet [40]和PointNet++ [41]等方法直接处理不规则点云数据。其他方法使用体素[83]和支柱[19]将点云数据转换为规则网格,这便于使用3D或2D CNN处理进行特征提取[13,51,57,71]。尽管基于LiDAR的3D对象检测比基于图像的方法优越上级,但是由于点云的稀疏性质、缺乏纹理特征和语义信息,其具有局限性。

2.2.多模态3D目标检测

        为了解决每个模态的限制,各种方法联合收割机组合来自两个模态的数据以提高检测性能。PointPainting [54]建议使用相应相机图像的语义得分来增强每个LiDAR点。PI-RCNN [64]融合图像分支和原始LiDAR点云的语义特征,以实现更好的性能。Frustum PointNets [39]和Frustum-ConvNet [61]利用图像生成2D建议,然后将其提升到3D空间(frustum)以缩小点云中的搜索空间。Mvx-Net [49]方法将RoI池化图像特征向量附加到LiDAR点云中每个体素的密集特征向量。3D-CVF [79]和EPNet [15]通过学习的校准矩阵探索不同模态的特征图上的对齐策略。然而,这些方法使用投影矩阵来对齐两个异构特征,这会破坏图像语义信息,影响性能。其他方法提出了一种使用交叉注意机制的可学习对齐方法[1,6,7,24]。虽然该方法有效地保留了图像的语义信息,但注意力机制对图像特征的频繁查询增加了计算成本。

图2.GraphAlign的框架。它由图形特征对齐(GFA)模块和自注意特征对齐(SAFA)模块组成。GFA模块以图像和点云特征为输入,利用投影校正矩阵将三维位置转换为二维像素位置,构造局部邻域信息寻找最近邻,并将图像和点云特征进行融合。SAFA模块通过自注意机制对K个近邻之间的上下文关系进行建模,从而提高融合特征的重要性,最终选择最具代表性的特征。

3. GraphAlign

        本文提出了一种精确的特征对齐方法GraphAlign,它通过图匹配实现点云与图像的融合。我们采用了LiDAR专用探测器Voxel RCNN [9]和CenterPoint [77]作为基线。图2显示了我们的GraphAlign的网络结构,它包括两个模块:图特征对齐(GFA)模块和自注意特征对齐(SAFA)模块。GraphAlign的详细信息如下所示。

3.1. Graph Feature Alignment(图特征对齐)

        以前的工作点云和图像特征对齐使用投影和注意力机制,但这些解决方案有潜在的问题。投射受到传感器误差的限制,而注意力机制需要大量的计算。为了解决这些问题,我们提出了图特征对齐(GFA)模块,它通过图构造邻域,以实现更准确和高效的特征对齐。GFA模块包括点云和图像管道,其中深度特征的融合发生在3D稀疏CNN过程之前。体素编码器用于获得体素化后的点云特征。我们使用语义分割器DeepLabv3 [3]的深度特征,而不是包含更丰富的外观线索和更大的感知场的分割分数,使其与点云融合更具互补性。在投影阶段,我们将点云视为多模态聚合点,因为点云具有比图像更适合3D检测的深度特征。然后,我们将3D点云投影到图像平面上,如下所示:

        其中,Px、Py、Pz表示LiDAR点的3D位置,u、v、zc表示其在图像平面上的投影的2D位置和深度,K表示相机固有参数,R和T表示LiDAR相对于相机参考系统的旋转和平移,并且h表示由于下采样而导致的比例因子。

        在特征提取后,得到点云深度特征,定义为,其中N,C分别为点云个数和全局特征图的通道数。点云的三维坐标定义为,其中3为点云的坐标,表示(x,y,z)。为了消除在3D到2D投影之前由于点云数据增强而导致的特征未对准的影响,通过逆操作将点云转换为其原始坐标,例如去除上下翻转。CP将图像变换为像素坐标,定义为,其中2是图像像素的坐标,表示(x,y),在投影校准矩阵等式(1)之后。然而,由于点云被投影到图像上,因此存在小范围的图像坐标和大范围的点云坐标。投影后必须去除超出范围的图像像素的坐标,校正规则为,且N′ ≤ N。因此,我们获得滤波后的新像素坐标,定义为

        为了获得点云的邻域信息,定义为,其中N和K分别是点云的数量和点云邻居的数量,我们在算法(1)中执行数据流,并通过输入CP和一些超参数来获得KP。此外,为了节省这段时间的计算成本,我们设计了子空间来加速计算,在子空间而不是整个空间中搜索最近的邻居。

图3.GFA流程图。(a)传感器精度误差导致未对准。(b)GFA通过点云要素中的图建立相邻关系。(c)我们将点云特征投影到图像特征上,并获得图像特征的K个最近邻。(d)我们执行一对多的融合,具体地说,通过融合每个单独的点云特征与K个相邻图像特征,以实现更好的对准。

        基于上述原因,我们选择将点云邻域索引到图像。图像分割编码器输出图像深度特征,定义为索引,得到与点云坐标一致的新的图像深度特征。然后,用对图像深度特征进行索引,得到具有邻域的图像深度特征,定义为,其中N、K、C分别为点云个数、图像近邻个数和点云特征图的通道。我们将点云深度特征FP复制K次,定义为。代替融合点云邻居和图像邻居,我们直接执行K个复制点云和K个图像邻居融合,原因如下。我们不融合点云邻域和图像邻域,而是直接将点云和图像邻域的K次复制进行融合,以找到最合适的点和像素之间的融合关系,如图3所示。最后,我们得到了点云和具有邻域关系的图像的融合特征,如下所示:

        其中,为融合特征。N、K和C分别是点云的数量、图像邻居的数量和点云特征图的通道。

图4.SAFA模块流。在此简化了head和max模块,而SAFA模块旨在通过改进K个邻域之间的全局上下文信息来增强融合特征的表达。

3.2. Self-Attention Feature Alignment(自注意力特征对齐)

        在如上所述的GFA模块中获得融合特征之后,发现这些特征与它们的K个邻居之间的聚合关系被低估。为了克服这一限制,我们引入了SAFA模块作为GFA模块的补充组件。它采用自我注意机制来放大重要融合特征的重要性,如图4所示。目前,一些方法[1,6,7,24]采用交叉注意力来学习点云和图像异构模态的特征对齐。但计算量很大:给定点数N和图像特征尺寸W×H,计算复杂度为O(NWHC)。我们的SAFA模块是在GFA模块的基础上,通过对进行多头自注意操作来实现进一步的重要融合特征权重分配,其计算复杂度为,其中N是点云的数量,K作为超参数大多为36,w和h是图像的宽度和高度,在KITTI [12]数据集中分别为1272和375像素,C为特征尺寸,一般为16。通过这种方式,基于交叉注意机制的方法的计算复杂度比我们的SAFA模块高400倍。

        具体来说,GFA模块输出融合特征,通过对融合特征进行多头自注意操作,找到更适合的邻域融合特征,提高检测性能。与算法(2)一样,我们为SAFA模块提供了非常详细的过程流程图,我们以节省计算的方式执行该过程,并最终输出一种新的融合特征,定义为,其中,N,K和C分别是点云的数量,图像邻居的数量和点云特征图的通道。

        SAFA模块旨在通过更好地学习K个邻域之间的上下文全局信息来增强融合特征的表示。最后,我们选择最大化操作,以弥补更重要的特征,以获得新的融合特征,定义为,如下所示:

        其中,N、C分别为点云特征图的点云数量、通道数。

3.3. LiDAR Detection(激光雷达检测)

        通常,图像用作点云的辅助特征。点云与图像融合后,FmPI被送入后续的LiDAR管道进行进一步检测。我们的融合过程在LiDAR管道的3D主干期间完成,如图2所示。随后,我们将3D特征转换为BEV特征,并最终使用检测头进行预测。此外,可以使用投影矩阵将点云的预测3D框转换为图像的2D框。

4.实验

        在本节中,我们将介绍每个数据集的详细信息和GraphAlign的实验设置,并评估KITTI [12]和nuScenes [2]数据集上3D对象检测的性能。

4.1数据集和评价指标

4.1.1.KITTI数据集

        KITTI数据集[12]提供了同步的LiDAR点云和前视图相机图像,由7,481个训练样本和7,518个测试样本组成。目标检测的标准评估指标是平均精度(mAP),使用40个位置的召回率(R40)计算。在这项工作中,我们使用平均精度(AP)和交并比(IoU)阈值0.7来评估我们在最常用汽车类别上的模型。为了将我们的结果与KITTI 3D检测基准上的其他最先进的方法进行比较,我们将KITTI训练数据集分成4:1的比例进行训练和验证,并报告我们在KITTI测试数据集上的性能。

4.1.1.nuScenes数据集

        nuScenes数据集[2]是一个大规模的3D检测基准,包括700个训练场景,150个验证场景和150个测试场景。这些数据是使用六个多视角相机和一个32通道LiDAR传感器收集的,数据集包括10个对象类的360度对象注释。为了评估检测性能,使用的主要指标是平均精度(mAP)和nuScenes检测分数(NDS),它们在分类,边界框位置,大小,方向,属性和速度方面评估方法的检测准确性。

4.2.实施细节

4.2.1.网络结构

        由于KITTI [12]和nuScenes [2]是具有不同评估指标和特征的不同数据集,因此我们在以下部分中详细描述了每个数据集的GraphAlign设置。

GraphAlign with Voxel RCNN [9]:我们使用Voxel RCNN作为基线,在KITTI[12]数据集上验证GraphAlign。输入体素大小设置为(0.05 m,0.05 m,0.1 m),汽车的锚大小设置为[3.9,1.6,1.56],锚旋转设置为[0,1.57]。我们采用与Focal Loss相同的数据增强解决方案[5]。

GraphAlign with CenterPoint [77]:我们使用CenterPoint [77]作为基线在nuScenes [2]数据集上验证我们的GraphAlign。X轴和Y轴的检测范围设置为[-54m,54m],Z轴的检测范围设置为[-5m,3m]。输入体素大小设置为(0.075m,0.075m,0.2m),每个体素中包含的点云的最大数量设置为10。

4.2.2.训练和测试细节

        我们的GraphAlign是使用Adam优化器从头开始精心训练的,并集成了一个独立的语义分割器,即DeepLabv3 [3]。为了实现KITTI [12]和nuScenes [2]的有效培训,我们使用8个NVIDIA RTX A6000 GPU进行网络培训。具体来说,对于KITTI,我们基于Voxel RCNN [9]的GraphAlign模型需要大约2小时的训练时间,可训练80个epoch。而对于nuScenes,我们基于CenterPoint的GraphAlign模型[77]需要大约20小时的训练时间,训练20个epochs。在模型推理阶段,我们在RPN中采用非最大抑制(NMS)操作,IoU阈值为0.7,并选择前100个区域建议作为检测头的输入。在细化之后,我们再次应用NMS,IoU阈值为0.1,以消除冗余预测。关于我们的方法的更多详细信息,请参见OpenPCDet [53]。

4.3.与SOTA方法进行比较

4.3.1.在KITTI数据集上的表现

        如表1所示,我们将GraphAlign与KITTI测试数据集上3D和BEV AP中的最新方法进行了比较。我们观察到我们的GraphAlign实现了SOTA性能。具体而言,它在3D和BEV检测的三个难度水平上表现出非常突出的性能,分别为(90.96%,83.49%,80.14%,93.91%,91.79%,88.05%)。为了更好地比较,我们将Voxel RCNN [9]复制为强基线网络。值得注意的是,我们的复制与[9]中报道的结果几乎相同。我们的GraphAlign比基线Voxel RCNN实现了更好的性能,在三个级别上提高了(0.06%,1.80%,2.72%,1.02%,1.82%,3.36%)。与多模态方法Focals Conv [5]相比,我们的GraphAlign比Focals Conv实现了更好的性能,改进了(0.41%,1.21%,2.72%)。我们的GraphAlign在KITTI [12]测试数据集的中等和硬水平上表现良好,这些水平具有更多的长程对象。此外,我们还提供了KITTI验证数据集的结果,以更好地展示我们的GraphAlign的检测性能,如表2所示。与基线Voxel RCNN相比,KITTI [12]验证数据集的中等和硬水平有显着改善。即使点云和图像之间的轻微不对准也可能导致检测中的重大错误。GraphAlign能够使用图在异构模态之间建立关系,这是其成功的关键因素。

表1.在KITTI服务器上评估了40个采样召回点的平均精度,并在KITTI测试集上与最先进的汽车3D检测方法进行了性能比较。“L”和“C”分别表示LiDAR和相机。

表2.在KITTI汽车等级验证数据集上与最先进方法的性能比较。结果由具有0.7 IoU阈值和40个回忆点的mAP报告。“L”和“C”分别表示LiDAR和相机。

4.3.2.在nuScenes数据集上的表现

        我们还使用最先进的3D探测器CenterPoint在更大的nuScenes[2]数据集上进行了实验,以进一步验证我们的GraphAlign的有效性。如表3所示,GraphAlign在nuScenes测试数据集上实现了66.5 mAP和70.6 NDS,比强大的CenterPoint高8.5 mAP和5.1 NDS [77]。此外,我们用红色标记了这些类别,“CV,”"摩托车,"自行车," TC.,"这表明性能显著提高,“电机”和“自行车”分别增长了18.8%和20.3%。我们的GraphAlign在小物体检测方面表现出出色的性能,特别是对于这四个类别,这些类别的特点是在长距离处小物体的比例较高,并且具有更准确的特征对齐。

表3.在nuScenes测试集上与SOTA方法进行比较。'C.V.':'小儿'、和'TC'分别是建筑车辆、行人和交通锥简称。

4.4.消融实验

4.4.1仅投影、GFA和SAFA模块以及基于注意力的影响

本节讨论了在基线探测器Voxel RCNN和CenterPoint上进行的消融实验的结果,以评估GraphAlign中每个模块的性能。KITTI和nuScenes 1/4验证数据集的结果分别见表4和表5。如表4所示,KITTI的中度和重度AP评分最初分别为85.29%和82.86%。将仅投影模块添加到图像分支仅略微提高mAP分数0.30%和0.21%。性能不佳是由于传感器精度误差造成的固有未对准。然而,与仅投影相比,GFA和SAFA模块的引入使得KITTI中、硬水平的AP持续提高,分别提高了1.03%和0.39%(中)和1.14%和0.47%(硬)。这种显着的性能改进归功于我们的GraphAlign方法对长距离对象的精确对齐。如表5所示,基于注意力的特征对齐策略AutoAlignV2 [6]与GraphAlign相比,检测精度略有提高,其运行时间长五倍,无法满足实时要求。这是因为点云和图像之间通过Attention机制进行全局对齐学习,而我们的GraphAlign基于投影学习局部关系,类似于锚机制,可以根据先验知识进行更快的学习。尽管我们的GraphAlign中添加了带有注意机制的SAFA模块,但它专注于学习邻居的重要局部特征,而不是使用全局图像特征进行计算。

表4.GraphAlign中每个组件的效果。使用体素RCNN在KITTI确认集上报告结果。“P”表示投影。

表4.GraphAlign中每个组件的效果。使用体素RCNN在KITTI确认集上报告结果。“P”表示投影。

4.4.2超参数的影响

        在本节中,我们分析了我们的模型关于各种超参数的实验结果,包括KITTI验证数据集和1/4 nuScenes上的汽车类的K(点云邻居的数量)、(子空间中的点云的数量)和H(注意头的数量)。表6表明,当K设置为16时,基于体素RCNN的GraphAlign实现了最佳性能,而对于基于CenterPoint的GraphAlign,最佳值为25。尽管在K分别设置为25和36的简单和中等水平上性能略有改善,但计算时间相应增加了11。

        此外,表7表明,运行时受到NPsub的显著影响。我们发现,当设置为1000时,可获得最佳性能。尽管将设置为3000会略微提高KITTI数据集的准确性,但AP的增加是有限的,运行时间增加了38%。因此,我们选择1000作为的最佳值。细分子空间被证明是节省时间的关键,将设置为500并不能提高性能。

        另外,如图8所示,随着H的增加,AP逐渐改善,但是对运行时间的影响更显著,增加了大约10%。通常,H = 1是优选的,但是可以使用更大的值来实现更高的AP。

表6.点云邻域数K的影响。

表7.子空间中点云数目的影响。

表8.注意头数H的影响。

表9.在不同距离上的性能。结果表明,在中等水平上,以40个召回位置计算出的3D AP对汽车类别进行评价。

4.4.3距离分析

        为了更好地了解GraphAlign在长距离下的出色性能,我们在表9中给出了不同距离范围的性能指标。具体来说,只有投影的情况下有显著下降,特别是在40 m-inf范围内,那里有许多小物体。这主要是由于来自不同模态的小对象未对准。通过增加GFA和SAFA模块,在40 m-inf范围内,3D AP分别增加了7.56%和1.18%,而BEV AP分别增加了5.20%和1.43%。这些结果表明,我们的GraphAlign的有效的特征对齐策略是有助于长距离小目标检测。

5.结论

        在这项工作中,我们提出了GraphAlign,一个更准确,更有效的特征对齐策略,通过图匹配的3D对象检测。具体而言,图特征对齐(GFA)模块基于投影矩阵的先验知识构造邻域融合特征,避免了传感器精度误差。此外,还设计了自注意特征对齐(SAFA)模块来增强重要关系的权重。综合实验结果表明,在KITTI和nuScenes数据集上,GraphAlign显著提高了三维检测器的性能。在现有的基于投影和基于注意的特征匹配策略的基础上,本文的研究为自动驾驶多模态特征融合提供了一个新的视角。

        局限性和今后的工作。我们的一个局限性是GraphAlign依赖于独立的语义分段,而不是端到端的学习。因此,在未来的工作中,我们的目标是研究在多模态融合中使用端到端学习进行图匹配。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值