CVPR2023 | 用于多模态3D目标检测的虚拟稀疏卷积(KITTI SOTA)

点击下方卡片,关注“自动驾驶之心”公众号

ADAS巨卷干货,即可获取

点击进入→自动驾驶之心【3D目标检测】技术交流群

后台回复【3D检测综述】获取最新基于点云/BEV/图像的3D检测综述!

最近,通过深度补全将RGB图像和激光雷达数据无缝融合的基于虚拟/pseudo点的3D目标检测受到了极大的关注。然而,从图像生成的虚拟点非常密集,在检测过程中引入了大量的冗余计算,与此同时,深度补全不准确带来的噪声显著降低了检测精度。本文提出了一种快速有效的主干,称为VirConvNet,基于新的算子VirConv(虚拟稀疏卷积),用于基于虚拟点的3D目标检测。VirConv由两个关键设计组成:StVD(随机体素drop)和NRConv(抗噪子流形卷积)。StVD通过丢弃大量附近的冗余体素来缓解计算问题,NRConv通过在2D图像和3D激光雷达空间中编码体素特征来解决噪声问题。通过集成VirConv,作者首先在早期融合设计的基础上开发了一种高效的pipeline VirConv-L,然后基于变换的细化方案构建了一个高精度 pipeline VirConv-T。最后,本文开发了一个基于伪标签框架的半监督pipeline VirConv-S。在KITTI机动车3D检测测试排行榜上,VirConv-L以56ms的运行速度实现了85%的AP,VirConv-T和VirConv-S获得了86.3%和87.2%的高精度AP,目前分别排名第二和第一。

代码:https://github.com/hailanyi/VirConv!

论文思路分析

3D目标检测在自动驾驶中起着至关重要的作用,激光雷达传感器以点云的形式测量场景的深度,并能够在各种照明环境中可靠地定位目标。尽管近年来基于激光雷达的3D目标检测取得了快速进展,但其在远距离物体上的性能显著下降,因为这些物体在扫描中不可避免地具有稀疏的采样密度。与激光雷达扫描不同,彩色图像传感器提供高分辨率采样和丰富的场景上下文数据。RGB图像和激光雷达数据可以相互补充,通常可以提高3D检测性能。早期的方法用图像特征扩展了激光雷达点的特征,如语义mask和2D CNN特征,他们没有增加点数,因此远处的点仍然是稀疏的。相反,基于虚拟/pseudo点的方法(为了简单起见,在下文中都表示为虚拟点)通过在激光雷达点周围创建额外的点来丰富稀疏点。例如,MVP通过从最近的3D点补全2D实例点的深度来创建虚拟点,SFD基于深度补全网络创建虚拟点!虚拟点补全了远处目标的几何状态,显示了高性能3D检测的巨大潜力。

874472ffb6c96148415af95b535923b5.png

然而,从图像生成的虚拟点通常是非常密集的。以KITTI数据集为例,1242×375的图像生成466k个虚拟点(比激光雷达扫描点多约27倍)。这带来了巨大的计算负担,并导致了严重的效率问题(见图2(f))。先前的工作通过使用更大的体素尺寸或通过对点随机下采样来解决密度问题。然而,将这种方法应用于虚拟点将不可避免地牺牲来自远处点的有用形状线索,并导致检测精度下降。另一个问题是深度补全可能不准确,并且它在虚拟点中带来了大量噪声(见图第2(c))。由于在3D空间中很难区分噪声和背景,因此3D检测的定位精度大大降低,此外,噪声点是非高斯分布的,无法通过传统的去噪算法进行滤波。尽管最近的语义分割网络显示出了有希望的结果,但它们通常需要额外的标注信息。

d33df2cc4928478f7e0a31315a4e4045.png

