Instituto Superior T ́ecnico, Lisboa; Google;印度科学研究所,班加罗尔;马里兰大学帕克分校
代码链接:https://github.com/3DVisionISR/3DRegNet
本文提出了一种基于深度学习的点云配准方法3DRegNet,超越了现有RANSAC和ICP的精度,同时在CPU上也达到了25倍RANSAC的速度。
注意3DRegNet假设两个点云之间的对应关系是给定的,3DRegNet只负责剔除噪声点,生成位姿变换矩阵这两个任务。
实验部分对现有的旋转量的各种表示方法、位姿损失的度量方法进行了结果对比。
此外,还对SVD分解和DNN回归两种位姿解算方法进行了对比。
3DRegNet
a: 使用DNN进行位姿回归的网络结构
b: 使用SVD进行位姿解算的模型结构
ab是本文提出的两种模型,实验部分对其性能进行了对比。
c: 分类网络,对给定的对应关系进行内点、噪声点的分类。
d: 使用DNN进行位姿解算的配准模块
分类block
网络层结构如上图所示,主要是FC+ResNet级联
输入N个对应关系(两个对应点坐标)N X 6,输出 N X 1,即每个对应关系的置信度(权重)。
DNN 配准网络:
该网络将分类网络中的输入和每一层输出进行最大池化后进行context normalization,然后作为输入进行配准。最后输出旋转量预测值和平移量预测值。
SVD配准模块:
使用预测的对应关系的权重将噪声点去除,然后再内点中进行中心化操作,使用SVD分解求解变换矩阵和平移向量:
M
=
∑
i
∈
I
w
i
p
i
q
i
T
\mathbf{M}=\sum_{i \in \mathcal{I}} w_{i} \mathbf{p}_{i} \mathbf{q}_{i}^{T}
M=i∈I∑wipiqiT
R
=
U
diag
(
1
,
1
,
det
(
U
V
T
)
)
V
T
\mathbf{R}=\mathbf{U} \operatorname{diag}\left(1,1, \operatorname{det}\left(\mathbf{U V}^{T}\right)\right) \mathbf{V}^{T}
R=Udiag(1,1,det(UVT))VT
t
=
1
N
I
(
∑
i
∈
I
p
i
−
R
∑
i
∈
I
q
i
)
\mathbf{t}=\frac{1}{N_{\mathcal{I}}}\left(\sum_{i \in \mathcal{I}} \mathbf{p}_{i}-\mathbf{R} \sum_{i \in \mathcal{I}} \mathbf{q}_{i}\right)
t=NI1(i∈I∑pi−Ri∈I∑qi)
损失函数:
L
=
α
L
c
+
β
L
r
其
中
:
L
c
=
1
K
∑
k
=
1
K
L
c
k
以及
L
r
=
1
K
∑
k
=
1
K
L
r
k
L
c
k
=
1
N
∑
i
=
1
N
γ
i
k
H
(
y
i
k
,
σ
(
o
i
k
)
)
L
r
k
=
1
N
∑
i
=
1
N
ρ
(
q
i
k
,
R
k
p
i
k
+
t
k
)
L = \alpha L_c + \beta L_r\\ 其中: \mathcal{L}_{c}=\frac{1}{K} \sum_{k=1}^{K} \mathcal{L}_{c}^{k} \text { 以及 } \mathcal{L}_{r}=\frac{1}{K} \sum_{k=1}^{K} \mathcal{L}_{r}^{k}\\ \mathcal{L}_{c}^{k}=\frac{1}{N} \sum_{i=1}^{N} \gamma_{i}^{k} H\left(y_{i}^{k}, \sigma\left(o_{i}^{k}\right)\right)\\ \mathcal{L}_{r}^{k}=\frac{1}{N} \sum_{i=1}^{N} \rho\left(\mathbf{q}_{i}^{k}, \mathbf{R}^{k} \mathbf{p}_{i}^{k}+\mathbf{t}^{k}\right)
L=αLc+βLr其中:Lc=K1k=1∑KLck 以及 Lr=K1k=1∑KLrkLck=N1i=1∑NγikH(yik,σ(oik))Lrk=N1i=1∑Nρ(qik,Rkpik+tk)
第一项是分类损失,H为交叉熵函数,y是label,0或1
第二项是配准损失,衡量配准后的点对之间的距离,距离度量可以选择是L1,weighted leastsquares,L2, 或者Geman-McClure等。
3DRegNet 细化
其实是迭代配准的方法,将两个3DRegNet级联在一起进行配准。
第二个3DRegNet用于细化较小的旋转平移。
结构图:
该网络的损失函数是将两个网络的损失平均了一下:
L
c
=
1
K
∑
k
=
1
K
1
2
∑
r
=
1
2
L
c
k
,
r
and
L
r
=
1
K
∑
k
=
1
K
1
2
∑
r
=
1
2
L
r
k
,
r
\mathcal{L}_{c}=\frac{1}{K} \sum_{k=1}^{K} \frac{1}{2} \sum_{r=1}^{2} \mathcal{L}_{c}^{k, r} \text { and } \mathcal{L}_{r}=\frac{1}{K} \sum_{k=1}^{K} \frac{1}{2} \sum_{r=1}^{2} \mathcal{L}_{r}^{k, r}
Lc=K1k=1∑K21r=1∑2Lck,r and Lr=K1k=1∑K21r=1∑2Lrk,r
实验
作者使用FPFH方法提取对应关系,每对点云提取3000个对应关系。
在数据扩增阶段,作者使用了Curriculum learning 的方法对网络进行训练,将随机旋转平移的尺度逐渐增大。(后面逐渐减小尺度因为内殿数目也在减少)
距离度量实验
可以看出L1范数最好,精度最高,后续全部使用L1进行实验
旋转量的表示形式:
最小李代数表示、四元数、旋转矩阵、SVD解算
最小李代数精度最佳。后续全部使用其进行实验
同时可以看出sVD解算的精度低于使用DNN回归的精度,因此后续采用DNN方法进行实验。
对应点对数目的影响:
数目越少,配准精度越低,但是不影响分类的精度。
数据扩增的效果:
没有使用数据扩增训练的网络在应对大的旋转时误差越来越大。
使用了CL数据扩增的模型则很好的克服了这一点。
后续网络不进行数据扩充。
级联3DRegNet细化效果:
时间代价不是很大,但是各项指标都有提升,后续采用该级联方法进行评估
与ICP、RANSAC、FGR对比
3DRegNet+U 达到了SOTA的性能,其中U是指least square non-linear Umeyama refinement technique(《least-squares estimation of transformationparameters between two point patterns.》)
达到了与现有baseline相同的精度,但是其速度更快:
- 8被FGR,25倍RANSAC
泛化性对比:
在未见数据集上的评估结果: