【3D目标检测】PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud


前言

1. 为什么要做这个研究?
之前的方法做3D目标检测通常都是将点云投影到BEV视图或者正面图,又或者投射到体素中,效率比较低下。
2. 实验方法是什么样的?
PointRCNN分为两个阶段:
Stage-1:

  • 通过PointNet++提取全局点云的特征;
  • 进行前景分割(使用Focus Loss),并从前景点回归粗粒度的bounding box;
  • 在bounding box的生成中,使用bin-based方法回归损失估计bounding box的中心点;
  • bin-based方法是对每个前景点都以其为原点构建X-Z坐标系,预测bounding box中心点在哪一个bin里面,再对其进行精确地残差回归。
  • 基于BEV图做NMS去除冗余的bounding box,训练阶段只保留300个进入stage-2。

Stage-2:

  • 扩大Stage-1输入的bounding box,保留扩大框中的点和特征;
  • 将每个bounding box通过正交变换转到以自身中心为原点的local坐标系,以便更好地学习bounding box中的局部空间信息;
  • 使用PointNet++的SA module提取特征,得到最后每个点的特征向量,进行置信分类和box微调;
  • 同样使用bin-based方法进行proposal回归。

3. 创新与不足

  • 第一个只使用原始点云的two-stage anchor free 3D目标检测模型;
  • 通过语义分割获取前景点并回归proposal,避免了在整个3D空间搜索proposal;
  • 使用bin-based回归loss,提高了网络的收敛速度和准确率;
  • 对每个proposal使用正交转换,这样box微调阶段可以更好地学习局部空间特征;
  • 不足: 大规模点云上使用PointNet++比较慢。

摘要

PointRCNN是一个用于原始点云的3D目标检测模型,整个框架由两个阶段组成:stage-1为自底向上的3D候选框生成阶段,stage-2在规范坐标下微调proposal获得最终的检测结果。不同于之前的通过RGB图像生成候选框或者将点云投射到BEV图或体素上,PointRCNN的stage-1通过将整个场景的点云分割成前景点和背景点,以自下而上地方式从点云中生成少量高质量的3D候选框。Stage-2将每个候选框的池化点转换到正交坐标系,更好地学习局部空间特征,并与stage-1学习的每个点的全局语义特征相结合,实现Box优化和置信度预测。在KITTI数据集的3D检测基准实验中表明,PointRCNN仅使用点云作为输入,结果SOTA。
论文链接:https://arxiv.org/abs/1812.04244
代码链接:https://github.com/sshaoshuai/PointRCNN

1. 介绍

由于3D目标的不规则数据格式和6自由度(DoF)搜索空间大,利用点云检测3D目标仍然面临巨大挑战。之前的方法或是将点云投影到BEV视图、正面视图,或是投射到规则的3D voxel中,而PointRCNN直接从原始点云自下而上地生成3D候选框。
在这里插入图片描述
不同于2D图像,用于3D目标检测的训练数据直接为3D目标分割提供了语义掩码。基于此观测结果,PointRCNN在stage-1自下而上地生成3D候选框,利用3D bounding box 生成 ground-truth 分割掩模。Stage-1对前景点进行分割,并从分割点同时生成少量的候选框。该策略避免了以往方法在整个3D空间中使用大量的3D锚盒,节省了计算量。
Stage-2进行规范3D box改进,生成3D候选框后,采用点云区域池化操作将stage-1中学习到的点表示进行池化。与现有的直接估计全局盒坐标的3D方法不同,合并后的3D点被转x换为规范坐标,并与合并后的点特征以及stage-1的分割掩码相结合,学习相对坐标细化。提出了基于全箱的3D box回归损耗来生成和细化候选框。
贡献:

  • 提出了一种新颖的自底向上的基于点云3D候选框生成算法,该算法将点云分割为前景对象和背景,生成少量高质量的3D候选框。从分割中学习到的点表示不仅善于生成候选框,而且对后续的box优化也有帮助。
  • 提出的规范3D边界框利用了stage-1生成的高召回盒提案,并在带有高鲁棒性的基于区域的损失的规范坐标中学习优化框坐标。
  • PointRCNN仅使用点云作为输入。