为了解决这些问题,本文提出了一种基于新的虚拟稀疏卷积(VirConv)算子的VirConvNet pipeline。主要设计基于两个思路:(1) 首先,在激光雷达中,附近物体的几何形状通常相对完整,因此,附近物体的大多数虚拟点只带来边际性能增益(见图2(e)(f)),但显著增加了计算成本;(2) 其次,由不准确的深度补全引入的噪声点大多分布在实例边界上(见图2(d)),它们可以在被投影到图像平面上之后在2D图像中被识别。基于这两个观察结果,作者设计了一种StVD(随机体素丢弃)方案,通过基于bin的采样来保留那些最重要的虚拟点,即丢弃大量附近的体素,同时保留远处的体素,这可以大大加快网络计算的速度。论文还设计了一个NRConv(抗噪子流形卷积)层来编码三维空间和二维图像空间中体素的几何特征。2D空间中扩展的感受野允许NRConv区分2D图像空间中实例边界上的噪声模式,因此,可以抑制噪声的负面影响。

作者开发了三种多模态检测器来证明VirConv的优越性:(1)由Voxel RCNN构建的轻量级VirConv-L;(2) 基于多级和多重变换设计的高精度VirConv-T;(3) 基于伪标签框架的半监督VirConvS。在KITTI数据集和nuScenes数据集上进行的大量实验验证了本文设计的有效性,贡献如下:

  1. 论文提出了一种VirConv算子,该算子通过StVD和NRConv对虚拟点的体素特征进行有效编码,StVD丢弃了大量冗余体素,显著加快了3D检测速度。NRConv将3D稀疏卷积的感受野扩展到2D图像空间,并显著降低了噪声点的影响;

  2. 在VirConv的基础上,提出了三种新的多模态检测器:VirConv-L、VirConv-T和半监督VirConv-S,用于高效、高精度,以及半监督3D检测;

  3. 大量实验证明了设计的有效性(见图1),在KITTI排行榜上,VirConv-T和VirConv-S目前分别排名第二和第一;

领域背景分析

基于激光雷达的3D目标检测。近年来,基于激光雷达的3D目标检测得到了广泛的研究,早期的方法将点云投影到2D鸟瞰图(BEV)或距离图图像中,用于3D检测。最近,基于体素的稀疏卷积和基于点的方式很受欢迎。然而,对于远处的物体,激光雷达的扫描分辨率通常很低。仅激光雷达的探检测器通常会受到这种稀疏性的影响,本文通过以虚拟点的形式引入RGB图像数据来解决这个问题!

多模态3D目标检测。RGB图像和激光雷达数据可以相互补充,通常可以提高3D检测性能,早期的方法利用图像特征扩展了激光雷达点的特征。一些工作对两种模态的特征进行独立编码,并在局部感兴趣区域(RoI)或BEV平面中融合这两种特征。本文循最近通过虚拟点融合两个数据的工作[36,45],虚拟点通过深度估计明确地补全了远处物体的几何结构,显示出高性能3D检测的巨大潜力。但是,虚拟点非常密集,而且经常有噪音,本文分别通过StVD和NRConv两种新方案来解决这些问题!

使用重新采样的点云进行3D目标检测。激光雷达捕捉到的点通常密集且分布不均匀,先前的工作通过使用更大的体素大小或通过随机下采样点云来加速网络。然而,将这些方法应用于虚拟点将显著减少有用的几何信息,尤其是对于遥远的目标。与此不同的是,本文的StVD保留了所有有用的远距离体素,并通过丢弃附近的冗余体素来加快网络速度!

3D视觉中的噪声处理。传统方法通过滤波算法来处理噪声,最近,基于分数和语义分割网络被开发用于点云噪声去除。与传统的在三维空间中随机分布的噪声不同,深度补全不准确带来的噪声大多分布在二维实例边界上。尽管可以通过一些2D边缘检测方法[14]粗略地去除噪声,但这将牺牲目标的有用边界点。作者设计了一种新的方案NRConv,将3D稀疏卷积的感受野扩展到2D图像空间,在不损失有用边界点的情况下区分噪声模式!

半监督3D目标检测。最近的半监督方法通过大量未标记的数据来增强3D目标检测,受基于伪标签的框架[33,37,47]的启发,本文还构建了一个VirConv-S pipeline来执行半监督多模态3D目标检测。

网络结构分析

本文提出了一种基于新的VirConv算子的VirConvNet,用于基于虚拟点的多模态3D目标检测,如图3所示,VirConvNet首先将点转换为体素,并通过一系列具有1×、2×、4×和8×下采样步长的VirConv块将体素逐渐编码为特征volumes 。VirConv区块由三部分组成(见图3(a)):(1) StVD层,用于加速网络并提高密度鲁棒性;(2) 多个NRConv层,用于对特征进行编码并减少噪声的影响;(3) 3D SpConv层,用于对所述特征图进行下采样。基于VirConv算子,构建了三个检测器,分别用于高效、准确和半监督的多模态3D检测!

dfc509e5a0252effc5cfa72cb5d3de56.png

用于数据融合的虚拟点

许多最近的3D检测器使用通过深度补全算法从图像生成的虚拟点来融合RGB和LiDAR数据。作者将激光雷达点和虚拟点分别表示为P和V,最近,两种流行的融合方案已被应用于3D目标检测:(1)早期融合[45],它将P和V融合成一个单点云P*,并使用现有的检测器执行3D目标检测;(2)late融合[36],它通过不同的backbone网络对P和V的特征进行编码,并在BEV平面或局部RoI中融合这两种类型的特征。然而,这两种融合方法都存在虚拟点的密集性和噪声性!

(1) 密度问题:如第1节所述,虚拟点通常非常密集,它们引入了巨大的计算负担,这显著降低了检测速度(例如,图中超过2倍)。现有工作通过使用更大的体素尺寸或通过对点随机下采样来解决密度问题。但这些方法将不可避免地牺牲来自虚拟点的形状线索,尤其是对于遥远的目标,基于在KITTI数据集上使用具有后期融合的Voxel RCNN进行的试点实验,观察到为附近目标引入的大量虚拟点是多余的。详细展开,来自附近目标的97%的虚拟点仅带来0.18%的性能改进,而来自远处目标的3%的虚拟点带来2.2%的性能改进。原因是对于激光雷达点来说,附近目标的几何形状相对完整。这样的虚拟点通常带来边际性能增益,但增加了不必要的计算。受这一观察结果的启发,作者设计了一种StVD(随机体素丢弃)方案,该方案通过丢弃附近的冗余体素来缓解计算问题。此外,远处物体的点比附近目标的点稀疏得多(见图2(e)),StVD可以模拟稀疏的训练样本,以提高检测的鲁棒性。

(2) 噪声问题:由深度补全网络生成的虚拟点通常是有噪声的,一个例子如图2(c)所示。噪声主要是由不准确的深度补全引入的,并且在3D空间中很难区分。通过仅使用虚拟点,与仅使用激光雷达的检测器相比,检测性能下降了~9%AP(见图2(f))。此外,噪声点是非高斯分布的,无法通过传统的去噪算法进行滤波[8,12]。本文观察到,噪声主要分布在实例边界上(见图2(d)),并且可以在2D图像中更容易地识别。尽管这里可以应用边缘检测来粗略地去除噪声,但这将牺牲有益于物体形状和位置估计的有用边界点。作者的想法是将稀疏卷积的感受野扩展到2D图像空间,并在不丢失形状线索的情况下区分噪声!

随机体素丢弃

为了缓解基于虚拟点检测器的计算问题并提高密度鲁棒性,作者开发了StVD。它由两部分组成:(1)输入StVD,它通过在训练和推理过程中丢弃虚拟点的输入体素来加速网络;(2) layer StVD,其通过仅在训练过程中丢弃每个VirConv块处的虚拟点的体素来提高密度鲁棒性!

d56a806755cdfe5e29f1db125c5fb126.png

