零、概要
- 论文: Learning 3D-3D Correspondences for One-shot Partial-to-partial Registration
- tag:
arXiv 2020
;Registration
- 作者: Zheng Dang, Fei Wang, Mathieu Salzmann
- 机构: Xi’an Jiaotong University, EPFL Switzerland
- 笔者整理了一个最近几年250多篇点云的论文列表,欢迎大家一块学习交流。
0.0 摘要
点云的3D-3D配准,在传统方法中是基于优化的算法解决的,但是最近的研究表明,基于学习的办法可以获得更快更鲁棒的效果。然而,只有PRNet可以处理部分-部分配准的情况,但是PRNet是迭代的算法并且其网络结构非常复杂。论文中,作者提出基于学习的一次完成部分-部分点云的配准的方法,同时该方法降低了网络复杂度,提高了配准精度。为此,作者提出了Optimal Transport结构,它使用outlier bins机制,可以处理遮挡点云的情况。由此产生的OPRNet在benchmark中超过了SOTA方法,显示出比现有方法更好的鲁棒性和泛化能力。
一、论文的出发点和贡献
点云配准的目的是确定两个三维点集之间的刚性变换,即三维旋转和平移。解决这个问题的传统算法是ICP算法,但这种迭代算法很容易陷入局部最优解。一些变种比如Generalized-ICP, Sparse ICP提高了对噪声的鲁棒性,Go-ICP通过全局最优算法降低了对待配准点云初始位置的依赖,FGR算法通过计算特征描述子实现点云的配准。这些算法或者基于距离实现匹配,或者计算量较大或者对噪声点和初始位置敏感,在实际应用中都存在一定问题。
最近,基于学习的方法在速度和对噪声的鲁棒性方面都优于以前的基于优化的传统方法。比如,PointNetLK算法将PointNet网络和传统的Lucas-Kanade(LK)相结合,形成一个端到端的配准网络;DCP通过DGCNN和Transformer建立3D-3D对应,然后通过SVD分解得到最终的刚性变换。这些方法虽然有效,但无法处理部分-部分点云配准的情况。PRNet通过提取并匹配关键点,解决了部分-部分点云配准的情况,但是PRNet是一种迭代的网络,而且actor-critic匹配机制显著增加了网络资源,比如它需要32GB GPUs来训练。
在论文中,作者提出了一种更直接的、One-shot的基于学习的方法来解决部分-部分点云配准问题。特征地,作者提出了Optimal Transport(OT)层来替代DCP网络中的softmax操作。OT层利用source点云和target点云的相似性度量来计算运输成本(transportation cost,这是一个专业名词),通过Sinkhorn算法解决运输成本问题来获得点之间的匹配关系。考虑被遮挡的点,建模局部点对应(partial correspondences),作者引入outlier bins。另外,论文中还表明了,对OT层的输出进行直接监督,而不是像DCP一样通过SVD计算刚性变换矩阵进行计算loss,可以提高模型的鲁棒性。
主要贡献总结如下:
- 提出了第一个基于学习的One-shot的方法OPRNet,来实现局部-局部点云的配准。
- 提出了OT(Optimal Transport)层,它利用outlier bins处理点云的部分匹配问题。
- 论文中说明了,直接对OT层的输出进行监督比监督SVD分解得到刚性变换,具有更高的鲁棒性。
- OPRnet需要的训练资源是PRNet的1/6。
二、论文的方法
设 X ∈ R M × 3 X \in \mathbb R^{M \times 3} X∈RM×3和 Y ∈ R N × 3 Y \in \mathbb R^{N \times 3} Y∈RN×3表示从同一个物体表面采样的两个点云, X X X称作source点云, Y Y Y称作target点云。配准的目标是找到一个刚性变换 Γ \Gamma Γ使得点云 X X X对齐点云 Y Y Y。论文中解决的是部分匹配部分的点云配准问题,即点云 X X X和点云 Y Y Y可以具有部分的onverlap。论文中提出的网络OPRNet架构如Figure 1所示。
2.1 特征提取和score map
OPRNet的骨干网络和DCPv2一样: DGCNN + Transformer。
X ∈ R M × 3 X \in \mathbb R^{M \times 3} X∈RM×3和 Y ∈ R N × 3 Y \in \mathbb R^{N \times 3} Y∈RN×3经过DGCNN网络,得到每个点的特征 θ x ∈ R M × P \theta^x \in \mathbb R^{M \times P} θx∈RM×P和 θ y ∈ R N × P \theta^y \in \mathbb R^{N \times P} θy∈RN×P。Transformer (记为 ϕ \phi ϕ) 融合两者的特征,即 ϕ : R M × P × R N × P − > R M × P \phi: \mathbb R^{M \times P} \times \mathbb R^{N \times P} -> \mathbb R^{M \times P} ϕ:RM×P×RN×P−>RM×P,可以看到Transformer不是一个对称的映射。在Transformer融合特征之外,又加入了Resisudal连接,因此:
f x = θ x + ϕ ( θ x , θ y ) , f y = θ y + ϕ ( θ y , θ x ) f^x = \theta^x + \phi(\theta^x, \theta^y), f^y = \theta^y + \phi(\theta^y, \theta^x) fx=θx+ϕ(θx,θy),fy=θy+ϕ(θy,θx)
得到的特征 f x ∈ R M × P , f y ∈ R N × P f^x \in \mathbb R^{M \times P}, f^y \in \mathbb R^{N \times P} fx∈RM×P,fy∈RN×P。通过内积计算相似度矩阵 S ∈ R M × N S \in \mathbb R^{M \times N} S∈RM×N,其中
S i , j = < f i x , f j y > S_{i, j} = <f^x_i, f^y_j> Si,j=<fix,fjy>
< ⋅ , ⋅ > <\cdot, \cdot> <⋅,⋅>表示内积操作。
2.2 Outlier bins
在得到相似度矩阵 S ∈ R M × N S \in \mathbb R^{M \times N} S∈RM×N后,需要获得target点到source点的correspondence关系。考虑到部分-部分的点云配准,target点云中的一些点在source点云中没有对应的点,因此论文中提出了Outlier bins,这是通过增广相似度矩阵实现的。设增广后的score map为 S ‾ ∈ R ( M + 1 ) × ( N + 1 ) \overline S \in \mathbb R^{(M + 1) \times (N + 1)} S∈R(M+1)×(N+1),其中
S ‾ i , N + 1 = S ‾ M + 1 , j = S ‾ M + 1 , N + 1 = α , ∀ i ∈ [ 1 , M ] , ∀ j ∈ [ 1 , N ] \overline S_{i, N + 1} = \overline S_{M + 1, j} = \overline S_{M + 1, N + 1} = \alpha, \quad \forall i \in [1, M], \quad \forall j \in [1, N] Si,N+1=SM+1,j=SM+1,N+1=α,∀i∈[1,M],∀j∈[1,N]
α \alpha α是一个可学习的参数, S ‾ \overline S S中的其它值来自于score map矩阵 S S S。
2.3 Correspondences 矩阵
给定score map矩阵(距离矩阵),可以建立一个Kantorovich松弛的optimal transport的问题,目标是求解两个点云之间的correspondence矩阵 P ‾ ∈ R ( M + 1 ) × ( N + 1 ) \overline P \in \mathbb R^{(M + 1) \times (N + 1)} P∈R(M+1)×(N+1),其中 P ‾ \overline P P满足如下限制:
U ( a , b ) = { P ‾ ∈ R + ( M + 1 ) × ( N + 1 ) : P ‾ 1 N + 1 = a and P T 1 M + 1 = b } U(a, b) = \lbrace \overline P \in \mathbb R_+^{(M + 1) \times (N + 1)}: \quad \overline P 1_{N+1} = a \quad \text{and} \quad P^T 1_{M+1} = b\rbrace U(a,b)={P∈R+(M+1)×(N+1):P1N+1=aandPT1M+1=b}
其中 1 M = [ 1 , . . . , 1 ] T ∈ R M 1_M = [1, ..., 1]^T \in \mathbb R^M 1M=[1,...,1]T∈RM, a = [ 1 M T , N ] T ∈ R M + 1 a = [1_M^T, N]^T \in \mathbb R^{M + 1} a=[1MT,N]T∈RM+1, b = [ 1 N T , M ] T ∈ R N + 1 b = [1_N^T, M]^T \in \mathbb R^{N + 1} b=[1NT,M]T∈RN+1,可以看到 P ‾ \overline P P由 M + N + 2 M + N + 2 M+N+2个等式限制。
Kantorovich的最优传输问题可以定义为:
L ( a , b ) = min P ‾ ∈ U ( a , b ) < S ‾ , P ‾ > = Σ i , j S ‾ i , j P ‾ i , j L(a, b) = \min_{\overline P \in U(a, b)}<\overline S, \overline P> = \Sigma_{i,j} \overline S_{i, j} \overline P_{i, j} L(a,b)=P∈U(a,b)min<S,P>=Σi,jSi,jPi,j
对上述问题添加熵正则项:
L λ ( a , b ) = min P ‾ ∈ U ( a , b ) < S ‾ , P ‾ > − λ E ( P ‾ ) L^\lambda(a, b) = \min_{\overline P \in U(a, b)}<\overline S, \overline P> - \lambda E(\overline P) Lλ(a,b)=P∈U(a,b)min<S,P>−λE(P)
其中 E ( P ‾ ) = Σ i , j P ‾ i j ( log P ‾ i , j − 1 ) E(\overline P) = \Sigma_{i,j}\overline P_{ij}(\log \overline P_{i, j} - 1) E(P)=Σi,jPij(logPi,j−1)
为了防止数值溢出,上述问题通过log域上Sinkhorn算法进行求解,具体算法如Algorithm1所示。
最终求得了partial assignment矩阵 P ‾ \overline P P。
2.4 损失函数
以往的基于学习的配准算法往往是基于R, t的Loss或者基于target点云和transformed source点云的Loss,本论文中的loss有些不同,它是对OT层的输出进行监督,即对partial assignment矩阵 P ‾ \overline P P进行Loss的计算。
设 M ‾ ∈ { 0 , 1 } ( M + 1 ) × ( N + 1 ) \overline M \in \lbrace 0, 1 \rbrace^{(M + 1) \times (N + 1)} M∈{0,1}(M+1)×(N+1),表示correspondences的G.T.矩阵,1表示匹配点,0表示非匹配点。损失函数为:
L ( P ‾ , M ‾ ) = − Σ i = 1 M + 1 Σ j = 1 N + 1 M ‾ i , j log P ‾ i , j Σ i = 1 M + 1 Σ j = 1 N + 1 M ‾ i , j L(\overline P, \overline M) = \frac{-\Sigma_{i=1}^{M+1} \Sigma_{j=1}^{N+1}\overline M_{i, j}\log \overline P_{i, j}}{\Sigma_{i=1}^{M+1} \Sigma_{j=1}^{N+1}\overline M_{i, j}} L(P,M)=Σi=1M+1Σj=1N+1Mi,j−Σi=1M+1Σj=1N+1Mi,jlogPi,j
损失函数对分母进行了标准化,使得包含不同correspondences的训练样本对loss具有相同的影响。
训练时 M ‾ \overline M M是如何产生的?
对于source点云 X X X、target点云 Y Y Y和其真实的旋转矩阵R, t,首先将 X X X通过R,t进行变换得到 X ^ \hat X X^,计算 X ^ \hat X X^和 Y Y Y中的点点之间的距离,通过阈值0.05来建立距离矩阵 M ∈ { 0 , 1 } M \in \lbrace 0, 1 \rbrace M∈{0,1},若(i, j)之间的距离小于阈值,则 M i , j = 1 M_{i, j} = 1 Mi,j=1,否则设置为0。对于没有任何对应点的点则为outlier,在增广的行或列中设置为1。但是这种方式会偶尔存发生一对多的情况,但论文中指出,相对于解决这个问题所需的计算代价,没有太大必要去解决这个问题。
2.5 预测
在测试时,对OT层的输出 P ‾ \overline P P,计算每一行i的最大值的索引j,如果j是一个有效点(小于N),则(i, j)是一个correspondence,否则舍弃此样本。通过生成的对应关系,计算Procrustes problem问题求解R, t。
三、论文的实验
-
评估指标
MSE(mean squared error), RMSE(root mean squared error), MAE(mean absolute error)。其中旋转的评估使用的是角度。
-
Partial-to-Partial 配准实验
数据集采用的是ModelNet40,部分点云的生成采用的是PRNet中的方法: 对于点云 X X X选择一个点 u u u,保留距离点 u u u最近的768个点,对于点云 Y Y Y独立的选择一个点 v v v,用同样的方式产生768个点。
-
Unseen objects
9843个样本进行训练,2468个样本进行测试,实验结果如Table 1所示,OPRNet在各个指标中都远超其它方法。
-
Unseen categories
在部分类别数据集进行训练,在其它类别数据集中进行测试,实验结果如Table 2所示,OPRNet的结果优于其它的算法,其中PRNet*是在更大数据集ShapeNetCore训练的结果。
-
带有高斯噪声的unseen objects
实验设置如Unseen objects,但是数据中增加了[-0.05, 0.05]截断的高斯N(0, 0.01)噪声,实验结果如Table 3所示,OPRNet仍然优于其它算法。
-
-
Self-occluded 配准实验
此处实验模拟的是由激光雷达或深度相机等传感器捕捉的点集,现在考虑一个点云中自遮挡的情况,source点云1024个点,target点云512个点,如Figure 2所示。作者比较了ICP, FGR, DCP和OPRNet算法,其中DCP算法中的SVD + MSE Loss被替换成Softmax + NLL Loss(出于训练时间的考虑),实验结果如Table 4所示,OPRNet优于其它的算法。
-
真实数据的配准实验
在ModelNet40数据集上进行训练,在Stanford Bunny真实数据集上进行测试,可视化结果如Figure 3所示,展现出良好的泛化能力。
-
时间评估
在不同数量点的点云比较了不同方法的配准时间,如Table 5所示,作者提出的方法OPRNet比PRNet快一些,和FGR的时间差不多。
-
OT层的影响
配置一是ScoreMap + Softmax + SVD,即DCP算法,配置二是ScoreMap + Softmax,配准三是作者的算法OPRNet: ScoreMap + OT层。因为显存的原因,上述三种算法都去掉了Transformer。实验结果如Table 6所示,训练中使用SVD的效果最差,使用TO层的效果最好。
四、总结
- 论文中引入Outlier bins解决部分匹配的问题,引入Sinkhorn算法解决correspondence问题。
- 论文中监督放在了OT层,是比较独特的。
- 第一次读这篇论文时感觉和RPM-Net非常相像,但仔细一读还是有不少不同的:
- 相同点: 提取特征并计算score map矩阵,通过sinkhorn算法求解correspondence关系。
- 不同点: 骨干网络不同;监督的方式不同;求解R,t的方式不同(加权);迭代和非迭代算法。