[CVPR 2019] PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud

零、概要

  • 论文: PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud
  • 标签: CVPR 2019; Lidar detection
  • 代码: https://github.com/sshaoshuai/PointRCNN
  • 作者: Shaoshuai Shi, Xiaogang Wang, Hongsheng Li
  • 机构: CUHK
  • 笔者整理了一个最近几年250多篇点云的论文列表,欢迎大家一块学习交流。

在本文中, 作者提出了PointRCNN用于在原始点云中做3D目标检测。整个框架包括两个阶段: stage-1用于以bottom-up的方式生成3D候选框, stage-2在规范(canonical)坐标系细化候选框, 来获得最终的检测结果。Stage-1子网络通过把点云中的点分割成前景点和背景点, 直接从点云中以bottom-up的方式产生少量的高质量的候选框; Stage-2子网络把stage-1子网络产生的每一个候选框中的points变换到规范坐标系来更好的学习局部空间特征, 并结合stage-1产生的语义特征用于精确的预测框和置信度的细化。PointRCNN仅用点云作为输入, 在KITTI上达到SOTA, 远超其它模型。

一、论文的出发点和贡献

现有的3D Lidar 检测方法分为两大类: (1) 把点云投影到bird’s view, frontal view 或 3D voxels, 这种方法会带来信息损失; (2) 利用2D检测算法提供候选框, 再利用候选框cropped的点云在3D点云中预测3D box, 这种方法依赖于2D检测器的性能, 不能利用3D信息产生候选框。

然而, 直接在无规则的点云中做检测需要面对巨大的搜索空间。作者注意到在无人驾驶的场景中, 3D boxes是彼此分离的, 直接提供了3D语义分割的mask。基于这个观察, 作者提出了直接在点云中做检测的2阶段的3D检测框架PointRCNN。

论文的主要贡献在于: (1) 作者提出了在点云中以bottom-up方式产生候选框的算法; (2) 提出了在规范坐标系下进行3D boxes细化模块; (3) 提出了bin-based box回归; (4) 基于上述3点, 提出的PointRCNN在KITTI数据集中达到了SOTA。

二、论文的方法

在这里插入图片描述

PointRCNN包括连个阶段, 如Figure 2所示, stage-1用于候选框生成, stage-2用于候选框细化和分类

2.1 stage-1: 候选框生成

  • Backbone: Stage-1如Figure 2(a)所示, 它的输入是原始点云, 经过encoder和decoder (论文中采用的是PointNet++), 提取每个point的语义特征 f ∈ R C \mathbf f \in \mathbb R^C fRC
  • 前景点分割head预测每一个point属于前景点的概率。其GT是由gt box决定的: 在3D box中的点认为是前景点, 否则是背景点。
  • 候选框生成head基于每一个前景点预测bbox ( x , y , z , h , w , l , θ ) (x, y, z, h, w, l, \theta) (x,y,z,h,w,l,θ)。为了召回更多的候选框, 作者设计了bin-based的方式预测 x , y x, y x,y的偏移量, 如Figure 3所示, 而不是直接回归 x , y x, y x,y的偏移。

在这里插入图片描述

先看看直接回归 x x x的偏移是如何做的: 设前景点 ( x ( p ) , y ( p ) , z ( p ) ) (x^{(p)}, y^{(p)}, z^{(p)}) (x(p),y(p),z(p))及GT候选框中心点 ( x p , y p , z p ) (x^p, y^p, z^p) (xp,yp,zp), 直接回归 x x x的偏移方式是预测 x p − x ( p ) x^p - x^{(p)} xpx(p)。但这种方式虽然简单, 但也有可能会因为 x p − x ( p ) x^p - x^{(p)} xpx(p)值较大而较难回归。Bin-based预测 x x x的偏移有些类似于对角度 θ \theta θ的预测, 即将偏移量分成多个bins, 每个bin的长度是 δ \delta δ, 判定 x p − x ( p ) x^p - x^{(p)} xpx(p)落在哪个bin(分类)及相对于这个bin的残差(回归)。因此对 ( x , y , z ) (x, y, z) (x,y,z)偏移量预测的真值如下公式(2)所示。

在这里插入图片描述

对于 ( h , w , l ) (h, w, l) (h,w,l)直接回归相对于当前类平均box尺寸的残差项 ( res h ( p ) , res l ( p ) , res w ( p ) ) (\text{res}_h^{(p)}, \text{res}_l^{(p)}, \text{res}_w^{(p)}) (resh(p),resl(p),resw(p)), 角度 θ \theta θ预测方式如 ( x , y ) (x, y) (x,y)类似(bin的分类和回归残差项)。

  • 损失函数:

前景点/后景点的分类采用focal loss:

L f o c a l ( p t ) = − α t ( 1 − p t ) γ l o g ( p t ) , \mathcal L_{focal}(p_t) = -\alpha_t (1 - p_t)^\gamma log(p_t), Lfocal(pt)=αt(1pt)γlog(pt),
对于前景点 p t = p p_t=p pt=p, 对于背景点 p t = 1 − p p_t = 1 - p pt=1p

bbox loss 包括对 ( x , y , θ ) (x, y, \theta) (x,y,θ)的分类和回归损失, 对 ( z , h , w , l ) (z, h, w, l) (z,h,w,l)的归回损失,如公式(3)所示。

在这里插入图片描述

通过stage-1, 我们预测了前景点及对应的box。因为stage-1和stage-2是独立训练的, 所以要选择一些stage-1预测的bboxes去参与stage-2的训练。要注意的是训练和测试的选择要求是不太一样的。训练时, 采用BEV IoU=0.85进行NMS, 选择top 300的boxes; 测试时, 采用BEV IoU=0.8进行NMS, 选择top 100的boxes。

