文章目录
Abstract
这篇文章提出了一个快速的 feature-metric
点云配准框架,它通过最小化无对应关系的特征度量投影误差(feature-metric projection error)来优化配准过程。与几何投影误差(geometric projection error)相比,特征度量投影误差的优点是不受噪声、异常值和密度差异的影响。而且由于不需要寻找点对应关系,这种方法的速度也更快。
feature-metric
的原理是,如果点云对齐得非常好,特征差异就会最小。研究人员采用半监督或无监督的方法来训练所提出的方法,这种方法只需要有限的有标签配准数据,甚至不需要有标签配准数据。实验证明,与 SOTA 相比,该方法具有更高的准确性和鲁棒性。此外,实验结果表明,所提出的方法能处理明显的噪声和密度差异,并能解决同源和跨源点云配准问题。
Introduction
大多数 SOTA 的点云配准方法都是采用几何投影误差(geometric projection error),核心步骤分两步:
- 对应点搜索
- 估计变换矩阵
如图所示,第三列上方是点云 1 和点云 2 的最优配准结果(手动对齐),但这样的结果靠现有的两步骤方法是很难实现的,因为它们没有点到点的对应关系。即使使用软对应(软对应点是学习到的潜在空间中基于点相似度的目标点的加权和)也很难解决。而本文基于特征度量投影误差的方法可以实现最优配准,因为它优化的是特征差异,当特征差异最小时意味着达到了最优配准。
本文提出的方法包含两个模块:编码器和多任务分支(multi-task branches)。编码器提取输入点云的特征。对于多任务分支,第一个分支基于编码器-解码器架构,以无监督的方式来对编码器进行训练。该分支的目的是,如果同一点云的两个 copies 发生空间变换,则其特征应不同;如果变换被移除,则其特征必须相同。第二个分支则用来进行配准,通过最小化特征差异估计出两个输入点云的变换矩阵。
Feature-metric Point Cloud Registration
Problem Formulation
给定两个点云
P
∈
R
M
×
3
P \in \mathbb{R}^{M\times 3}
P∈RM×3 和
Q
∈
R
N
×
3
Q \in \mathbb{R}^{N\times 3}
Q∈RN×3,配准的目的是找到一个可以最优配准两个点云的刚体变换参数
g
g
g(包含旋转矩阵
R
∈
S
O
(
3
)
R\in \mathcal{SO}(3)
R∈SO(3) 和平移向量
t
∈
R
3
t\in \mathbb{R}^3
t∈R3):
arg
min
R
∈
S
O
(
3
)
,
t
∈
R
3
∥
r
(
F
(
P
)
,
F
(
R
Q
+
t
)
)
∥
2
2
\underset{R\in\mathcal{SO}(3),t\in\mathbb{R}^3}{\operatorname*{\arg\min}}\|r(F(P),F(RQ+t))\|_2^2
R∈SO(3),t∈R3argmin∥r(F(P),F(RQ+t))∥22 其中
r
(
F
(
P
)
,
F
(
R
Q
+
t
)
)
=
∥
F
(
P
)
−
F
(
R
Q
+
t
)
∥
2
r(F(P),F(RQ+t))=\|F(P)-F(RQ+t)\|_2
r(F(P),F(RQ+t))=∥F(P)−F(RQ+t)∥2 就是要优化的特征度量投影误差。
F
(
P
)
∈
R
K
F(P)\in \mathbb{R}^K
F(P)∈RK 是点云
P
P
P 的特征,
K
K
K 是特征维度(文章中
K
=
1024
K=1024
K=1024),
F
F
F 就是我们刚刚提到的用来提取特征的第一个编码器模块。
这篇文章提出的方法其实就是为了求解上述最优化方程。整体框架如下图所示:
首先提取出输入点云的 rotation-attentive 特征,这两个特征作为下面的多任务模块的输入。在第一个分支(Task 1),解码器以无监督的方式来训练编码器模块;而在第二个分支(Task 2),则会计算投影误差
r
r
r,并通过最小化特征差异来估计最优变换矩阵。变换估计会迭代运行,每步的变换增量(increment
△
θ
\triangle\theta
△θ)通过 IC(inverse compositional)算法得到:
△
θ
=
(
J
T
J
)
−
1
(
J
T
r
)
\triangle\theta=(J^TJ)^{-1}(J^Tr)
△θ=(JTJ)−1(JTr) 其中
J
=
∂
r
∂
θ
J=\frac{\partial r}{\partial\theta}
J=∂θ∂r 是
r
r
r 关于变换参数
θ
\theta
θ 的雅可比矩阵。
Encoder
编码器模块的目的是学到一个可以提取输入点云特征的函数
F
F
F。编码器生成的特征应具有旋转注意力(rotation-attentive),以便在估计变换的过程中反映旋转差异。参照 PointNet,特征是由两个 mlp
层和一个 max-pool
层提取的。文章舍弃了输入变换层和特征变换层,以使特征能够捕捉到旋转差异。
Multitask Branches
特征提取之后,下一步是特征学习及点云的变换估计。估计直接通过最小化特征度量投影误差而不需要搜索对应点。
Encoder-Decoder Branch (Task1)
在编码器模块生成区别性特征之后,研究人员用了一个解码器来从特征中恢复出 3D 点云。这个编码器-解码器分支可以以无监督的方式来进行训练,以帮助编码器模块生成对旋转敏感的区别性特征。
对于同一点云的两个不同旋转过的 copy,解码器应能通过编码器模块生成的特征分别恢复出对应的两个 copy。
解码器包括 4 层全连接层,激活采用 LeakyReLU
,输出和输入点云的维度是相同的。
Feature-metric Registration Branch (Task2)
特征度量投影误差定义为
r
=
∥
F
(
P
)
−
F
(
g
⋅
Q
)
∥
2
2
r=\|F(P)-F(g\cdot Q)\|_2^2
r=∥F(P)−F(g⋅Q)∥22 下图可视化了从编码器模块中提取出的特征图及优化的迭代过程。
Loss functions
Chamfer loss
编码器-解码器分支以无监督的方式进行训练,Chamfer loss 如下所示:
l
o
s
s
c
f
=
∑
p
∈
A
∑
i
=
1
N
min
q
∈
S
∗
∥
ϕ
θ
i
(
p
;
x
)
−
q
∥
2
2
+
∑
q
∈
S
∗
min
i
,
i
n
1
…
N
min
p
∈
A
∥
ϕ
θ
i
(
p
;
x
)
−
q
∥
2
2
\begin{aligned}loss_{cf}&=\sum_{p\in A}\sum_{i=1}^N\min_{q\in S^*}\|\phi_{\theta_i}(p;x)-q\|_2^2\\&+\sum_{q\in S^*}\min_{i,in1\ldots N}\min_{p\in A}\|\phi_{\theta_i}(p;x)-q\|_2^2\end{aligned}
losscf=p∈A∑i=1∑Nq∈S∗min∥ϕθi(p;x)−q∥22+q∈S∗∑i,in1…Nminp∈Amin∥ϕθi(p;x)−q∥22 其中,
p
∈
A
p\in A
p∈A 是从单位方
[
0
,
1
]
2
[0,1]^2
[0,1]2 上采样的点集,
x
x
x 是点云特征,
ϕ
θ
i
\phi_{\theta_i}
ϕθi 是 MLP 参数的第
i
i
i 个部分,
S
∗
S^*
S∗ 是原始的输入 3D 点。
Geometric loss
几何损失函数的目的是最小化估计的变换矩阵(
g
e
s
t
g_{est}
gest)和变换矩阵真值(
g
g
t
g_{gt}
ggt)之间的差异。损失函数如下
l
o
s
s
p
e
=
1
M
∑
i
=
1
M
∥
f
(
g
e
s
t
⋅
P
)
−
f
(
g
g
t
⋅
P
)
∥
2
2
loss_{pe}=\frac{1}{M}\sum_{i=1}^{M}\left\|f(g_{est}\cdot P)-f(g_{gt}\cdot P)\right\|_{2}^{2}
losspe=M1i=1∑M∥f(gest⋅P)−f(ggt⋅P)∥22
Experiments
ModelNet40 数据集:训练过程中,刚体变换 T g t T_{gt} Tgt 随机生成,其中旋转在 [ 0 , 45 ] [0,45] [0,45] 范围内,平移则在 [ 0 , 0.8 ] [0,0.8] [0,0.8] 范围内。
7Scene 数据集:包含 7 个室内场景(Chess, Fires, Office, Heads, Pumpkin, Redkitchen, Stairs)。296 scans 用来训练,57 scans 用来测试。旋转和平移分别被初始化到 [ 0 , 60 ] [0,60] [0,60] 和 [ 0 , 1.0 ] [0,1.0] [0,1.0] 范围内。
Reference
[1] Huang, X. , Mei, G. , & Zhang, J. . (2020). Feature-metric registration: a fast semi-supervised approach for robust point cloud registration without correspondences.