3DSSD: Point-based 3D Single Stage Object Detector
来自港中文贾佳亚大神组的一篇文章。该篇文章在CVPR2020上拿到了oral。好文章,一定要好好拜读一下。
文章:3DSSD
代码:3DSSD
Abstract
当前已经有各种各样的基于体素的单阶段的3D
目标检测,但是基于点的单阶段目标检测还有待探索。在这篇文章中,我们第一次展示了轻量级的和有效的基于点的单阶段的3D
目标检测,称为3DSSD
。在这个范式中,在所有现存的基于点的方法中不可避免的所有的上采样和优化阶段都被放弃了,进而达到减少大量计算消耗。在下采样阶段我们提出了融合采样策略,使得检测不太具有代表性的点变得可行。框预测网络包括一个候选生成层,一个带有3D
中心分配策略的无锚定回归头,进而满足准确度和速度的要求。我们的范式是一个无锚定的单阶段框架。在KITTI
和NuScenes
上表现都不错,而且推理速度为25FPS
。
Introduction
3D点云的特性:
- 稀疏
- 无序
- 局部敏感
3D
点云,利用卷积进行稀疏比较困难。
之前的解决方案:
-
投影为图像
-
voxel-based
- 类似于
PointNet
的backbone
- 手动设计的特征
- 类似于
-
point-based
前两种方法提升了效率,但是损失了信息。最后一种方法推理速度较慢。
Our Contribution
-
F-FPS
: 基于特征距离的采样策略,这个方法有利于保存不同物体之前不太好的点。最终的采样策略是F-FPS
和D-FPS
的融合。 -
框预测网络:
CG(candidate generation layer)
,无锚定回归头,3D
中心点分配策略CG
中,从F-FPS
中平移代表性的点来生成候选点。- 将候选点当成中心点,发现周围的点,并提取特征。
- 将特征作为输入喂给无锚定回归头,来预测3D边界框。
- 利用3D中心分配策略来筛选更靠近物体中心的点,进而获取更高准确位置的预测。
Related Work
-
多感知器的
3D
目标检测方法如:MV3D
,AVOD
,MMF
-
仅有雷达的
3D
目标检测方法,如:VoxelNet
,PointNet
,SECOND
,PointPillars
,F-PointNet
,IPOD
,PointNet++
,STD
Our Framework
Fusion Sampling
Motivation
首先利用SA(set abstract)
层进行下采样和提取语义信息。之后利用FP(feature propagation)
进行上采样和扩展语义信息。之后再利用RPN
获得候选,再加一个优化模块,得到最终的结果。其中FP
和优化模块限制了效率。从这两处下手进行改进。
Challenge
具有不同代表性的点的数量,点的召回率也不同。可以看到,在
N
m
=
1024
N_m=1024
Nm=1024和
N
m
=
512
N_m=512
Nm=512之中,召回率几乎为原来的1/3
和1/2
。
Feature-FPS
C
(
A
,
B
)
=
λ
L
d
(
A
,
B
)
+
L
f
(
A
,
B
)
L
d
(
A
,
B
)
:
表
示
X
Y
Z
距
离
L
2
L
f
(
A
,
B
)
:
L
2
特
征
距
离
λ
:
表
示
平
衡
参
数
,
如
上
表
所
示
C(A,B) = \lambda L_d(A,B) + L_f(A,B)\\ L_d(A,B): 表示XYZ距离L2\\ L_f(A,B): L2特征距离\\ \lambda: 表示平衡参数,如上表所示
C(A,B)=λLd(A,B)+Lf(A,B)Ld(A,B):表示XYZ距离L2Lf(A,B):L2特征距离λ:表示平衡参数,如上表所示
采用两种测量距离方法的结合:
-
考虑积极点,去除无意义的消极点,需要考虑两个方面:采样过程中每个点的空间距离和语义信息。卷积得到较好的语义信息,因此采用特征距离获取较多的积极点,去除无效点。
-
仅仅使用语义特征距离作为标准会使同一个物体保存较多的点,有些冗长。
-
增加空间距离项,减少冗余,增加多样性。
Fusion Sampling
F-FPS
获得较高的召回率和更精确的位置,但是会降低分类准确度;F-FPS
和D-FPS
各取一半;
Box Prediction Network
Candidate Generation Layer
-
我们仅仅使用F-FPS的点作为初始中心点。
-
在其相对位置对其对应物体的监督下,平移这些点。
-
将这些移动的点作为
candidate points
。之后利用上述这些点作为中心点,发现周围的点。进行group
,并作为输入,通过MLP
提取特征。 -
最后进行回归和分类。
Anchor-free Regression Head
在回归头中,我们预测每个点对应物体的距离,大小和方向。由于每个点没有经验方向,所以借鉴了F-Pointnet
中的分类和回归方程的混合。
3D Center-ness Assignment Strategy
为每个候选点分配标签,一般采用的方法是IoU
或者mask
为每个像素点分配标签。
- 先用 l m a s k l_{mask} lmask判断是否在物体内
- 利用
l
c
e
n
t
e
r
n
e
s
s
l_centerness
lcenterness构建中心点函数
f , b , l , r , t , d : 分 别 表 示 到 前 后 左 右 上 下 面 的 距 离 f,b,l,r,t,d: 分别表示到前后左右上下面的距离\\ f,b,l,r,t,d:分别表示到前后左右上下面的距离
Loss Function
N
c
:
表
示
总
的
候
选
点
数
N
p
:
积
极
的
候
选
点
数
s
i
:
点
i
的
预
测
类
的
得
分
u
i
:
点
i
的
真
实
标
签
N
P
∗
:
表
示
从
F
−
F
P
S
中
的
积
极
候
选
点
L
r
=
L
d
i
s
t
+
L
s
i
z
e
+
L
a
n
g
l
e
+
L
c
e
n
t
e
r
其
中
利
用
s
m
o
t
h
−
l
1
作
为
L
d
i
s
t
+
L
s
i
z
e
N_c: 表示总的候选点数\\ N_p: 积极的候选点数\\ s_i: 点i的预测类的得分\\ u_i: 点i的真实标签\\ N_P^{*}: 表示从F-FPS中的积极候选点\\ L_r = L_{dist} + L_{size} + L_{angle} + L_{center}\\ 其中利用smoth-l_1作为L_{dist} + L_{size}\\
Nc:表示总的候选点数Np:积极的候选点数si:点i的预测类的得分ui:点i的真实标签NP∗:表示从F−FPS中的积极候选点Lr=Ldist+Lsize+Langle+Lcenter其中利用smoth−l1作为Ldist+Lsize
d
c
a
,
d
r
a
:
预
测
的
角
度
类
和
残
差
t
c
a
,
t
r
a
:
对
应
的
目
标
d_{c}^{a}, d_{r}^{a}: 预测的角度类和残差\\ t_{c}^{a}, t_{r}^{a}: 对应的目标
dca,dra:预测的角度类和残差tca,tra:对应的目标
P
m
:
点
m
的
真
实
位
置
G
m
:
点
m
的
预
测
位
置
计
算
8
个
角
的
差
值
P_m: 点m的真实位置\\ G_m: 点m的预测位置\\ 计算8个角的差值
Pm:点m的真实位置Gm:点m的预测位置计算8个角的差值
Experiment
KITTI
IoU threshold = 0.7
ADAM
learning_rate = 0.002, epoch = 0-40
learning_rate = 0.0002, epoch = 40-50
batch_size = 16
num_gpus = 4
4种数据增强的方法:
- mix-up
- rotate each bounding box ~ a uniform distribution ∆θ1 ∈ [[π/4, +π/4], add a random translation (∆x, ∆y, ∆z)
- each point cloud is randomly flipped along x-axis
- we randomly rotate each point cloud around z-axis (up axis) and rescale it.
nuScenes
- 将0.5s内的点云累积起来;
- 随机选取65536个体素,其中关键帧的点占比0.25。将65536个点送入以点为基础的网络中;
Ablation Studies
Results on Validation Set
Effect of Fusion Sampling Strategy
Effect of Shifting in CG Layer & Effect of 3D Center-ness Assignment
Inference Time
a Titan V GPU
Conclusion
- 基于点的轻量化的高效的单阶段的3D目标检测网络
- 融合采样策略代替之前的FP层和优化模块
- 在预测阶段,设计了CG层来减少计算成本,并充分利用下采样点
- 提出了一个无锚定的回归头