输入StVD:两种简单的方法可以保持较少的输入体素:(1)随机采样或(2)最远点采样(FPS),然而,随机采样通常会在不同距离处保持不平衡的体素,并不可避免地牺牲一些有用的形状线索(在图4(a)(b)的红色区域)。此外,由于计算复杂度高(O(n2)),FPS在对大量虚拟点进行下采样时需要大量额外计算。为了解决这个问题,本文引入了一种基于bin的采样策略来执行高效和平衡的采样(见图4(c))。具体来说,首先根据不同的距离将输入体素划分为Nb个bin(本文中我们采用=10)。对于附近的bin(根据图2(e)中的统计数据,≤30m),随机保留固定数量(~1K)的体素,对于远处的bin,保留所有内部的体素。在基于二进制的采样之后,本文丢弃了大约90%的冗余体素(这实现了最佳的精度-效率权衡,见图6),并将网络速度提高了大约2倍!

layer StVD:为了提高稀疏点检测的鲁棒性,论文还开发了一个应用于训练过程的layer StVD。具体来说,在每个VirConv块处丢弃体素,以模拟稀疏的训练样本,本文采用15%的丢弃率,layer StVD用作数据增强策略,以帮助增强3D检测器的训练!

抗噪声子流形卷积

由不准确的深度补全引入的噪声很难从3D空间中识别出来,但可以很容易地从2D图像中识别出来,从广泛使用的亚流形稀疏卷积中开发了一个NRConv(见图3(b))来解决噪声问题。具体而言,给定由3D索引向量和特征向量表示的N个输入体素,在3D和2D图像空间中对抗噪声几何特征进行编码,其中和分别表示输入和输出特征通道的数量!

对三维空间中的几何体特征进行编码,对于X中的每个体素特征X_i,首先使用三维子流形卷积核K3D(·)对几何特征进行编码。具体而言,基于相应的3D索引,从3×3×3邻域内的非空体素计算几何特征,如下所示:

bd7a911069c9f8aacbb73bda7f447e74.png

编码2D图像空间中的噪声感知特征:由不准确的深度补全所带来的噪声显著降低了检测性能。由于噪声主要分布在2D实例边界上,本文将卷积感受野扩展到2D图像空间,并使用2D相邻体素对噪声感知特征进行编码。具体而言,首先基于体素化参数将3D索引转换为一组网格点(转换表示为G(·))。大多检测器采用了变换增强(表示为T(·)的增强),如旋转,网格点通常与对应的图像不对齐。因此,本文根据数据扩充参数将网格点向后变换到原始坐标系中。然后,基于激光雷达相机校准参数将网格点投影到2D图像平面中(投影表示为P(·)),总体预测可以总结为:

9abe939fe67e5dc76e2e87baf08fba2c.png

对于输入中的每个体素特征,然后基于相应的2D索引,从3×3邻域内的非空体素计算噪声感知特征:

51758498c4eadbdcc290cebbb5c57011.png

在3D和2D特征编码之后,采用简单的级联来隐式学习抗噪声特征:

e3d87f0cfb29dd79054d90a5ed58cf32.png

与相关的噪声分割和去除方法不同,NRConv通过将感受野扩展到2D图像空间来隐式区分噪声模式,因此,在不丢失形状提示的情况下抑制了噪声的影响!

7bbcc5663c69ffd5796c8ba22adeb214.png

使用VirCon的检测框架

为了证明提出的VirConv的优越性,从广泛使用的Voxel RCNN中构建了VirConv-L、VirConv-T和VirConv-S,分别用于快速、准确和半监督的3D目标检测!

VirConv-L型:首先构建了轻量级的VirConvL(图3(c)),用于快速多模态3D目标检测。VirConv-L采用了早期融合方案,并用VirConvNet取代了Voxel RCNN的主干!

