(TPAMI 2020) Part-A^2 Net
时间:2023-09-14 08:07:02
Abstract
LiDAR点云的3D目标检测是3D场景理解是一个具有挑战性的问题,有许多实际应用。在本文中,我们将初步工作PointRCNN基于点云的新颖而强大的3D目标检测框架,即部分感知和聚合神经网络(Part- A 2 A^2 A2网络)。整个框架由部分感知阶段和部分聚合阶段组成。首先,部分感知阶段首次充分利用3D ground-truth框派生的free-of-charge部分监督,同时预测高质量3D proposals以及目标内部的准确位置。同一proposal我们新设计的预测目标的内部位置RoI感知点云池模块分组,从而有效地对每个3表示D proposal编码具体的几何特征。然后,部分聚合阶段通过探索池化的目标内部分位置的空间关系来学习对框进行重新评分并细化框位置。为了证明我们提出的框架各组件的性能改进,进行了广泛的实验。我们的Part- A 2 A^2 A2网络优于所有现有的3D只使用检测方法和检测方法LiDAR点云数据在KITTI 3D目标检测数据集上实现了新的最新技术。代码可在https://github.com/sshaoshuai/PointCloudDet3D获得。
索引词: 3D目标检测,点云,part location、激光雷达、卷积神经网络、自动驾驶。
1 INTRODUCTION
对自动驾驶和机器人技术的需求激增,3D[1]、[2]、[3]、[4]、[5]、[6]、[7]、[8]、[9]、[10]、[11]、[12]、[13]。虽然在图像[14]、[15]、[16]、[17]、[18]、[19]、[20]、[22]、[23]、[24]中检测2D在目标方面取得了显著的成就,但这些2是直接实现的D检测方法扩展到3D由于3D场景点云数据具有不规则的数据格式,点云的3D不规则数据格式和3D目标6自由度(DoF)大搜索空间的巨大挑战。
现有的3D探索了几种应对这些挑战的方法。有些作品[6],[25],[26]D检测器从图像中检测到2D然后使用框架PointNet[27]和[28]直接从原始图像返回切割后的点云3D框的参数点云。然而,这些方法严重依赖于2D目标检测器的性能,不能使用3D产生鲁棒边界框的信息优势proposals。从鸟瞰图投影点云创作其他作品[1]、[4]、[5]、[10]和[11]D鸟瞰密度图,2D卷积神经网络(CNN)这些特征图用于3D目标检测,但手工制作的特点不能充分利用原点云的3D信息,可能不是最优的。还有一些one-stage 3D目标检测器[7],[9],[29]3D空间分为规则3D并应用3D CNN或3D稀疏卷积[30],[31]提取3D将特征和最终压缩成鸟瞰图D目标检测。3没有充分利用这些工作D提高框注释中的所有可用信息3D性能测试。例如,3D框架标记还暗示每个3D目标内的点分布有利于学习更多的判断特征,提高3D性能的目标检测。另外,这些作品都是one-stage不能使用检测框架RoI汇集每一个池化方案proposal为了在第二阶段细化框架。
相比之下,我们提出了一个新颖的two-stage 3D目标检测框架,即部分感知和聚合神经网络(即Part- A 2 A^2 A2网络),它直接在3D运行点云,实现最先进的3D通过从训练数据中充分探索信息丰富的3D框注释。我们的主要观察结果是2D图像中的目标检测不同,自动驾驶场景中的3D目标是带注释的3D边界框自然分离良好,这意味着3D自动提供框注释的训练数据free-of-charge语义掩码,甚至3D ground truth各前景点各前景点的相对位置(见图1说明)。在本文的其余部分中,每个前景点相对于它所属的目标框的相对位置表示为目标内部分位置。这与2D图像中的框标记完全不同,因为2D图像中目标的某些部分可能些部分。使用ground-truth 2D边界框将为目标中的每个像素产生不准确和嘈杂的内部位置。这些3D目标内部部件暗示3D目标的3D点分布。这种3D目标内部信息丰富,可免费获得,但从未在3D探索了目标检测。
图1. 我们提出的部分感知和聚合网络的部分感知和聚合网络也能准确预测目标的内部位置。part locations可以帮助准确的3D目标测试。通过我们提出的方法预测的目标内部位置可视化为八个角的插值颜色。
受此观察的启发,我们提出Part- A 2 A^2 A2网络被设计为一种新颖的两阶段3D检测框架,该框架由部分感知阶段(Stage-I)组成,用于预测准确的目标内部分位置和学习逐点特征,以及部分聚合阶段(Stage-II)用于聚合部分信息以提高预测框的质量。我们的方法生成用 ( x , y , z , h , w , l , θ ) (x, y, z, h, w, l, \theta) (x,y,z,h,w,l,θ)参数化的3D边界框,其中 ( x , y , z ) (x, y, z) (x,y,z)是框的中心坐标, ( h , w , l ) (h, w, l) (h,w,l)是高度、宽度和每个框的长度, θ \theta θ是从鸟瞰角度看每个框的方位角。
具体来说,在part-aware stage-I中,网络学习分割前景点并估计所有前景点的目标内部分位置(见图1),其中分割掩码和ground-truth部分位置注释直接从ground-truth 3D框注释生成。此外,它还从原始点云生成3D proposals,同时进行前景分割和部分估计。我们研究了两种策略,即anchor-free v.s.基于锚的策略,用于3D proposal生成以处理不同的场景。anchor-free策略相对轻量级,内存效率更高,而基于锚的策略以更多的内存和计算成本实现更高的召回率。对于anchor-free策略,我们建议通过分割前景点并同时从预测的前景点生成3D proposals,以自下而上的方案直接生成3D边界框proposals。由于它避免了像以前的方法[4]、[29]那样在整个3D空间中使用大量3D锚框,因此节省了很多内存。对于基于锚的策略,它从下采样的鸟瞰特征图生成3D proposals,在每个空间位置具有预定义的3D锚框。由于它需要在每个位置放置多个具有不同方向和类别的3D锚点,因此需要更多内存但可以实现更高的目标召回率。
在现有的two-stage检测方法的第二阶段中,需要通过一定的池化操作来聚合3D proposals中的信息,以进行后续的框重新评分和位置细化。然而,之前的点云池化策略(在我们的初步PointRCNN[32]中使用)会导致表示不明确,因为不同的proposals最终可能会池化同一组点,这会失去对proposals的几何信息进行编码的能力。为了解决这个问题,我们提出了一种新颖的可微分RoI感知点云池化操作,它将来自非空体素和空体素的所有信息保留在proposals中,以消除先前点云池化策略的模糊性。这对于获得框评分和位置细化的有效表示至关重要,因为空体素也对框的几何信息进行编码。
stage-II旨在通过提议的RoI感知池聚合stage-I的池化部分特征,以提高proposals的质量。我们的stage-II网络采用稀疏卷积和稀疏池化操作逐步聚合每个3D proposal的池化部分特征,以进行准确的置信度预测和框细化。实验表明,聚合的部分特征可以显着提高proposals的质量,我们的整体框架在KITTI 3D检测基准上实现了最先进的性能。
我们的主要贡献可以概括为四方面。(1)我们提出了用于从点云进行3D目标检测的Part- A 2 A^2 A2网络框架,该框架通过使用free-of-charge的目标内部分信息来学习有区别的3D特征并通过有效聚合部分特征来提高3D检测性能具有RoI感知池和稀疏卷积。(2)我们提出了两种3D proposal生成策略来处理不同的场景。anchor-free策略的内存效率更高,而基于锚的策略导致更高的目标召回率。(3)我们提出了一种可区分的RoI感知点云区域池化操作,以消除现有点云区域池化操作中的歧义。实验表明,池化特征表示显着有利于框细化阶段。(4)截至2019年8月15日,我们提出的Part- A 2 A^2 A2网络在具有挑战性的KITTI 3D检测基准[33]上以14 FPS的推理速度以显着的优势优于所有已发表的方法,这证明了我们方法的有效性。
2 RELATED WORK
从2D图像中检测3D目标。 现有几项关于从图像估计3D边界框的工作。[34]、[35]利用3D和2D边界框之间的几何约束来恢复3D目标姿态。[36]、[37]、[38]、[39]利用3D目标和CAD模型之间的相似性。陈等人[40]、[41]将目标的3D几何信息表示为能量函数,以对预定义的3D框进行评分。库等人[42]提出了聚合损失以提高单目图像的3D定位精度。最近[43]、[44]探索了立体图像对以提高立体相机的3D检测性能。由于缺乏准确的深度信息,这些工作只能生成粗略的3D检测结果,并且会受到外观变化的严重影响。
来自多个传感器的3D目标检测。 几种现有的方法已经致力于融合来自多个传感器(例如,激光雷达和相机)的信息,以帮助3D目标检测。[1]、[4]将点云投影到鸟瞰图,并分别从鸟瞰图和图像中提取特征,然后通过将3D proposals投影到相应的2D特征图进行裁剪和融合,以进行3D目标检测。[5]通过提出连续融合层将图像特征融合到鸟瞰特征进一步探索了特征融合策略。与将点云投影到鸟瞰图不同,[6]、[25]利用现成的2D目标检测器首先检测2D框以裁剪点云,然后应用PointNet[27]、[28]提取来自裁剪点云的特征用于3D框估计。这些方法在实际应用中可能存在多个传感器的时间同步问题。与这些传感器融合方法不同,我们提出的3D检测框架Part- A 2 A^2 A2网络可以通过仅使用点云作为输入来实现相当甚至更好的3D检测结果。
图2.我们用于3D目标检测的部分感知和聚合神经网络的总体框架。它由两个阶段组成:(a)part-aware stage-I首次预测目标内部分位置,并通过将点云馈送到我们的编码器-解码器网络来生成3D proposals。 (b) part-aggregation stage-II进行提议的RoI感知点云池化操作以聚合来自每个3D proposal的部分信息,然后使用part-aggregation网络对框进行评分并根据部件特征和细化位置来自第一阶段的信息。
仅从点云进行3D目标检测。 Zhou等人[29]首次提出VoxelNet架构从点云中学习判别特征并仅用点云检测3D目标。[7]通过引入稀疏卷积[30]、[31]来改进VoxelNet,以实现有效的体素特征提取。[9]、[10]、[11]将点云投影到鸟瞰图,并在这些地图上应用2D CNN进行3D检测。这些方法没有充分利用来自信息丰富的3D框注释的所有可用信息,并且都是one-stage 3D检测方法。相比之下,我们提出的two-stage 3D检测框架Part- A 2 A^2 A2网络探索3D框注释提供的丰富信息,并学习预测准确的目标内部分位置以学习3D目标的点分布,预测的目标内部分位置在第二阶段聚合用于细化3D proposals,这显着提高了3D目标检测的性能。
用于3D目标检测的点云特征学习。 从点云中学习特征以进行3D检测通常有三种方式。(1)[1],[4],[5],[10],[11]将点云投影到鸟瞰图,并利用2D CNN进行特征提取。(2)[6]、[25]进行PointNet[27]、[28]直接从原始点云中学习点云特征。(3)[29]提出了VoxelNet,[7]应用稀疏卷积[30]、[31]来加速VoxelNet进行特征学习。只有第二种和第三种方法有可能提取逐点特征来分割前景点并预测我们框架中的目标内部分位置。在这里,我们设计了一个与UNet[45]类似的编码器-解码器点云骨干网络来提取有区别的逐点特征,它基于3D稀疏卷积和3D稀疏反卷积操作,因为它们比基于点的方法更高效和有效像PointNet++[28]这样的主干。在第4.1.1节中对基于点的主干和基于体素的主干进行了实验和讨论。
3D/2D实例分割。 这些方法通常基于基于点云的3D检测方法。3D实例分割的几种方法基于3D检测边界框,具有用于预测目标掩码的额外掩码分支。Yi等人[46]提出了一种综合分析策略来生成用于3D实例分割的3D proposals。Hou等人[47]将多视图RGB图像和3D点云相结合,以更好地生成建议并以端到端的方式预测目标实例掩码。
其他一些方法首先估计语义分割标签,然后根据学习的逐点嵌入将点分组为实例。Wang等人[48]计算了点之间的相似度,用于对每个实例的前景点进行分组。Wang等人[49]提出了一种语义感知点级实例嵌入策略,以学习更好的语义和实例点云分割特征。Lahoud等人[50]提出了一个掩码任务学习框架来学习特征嵌入和实例中心的方向信息,以便更好地将点聚类到实例中。然而,他们没有像我们提出的方法那样利用free-of-charge的目标内部件位置作为额外的监督。
还有一些通过将像素聚类到实例中来进行2D实例分割的anchor-free方法。Brabandere等人[51]采用判别损失函数将同一实例的像素聚集在特征空间中,而Bai等人[52]提出估计修改后的分水岭能量景观以分离不同实例的像素。然而,这些方法仅将前景像素/点分组到不同的实例中,并没有估计3D边界框。与上述方法不同,我们提出的anchor-free方法估计目标内部分位置并直接从各个3D点生成3D边界框proposals,以实现3D目标检测。
目标检测的Part模型。 基于可变形Part的模型(DPM)[53]在使用深度学习模型之前在2D目标检测方面取得了巨大成功。[54]、[55]、[56]将DPM扩展到3D世界,以推理3D中的部分并估计目标姿势,其中[54]将目标建模为具有可变形面和可变形部分的3D长方体,[55]提出了一种3D DPM,它生成具有连续外观表示的完整3D目标模型,并且[56]提出了与3D CAD模型共享3D part的概念以估计精细姿态。这些基于DPM的方法通常采用几个经过手工特征训练的部分模板来定位目标并估计目标姿态。相比之下,我们将目标部分表示为点云上下文中的逐点目标内部分位置,其中部分位置的训练标签可以直接从3D框注释生成,并且它们隐式编码3D目标的部分分布。此外,目标内部分位置的估计和聚合都是通过更强大的深度学习网络而不是以前的手工方案来学习的。
3 PART- A 2 A^2 A2 NET: 3D PART-AWARE AND AGGREGATION FOR 3D DETECTION FROM POINT CLOUD
这项工作的初步版本在[32]中提出,我们提出PointRCNN用于从原始点云进行3D目标检测。为了使框架更加通用和有效,在本文中,我们将PointRCNN扩展到一个新的端到端3D检测框架,即部分感知和聚合神经网络,即Part- A 2 A^2 A2网络,以进一步提高3D的性能基于点云的目标检测。
关键的观察是,3D目标检测的ground-truth框不仅自动提供准确的分割掩码,因为3D目标在3D场景中自然分离,而且还暗示了ground truth框中每个前景3D点的相对位置。这与2D目标检测非常不同,其中2D目标框可能由于遮挡而仅包含目标的一部分,因此无法为每个2D像素提供准确的相对位置。这些前景点的相对位置编码了前景3D点的有价值信息,有利于3D目标检测。这是因为同一类(如汽车类)的前景目标通常具有相似的3D形状和点分布。前景点的相对位置为框评分和定位提供了强有力的线索。我们将3D前景点相对于其对应框的相对位置命名为目标内部分位置。
这些目标内部分位置为从点云中学习有区别的3D特征提供了丰富的信息,但在以前的3D目标检测方法中从未探索过。有了如此丰富的监督,我们提出了一种新颖的部分感知和聚合3D目标检测器Part- A 2 A^2 A2网络,用于从点云检测3D目标。具体来说,我们建议使用free-of-charge的3D目标内部分位置标签和分割标签作为额外的监督,以在第一阶段学习更好的3D特征。然后在第二阶段聚合每个3D proposal中的预测3D目标内部分位置和逐点3D特征,以对框进行评分并细化它们的位置。总体框架如图2所示。
图3.自动驾驶场景中体素化点云与原始点云的对比。每个非空体素的中心被认为是形成体素化点云的一个点。体素化的点云大致相当于原始点云,并且3D目标的3D形状很好地保留用于3D目标检测。
3.1 Stage-I: Part-aware 3D proposal generation
部分感知网络旨在通过学习估计前景点的目标内部分位置来从点云中提取判别特征,因为这些部分位置通过指示3D目标表面点的相对位置来隐式编码3D目标的形状。此外,部分感知阶段学习估计前景点的目标内部分位置并同时生成3D proposals。提出了两种从点云生成3D proposal的策略,即anchor-free方案和基于锚的方案,以处理不同的场景。
3.1.1 Point-wise feature learning via sparse convolution
为了分割前景点并估计它们的目标内部分位置,我们首先需要学习用于描述原始点云的判别逐点特征。而不是使用[27]、[28]、[57]、[58]、[59]、[60]、[61]等基于点的方法从点云中提取逐点特征,如图所示图2的左侧部分,我们建议利用具有稀疏卷积和反卷积的编码器-解码器网络[30]、[31]来学习用于前景点分割和目标内部分位置估计的判别逐点特征,这更比我们的初步工作[32]中使用的之前的PointNet++主干网络高效且有效。
具体来说,我们将3D空间体素化为规则体素,并通过堆叠稀疏卷积和稀疏反卷积提取每个非空体素的体素特征,其中每个体素的初始特征简单地计算为每个体素内点坐标的平均值LiDAR坐标系中的体素。每个非空体素的中心被认为是一个点,以形成具有逐点特征(即逐点特征)的新点云,这大约相当于原始点云,如图3所示,因为与整个3D空间(~70m×80m×4m)相比,体素尺寸要小得多(例如,在我们的方法中为5cm×5cm×10cm)。对于KITTI数据集[33]中的每个3D场景,3D空间中通常有大约16,000个非空体素。体素化的点云不仅可以通过更有效的基于稀疏卷积的主干进行处理,而且还可以保持与原始点云大致等价,用于3D目标检测。
我们基于稀疏卷积的主干是基于编码器-解码器架构设计的。输入特征量的空间分辨率通过一系列步长为2的稀疏卷积层下采样8倍,然后通过稀疏反卷积逐渐上采样到原始分辨率,以进行体素特征学习。详细的网络结构在第3.5节和图7中进行了说明。我们新设计的基于3D稀疏卷积的主干在我们的初步PointRCNN框架[32]中比基于PointNet++的主干具有更好的3D框召回率(如表1中的实验结果所示),这证明了这种新主干对于逐点特征学习的有效性。
图4.前景点的目标内部分位置示意图。这里我们使用插值颜色来表示每个点的目标内部分位置。
3.1.2 Estimation of foreground points and intra-object part locations
分割掩码帮助网络区分前景点和背景,而目标内部分位置为神经网络识别和检测3D目标提供了丰富的信息。例如,车辆的侧面通常是与其相应边界框的侧面平行的平面。通过学习不仅可以估计前景分割掩码,还可以估计每个点的目标内部分位置,神经网络发展了推断目标形状和姿态的能力,这对于3D目标检测至关重要。
Formulation of intra-object part location. 如图4所示,我们将每个前景点的目标内部分位置表示为其在其所属的3D ground-truth框中的相对位置。我们将三个连续值 ( x ( p a r t ) , y ( p a r t ) , z ( p a r t ) ) \left(x^{(p a r t)}, y^{(p a r t)}, z^{(p a r t)}\right) (x(part),y(part),z(part))表示为前景点的目标目标内部分位置 ( x ( p ) , y ( p ) , z ( p ) ) \left(x^{(p)}, y^{(p)}, z^{(p)}\right) (x(p),y(p),z(p)),可以计算如下
[ x ( t ) y ( t ) ] = [ x ( p ) − x ( c ) y ( p ) − y ( c ) ] [ cos ( θ ) sin ( θ ) − sin ( θ ) cos ( θ ) ] , x ( p a r t ) = x ( t ) w + 0.5 , y ( p a r t ) = y ( t ) l + 0.5 , z ( p a r t ) = z ( p ) − z ( c ) h + 0.5 , (1) \begin{aligned} {\left[x^{(t)} y^{(t)}\right] } &=\left[x^{(p)}-x^{(c)} y^{(p)}-y^{(c)}\right]\left[\begin{array}{cc} \cos (\theta) & \sin (\theta) \\ -\sin (\theta) & \cos (\theta) \end{array}\right], \\ x^{(p a r t)} &=\frac{x^{(t)}}{w}+0.5, y^{(p a r t)}=\frac{y^{(t)}}{l}+0.5, \\ z^{(p a r t)} &=\frac{z^{(p)}-z^{(c)}}{h}+0.5, \end{aligned} \tag{1} [x(t)y(t)]x(part)z(part)=[x(p)−x(c)y(p)−y(c)][cos(θ)−sin(θ)sin(θ)cos(θ)],=wx(t)+0.5,y(part)=ly(t)+0.5,=hz(p)−z(c)+0.5,(1)
其中 ( x ( c ) , y ( c ) , z ( c ) ) \left(x^{(c)}, y^{(c)}, z^{(c)}\right) (x(c),y(c),z(c))是框的中心, ( h , w , l ) (h, w, l) (h,w,l)是框的大小(高度、宽度、长度), θ \theta θ是鸟瞰图中的框方向。前景点 x ( part ) , y ( part ) , z ( part ) ∈ [ 0 , 1 ] x^{(\text {part })}, y^{(\text {part })}, z^{(\text {part })} \in[0,1] x(part ),y(part ),z(part )∈[0,1]的相对局部位置,因此目标中心的局部位置为 ( 0.5 , 0.5 , 0.5 ) (0.5, 0.5, 0.5) (0.5,0.5,0.5)。请注意,目标内位置坐标系遵循与KITTI全局坐标系类似的定义,其中 z z z的方向垂直于地面, x x x和 y y y平行于水平面。
Learning foreground segmentation and intra-object part location estimation. 如图2所示,给定上述基于稀疏卷积的主干,在编码器-解码器主干的输出特征上附加了两个分支,用于分割前景点并预测它们的目标内部分位置。两个分支都使用sigmoid函数作为最后的非线性函数来生成输出。前景点的分割分数表示预测的目标内部分位置的置信度,因为目标内部分位置仅在训练阶段在前景点上定义和学习。由于在大型户外场景中,前景点的数量通常远小于背景点的数量,因此我们采用focal loss[21]来计算点分割损失 L s e g \mathcal{L}_{\mathrm{seg}} Lseg来处理类不平衡问题
L s e g ( p t ) = − α t ( 1 − p t ) γ log ( p t ) where p t = { p for forground points 1 − p otherwise. (2) \begin{aligned} \mathcal{L}_{\mathrm{seg}}\left(p_{t}\right) &=-\alpha_{t}\left(1-p_{t}\right)^{\gamma} \log \left(p_{t}\right) \\ \text { where } p_{t} &= \begin{cases}p & \text { for forground points } \\ 1-p & \text { otherwise. }\end{cases} \end{aligned} \tag{2} 元器件数据手册、IC替代型号,打造电子元器件IC百科大全!