PointRCNN
Abstract
而不是像以前的方法一样,从RGB图像或投影点云到俯瞰图的视图或体素生成proposals. stage-1子网络从点云中以bottom-up的方式将整个场景的点云划分为前景点和背景,进而直接生成一些高质量的3D proposals。stage-2子网络将每个proposal的池化后的点转化到标准坐标系中来学习更好的局部空间特征,这和stage-1中学习到的每个点的全局语义特征相结合进而获得准确的框优化和置信度预测。
Introduction
- 我们提出了一种新的基于自下而上点云的3D边界框提案生成算法,它通过将点云分割成前景对象和背景来生成少量的高质量的3D提案。 从分段中学习到的点表示不仅有利于提案的生成,而且有助于以后的框细化
- 所提出的标准3D包围盒细化利用了我们从第1阶段产生的高分类框提案的优点,并学会了预测具有鲁棒基于bin的损失的标准坐标中的盒坐标细化
PointRCNN for Point Cloud 3D Detection
Bottom-up 3D proposal generation via point cloud segmentation
我们学习点状特征来分割原始点云,并同时从分割的前景点生成3D proposals。 基于这种自下而上的策略,我们的方法避免在3D空间中使用大量预定义的3D框,并显著限制了3D proposals生成的搜索空间。 实验表明,我们提出的3D boxes proposals方法比基于三维锚的提案生成方法具有更高的召回率.
Learning point cloud representations
利用多尺度分组的PointNet++作为我们的backbone 网络.还有一些其他的点云网络架构如F-pointNet, Pointsift或者带有稀疏卷积的VoxelNet作为backbone.
Foreground point segmentation
涉及了以下到上的3D proposals生成方法直接从前向点云生成3D候选框.同时进行前景分割和3D boxes proposals生成.
-
backbone用于编码逐点特征
-
分割头用于评估前向掩码
-
框回归头用于生成3D proposals
-
利用Focal loss来缓解分类不均衡问题
L f o c a l ( p t ) = − α t ( 1 − p t ) r log ( p t ) w h e r e p t = { p f o r f o r g r o u n d p o i n t 1 − p o t h e r w i s e α t = 0.25 r = 2 \begin{aligned} L_{focal}(p_t) = -\alpha_t (1-p_t)^r\log(p_t)\\ where p_t = \left\{ \begin{matrix} p \qquad for \quad forground \quad point\\ 1-p \qquad otherwise \end{matrix} \right. \\ \alpha_t = 0.25\\ r = 2 \end{aligned} Lfocal(pt)=−αt(1−pt)rlog(pt)wherept={pforforgroundpoint1−potherwiseαt=0.25r=2
Bin-based 3D bounding box generation
S: search range
\delta: uniform length
(x^{(p)}, y^{(p)}, z^{(p)}): coordinates of a\ foreground point of interest
(x^p, y^p, z^p): the center coordinates of its corresponding object
C: bin length for normalization
N_{pos} : number of foreground points
\widehat {bin}_{u}^{(p)}: the predicted bin assignments
\widehat {res}_{u}^{(p)}: residuals of the foreground point p
F_{cls}: the cross-entropy classification loss
F_{reg}: the smooth L1 loss
Point cloud region pooling
- 将原有的3D预测框 b i = ( x i , y i , z i , h i , w i , l i , θ i ) b_i = (x_i, y_i, z_i, h_i, w_i, l_i, \theta_i) bi=(xi,yi,zi,hi,wi,li,θi)稍微扩大一些,得到 b i = ( x i , y i , z i , h i + η , w i + η , l i + η , θ i ) b_i = (x_i, y_i, z_i, h_i+\eta, w_i+\eta, l_i+\eta, \theta_i) bi=(xi,yi,zi,hi+η,wi+η,li+η,θi).
- 判断每个点是否在预测框内,得到在预测框内的点 p = ( x ( p ) , y ( p ) , z ( p ) , r ( p ) , m ( p ) , f ( p ) ) p = (x^{(p)}, y^{(p)}, z^{(p)}, r^{(p)}, m^{(p)}, f^{(p)}) p=(x(p),y(p),z(p),r(p),m(p),f(p)). 进而消除了不在预测框里的点.
Canonical 3D bounding box refinement
Canonical transformation
一个3D经典坐标:
- 原点位于box proposals的中心;
X'
和Z'
轴和地面平行,X'
指向proposals的头部方向.Z'
方向和X'
方向垂直;Y'
轴和激光雷达坐标系一致;
the canonical coordinate system能够更有利于在优化框阶段学习每个proposals的局部空间特征
Feature learning for box proposal refinement
增加距离信息,将局部信息与全局特征信息合并, 并作为输入
Losses for box proposal refinement
提出了类似于bin-based regression losses的损失函数
b
~
i
=
(
0
,
0
,
0
,
h
i
,
w
i
,
l
i
,
0
)
b
i
g
t
=
(
x
i
g
t
−
x
i
,
y
i
g
t
−
y
i
,
z
i
g
t
−
z
i
,
h
i
g
t
,
w
i
g
t
,
l
i
g
t
,
θ
i
g
t
−
θ
i
)
\tilde b_i = (0, 0, 0, h_i, w_i, l_i, 0)\\ b_i^{gt} = (x_i^{gt}-x_i, y_i^{gt}-y_i, z_i^{gt}-z_i, h_i^{gt}, w_i^{gt}, l_i^{gt}, \theta_{i}^{gt}-\theta_i)
b~i=(0,0,0,hi,wi,li,0)bigt=(xigt−xi,yigt−yi,zigt−zi,higt,wigt,ligt,θigt−θi)
Conclusion
- 提出了一个新颖的3D目标检测方法,PointRCNN,该方法可以直接利用原始点云直接检测目标.在stage-1子网络中, 以bottom-up的方式从点云直接生成3D proposals, 相比其他方法, 该方法在召回率上有显著的提升.
- 在stage-2子网络中, 通过合并语义信息和局部空间信息优化经典坐标下的proposals.
- 新提出的基于bin的损失证明了它在3D边界框回归中的效率和有效性。