VirConv-T型:基于变换细化方案(TRS)和后期融合方案构建了高精度的VirConv-T(见图5)。CasA和TED分别基于三阶段细化和多次变换设计实现了高检测性能。然而,这两者都需要大量的计算,本文将两个高计算量的检测器融合到一个高效的pipeline中。首先用不同的旋转和反射来变换P和V,然后采用VoxelNe和VirConvNet分别对P和V的特征进行编码。与TED类似,不同变换之间的卷积权重是共享的,之后,RoI由区域建议网络(RPN)生成,并在第一次变换下通过backbone特征(通过简单级联融合的P和V的RoI特征)进行细化。最后对融合的ROI执行非最大值抑制(NMS),以获得检测结果!

VirConv-S:作者还使用广泛使用的伪标签方法设计了一个半监督pipeline VirConv-S。首先使用标记的训练数据对模型进行预训练,然后,使用这个预先训练的模型在更大规模的未标记数据集上生成伪标签,采用高分阈值(根据经验,0.9)来过滤低质量标签。最后,使用真实标签和伪标签对VirConv-T模型进行训练!

实验

KITTI 3D目标检测数据集分别包含7481和7518个用于训练和测试的激光雷达和图像帧,论文将训练数据划分为3712帧的训练和3769帧的验证。采用了广泛使用的评估指标:3D Average Precision,对于汽车、行人和骑自行车的人,该指标中的IoU阈值分别为0.7、0.5和0.5。使用了KITTI里程计数据集作为大规模未标记数据集,KITTI里程计数据集包含43552个激光雷达和图像帧。对10888个帧(表示为半数据集)进行了均匀采样,并使用它们来训练VirConv-S。

设置细节

与SFD类似,本文的方法使用PENet生成的虚拟点,VirConvNet采用了类似于Voxel RCNN主干的架构,VirConvNet包括四个级别的VirConv块,其特征尺寸分别为16、32、64和64。默认情况下,输入StVD速率和layer StVD速率分别设置为90%和15%。在KITTI数据集上,所有检测器使用与CasA相同的检测范围和体素大小。

损失和数据增强:VirConv-L使用与[7]中相同的训练损失,VirConv-T和VirConv-S使用与CasA相同的训练损失[34],在这三条pipeline中,采用了广泛使用的局部和全局数据增强[27,34,36],包括GT采样、局部变换(旋转和平移)和全局变换(旋转与翻转)。

实验对比

KITTI验证集上的结果对比:

572bec8906162a261a6f12706e458762.png

KITTI验证集上的消融实验:

fb5adb2c8342175c352b5e7f690e3f0b.png 11326b4a9d2e9855300b3fdcb369cf3f.png 69c15a444a83ad27677ff8f224a56822.png

nuScenes测试集的评估:为了证明方法的通用性,在nuScenes数据集上进行了一项实验,将本文的方法与CenterPoint+VP(虚拟点)、TransFuison-L+VP和TransFusion进行了比较。采用了与TransFuison-L相同的数据增强策略,并在8个V100 GPU上对网络进行了30个时epoch的训练。nuScenes测试集的结果如表6所示,使用VirConv,CenterPoint+VP和TransFuison-L+VP的检测性能显著提高。此外,带有VirConv的TransFusionL在NDS方面甚至超过了TransFusion,这表明我们的模型能够显著提高基于虚拟点的检测器!

参考

[1] Virtual Sparse Convolution for Multimodal 3D Object Detection

视频课程来了!

自动驾驶之心为大家汇集了毫米波雷达视觉融合、高精地图、BEV感知、传感器标定、自动驾驶协同感知、语义分割、自动驾驶仿真、L4感知等多个方向学习视频,欢迎大家自取(扫码进入学习)!

39309c4066ef001399f7f35f15e93880.png

(扫码学习最新视频)

国内首个自动驾驶学习社区

近1000人的交流社区,和20+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!

680f18c2604277af3d7c445c025426f4.jpeg

自动驾驶之心】全栈技术交流群

自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向;

5ef833777782d5dff25e93bb1d332d7a.jpeg

添加汽车人助理微信邀请入群

备注:学校/公司+方向+昵称

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值