Abstract
我们在本文中提出PointRCNN用于从原始点云3D目标检测。整个框架由两个阶段组成:stage-用于自下而上 3D proposal生成,stage-2用于规范坐标的细化proposal以获得最终检测结果。我们的第一阶段网络不像以前的方法那样从RGB图像生成proposals或者将点云投影到鸟瞰图或体素中,但直接从点云中分割出少量高质量的3D proposals将整个场景的点云分为前景点和背景。stage-每个子网络将是每个子网络proposal池化点转换为标准坐标,学习更好的局部空间特征,并结合stage-准确的框细化和置信度预测1中学习各点的整体语义特征。在KITTI数据集的3D大量的测试基准实验表明,我们提出的架构仅以点云为输入,优于最先进的方法。该代码可在https://github.com/sshaoshuai/PointRCNN获得。
1. Introduction
深度学习在2D计算机视觉任务取得了显著进展,包括目标检测[8、32、16]和实例分割[6、10、20]等。除了2D除了场景理解,3D自动驾驶和家用机器人等许多真实世界应用的目标检测。尽管最近开发了2D检测算法可以处理图像中的大量视觉变化和背景杂波,但带有点云的三维物体仍然面临着来自3的检测D不规则数据格式的目标自由度和大搜索空间的巨大挑战。
在自动驾驶中,最常用的3D传感器是LiDAR它可以生成3个传感器D点云捕捉场景3D结构。基于点云的3D目标检测的难点主要在于点云的不规则性。最先进的3D要么使用成熟的2D将点云投影到鸟瞰图[14, 42, 17](见图1(a)),再到正视图[4, 38 ],或常规的3D体素[34, 它们不是最好的,在量化过程中会丢失信息。
图1。与最先进的方法进行比较。我们的方法不是从鸟瞰图和前视图[14]或RGB生成图像[25]proposals,它直接从原始点云自下而上生成3D proposals。
Qi等他人没有将点云转换为体素或其他常规数据结构进行特征学习。[26, 28]提出了PointNet,直接从点云数据中学习3D用于点云分类和分割。如图1(b)所示,他们的后续工作[25]将PointNet应用于3D基于从2的目标检测D RGB测试结果中切割的截锥点云估计3D边界框。然而,该方法的性能在很大程度上取决于2D检测性能,不能使用3D产生鲁棒边界框的信息优势proposals。
与2D图像中的目标检测不同,自动驾驶场景中的3D目标是带注释的3D边界框自然分离良好。换句话说,用于3D目标检测的训练数据直接为3D目标分割提供语义掩码。D检测和2D检测训练数据的关键区别。D在目标检测中,边界框只能为语义分割提供弱监督[5]。
基于这一观察,我们提出了一个新颖的两阶段3D名为目标检测框架PointRCNN,它直接对3D操作点云,实现鲁棒和准确3D检测性能(见图1(c))。框架由两个阶段组成,第一阶段旨在自下而上生成3D边界框proposal。通过利用3D边界框生成ground-truth在第一阶段分割前景点,同时从分割点生成少量边界框proposals。这种策略避免了整个3D空间中使用大量的3D锚框,就像以前的方法[43、14、4]所做的那样,节省了大量的计算量。
PointRCNN第二阶段规范3D框细化。在生成3D proposals之后,点云区域池化操作来自池化stage-1.学习点表示。与现有直接估计全局框坐标的3D不同的方法,池化3D点被转换为标准坐标,并与池化点的特征和来自stage-1分割掩码的组合用于学习相对坐标的细化。该策略充分利用了我们强大的第一阶段分割和proposal子网络提供的所有信息。为了学习更有效的坐标细化,我们还提出了一个完整的基础bin的3D框架回归损失proposal产生和细化,消融实验表明它比其他3D框架回归损失收敛更快,召回率更高。
我们的贡献可以概括为三个方面。(1)我们提出了基于自下而上云的新颖3D边界框proposal该算法通过将点云分为前景目标和背景来生成少量高质量的3D proposals。从分割中学到的点不仅擅长生成proposal,而且有助于后期细化框架。(2)规范3D边界框的细化利用我们从stage-高召回率框生成proposals,并在规范坐标中学习预测框坐标的细化,并以鲁棒为基础bin的损失。(3)我们提出的3D检测框架PointRCNN只使用点云作为输入,在KITTI的3D截至2018年11月16日,测试板上所有已发表作品均具有明显优势state-of-theart该方法在所有已发表的作品中排名第一。
2. Related Work
现有的工作是从图像中估计3D边界框。[24, 15]利用3D和2D恢复边界框之间的几何约束3D目标姿态。[1, 44, 23]利用3D目标和CAD模型之间的相似性。陈等人[2, 3]将目标的3D对于预定义的3,几何信息表示为能量函数D评分框架。由于缺乏深度信息,这些作品只能生成粗略的3D检测结果会受到外观变化的极大影响。
最先进的3D目标检测方法提出了各种稀疏3D在点云中学习辨别特征的方法。[4, 14, 42, 17, 41]将点云投影到鸟瞰图中,并使用2D CNN学习点云特征生成3D框。宋等人[34]和周等人将点分组成体素,并使用3D CNN学习体素的特征生成3D框。然而,由于数据量化,鸟瞰投影和体素化遭受信息丢失和3D CNN内存和计算效率低。[25, 使用成熟的2D检测器从图像中生成2D proposals,每个切割图像区域的3D点的大小。然后使用PointNet[26, 学习点云特征328D框估计。然而,在某些只能从3开始D在具有挑战性的情况下,基于2D图像的proposal生成可能会失败。3D框估计步骤无法恢复此类故障。相比之下,我们自下而上的3D proposal生成方法直接从点云生成鲁棒3D proposals,既高效又无量化。
Qi等人没有将点云表示为体素[22、33、35]或多视图格式[27、36、37]。[26]提出了PointNet结构,直接从原点云中学习点特征,大大提高了点云分类和分割的速度和准确性。后续工作[28, 12]考虑到点云中的局部结构,提取的特性质量进一步提高。我们的工作将基于点的特征提取器扩展到3D点云的目标检测产生了一个新的三阶段D检测框架直接从原始点云生成3D框proposals检测结果。
3. PointRCNN for Point Cloud 3D Detection
本节将介绍我们提出的两阶段检测框架PointRCNN,用于从不规则点云中检测3D目标。整体结构如图2所示,自下而上3D proposal生成阶段和规范边界框细化阶段组成。
图2. PointRCNN架构用于从点云3D目标测试。整个网络由两部分组成:(a)从原点云自下而上生成3D proposals。(b)用于在标准坐标中细化3D proposals。
3.1. Bottom-up 3D proposal generation via point cloud segmentation
现有的2D目标检测方法可分为一阶段和两阶段[19, 21, 31, 30, 29更快,但直接估计目标边界框而不需要细化,而两阶段的方法[10, 18, 32, 8]首先生成proposals,并在第二阶段进一步细化proposals和置信度。然而,由于巨大的3D搜索空间和不规则点云格式将两阶段方法从2开始D直接扩展到3D并非易事。AVOD[14]在3D空间中放置80-100k在多个视图中为每个锚收集特征并生成锚框proposals。FPointNet[25]从2D图像生成2D proposals,并根据从2D区域裁剪的3D点估计3D框架可能只错过3D清晰观察空间的困难目标。
我们提出了一个准确的鲁棒3D proposal生成算法是我们基于全场景云分割的第一阶段子网络。我们观察到3D场景中的目标自然分离而不重叠。D目标的分割掩码可以通过它们的3D直接获得边界框注释,即3D框内的3D点被视为前景点。
因此,我们建议自下而上生成3D proposals。具体来说,我们学习分割原始点云的逐点特征,同时从分割的前景点生成3D proposals。基于这种自下而上的策略,我们的方法避免在3D在空间中使用大量的预定义3D并且显著限制了3D proposal搜索空间的生成。实验表明,我们提出的3D框proposal方法比基于3D锚的proposal生成方法实现了更高的召回率。
为了学习描述原始点云的判别式逐点特征,我们使用多尺度分组PointNet [28]作为我们的骨干网络。还有其他替代点云网络结构,如[26, 13]或稀疏卷积[9]VoxelNet它们也可以用作我们的骨干网络。
给定由主干点云网络编码的逐点特征,我们附加一个分割头来估计前景掩码和一个框回归头来生成3D proposals。对于点分割,ground-truth分割掩码自然由3D ground-truth框提供。对于大型户外场景,前景点的数量通常远小于背景点的数量。因此,我们使用焦点损失[19]来处理类不平衡问题:
L focal ( p t ) = − α t ( 1 − p t ) γ log ( p t ) (1) \mathcal{L}_{\text {focal }}\left(p_{t}\right)=-\alpha_{t}\left(1-p_{t}\right)^{\gamma} \log \left(p_{t}\right) \tag{1} Lfocal (pt)=−αt(1−pt)γlog(pt)(1) where p t = { p for forground point 1 − p otherwise \text { where } p_{t}= \begin{cases}p & \text { for forground point } \\ 1-p & \text { otherwise }\end{cases} where pt={ p1−p for forground point otherwise
在训练点云分割期间,我们保持默认设置 α t = 0.25 \alpha_{t}=0.25 αt=0.25和 γ = 2 \gamma=2 γ=2作为原始论文。
正如我们上面提到的,还附加了一个框回归头,用于同时生成自下而上的3D proposals和前景点分割。在训练期间,我们只需要框回归头从前景点回归3D边界框位置。请注意,尽管框不是从背景点回归的,但由于点云网络的感受野,这些点也为生成框提供了支持信息。
一个3D边界框在LiDAR坐标系中表示为 ( x , y , z , h , w , l , θ ) (x, y, z, h, w, l, \theta) (x,y,z,h,w,l,θ),其中 ( x , y , z ) (x, y, z) (x,y,z)是目标中心位置, ( h , w , l ) (h, w, l) (h,w,l)是目标大小, θ \theta θ是鸟瞰的目标方向。为了约束生成的3D框proposals,我们提出了基于bin的回归损失来估计目标的3D边界框。
为了估计目标的中心位置,如图3所示,我们将每个前景点的周围区域沿X轴和Z轴拆分为一系列离散的bin。具体来说,我们为当前前景点的每个X轴和Z轴设置了一个搜索范围S,每个1D搜索范围被划分为长度一致的 δ \delta δ的bin来表示X-Z平面上的不同目标中心 ( x , z ) (x,z) (x,z)。我们观察到,使用基于bin的分类和X轴和Z轴的交叉熵损失,而不是使用平滑L1损失的直接回归,可以实现更准确和鲁棒的中心定位。
X或Z轴的定位损失由两项组成,一项用于沿每个X和Z轴的bin分类,另一项用于分类bin内的残差回归。对于沿垂直Y轴的中心位置y,我们直接利用平滑L1损失进行回归,因为大多数目标的y值都在非常小的范围内。使用L1损失足以获得准确的y值。
因此,定位目标可以表述为 bin x ( p ) = [ x p − x ( p ) + S δ ⌋ , bin z ( p ) = ⌊ z p − z ( p ) + S δ ⌋ \operatorname{bin}_{x}^{(p)}=\left[\frac{x^{p}-x^{(p)}+\mathcal{S}}{\delta}\right\rfloor, \operatorname{bin}_{z}^{(p)}=\left\lfloor\frac{z^{p}-z^{(p)}+\mathcal{S}}{\delta}\right\rfloor binx(p)=[δxp−x(p)+S⌋,binz(p)=⌊δzp−z(p)+S⌋ res u ∈ { x , z } ( p ) = 1 C ( u p − u ( p ) + S − ( bin u ( p ) ⋅ δ + δ 2 ) ) , (2) \operatorname{res}_{u \in\{x, z\}}^{(p)}=\frac{1}{\mathcal{C}}\left(u^{p}-u^{(p)}+\mathcal{S}-\left(\operatorname{bin}_{u}^{(p)} \cdot \delta+\frac{\delta}{2}\right)\right),\tag{2} resu∈{ x,z}(p)=C1(up−u(p)+S−(binu(p)⋅δ+2δ)),(2) res y ( p ) = y p − y ( p ) \operatorname{res}_{y}^{(p)}=y^{p}-y^{(p)} resy(p)=yp−y(p)
其中 ( x ( p ) , y ( p ) , z ( p ) ) \left(x^{(p)}, y^{(p)}, z^{(p)}\right) (x(p),y(p),z(p))是前景兴趣点的坐标, ( x p , y p , z p ) \left(x^{p}, y^{p}, z^{p}\right) (xp,yp,zp)是其对应目标的中心坐标, bin x ( p ) \operatorname{bin}_{x}^{(p)} binx(p)和 bin z ( p ) \operatorname{bin}_{z}^{(p)} binz(p)是沿X和Z轴的ground-truth bin分配, res x ( p ) \operatorname{res}_{x}^{(p)} resx(p) 和 res z ( p ) \operatorname{res}_{z}^{(p)} resz(p)是用于在指定bin内进行进一步位置细化的ground-truth残差,C是用于归一化的bin长度。
方向 θ \theta θ和大小 ( h , w , l ) (h, w, l) (h,w,l)估计的目标与[25]中的目标相似。我们将方向 2 π 2 \pi 2π划分为n个bin,并按照与x或z预测相同的方式计算bin分类目标 bin θ ( p ) \operatorname{bin}_{\theta}^{(p)} binθ(p)和残差回归目标 res θ ( p ) \operatorname{res}_{\theta}^{(p)} resθ(p)。目标大小 ( h , w , l ) (h, w, l) (h,w,l)是通过计算相对于整个训练集中每个类的平均目标大小的残差 ( res h ( p ) , res w ( p ) , res l ( p ) ) \left(\operatorname{res}_{h}^{(p)}, \operatorname{res}_{w}^{(p)}, \operatorname{res}_{l}^{(p)}\right) (resh(p),resw(p),resl(p))直接回归的。
图3.基于bin的定位示意图。每个前景点沿X轴和Z轴的周围区域被分成一系列bin以定位目标中心。
在推理阶段,对于基于bin的预测参数 x , z , θ x, z, \theta x,z,θ,我们首先选择预测置信度最高的bin中心,并添加预测残