Part-A2
From Points to Parts: 3D Object Detection from Point Cloud with Part-aware and Part-aggregation Network
从点到部分:基于部分感知和部分聚集网络的点云三维目标检测
论文网址:Part-A2
与PointRCNN主要区别:
1.骨干网络
- PointRCNN使用PointNet++作为骨干网络进行点特征学习。
- Part-A2使用自定义的稀疏卷积网络作为骨干网络,可以更高效地进行点特征学习。
2.提议生成
- PointRCNN只使用anchor-free的底部提议生成。
- Part-A2提供anchor-based和anchor-free两种提议生成策略。
3.感兴趣区域池化
- PointRCNN直接池化感兴趣区域内的点。
- Part-A2提出自定义的区域感知池化,区分有点和无点体素,编码更丰富的特征。
4.部分聚合
- PointRCNN使用另一个PointNet++进行部分聚合。
- Part-A2使用稀疏卷积进行更高效的部分融合。
5.性能
- Part-A2相比PointRCNN取得了更高的检测精度。在KITTI测试集上获得最优的结果。
前向传播过程
1.部分感知模块
- 点云输入进行体素化,然后通过稀疏卷积的编码器-解码器提取点特征。
- 在解码器的输出点特征上,通过两个分支预测点的前景分割结果和物体内部部分位置。
- 对于anchor-free方法,直接从每个前景点回归出3D候选框。(这种策略适用于处理不规则场景。它采用自底向上的方式,通过对前景点进行分割并同时生成3D候选框来直接生成3D边界框提案。相较于基于锚点的策略,无锚点的策略更轻量且更节省内存。它避免了使用大量3D锚点框在整个3D空间中进行操作。)
- 对于anchor-based方法,在鸟瞰特征图上设置anchor,通过RPN头预测anchor的分类结果和回归结果。(这种策略在处理较为规则的场景时效果较好。它使用预定义的3D锚点框在经过下采样的鸟瞰特征图上生成3D候选框。通过在每个空间位置上应用锚点框,可以获得更高的召回率。然而,这种策略需要更多的内存和计算资源。)
2.感知区域的点云特征池化模块
- 对每个3D候选框,转换到规范坐标系。(为了消除不同3D候选框之间的旋转和位置变化的影响,并提高后续的框位置细化的特征学习效率。)
- 将候选框均匀划分为14x14x14的体素,进行自定义的池化,获得规范的体素化特征。(类似Second算法的骨干网络,不过,RoI-aware池化是针对3D候选框内的点云进行的操作,目的是消除不同候选框之间的歧义,并编码候选框的几何信息。而SECOND的骨干网络主要用于对整个点云进行特征提取和聚合,以实现3D目标检测。)
3.部分聚合模块
- 将每个候选框的预测部分位置和语义特征进行融合。
- 通过稀疏卷积聚合体素化特征,进行评分和回归精炼。
- 最终输出检测结果的置信度和3D框参数。
摘要
基于激光雷达点云中的三维目标检测是三维场景理解中的一个具有挑战性的问题,有许多实际应用。 本文将前期工作的PointRCNN扩展到一个新颖的基于点云的三维目标检测框架,即部分感知和聚集神经网络(Part-A2 Net)。 整个框架由部分感知阶段和部分聚合阶段组成。 首先,部分感知阶段首次充分利用了从三维地面真值框中获得的免费部分监督,以同时预测高质量的三维方案和精确的物体内部件位置。 本文新设计的ROI感知点云池化模块对同一方案中预测的对象内部分位置进行分组,从而对每个3D方案的几何特性进行编码的有效表示。 然后,部件聚合阶段学习通过探索集合的对象内部部件位置的空间关系来重新对盒进行评分和重新确定盒的位置。 本文进行了大量的实验来证明提出的框架的每个组件的性能改进。 Part-A2网络超越了所有现有的三维检测方法,仅利用激光雷达点云数据就实现了KITTI三维目标检测数据集的最新技术。
引言
随着自动驾驶和机器人技术需求的不断增长,三维物体检测受到越来越多的关注。 虽然在基于图像的二维目标检测方面已经取得了显著的成果,但由于三维场景的点云数据具有不规则的数据格式,而用点云进行三维检测又面临着三维目标6度搜索空间大的挑战,因此直接将这些二维检测方法推广到三维检测可能会导致性能下降。
现有的三维目标检测方法已经探索了几种解决这些挑战的方法。 一些文献利用二维检测器从图像中检测出二维框,然后对裁剪后的点云采用PointNet直接从原始点云中回归出三维框的参数。 然而,这些方法严重依赖于二维目标检测器的性能,不能利用三维信息来生成鲁棒的预测框建议。 一些文献将点云从鸟瞰视图中投影,生成二维鸟瞰视点密度图,并将二维卷积神经网络(CNN)应用于这些特征图中进行三维目标检测,但手工制作的特征不能充分利用原始点云的三维信息,可能不是最优的。 还有一些单级三维物体检测器将三维空间划分为规则的三维体素,应用三维CNN或三维稀疏卷积提取三维特征,最后压缩为鸟瞰特征图进行三维物体检测。 这些工作没有充分利用三维方框注释中的所有可用信息来提高三维检测的性能。 例如,3D方框标注还隐含了每个3D目标内的点分布,这有利于学习更多的识别特征,从而提高3D目标检测的性能。 此外,这些工作都是一个阶段的检测框架,不能利用ROI-Pooling方案在第二阶段中为框重新配置汇集每个建议的特定特征。
相比之下,本文提出了一种新型的两阶段三维目标检测框架,即部分感知和聚合神经网络(即Part-A2网络),该框架直接运行在三维点云上,通过充分挖掘训练数据中信息丰富的三维标注框,实现了最先进的三维检测性能。本文的关键观察是,与从2D图像中检测物体不同,自动驾驶场景中的3D物体被带注释的3D边界框很自然地很好地分开,这意味着带有3D标注框的训练数据会自动提供免费的语义蒙版,甚至每个前景点在3D地面真实边界框内的相对位置。在本文的其余部分中,每个前景点所属的对象框的相对位置被表示为对象内部分位置。这与2D图像中的box annotation是完全不同的,因为2D图像中的部分对象可能会被遮挡。使用ground-truth 2D包围盒会为对象中的每个像素生成不准确和有噪声的对象内部部分位置。这些三维对象内部件的位置暗示了三维对象的三维点分布。这种三维物体内部件位置信息丰富,可以直接获取,但在三维物体检测中从未被探索过。
在此基础上,本文提出的Part-A2网络被设计成一个新的两阶段3D检测框架,它包括部分感知阶段(Stage-I)和部分聚集阶段(Stage-II),该阶段用于预测目标中准确的部分位置和学习point特征,用于聚集部分信息以提高预测框的质量。 本文的方法用(x,y,z,h,w,l,θ)参数化生成三维边界盒,其中(x,y,z)是框的中心坐标,(h,w,l)分别是每个框的高度、宽度和长度,θ是每个框从鸟瞰的角度。
具体来说,在部分感知阶段i,网络学习分割前景点,并估计所有前景点的对象内部位位置,其中,分割掩码和ground-truth局部位置标注直接由ground-truth 3D框标注生成。此外,它还从原始点云生成三维提案,同时进行前景分割和部分估计。本文研究了两种策略,即无锚框和基于锚框的策略,以处理不同场景的3D提案生成。无锚策略相对较轻,内存利用率较高,而基于锚的策略具有较高的召回率,但内存和计算成本较高。对于无锚策略,本文提出了一种自底向上的直接生成三维预测框提案的方法,方法是分割前景点,同时从预测前景点生成三维提案。由于避免了之前的方法[VoxelNet]在整个3D空间中使用大量的3D锚框,因此节省了大量的内存。对于基于锚点的策略,它从下采样的鸟瞰特征图生成三维建议,在每个空间位置上都预先定义了三维锚点框。因为它需要在每个位置放置多个具有不同方向和类的3D锚点,所以它需要更多内存,但可以实现更高的对象召回。
在现有的两阶段检测方法的第二阶段,需要通过一定的池化操作来聚合三维建议中的信息,以进行随后的框重评分和位置细化。 然而,以前的点云池化策略(如本文的初步PointRCNN所使用的)导致了模糊的表示,因为不同的提议最终可能会汇集同一组点,而这些点失去了对提议的几何信息进行编码的能力。 为了解决这一问题,本文提出了一种新的可微感兴趣区域感知点云池化操作,它将非空体素和空体素的所有信息都保留在建议中,以消除以往点云池策略的歧义性。 由于空体素也编码了盒子的几何信息,这对于获得一个有效的盒子打分和位置细化表示是至关重要的。
第二阶段的目的是通过建议的ROI感知池化来聚合第一阶段的池化部分特征,以提高预测的质量。 本文的Stage-II网络采用稀疏卷积和稀疏池化运算来逐步聚合每个3D提议的池部分特征,以进行精确的置信度预测和盒精化。 实验结果表明,聚集的部分特征可以显著提高算法的质量,在KITTI三维检测基准上,本文的整体框架达到了最先进的性能。
本文的主要贡献可以概括为四个方面:
- 提出了基于点云的三维目标检测的Part-A2网络框架,该框架利用目标内部直接的部分信息学习识别性的三维特征,并通过ROI感知池化和稀疏卷积对部分特征进行有效的聚合,提高了三维目标检测的性能。
- 针对不同场景,提出了两种三维方案生成策略。 无锚策略具有更高的记忆效率,而基于锚的策略具有更高的对象回忆率。
- 提出了一种可微的ROI感知点云区域池化操作,以消除现有点云区域池操作中的模糊性。 实验结果表明,集合特征表示对盒精化阶段有明显的好处。
- 提出的Part-A2网络在具有挑战性的Kitti 3D检测基准上以14 fps的推断速度以显著的优势超过了所有已有的方法,证明了本文的方法的有效性。
相关工作
基于2D图像的三维物体检测
从图像中估计三维边界框已有几个工作。 [3d bounding box estimation using deep learning and geometry],[Gs3d]利用三维和二维边界框之间的几何约束来恢复三维物体的姿态。[Roi-10d]利用了三维物体和CAD模型之间的相似性。 [Monocular 3d object detection for autonomous driving],[3d object proposals for accurate object class detection]将物体的三维几何信息表述为能量函数,对预定义的三维方框进行打分。[Monocular 3d object detection leveraging accurate proposals and shape reconstruction]提出了综合损失法来提高单目图像的三维定位精度。 最近[Stereo r-cnn based 3d object detection for autonomous driving],[Pseudo-lidar from visual depth estimation: Bridging the gap in 3d object detection for autonomous driving]探索了立体图像对,以提高来自立体相机的3D检测性能。 由于缺乏精确的深度信息,这些工作只能产生粗略的三维检测结果,并且会受到外观变化的严重影响。
多传感器三维目标检测
现有的几种方法都致力于融合来自多个传感器(如激光雷达和摄像机)的信息来帮助三维目标检测。 [Multi-view 3d object detection network for autonomous driving]、[Joint 3d proposal generation and object detection from view aggregation]将点云投影到鸟瞰视图上,分别从鸟瞰视图和图像中提取特征,然后将三维建议投影到相应的二维特征图上进行裁剪和融合,用于三维目标检测。 [Deep continuous fusion for multi-sensor 3d object detection]进一步探讨了特征融合策略,提出了连续融合层将图像特征融合为鸟瞰特征。 与将点云投影到鸟瞰图不同,[Frustum pointnets for 3d object detection from rgb-d data]、[Pointfusion: Deep sensor fusion for 3d bounding box estimation]首先利用现成的二维物体检测器检测二维框进行点云裁剪,然后利用PointNet从裁剪后的点云中提取特征进行三维框估计。 这些方法在实际应用中可能会遇到多传感器的时间同步问题。 与这些传感器融合方法不同,本文提出的三维检测框架Part-A2 Net仅使用点云作为输入,就可以获得与之相当甚至更好的三维检测结果。
基于点云的三维目标检测
[VoxelNet]首次提出了VoxelNet体系结构,从点云中学习判别特征,仅用点云检测三维物体。 [Second]通过引入稀疏卷积改进了VoxelNet,用于有效地提取体素特征。 [Pointpillars],[Hdnet],[Pixor]将点云投影到鸟瞰图上,并在这些图上应用二维CNN进行三维检测。 这些方法没有充分利用信息丰富的三维方框注释中的所有可用信息,都是一阶段的三维检测方法。 与此相反,本文提出的两阶段3D检测框架Part-A2 Net,利用3D方框注释提供的丰富信息,学习预测精确的物体内部件位置,以学习三维物体的点分布,并在第二阶段聚合预测的物体内部分位置,提炼三维建议,显著提高了三维物体检测的性能。
基于三维目标检测的点云特征学习
从点云中学习特征进行三维检测一般有三种方法。 (1)[Hdnet]、[Pixor]将点云投影到鸟瞰图上,并利用二维CNN进行特征提取。 (2)[Pointfusion]进行PointNet直接从原始点云中学习点云特征。 (3)[VoxelNet]提出了VoxelNet,[Second]应用稀疏卷积加快了VoxelNet的特征学习速度。 在本文的框架中,只有第二种和第三种方法有潜力提取逐点特征来分割前景点和预测目标内部的部分位置。 在这里,本文设计了一个类似于unet的编码器-解码器点云骨干网络来提取鉴别点特征,该骨干网络基于三维稀疏卷积和三维稀疏反卷积操作,因为它们比基于点的骨干网如PointNet++更高效。
3D/2D实例分割
这些方法通常是基于点云的三维检测方法。 三维实例分割的几种方法都是基于三维检测边界框和一个额外的掩码分支来预测目标掩码。[Gspn]提出了一种通过综合分析来生成3D实例分割的3D建议的策略。[3d-sis]将Multi-View RGB图像和3D点云相结合,以更好地生成建议,并以端到端的方式预测对象实例掩码。
另一些方法首先估计语义分割标记,然后基于学习到的点嵌入将点分组到实例中。[Sgpn]计算了点之间的相似性,以便对每个实例的前景点进行分组。[Associatively segmenting
instances and semantics in point clouds]提出了一种语义感知的点级实例嵌入策略,学习更好的特征,用于语义点云和实例点云的分割。[“3d instance segmentation via multitask metric learning]提出了一个掩码任务学习框架来学习特征嵌入和实例中心的方向信息,以便更好地将点聚类到实例中。 然而,它们没有像本文提出的方法那样利用免费的对象内部部件位置作为额外的监督。
也有一些无锚点的方法通过将像素聚类到实例中来进行2D实例分割。[“Semantic instance segmentation with a discriminative loss function]采用判别损失函数对同一实例在特征空间中的像素进行聚类。 [Deep watershed transform for instance segmentation]提出了估计一个修正的分水岭能量景观来分离不同实例的像素。 然而,这些方法只是将前景像素/点分组到不同的实例中,没有估计三维边界框。 与上述方法不同的是,本文提出的无锚点方法估计目标内部的部分位置,并直接从单个三维点生成三维包围盒建议,以实现三维目标检测。
Part models for object detection
在深度学习模型应用之前,基于变形部件的模型(DPM)在二维目标检测方面取得了很大的成功。 有工作将DPM扩展到3D世界,对3D中的部件进行推理并估计物体的姿态,其中[3d object detection and viewpoint estimation with a deformable 3d cuboid model]将物体建模为具有可变形面和可变形部分的3D长方体,[3d 2 pm–3d deformable part models]提出了一种3D DPM,它生成了具有连续外观表示的完整3D物体模型,[Fpm: Fine pose parts-based model with 3d cad models]提出了3D零件与3D CAD模型共享的概念来估计精细姿态。 这些基于DPM的方法通常采用几个用手工制作的特征训练的零件模板来定位对象和估计对象的姿态。 与此相反,本文将目标部件描述为点云背景下的点域内部件位置,部件位置的训练标签可以直接从三维方框注释中生成,并隐式地编码了三维目标的部件分布。 此外,对象内部部件位置的估计和聚集都是通过更鲁棒的深度学习网络来学习的,而不是以前手工制作的方案。
Part-A2 Net
本文在[Pointrcnn]中提出了一个初步版本,其中提出了用于从原始点云中进行三维目标检测的PointRCNN。 为了使PointRCNN框架更具通用性和有效性,本文将PointRCNN扩展为一种新的端到端三维检测框架,即部分感知和聚集神经网络,即Part-A2网络,以进一步提高点云三维目标检测的性能。
关键在于,由于三维场景中三维物体是自然分离的,因此三维物体检测的地面-真值框不仅自动提供了准确的分割掩码,而且还隐含了每个前景三维点在地面-真值框中的相对位置。 这与2D目标检测有很大的不同,在2D目标检测中,由于遮挡,2D目标框可能只包含目标的一部分,因此不能为每个2D像素提供准确的相对位置。 这些前景点的相对位置编码了前景三维点的有价值信息,有利于三维目标检测。 这是因为同一类(如汽车类)的前景对象通常具有相似的3D形状和点分布。 前景点的相对位置为框评分和定位提供了强有力的提示。 本文将三维前景点的相对位置命名为w.r.t. 到它们对应的框中的对象内部件位置。
这些目标内的部分位置为从点云中学习识别的三维特征提供了丰富的信息,但在以往的三维目标检测方法中从未探索过。 在此基础上,本文提出了一种基于局部感知和聚集的三维目标检测器Part-A2网络,用于点云中的三维目标检测。 具体来说,本文建议在第一阶段使用免费的3D对象内部件位置标签和分割标签作为额外的监督来学习更好的3D特征。 然后在第二阶段聚合每个3D方案中预测的3D对象内部部件位置和点向3D特征,以对框进行评分并细化它们的位置。
Stage-1 Part-aware 3D proposal generation
部件感知网络的目标是通过学习估计前景点在物体内部的部分位置来从点云中提取识别特征,因为这些部件位置通过指示三维物体表面点的相对位置来隐含地编码三维物体的形状。 另外,部件感知阶段学习估计前景点在对象内部的部分位置,并同时生成3D建议。 针对不同的场景,提出了两种基于点云的三维方案生成策略,即无锚点方案和基于锚点方案。
Point-wise feature learning via sparse convolution
为了分割前景点并估计其在目标中的位置,首先需要学习用于描述原始点云的鉴别点特征。 而不是使用基于点的方法,如[Pointnet],[Pointnet++],[Pointcnn],[Pointweb],[Pointweb]从点云中提取点特征,如上图的左边部分所示,本文提出了一个具有稀疏卷积和反卷积的编解码器网络来学习判别点特征,用于前景点分割和目标内部分位置估计,这比前期工作中使用的PointNet++主干网络更有效。
具体来说,本文将三维空间体素化为规则体素,并通过稀疏卷积和稀疏解卷积的叠加来提取每个非空体素的体素特征,其中每个体素的初始特征简单地计算为每个体素在激光雷达坐标系中点坐标的平均值。 将每个非空体素的中心看作一个点,形成一个具有逐点特征(即体素特征)的新点云,该点云近似于上图中所示的原始点云。与整个三维空间(70m×80m×4m)相比,体素的尺寸要小得多(例如,在本文的方法中为5cm×5cm×10cm)。 对于KITTI数据集中的每个3D场景,3D空间中通常有大约16,000个非空体素。体素化后的点云不仅可以通过基于稀疏卷积的骨干网进行处理,而且在三维目标检测中与原始点云保持近似等价。
本文基于稀疏卷积的骨干网络是基于编解码器结构设计的。 输入特征体的空间分辨率通过一系列步长为2的稀疏卷积层8倍下采样,然后通过稀疏解卷积逐步上采样到原始分辨率,进行体素特征学习。本文新设计的基于三维稀疏卷积的主干比初步的PointRCNN框架中基于PointNet++的主干具有更好的三维框查全率,这表明了这种新主干在点特征学习方面的有效性。
Part-A2的编码器网络结构和SECOND是类似的,都使用了稀疏卷积进行特征提取。不同之处在于,Part-A2使用的是编码器-解码器结构,而SECOND只有编码器部分。
这里有一个疑问:为什么需要解码器? 这主要是因为Part-A2的目标是得到点云的点特征,进行点的语义预测。而SECOND的目标是生成鸟瞰特征图,进行区域提议生成。Part-A2的解码器通过稀疏上采样,将稀疏卷积编码器得到的低分辨率特征图进行上采样恢复分辨率,从而再次得到点特征用于后续预测。
前景点和目标内部部件位置的估计
分割掩码帮助网络区分前景点和背景,而目标内部部件位置为神经网络识别和检测三维目标提供了丰富的信息。 例如,车辆的侧面通常是一个平行于其相应边界框的侧面的平面。 神经网络不仅学习估计前景分割掩码,而且学习估计每个点的目标内部分位置,从而发展了推断目标形状和姿态的能力,这对于三维目标检测至关重要。
Formulation of intra-object part location.:如下图所示
将每个前景点的目标内部件位置表示为其所在的三维地面真值边界框中的相对位置。 将三个连续值(x(part),y(part),z(part))表示为前景点(x§,y§,z§)的目标物内部分位置,其计算如下
其中(x©,y©,z©)是盒子的中心,(h,w,l)是盒子的大小(高度,宽度,长度),θ是鸟瞰中的盒子方位。 前景点x(part),y(part),z(part)的相对部分位置是[0,1],因此物体中心的部分位置是(0.5,0.5,0.5)。 注意,物体内定位坐标系遵循Kitti的全局坐标系的类似定义,其中z方向垂直于地面,x和y平行于水平面。
Learning foreground segmentation and intra-object part location estimation.:如上图所示,给定上述基于稀疏卷积的主干,在编解码器主干的输出特征中添加两个分支,用于分割前景点并预测它们在目标内部的位置。 两个分支都利用Sigmoid函数作为最后一个非线性函数来产生输出。 由于目标内部件位置是在训练阶段才在前景点上定义和学习的,所以前景点的分割得分反映了预测目标内部件位置的置信度。 由于在大规模的室外场景中,前景点的数目通常比背景点的数目少得多,本文采用了focal loss来计算点分割损失Lseg来处理类不平衡问题:
其中p是单个三维点的预测前景概率,本文使用原始论文中的αt=0.25和γ=2。 在训练中,地面真值框内的所有点都被用作正点,其他点被视为负点。
为了估计每个前景点的目标内部分位置(表示为(x(part),y(part),z(part)),因为它们在[0,1]之间有界,本文将二进制交叉熵损失应用于每个前景点,如下所示
其中~U(part)是来自网络输出的预测的对象内部分位置,U(part)是对应的地面真值框对象内部分位置。 注意,部件位置估计仅针对前景点进行。
3D proposal generation from point cloud
在第二阶段,为了将预测到的目标内部件位置和学习到的点域三维特征聚合起来,提高三维目标检测的性能,需要生成三维建议来对属于同一目标的前景点进行分组。 在这里,本文研究了两种基于点云的三维方案生成策略,即无锚方案和基于锚方案,以处理不同的场景。 无锚策略具有更高的记忆效率,而基于锚的策略以更高的记忆代价获得了更高的查全率。
Anchor-free 3D proposal generation.:本文的模型用这种策略表示为Part-A2-free。 提出了一个类似于初步的PointRCNN的新方案,以自下而上的方式生成3D提案。 如上图左边部分所示,在稀疏卷积主干的解码器中添加一个额外的分支,根据预测的前景点生成三维建议。
但是,如果直接从每个前景点估计目标的中心位置,则回归目标的变化范围会很大。 例如,对于位于物体拐角处的前景点,其相对于物体中心的偏移量要比位于物体侧面的前景点的偏移量大得多。 如果直接预测相对偏移。 每一个具有常规回归损失的前景点(例如,L1或L2损失),损失将由角落前景点的误差主导。
针对回归目标变化幅度大的问题,提出了基于bin的中心回归损失。 如图所示
将每个前景点周围的鸟瞰区域沿x和y轴划分为一系列离散的空间,将每个轴的搜索范围s划分为均匀长度δ的空间,该空间表示x-y平面上不同的目标中心(x,y)。 本文观察到,在x和y轴上进行交叉熵损失的基于bin的分类,而不是直接进行smooth L1损失的回归,结果是更准确和鲁棒的中心定位。 为了在分配到每个X-Y单元后细化小的定位,还估计了小的残差。 因此,X轴或Y轴的总体回归损失由分类损失和分类的分类箱内的剩余回归损失组成。 对于垂直Z轴上的中心位置Z,由于大多数物体的Z值一般在很小的范围内,本文直接利用smooth L1损失进行回归。 因此,可以将对象中心回归目标表述为
其中δ是bin大小,s是搜索范围,(x§,y§,z§)是感兴趣的前景点的坐标,(x©,y©,z©)是其对应对象的中心坐标,bin§x和bin§y是地面真值bin分配,res§x和res§y是在分配的bin内进行进一步位置细化的地面真值残差。
由于本文提出的自下而上的建议生成策略是无锚点的,所以它没有框定向的初始值。 因此,本文直接将方向2π划分为离散的Bin,其Bin大小为W,并计算Bin分类目标Bin§θ和残差回归目标Res§θ为
因此,总的3D边界框回归损失Lbox可以表述为
在推理阶段,首先选择预测置信度最高的BIN中心,然后将预测残差相加,得到回归的X、Y、θ。
基于这种无锚策略,本文的方法不仅充分挖掘了点云中的三维信息进行三维方案生成,而且通过限制三维方案只能由前景点生成,避免了在三维空间中使用大量预定义的三维锚框。
Anchor-based 3D proposal generation.:本文的模型用这种策略表示为part-a2-anchor。 stage-I在上图基于稀疏卷积的编码器取形状为M×N×H的体素化点云,生成具有H/16×D特征通道的8次X和Y轴向下采样的M/8×N/8二维鸟瞰图,其中H/16表示特征体积沿Z轴16次下采样,D表示每个编码特征体素的特征维数,“×D”表示将每个不同高度的X-Y鸟瞰图位的特征串联得到一维特征向量。 然后,我们将类似于[Second]的区域建议网络(RPN)头部附加到上面的鸟瞰特征图上,用于使用预定义的3D锚点生成3D建议。 每个类具有2×M/8×N/8个预定义锚点,每个类具有指定的锚点大小,其中鸟瞰特征图上的每个像素都有一个平行于x轴和一个平行于y轴的锚点。 每个类都有自己的预定义锚,因为不同类的对象大小差异很大。 例如,在KITTI数据集中,对汽车使用(L=3.9,W=1.6,H=1.56)米,对行人使用(L=0.8,W=0.6,H=1.7)米,对骑自行车的人使用(L=1.7,W=0.6,H=1.7)米。
通过计算二维鸟瞰(IOU)将锚点与地面真值框联系起来,其中汽车、行人和骑自行车的正IOU阈值分别为0.6、0.5、0.5和0.45、0.35、0.35。 在鸟瞰特征图上添加两个核大小为1×1×1的卷积层,用于建议分类和框回归。 使用focal loss类似于对于锚点打分,对正锚点直接采用基于残差的回归损失。 在这里,本文直接采用常用的smooth L1损失进行回归,因为锚点与相应的地面真值框之间的中心距离由于IOU阈值的影响通常在比无锚点策略更小的范围内。 利用候选锚点(x(a),y(a),z(a),h(a),w(a),l(a),θ(a))和目标地面真值(x(gt),y(gt),z(gt),h(gt),w(gt),l(gt),θ(gt)),将中心、角度和尺寸的残差盒回归目标定义为
其中定向目标编码为sin(θ(gt)−θ(a)),以消除定向循环值的模糊性。但由于该方法将两个相反方向编码成相同的值,所以我们对[7]中的鸟瞰feature map采用额外的核大小为1 × 1 × 1的卷积层对两个方向相反的方向进行分类,其中方向目标的计算方法如下:θ(gt)为正时,方向目标为1,否则方向目标为0(注意θ(gt)∈[−π, π))。我们使用类似于式(3)的交叉熵损失对方向方向进行二值分类,记为项Ldir。则整体三维包围盒回归损失Lbox可表示为
其中,ΔRes(a)是候选锚点的预测残差,ΔRes(a)是计算相应地面真值目标。且损失权重β=0.1。 请注意,方块回归损失Lbox仅应用于正锚点。
Discussion of the two 3D proposal generation strategies.:这两种三维提案生成策略各有其优点和局限性。 所提出的无锚点策略通常重量轻,内存效率高,因为它不需要在三维空间中的每个空间位置评估大量的锚点。 由于三维目标检测中的不同类别通常需要不同的锚方框,因此多类目标检测的效率更明显,而无锚方框方案可以共享多类目标的点状生成特征。 第二种基于锚点的建议生成策略通过对每个类的预定义锚点覆盖整个鸟瞰特征图,实现了略高的查全率,但参数较多,对GPU内存的要求较高。
RoI-aware point cloud feature pooling
在给定预测的目标内部件位置和三维方案的情况下,本文的目标是通过聚合同一方案内所有点的部件信息和学习到的点特征来进行框打分和方案精化。 在这一小节中,首先引入了标准变换来减少不同三维方案的旋转和位置变化的影响,然后提出了感兴趣区域感知的点云特征池化模块来消除以往点云池操作的歧义性,并对三维方案的位置特征进行编码,用于框精化。
Canonical transformation.:本文观察到,如果在一个标准坐标系中对框细化目标进行归一化,那么在接下来的框细化阶段可以更好地估计它。 本文将属于每个方案的集合点转换到相应三维方案的单个正则坐标系中。 一个三维方案的正则坐标系表示:(1)原点位于箱形方案的中心; (2)局部X和Y轴近似平行于地平面,X指向建议的头部方向,另一个Y轴垂直于X; (3)Z轴与全球坐标系的Z轴保持不变。 通过适当的旋转和平移,所有集合点的方框建议的坐标P应转换到正则坐标系为~P。 将正向三维方案及其对应的地面真值三维方框转换到正则坐标系,计算残差回归目标,进行方框细化。 所提出的标准坐标系基本上消除了不同三维方案的旋转和位置变化,提高了后期方块位置细化的特征学习效率。
RoI-aware point cloud feature pooling.:本文的前期工作PointRCNN中的点云池化操作只是将对应点位置在3D方案内部的3D方案中的点向特征池化。 第二阶段通过PointNet++编码器对所有内部点的特征进行聚合,以细化方案。 然而,本文观察到这种操作丢失了很多三维几何信息,并在不同的三维方案之间引入了歧义。 不同的提议导致相同的集合点。 相同的池特性会给接下来的细化阶段带来不利影响。
因此,本文提出了感兴趣区域感知点云池模块,将每个3D方案均匀地划分成具有固定空间形状(Lx×Ly×Lz)的规则体素,其中Lx、Ly、Lz是3D方案每个维度的池分辨率的整数超参数(例如,本文的框架采用14×14×14),并且与不同的3D方案大小无关。
Stage-II: Part location aggregation for confidence prediction and 3D box refinement
通过考虑从Stage-I开始的一个3D Box Propsoal中预测的对象内部件位置的空间分布和学习到的逐点零件特征,将所有信息聚集在一个建议中进行Box建议的评分和细化是合理的。 基于集合的三维特征,本文训练一个子网络来稳健地聚合信息来评分框建议并细化它们的位置。
Fusion of predicted part locations and semantic part features.:预测的目标内部件位置和语义部件特征的融合。如上图右侧所示,本文采用了提出的RoI-aware点云池化模块来获取每个3D候选框的判别特征。设b表示单个3D候选框,对于其内部点(具有规范化坐标X = {(x(ct)i, y(ct)i, z(ct)i) ∈ R^3, i ∈ 1, · · · , n}) ,
本文将F1 = {(x(part)i, y(part)i, z(part)i, si) ∈ R^4, i ∈ 1, · · · , n}表示其预测的点级部件位置和语义分数(来自第一阶段),将F2 = {f(sem)i ∈ RC, i ∈ 1, · · · , n}表示由主干网络学习到的点级语义部件特征。这里n是候选框b内部点的总数。然后,候选框b的部件特征编码可以表示为Q(part) = RoIAwareAvgPool(X, F1, b)。
通过将预测的目标内部件位置和学习到的语义部件特征进行融合,可以获得每个候选框的综合部件特征表示。这种融合能够更好地编码候选框的几何特征,并通过聚合信息来提高候选框的质量。在第二阶段,本文通过训练一个子网络来聚合候选框内的信息,以对候选框进行打分和位置细化。通过利用汇聚的3D特征,能够更准确地预测目标的位置和得分。总的来说,通过融合预测的目标内部件位置和学习到的语义部件特征,能够提高候选框的质量和准确性,并在KITTI 3D目标检测数据集上取得最先进的性能。
Sparse convolution for part information aggregation:使用稀疏卷积进行部件信息聚合。对于每个3D候选框,需要聚合来自该候选框内所有空间位置的融合特征Q(roi),以进行稳健的框打分和细化。如上图的右侧所示,本文堆叠了几个3D稀疏卷积层,内核大小为3×3×3,以聚合候选框的所有部件特征,随着感受野的增加。在稀疏卷积层之间插入了一个内核大小为2×2×2,步幅为2的稀疏最大池化,将特征体积下采样到7×7×7,以节省计算成本和参数。最后,将其向量化为一个特征向量(空的体素保持为零),并将其输入到两个分支进行框打分和位置细化。与直接将池化的3D特征体积向量化为特征向量的朴素方法相比,本文的稀疏卷积方法能够更好地编码候选框的几何特征。
总的来说,通过稀疏卷积来聚合预测的目标内部件位置和学习到的语义部件特征。这种方法能够有效地编码候选框的几何特征,并通过聚合信息来提高候选框的质量。
3D IoU guided box scoring.:基于3D IoU的框打分。如上所述,本文应用归一化的3D IoU来评估预测的3D框的质量,该值在最终的非极大值抑制(NMS)操作中用作排名分数,以去除冗余的框。与传统的NMS分类分数相比,本文基于3D IoU的框打分方法在性能上稍微更好。
具体而言,本文定义了一个框打分质量q(a),它是3D候选框与其对应的真实框之间的归一化3D IoU。打分质量q(a)的定义如下:
- 如果IoU > 0.75,则q(a) = 1
- 如果IoU < 0.25,则q(a) = 0
- 否则,q(a) = 2IoU - 0.5
这个打分质量也受到二元交叉熵损失Lscore的监督,类似于方程(3)的定义。实验结果表明,在基于3D IoU的框打分方法下,与传统的基于分类的框打分相比,性能略有提升。
Overall loss
Losses of part-aware stage-I.:部分感知阶段-I的损失函数。对于部分感知阶段-I,损失函数包括三个项,具有相等的损失权重,包括前景点分割的焦点损失,部件位置回归的二元交叉熵损失和3D候选框生成的平滑L1损失,Laware = Lseg + 1/Npos Lpart + λ/Mpos Lbox (14),其中损失权重λ = 2.0,Npos是前景点的总数,Mpos对于Part-A²-free模型来说等于Npos,而对于Part-A²-anchor模型来说是Mpos。
Losses of part-aggregation stage-II.:部分聚合阶段-II的损失函数。对于部分聚合阶段-II,损失函数包括两个项,具有相等的损失权重,包括基于3D IoU的框打分损失和3D框位置的平滑L1损失。整体的损失函数如下所示:Laggregation = Lscore + λ/Mpos Lbox ,其中损失权重λ = 1.0,Mpos是前景点的总数。
具体而言,基于3D IoU的框打分损失用于评估预测的3D框的质量,并在最终的非极大值抑制(NMS)操作中用作排名分数。损失函数的定义如下:
- 如果IoU > 0.75,则Lscore = -log(q(a))
- 如果IoU < 0.25,则Lscore = -log(1 - q(a))
- 否则,Lscore = -log(2IoU - 0.5)
此外,还使用平滑L1损失来对3D框位置进行回归。这两个损失项都受到相应的监督,以帮助网络学习准确的框打分和位置细化。
Pros and cons.
优点和缺点。本文提出的3D目标检测框架在不同情况下具有一些优缺点。与之前的3D目标检测方法相比,本文的方法有以下优点:
- 首次引入学习目标内部件位置,以提高从点云进行的3D目标检测的性能。
- 通过RoI-aware池化和稀疏卷积有效地聚合部件特征,提高候选框的质量。
- 提出了两种不同的3D候选框生成策略,以处理不同的场景。
- 引入了可微的RoI-aware点云区域池化操作,消除了现有方法中的歧义。
- 通过探索汇聚的部件位置之间的空间关系,学习重新评分和细化框的位置。
实验结果表明,本文的框架在KITTI 3D目标检测基准上优于所有现有的3D检测方法,并且仅使用LiDAR点云数据就能取得最新的最佳性能。本文的主要贡献可以总结为以下四个方面:
- 提出了Part-A² net框架,用于从点云进行3D目标检测,通过使用免费的目标内部件信息来学习判别性的3D特征,并通过RoI-aware池化和稀疏卷积有效地聚合部件特征。
- 提出了两种不同的3D候选框生成策略,以处理不同的场景。基于锚点的策略在内存效率上更高,而不基于锚点的策略具有更高的目标召回率。
- 提出了一种可微的RoI-aware点云区域池化操作,以消除现有方法中的歧义。
- 通过大量实验证明了我们提出的框架的每个组件的性能改进。Part-A² net优于所有现有的3D检测方法,并在KITTI 3D目标检测数据集上取得了最新的最佳性能。
然而,本文的方法也有一些局限性,包括计算和内存消耗较高以及训练时间较长。此外,本文的方法仅使用LiDAR点云数据进行检测,对于其他传感器数据的融合仍需要进一步研究。
结论结论
在本文中,本文将之前的工作PointRCNN扩展为一种新颖的3D检测框架,即部分感知和聚合神经网络(Part-A² net),用于从原始点云中检测3D物体。本文的部分感知阶段-I利用来自地面实况3D框注释的免费内部对象位置标签和前景标签来学习估计准确的内部对象部分位置。同时,3D候选框是通过两种替代策略(无锚点和基于锚点)生成的。每个对象的预测内部部分位置由新颖的RoI-aware点云池化方案汇集。随后的部分聚合阶段-II可以更好地捕捉目标部分的几何信息,以准确评分框并细化其位置。