1. Motivation
- point-base方法虽然识别率较高但是耗时过长;voxel-base方法虽然耗时较短但是识别率较差.
- 经过相关实验可以知道原始点的精确定位并不是必要的,更粗的体素粒度也可以为该任务提供足够的空间上下文线索;
- voxel-base 方法将3D特征结构转换为BEV之后,没有进行3D结构的恢复,缺乏对3D结构特征的利用。
2. Contribution
- 总结了point-base和voxel-base的缺陷,结合SECORD和PV-RCNN得出单靠BEV表示不能精确预测三维空间的bbox;
- point-voxel 耗时较长,影响检测器的效率,因此论文直接利用3D voxel张量来进行物体检测。
3. Voxel R-CNN Design
论文设计了一种新的网络架构Voxel R-CNN Design,该网络架构主要包括:3D backbone,2D backbone接RPN和voxel RoI pooling已经检测框细化网络。
网络首先将原始点划分为规则的voxel,并且利用3D backbone进行特征提取,然后将稀疏的3D voxel转化为BEV表示,然后再BEV上使用2D backbone和RPN进行3D proposal的生成,随后使用voxel RoI pooling进行特征提取,并使用这些特征信息进行检测框细化。
3.1 Voxel RoI pooling
3.1.1 Voxel Volumes as Points
假定非空voxel中心点为 { v i = ( x i , y i , z i ) } i = 1 N \left\{v_i=\left(x_i,\;y_i,\;z_i\right)\right\}_{i=1}^N {vi=(xi,yi,zi)}i=1N,对应的特征向量为 { Φ i } i = 1 N \left\{\Phi_i\right\}_{i=1}^N {Φi}i=1N。其中中心点的三维坐标是由voxel下标,voxel大小和点云的边界计算得到的。
3.1.2 Voxel Query
与无序的点云相比,voxel在量化的空间中排序更加有规则,可以通过设置offsets来进行voxel领域访问。论文在对点进行voxel化之后,利用曼哈顿距离通过索引获得相邻体素,并且规定在一个距离阈值中采样至多K个体素。设定曼哈顿计算方式为:
假设使用ball query进行voxel查询,时间复杂度为
O
(
N
)
O\left(N\right)
O(N),而论文提出的voxel query对领域查询的时间复杂度为
O
(
K
)
O\left(K\right)
O(K),其中K为领域搜索大小,很好地缩短了查询时间。
3.1.3 Voxel RoI Pooling Layer
接着进行池化操作,论文设置了一种新的池化方式,首先将proposal分割成G x G x G,中心点为网格分割中心,然后采用领域信息聚合的方法进行信息聚合。具体的,假设网格中心为
g
i
g_i
gi,采用voxel query聚合的点集为
{
v
i
1
,
v
i
2
,
…
,
v
i
K
}
\left\{v_i^1,\;v_i^2,\;\dots\;,\;v_i^K\right\}
{vi1,vi2,…,viK},因此采用PointNet的聚合方法为:
其中
v
i
−
g
i
v_i - g_i
vi−gi为求取点的相对坐标,
Φ
i
k
\Phi_i^k
Φik为对应点
v
i
k
v_i^k
vik的特征向量,
ψ
(
⋅
)
\psi\left(\cdot\right)
ψ(⋅)为MLP层,
m
a
x
(
⋅
)
max\left(\cdot\right)
max(⋅)为最大池化层。
3.1.4 Accelerated Local Aggregation
如图(a)所示为普通的PointNet 特征提取步骤,其中假设一共有M个网格(
M
=
r
×
G
3
M=r\times G^3
M=r×G3),r为RoI的数量,G为网格大小,voxel group 的数量为K,C为voxel特征向量。因此首先从M个网格每个网格提取K个,即M x K,然后经过一层FC,即
(
C
+
3
)
×
C
′
\left(C+3\right)\times C'
(C+3)×C′,所以综上计算复杂度为
O
(
M
×
K
×
(
C
+
3
)
×
C
′
)
O\left(M\times K\times\left(C+3\right)\times C'\right)
O(M×K×(C+3)×C′)。
而论文对其进行加速,因为体素特征是独立于网格点的,因此论文先对其FC计算,后续只需要根据聚合的点的相对坐标进行体素特征提取就行了。因此体素特征FC提取特征时间复杂度为
N
×
(
C
+
3
)
×
C
′
N\times\left(C+3\right)\times C'
N×(C+3)×C′,M个网格提取K个即为M x K,加上对点相对坐标FC,即为
M
×
K
×
3
×
C
′
M\times K\times3\times C'
M×K×3×C′。因此综上时间复杂度为
O
(
N
×
C
×
C
′
+
M
×
K
×
3
×
C
′
)
O\left(N\times C\times C'+M\times K\times3\times C'\right)
O(N×C×C′+M×K×3×C′)。由于
M
×
K
≫
N
M\times K\;\gg N
M×K≫N,因此加速的PointNet是比原先效率高的。
3.2 Backbone and Region Proposal Networks
论文采用了类似SECORD网络架构进行backbone网络框架搭建。通过三维backbone提取得到对应特征向量,然后将输出向量进行Z轴叠加生成对应的BEV特征图。
3.3 Detect Head
检测头将RoI特征作为输入进行检测框细化,其中先经过两层MLP,然后将提取的特征信息输入两个分支中:一个用于置信度预测,一个用于bbxox回归检测。
3.4 Training Objectives
3.4.1 Losses of RPN
综合分类损失和bbox回归损失即:
3.4.2 Losses of detect head
Iou值分配为:
利用二值交叉损失进行置信度预测,并且bbox使用Huber loss进行回归。因此检测头损失可以计算为: