赞
踩
作者 | 小书童 编辑 | 集智书童
点击下方卡片,关注“自动驾驶之心”公众号
ADAS巨卷干货,即可获取
点击进入→自动驾驶之心【3D目标检测】技术交流群
后台回复【3D检测综述】获取最新基于点云/BEV/图像的3D检测综述!
点云3D目标检测的性能取决于有效地表示原始点、基于网格的Voxel或Pillar。最近的两阶段3D检测器通常采用point-voxel-based R-CNN范式,即,第一阶段求助于基于三维Voxel的主干,用于基于鸟瞰图(BEV)表示的3D proposal生成,第二阶段通过中间点表示对其进行细化。它们的主要机制涉及利用中间关键点从转换的BEV表示中恢复实质性3D结构上下文。
然而,熟练的point-voxel特征交互使整个检测管道更加复杂和计算密集。在本文中采取了不同的观点——基于Pillar的BEV表示具有足够的能力来保存3D结构。鉴于基于BEV的感知的最新进展,作者设计了一种概念上简单但有效的两阶段3D检测架构,名为Pillar R-CNN。在密集BEV特征图的基础上,Pillar R-CNN可以轻松地引入特征金字塔架构,以生成各种尺度的3D proposal,并采用简单的2D R-CNN风格检测头进行框的细化。
Pillar R-CNN在大型Waymo Open数据集上与最先进的3D检测器相比表现优异,同时额外成本很低。应该强调的是,由于高效优雅的Pillar R-CNN架构,现在可以对涉及自动驾驶的应用进行BEV感知的进一步探索。
点云3D目标检测在机器人和自动驾驶的3D场景理解中起着至关重要的作用。然而,与基于图像的2D检测相比,基于LiDAR的3D检测仍然难以应对点云的稀疏和不规则性质。在本文中提出了Pillar R-CNN,这是一种基于Pillar的点云表示的Faster R-CNN类架构,可以从2D检测领域的进步中获益。
基于LiDAR的3D检测的性能取决于点云上的表示学习。深度卷积特征骨干包括基于点的或基于网格的表示。当前最先进的方法主要应用单阶段检测器来产生特定于类的proposal,并需要抽象的逐点特征来进行进一步的框细化。
通常,PV-RCNN通过从原始点引入精确定位的关键点来扩展SECOND,以保存重要的3D结构信息。引入Voxel set集抽象(VSA),以多尺度三维体素特征上下文丰富每个关键点。通过RoI网格池化从关键点进一步提取每个3D RoI特征,以进行长方体细化。尽管检测精度不错,但关键点的无序存储导致了昂贵的计算开销。
Voxel R-CNN认为,粗糙的3D体素也可以提供足够的检测精度。体素RoI池化从3D稀疏特征体积中提取3D RoI特征。3D体素的规则性有助于搜索附近的体素特征,而其粗粒度牺牲了检测精度,特别是对于小目标。
此外,将上采样的3D体素点作为过渡关键点,以缓解体素粒度过粗的问题。此外,最近的工作提出了RoI网格池化模块的变体,以处理中间关键点的稀疏性和点密度变化问题。
简而言之,高性能的两阶段3D检测框架在很大程度上依赖于基于3D体素的主干来生成基于BEV的3D proposal,然后恢复3D结构上下文,以基于点级特征进行进一步的框细化。然而,基于点体素的检测范式及其相关的基于点的集合操作使整个3D检测流水线复杂化,并需要额外的努力来提高效率。
基于BEV的感知的最新进展证明了BEV表示在高性能3D目标检测中的潜力。Pillar作为点云上BEV表示的一种典型表现形式,可以提供足够的3D结构信息,并可以容易地集成成熟的2D检测领域的进展。
在这项工作中,为了实现这一目标仅采用基于Pillar 的点云表示,并试图提高其准确性。作者首先认为,具有适当粒度的Pillar也可以为长方体细化提供重要的3D结构。因此,提出了一个令人惊讶的灵活和有效的两阶段框架,名为Pillar R-CNN,该框架将FPN与区域建议网络(RPN)集成起来,用于在不同尺度下生成特定类别的3D proposal,然后裁剪2D密集池化特征图,以在单个可管理尺度下进行进一步的方框重新定义。
具体而言,使用基于Pillar的特征主干以及稀疏和密集卷积的混合来计算一次前向通过中的分层特征图。为了抵消小目标上的精度降低,作者设计了一个横向连接层,通过加密稀疏Pillar来构建基于Pillar的金字塔主干,如FPN。然而,这太困难和复杂,无法用于基于三维体素的特征主干。
表3显示,将FPN结合到RPN中会产生更好的针对小目标的类特定Proposal。此外,遵循RoIAlign裁剪密集池化图以细化3D Proposals。在这里,池化图是由另一个横向连接层以可管理的分辨率在要素层次结构上构建的。此外,单尺度池化是类不可知的,并且对目标尺度变化具有鲁棒性。这与Faster R-CNN上常用的FPN略有不同。
如表2所示,尽管在4倍下采样的2D特征图(即0.4m的Pillar尺寸)上细化了3D Proposals,但所提出的Pillar R-CNN在大规模Waymo开放数据集上实现了与先前最先进的两阶段方法相当的检测精度。
这项工作的主要贡献源于Pillar R-CNN在概念上简单而有效的设计,它展示了点云上基于Pillar的BEV表示的强大建模能力。Pillar R-CNN的令人印象深刻的实验结果也证实了作者的观点:两阶段方法中的中间点级表示对于高性能3D目标检测并不重要,具有适当Pillar粒度的BEV表示也可以为该任务提供足够的3D结构。
在没有花里胡哨技巧的情况下,Pillar R-CNN通过基于Pillar的BEV表示,弥合了基于LiDAR的3D检测和基于图像的2D检测之间的领域差距。尽管仅用Pillar R-CNN在点云上演示了BEV表示,但作者认为所呈现的结果同样适用于基于BEV的检测器。
代表性的两阶段2D目标检测方法采用概念上简单但有效的范例。
第一阶段称为区域建议网络(RPN),通过以类无关的方式在所有位置上滑动窗口,生成感兴趣区域(RoI);
第二阶段通过RoIPool或RoIAlign裁剪RoI特征,然后进行Proposals特定分类和边界框回归。
特征金字塔网络作为一个基本的组件,可以构建金字塔多层特征图,在所有尺度上保持高级语义特征。本文提出的3D检测方法与FPN和RoI池化具有相同的思想,但利用特定领域的技术来解决2D BEV空间上稀疏和不规则点云的问题。
单阶段3D检测方法主要可分为3个流派,即基于点的、基于体素的和基于Pillar的。基于点的单阶段检测器直接从原始点云学习逐点特征,其中集合抽象通过设置不同的搜索半径来实现灵活的感受野。
3DSSD引入了用于点下采样的F-FPS,并首先仅使用编码器网络执行3D检测。基于点的方法直接消耗点云,然而,学习能力不足和无序存储成为主要瓶颈。基于体素的单阶段检测器通常首先将点云栅格化为三维体素网格,以通过三维密集或稀疏卷积进行处理,用于几何特征学习。这些基于体素的方法可以提供优异的检测性能,同时计算/内存开销随着所使用的体素化分辨率呈立方体增长。
基于Pillar的单阶段检测器进一步将3D体素简化为2D Pillar,由2D卷积处理,为嵌入式部署铺平了道路。PointPillars首先将输入点云编码为规则的Pillar,并利用简单的自顶向下网络进行最终的3D检测。最新的PillarNet深入分析了基于体素和基于Pillar的方法在架构组件方面的巨大性能差距,并提出了“编码器Neck”管道,以实现更好的精度/速度权衡。此外,深入研究了基于Pillar的点云表示,以提高PillarNet上的检测精度。
两阶段3D检测方法通常建立在生成特定于类的3D Proposals的单阶段方法之上,但侧重于基于代价高昂的点集抽象操作的特定于Proposals的特征提取,以进行框重新细化。
PointRCNN首先应用PointNet++作为自底向上3D Proposals生成的特征主干,并提出了一种新的点云区域池化,用于3D长方体细化。类似地,STD从原始点云生成基于点的Proposals,但提出了一个新的PointsPool层,以引入voxel表示,用于紧凑的RoI特征提取。Fast Point R-CNN引入了基于体素的主干,用于生成高质量的3D Proposals,并应用了基于注意力的PointNet池化模块进行框细化。PV-RCNN首先集成了基于点和体素的特征学习方案,其中,作为中间关键点的一小组原始点用多尺度3D体素特征来丰富,并且通过RoI网格池化提取3D RoI特征以进行框的细化。
Voxel R-CNN将精确的关键点替换为具有更好记忆位置的粗体素中心点,以便于搜索附近的体素特征。利用类似UNet的主干来生成3D Proposals和目标内部分位置预测,然后设计一种新颖的RoI感知点云池化模块,用于精确框细化。
最近的Pyramid R-CNN和PDV设计了RoI网格池化的变体,以解决点云的稀疏性和不均匀分布,从而提高检测精度。性能最好的基于点体素的3D检测器依赖于基于体素的主干来生成基于BEV的3D Proposals,但为了进一步细化,需要使用中间点级表示。
本文不同的是,作者将点云转换为规则的Pillars,并仅在BEV表示上进行3D Proposals生成和长方体细化,而不使用中间关键点。
当前最先进的两阶段3D目标检测方法如图1所示,通常使用基于点体素的特征学习方案来生成基于BEV的3D Proposals,然后在3D空间中进行点级框细化。在这两个阶段中,有效的关键点表示都起着主要作用。
开创性的PV-RCNN通过最远点采样(FPS)对原始点云进行子采样,作为中间关键点,并采用基于点的集合操作进行点体素交互。尽管PV-RCNN具有令人印象深刻的检测精度,但其点采样和邻居搜索过程耗时。
Voxel R-CNN认为,粗糙的3D体素而不是原始点的精确定位足以在大目标上进行精确定位。Voxel RCNN将稀疏但规则的三维体视为一组非空体素中心点,并利用加速的PointNet模块在精度和效率之间实现新的平衡。
采用了类似UNet的架构,用于更精细的体素点,并为小目标获得了更多的利润。最新的工作试图解决中间关键点的稀疏性和点密度变化问题,以提高检测精度。
总之,典型的基于点体素的3D检测器将点云转换为规则网格,用于基于BEV的3D Proposals生成,并取决于关键点的粒度,以便进一步细化框。这不可避免地加剧了检测系统的复杂性。
从基于BEV的感知的角度来看,作者希望设计一个紧凑的R-CNN Head,在简单的Pillar上,以实现框的细化。通过仔细观察基于三维体素的检测器,作者观察到,它们将三维特征体积转换为密集检测头的BEV表示。仅仅是鸟瞰图(BEV)表示仍然可以提供足够的3D结构信息。
为了确认观点的正确性,作者构建了具有可管理粒度的合理池化特征图,并为每个3D Proposals裁剪该2D密集图,以进行3D RoI细化。此外,令人鼓舞的结果是BEV表示可以携带足够的3D结构信息,而无需通过点级表示来恢复该上下文。
与2D不同,其中输入图像是2D密集图,点云的固有稀疏性和不规则性使其在方法上偏离了2D检测领域。主要差距可以是两阶段框架中基于3D点/体素的点云表示和过渡关键点。由于这一差距,2D检测的最新进展不能容易地应用于基于LiDAR的3D检测。
例如,作为2D检测中的基本组件,特征金字塔网络(FPN)尚未被当前基于LiDAR的3D检测成功使用。基于Pillar的3D检测的最新进展通过在2D检测到3D检测中引入成熟的主干(如VGGNet和ResNet),部分弥补了这一差距,并取得了成功。
沿着这一研究方向,作者的目标是通过开发一种2D R-CNN型检测器,用于基于激光雷达的3D检测,从而缩小畴隙。所提出的Pillar R-CNN将基本FPN与RPN适当集成,用于小目标检测,并裁剪二维密集池化特征图,如RoIPool或RoIAlign,用于进一步的框细化,而无需使用过渡关键点表示。
如图2所示提出的Pillar R-CNN在概念上很简单,包括两个阶段:第一阶段(RPN)产生3D Proposals,并在所有类别相关尺度上进行分类;第二阶段(R-CNN)以可管理的分辨率细化BEV平面上的3D框。
最新的基于Pillar的3D检测器PillarNet将点云转换为规则的Pillar ,并以自下而上的方式分层处理稀疏的2D Voxel。PillarNet利用ConvNets(如VGGNet和ResNet)的2D检测优势,在一次前向传播中计算特征层次。它以自下而上的方式通过2D稀疏和密集卷积的混合创建一组低层稀疏2D柱体和高层密集特征图。用表示不同金字塔级别的多层次特征图,Pillar scales的Stride为。
与基本FPN类似,作者构建了金字塔区域建议网络,以提高行人等小目标的检测精度。为了在所有类相关的尺度上构建高级语义特征图,修改了横向连接层,以有效地合并自上而下的密集图和自下而上的稀疏体。每个横向连接合并了来自自下而上路径和自上而下路径的相同空间大小的稀疏特征量和密集特征图。
具体而言:
首先,上下路径通过使用步长为2的反卷积层从更高的金字塔级别对语义更强的密集特征图进行上采样,从而产生更高分辨率的特征。
然后,通过简单的连接,将上采样的密集特征图与来自其稀疏voxel的相应的密集自下而上的特征图合并。重复该过程,直到所需的多尺度特征图准备就绪。
最后,在每个合并的映射上附加一个3×3卷积层,以减轻上采样的混叠效应并降低通道维数。这里,具有高级丰富语义的最后一组特征图(称为)在空间大小方面分别对应于。
将常用的中心检测头附加到网络内特征金字塔的每个级别,分别对其进行类特定目标预测。虽然更好的横向连接设计更有帮助,但作者依旧坚持上述最简单的设计。
为了证明BEV表示保留了关键的3D结构信息,通过简单设计的横向连接层以可管理的比例构建了密集池化特征。然后,通过在BEV平面上使用Faster R-CNN-like RoI池化模块来进一步细化3D Box。作者还使用语义监督来监督每个3D Proposals的网格点,以进一步检查BEV表示的3D结构能力,并对齐PV-RCNN中使用的额外关键点分割监督分支。
用于构建池化图的横向连接层的目的是以可管理的分辨率将低级别稀疏Pillar特征量和高级别密集语义特征图集成到密集池化图中。
具体而言:
首先,使用2D稀疏卷积层用于将所选低层Pillar从自下而上的路径降采样到期望的空间分辨率。
然后,步长为2的反卷积层以自顶向下的方式对来自金字塔颈部模块的密集语义特征图进行上采样。
最后,通过3×3卷积层以相同的空间分辨率合并语义更强的密集映射和空间更精确的稀疏体,构建密集池化映射。
横向连接层略微偏离了原始FPN中的逐元素相加方式,因为稀疏体积可能非常稀疏,大部分为空点。为了解决稀疏特征导致的中心特征缺失的问题,简单地应用cat和标准卷积运算来混合来自自下而上路径的特征图和来自自上而下路径的特征图。通过这种方式横向连接设计可以为空间精确但稀疏的自下而上的Pillar提供关键的语义信息。
在每个3D Proposal中附加了网格点的可分离辅助分割监督,以提高基于BEV的池化图的3D结构能力,这是受PV-RCNN中基于3D体素的结构上下文的关键点的额外分割监督的启发。
具体而言,使用具有Sigmoid函数的2层MLP来预测每个投影2D旋转RoI中每个网格点的前景/背景分数。通过识别每个网格点是在图3中投影的GT旋转框的内部还是外部,可以从3D框标注中直接生成分割层,因为3D目标在BEV平面上不重叠。
此外,辅助分段监督分支仅在训练期间使用,因此没有额外的推理计算开销。
与RoI池化和RoI Align类似,使用投影的2D旋转RoI裁剪密集池化图,以提取BEV平面上的3D RoI特征。具体而言,简单地利用双线性插值操作来对图3中每个投影的3D RoI中均匀分布的网格点进行采样。然后,通过两个256-D FC层将采样的网格点特征。
因此,Faster R-CNN-like 2D RoI池化模块将具有不同大小目标的每个3D RoI特征转换为固定的空间范围用于3D Proposal细化和置信度预测。值得注意的是第2个R-CNN阶段与Faster R-CNN略有不同,因为它需要在可管理的尺度上使用池化图,并通过横向连接层充分融合语义空间特征。
提出的Pillar R-CNN框架以区域建议损失、Proposal细化损失和辅助分割损失进行端到端训练。采用CenterNet3D中使用的金字塔规模的相同区域建议损失。遵循PV-RCNN并将相同的建议细化损失用于类别不可知置信预测和框回归。使用二进制交叉熵损失简单地监督辅助分割,每个网格点的分类标签由其相对于相应GT边界框的投影位置确定。
整体训练损失是这3种损失的总和,权重相等:
IoU感知置信校正通常用于处理2D检测和3D检测在定位精度和分类分数之间的未对准问题。后处理阶段的IoU感知校正函数可以公式化为:
其中S表示分类分数,而是IoU分数。β是一个超参数。
为了验证其对提出的金字塔区域建议网络的影响,进行了单阶段目标检测实验。从表7中的RPN结果中可以看到,IoU感知的信心纠正可以在金字塔区域建议网络上实现巨大的性能改进。使用精心调整的校正因子β进行恢复后,RPN实现了与R-CNN同行相当的性能。也就是说,IoU感知置信校正模块有利于基于Rank的度量,如平均精度。相比之下,R-CNN模块主要自适应地重新搜索框,以便可以选择具有更好定位的框。
表3详细说明了每个拟议组件如何影响Pillar R-CNN在各种Pillar式主干上的准确性。基于PillarNet-18主干,第1行和第3行显示,与RPN相比,RoI细化阶段显著增加了+1.69%APH/L2(车辆检测)和+4.41%(行人检测)。每个RoI对网格点的辅助监督带来第4行所示的边际收益,而该分支在推断中被禁用。
此外,在第2行的RPN中引入FPN在行人等小目标检测上实现了+5.4%APH/L2的增益。通过RPN和FPN计算的建议,如第6行所示,Pillar R-CNN在行人上实现了+2.13%APH/L2的进一步增益。
此外,通过使用笨重而强大的PillarNet-34主干,Pillar R-CNN的性能可以进一步提升整体类别。
在表4中研究了用于构建池化映射的横向连接层的影响。表4的第1行、第3行和第5行显示,仅以精细分辨率进行池化并不能提高性能。这是因为上采样的自顶向下特征图具有丰富的语义,但缺乏精确的空间信息。
表4的第2行、第4行和第6行显示,所设计的横向连接层可以在各种尺度上编码高级语义和低级几何,以提高3D检测性能。虽然简单,但横向连接层在稀疏的自底向上映射上提供了良好的语义信息,其中大部分为零。
表4说明了由横向连接模块构建的具有不同空间大小的池化图分辨率的效果。表4的第2行、第4行和第6行显示,池化映射的分辨率越高,性能越好,尤其是对于小目标。
然而,更精细的池化映射需要更多额外的内存/计算成本。因此,在整个实验中使用4×4的池化映射作为权衡,因为2倍或更精细的池化映射消耗了太多内存,但带来了边际效益。
表5显示了RoI网格池化模块中不同网格大小对检测性能的影响。可以看到,随着网格大小从4×4增加到8×8,精度不断提高,但网格大小越大,性能会略有下降。
原因可以解释为具有较大网格大小的R-CNN在第一个完全连接层中具有更多可学习的参数,因此容易过度拟合训练集。这里,采用7×7的网格大小,以保持其2D对应项的相同设置。
通过设计的横向连接,构建的池化图可以整合来自自下而上路径的其他多尺度特征。表6的第2行显示,组合较粗的图会略微降低检测精度。而在第3行和第4行中使用较低级别的特征,则会以额外的成本获得微不足道的性能提升。因此,仅使用其对应的stride为4的自底向上特征就可以获得令人满意的精度。
[1].Pillar R-CNN for Point Cloud 3D Object Detection.
国内首个自动驾驶学习社区
近1000人的交流社区,和20+自动驾驶技术栈学习路线,想要了解更多自动驾驶感知(分类、检测、分割、关键点、车道线、3D目标检测、多传感器融合、目标跟踪、光流估计、轨迹预测)、自动驾驶定位建图(SLAM、高精地图)、自动驾驶规划控制、领域技术方案、AI模型部署落地实战、行业动态、岗位发布,欢迎扫描下方二维码,加入自动驾驶之心知识星球,这是一个真正有干货的地方,与领域大佬交流入门、学习、工作、跳槽上的各类难题,日常分享论文+代码+视频,期待交流!
【自动驾驶之心】全栈技术交流群
自动驾驶之心是首个自动驾驶开发者社区,聚焦目标检测、语义分割、全景分割、实例分割、关键点检测、车道线、目标跟踪、3D目标检测、BEV感知、多传感器融合、SLAM、光流估计、深度估计、轨迹预测、高精地图、NeRF、规划控制、模型部署落地、自动驾驶仿真测试、产品经理、硬件配置、AI求职交流等方向;
添加汽车人助理微信邀请入群
备注:学校/公司+方向+昵称
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。