2. PointRCNN算法框架

2.1 Bottom-up 3D proposal generation via point cloud segmentation

2D目标检测算法中,one-stage方法通常更快,直接估计目标的边界框而没有微调;two-stage方法在第二阶段微调proposals和confidence。然而,由于3D搜索空间非常大和点云的不规则格式,直接将two-stage方法从2D拓展到3D不太合适。
AVOD在3D空间放置80-100k个anchor boxes,并在多个视图中对每个anchor池化特征生成proposals。
FPointNet从2D图像中生成2D proposals,并根据从2D区域裁剪出来的3D点估计3D boxes,但这样可能会漏掉只能从3D空间清晰观察到的物体。
在这里插入图片描述
作者提出了基于全场景点云分割的3D proposals生成算法。在3D场景中,物体是自然分开的,相互没有重叠。所有3D物体的分割掩码都可以通过其3D边界框注释直接获得,即将3D框内的3D点视为前景点。该算法逐点学习特征分割原始点云,并从分割好的前景点中生成3D proposals,这样就避免了在3D空间中使用大量预定义的3D boxes,极大地限制了3D proposals生成的搜索空间,提高召回率。
Learning point cloud representations
使用多尺度分组的PointNet++作为骨干网络,也可以选择VoxelNet。
Foreground point segmentation
同时进行前景分割和3D proposals生成,考虑到主干点云网络编码的逐点特征,添加了一个用于估计前景掩码的分割头和一个用于生成3D proposals的box回归头。对于点云分割,ground-truth分割掩模由3D ground-truth box提供。对于大型户外场景,前景点的数量通常比背景点的数量要小得多。因此,作者使用焦点损失来处理类不平衡问题。焦点损失减少了简单示例的损失贡献,并加强了对纠正错误分类示例的重视。
在这里插入图片描述
训练点云分割时,默认设置 α = 0.25 , γ = 2 \alpha=0.25, \gamma=2 α=0.25,γ=2
Bin-based 3D bounding box generation
之前已经分割出前景点了,box回归头直接从前景点回归3D proposals位置。尽管没有从背景点回归box,但由于点云网络的感受野,这些背景点也为生成box提供了支持信息。
3D边界框在LiDAR坐标系中表示为 ( 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)为物体大小, θ \theta θ为物体从鸟瞰角度的方向,也就是偏航角。针对proposals中心点的定位,作者提出了bin-based方法。
在这里插入图片描述
对于每一个分割出的前景点,都对其X-Z坐标系构建一个网格,单方向搜索范围为S,每一格等长为 δ \delta δ,这样就可以初步预测中心点在哪一个bin里面,再对其进行精确地残差回归。Y轴由于比较扁平,因此可以直接使用smooth L1 loss回归。
在这里插入图片描述
( x ( p ) , y ( p ) , z ( p ) ) (x^{(p)},y^{(p)},z^{(p)}) (x(p),y(p),z(p))是感兴趣的前景点的坐标;
( x p , y p , z p ) (x^p,y^p,z^p) (xp,yp,zp)对应物体的中心坐标;
b i n x ( p ) , b i n z ( p ) bin_x^{(p)},bin_z^{(p)} binx(p),binz(p)是X、Z轴上的ground-truth bin;
r e s x ( p ) , r e s z ( p ) res_x^{(p)},res_z^{(p)} resx(p),resz(p)是在被分配的bin中做进一步定位微调的ground-truth残差;
C是归一化的bin长度。
训练及损失函数
在实验过程中,对于基于bin的预测参数 x、z、 θ \theta θ,首先选择置信度最高的bin中心点,再使用smooth L1 loss回归长宽高和y值。在训练时,采用0.85 IoU的NMS去除BEV图上的proposals,只保留前300进入stage-2的模型(测试的时候只保留前100)。
不同的训练损失项下的整个3D边界框的回归损失 L r e g L_{reg} Lreg可表示为:
在这里插入图片描述
N p o s N_{pos} Npos是前景点的数量;
b i n u ^ ( p ) , r e s u ^ ( p ) \widehat{bin_u}^{(p)},\widehat{res_u}^{(p)} binu (p),res

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值