2.2 stage-2: 候选框和置信度细化

在这里插入图片描述

  • 规范坐标系转换 如Figure 4所示, 将每一个候选框及inside points进行坐标系转换: (1) 坐标系的中序在候选框的中心; (2) X, Z轴垂直且地面平行, X指向候选框朝向的方向; (3) Y轴保持不变。原始坐标系下的点 p p p在规范坐标系称为点 p ~ \widetilde p p

  • 局部空间特征 将规范坐标系下的点 p ~ \widetilde p p 与其反射率 r ( p ) r^{(p)} r(p), 是否为前景点 m ( p ) ∈ { 0 , 1 } m^{(p)} \in \left\{0, 1\right\} m(p){0,1},和距离信息 d ( p ) = ( x ( p ) ) 2 + ( y ( p ) ) 2 + ( z ( p ) ) 2 d^{(p)} = \sqrt{(x^{(p)})^2 + (y^{(p)})^2 + (z^{(p)})^2} d(p)=(x(p))2+(y(p))2+(z(p))2 , 结合起来作为初始特征, 经过FC层输出的局部空间特征。

  • box head 对于候选框 ( x , y , z , h , w , l , θ ) (x, y, z, h, w, l, \theta) (x,y,z,h,w,l,θ), 作者考虑其增大的候选框 ( x , y , z , h + η , w + η , l + η , θ ) (x, y, z, h + \eta, w + \eta, l + \eta, \theta) (x,y,z,h+η,w+η,l+η,θ)中的每一个点, 生成当前候选框的特征: 上述局部空间特征同stage-1输出的语义特征 f p \mathbf f^p fp进行cat, 经过小的PointNet++网络输出当前候选框新的特征。基于新特征来细化box和其置信度。预测方式同stage-1, 细节信息不再介绍。

  • 损失函数 除了box的回归损失外, 这里还包括box的分类损失, 因此是两者的损失函数之和。

L refine = 1 ∣ ∣ B ∣ ∣ ∑ i ∈ B F cls ( prob i , label i ) + 1 ∣ ∣ B pos ∣ ∣ ∑ i ∈ B pos ( L ~ bin ( i ) + L ~ res ( i ) ) , \mathcal L_{\text{refine}} = \frac{1}{||\mathcal B||}\sum_{i \in \mathcal B}\mathcal F_{\text{cls}}(\text{prob}_i, \text{label}_i) + \frac{1}{||\mathcal B_{\text{pos}}||}\sum_{i \in \mathcal B_{\text{pos}}} (\widetilde {\mathcal L}_{\text{bin}}^{(i)} + \widetilde {\mathcal L}_{\text{res}}^{(i)}), Lrefine=B1iBFcls(probi,labeli)+Bpos1iBpos(L bin(i)+L res(i)),

B \mathcal B B是候选框的数量, B pos \mathcal B_{\text{pos}} Bpos是GT boxes的3D IoU大于0.55的候选框的数量。

在预测时, 基于BEV IoU=0.01进行NMS操作, 得到最终的boxes。

三、论文的实验

实验都是在KITTI数据集上进行的。

3.1 在KITTI数据集的检测性能比较

在这里插入图片描述

如Table 1所示, PointRCNN在Car和Cyclist数据集均达到SOTA; 在Pedestrian弱于RGB+LIDAR的方法, 和LIDAR SOTA的方法相当。

3.2 候选框生成的评估

在这里插入图片描述

作者与其它方法比较了在不同采样候选框数量和IoU阈值时的候选框的召回率, 实验结果如Table 3所示。在采样50个候选, IoU阈值是0.5时, 作者提出方法的候选框召回率达到96.01%; 在采样300个候选框, IoU阈值是0.7时, 候选框的召回率是82.29%。

3.3 消融实验

在这里插入图片描述

  • Stage-2局部空间特征的输入

    Table 4展示了作者每次移除一种输入而保留其它三种输入时模型的性能: CT (canonical transformation)对模型性能影响最大, 没有CT, AP值特别低 (13.68%)。Stage-1里的特征 f ( p ) \mathbf f^{(p)} f(p)也对模型的性能有重要的影响, 如果没有 f p \mathbf f^p fp, A P M AP_M APM也下降了2个多点。Camera信息 d ( p ) d^{(p)} d(p)和seg mask m ( p ) m^{(p)} m(p)对模型有轻微的影响。

  • Stage-2里 η \eta η的大小

    Table 5展示了不同的 η \eta η值对模型性能的影响。 η = 0 \eta=0 η=0时, 在hard cases模型下降较多, 作者推测原因可能是hard cases由于遮挡或者较远导致proposal中有较少的点, 因此需要更多的上下文信息。 η = 1.0 m \eta=1.0m η=1.0m时模型的性能达到最佳。 η \eta η太大时, 模型的性能也开始下降, 这是因为proposal中将会包括更多的噪声点。

  • 框回归的损失函数

在这里插入图片描述

作者比较了不同的框回归损失函数对于stage-1候选框召回率(IoU=0.5和0.7)的影响, 如Figure 5所示, 可以看到作者提出的bin-based loss (BB-loss)收敛的更快, 更好。

四、总结

  • 作者提出了2阶段的PointRCNN, 将原始点云作为输入, stage-1预测前景点和候选框, stage-2对候选框和置信度进行细化。
  • 作者将bin-based loss应用到了框的回归。
  • 论文内容殷实, 但stage-1和stage-2是分开训练的, 而且tricks有些多。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值