Deep Global Registration

零、概要

论文提出了用于真实世界中3D点云配准的可微框架: Deep Global Registration. Deep Global Registration基于以下三个框架: 用于预测correspondence confidence的卷积网络, 用于求解R,t的可微的Weighted Procrustes算法和用于优化R,t的鲁棒的迭代算法。 实验表明, 论文中的方法在真实数据集中优于SOTA的经典算法和基于学习的算法。

一、论文的出发点和贡献

三维重建、跟踪、姿态估计和目标检测等很多应用程序,都将点云配准问题作为其操作的一部分。点云配准的精度和速度在现实世界的应用中都是很重要的。最近,基于学习的端到端的网络被证明在配准的经典流程里是有效的。但是基于学习的端到端的网络存在不少问题: PointNetLK使用单一的全局特征, 这在复杂场景时会失败; DCP对点和对应点的分布做了强有力的假设(X中每个点在Y中都要有对应点), 这对于只有部分overlap的点云是不成立的; 3DRegNet在训练3DMatch数据集时不收敛; 使用PRNet训练3DMatch时由于随机crash和高方差的训练loss, 作者也没有得到合理的结果.

作者为了实现鲁棒和精确的配准, 提出了3个模块来解决上述问题:

  • 用于correspondence confidence估计的卷积网络
  • 用于求解R, t的可微分的Weighted Procrustes方法
  • 用于微调配准结果的优化器

二、论文的方法

先整体看一下Deep Global Registration的流程:

  • 输入: X ∈ R n × 3 , Y ∈ R m × 3 X \in \mathbb R^{n \times 3}, Y \in \mathbb R^{m \times 3} XRn×3,YRm×3
  • 输出: R ∈ S O ( 3 ) , t ∈ R 3 × 1 R \in SO(3), t \in \mathbb R^{3 \times 1} RSO(3),tR3×1
  1. 计算点云 X X X Y Y Y中每个点的特征 F x F_x Fx F y F_y Fy
  2. 对于 X X X中的每个点 x i x_i xi, 在点云 Y Y Y中寻找特征( F x i F_{x_i} Fxi, F y j F_{y_j} Fyj)最近的点 y j y_j yj, 构成对应对 M = { ( i , j ) ∣ i ∈ [ 1 , . . . , n ] } M = \lbrace (i, j) | i \in [1, ..., n] \rbrace M={(i,j)i[1,...,n]}
  3. 通过卷积神经网络预测 M M M中每一对 ( i , j ) (i, j) (i,j)是inlier的置信度 w w w
  4. 通过 w w w计算有效correspondence所占比重 r r r
  5. r < τ s r < \tau_{s} r<τs, 通过精确的配准算法求解, 例如RANSAC
  6. 否则:
    • 通过Weighted Procrustes求得 R 、 t R、t Rt闭式解
    • R R R 通过 f − 1 ( R ) f^{-1}(R) f1(R)转成 a ∈ R 6 a \in \mathbb R^6 aR6, 将 a 、 t a、t at作为下面函数的初值进行优化
    • l = Σ ( i , j ) ∈ M ϕ ( w i , j ) L ( Y j , f ( a ) X i + t ) l = \Sigma_{(i, j) \in M} \phi(w_{i, j})L(Y_j, f(a)X_i + t) l=Σ(i,j)Mϕ(wi,j)L(Yj,f(a)Xi+t)
    • 返回 f ( a ) , t f(a), t f(a),t

2.1 提取特征

作者使用Fully Convolutional Geometric Features(FCGF)来对点云进行提取特征, 每个点的特征维度较低: 16或32。

2.2 Correspondence Confidence预测

基于上述特征 F x = { f x 1 , . . . , f x N } F_x = \lbrace f_{x_1}, ..., f_{x_N} \rbrace Fx={fx1,...,fxN} F y = { f y 1 , . . . , f y M } F_y = \lbrace f_{y_1}, ..., f_{y_M} \rbrace Fy={fy1,...,fyM}, 建立映射关系 M = { ( i , arg min j ∣ ∣ f x i − f y j ∣ ∣ ) ∣ i ∈ [ 1 , . . . , N ] } M = \lbrace (i, \text{arg min}_j ||f_{x_i} - f_{y_j}||) | i \in [1, ..., N] \rbrace M={(i,arg minjfxifyj)i[1,...,N]}

通过 M M M中的映射关系 ( i , j ) (i, j) (i,j), 利用点坐标, 生成6维向量 ( x , y ) ∈ R 6 (x, y) \in \mathbb R^6 (x,y)R6, 接下来通过如下图所示神经网络进行预测其confidence。
Deep Global Registration

在训练时如何生成confidence的G.T.呢?

作者设置了一个超参数 τ \tau τ和两个集合 P , N P, N P,N:
P = { ( i , j ) ∣ ∣ T ∗ ( x i ) − y j ∣ ∣ < τ , ( i , j ) ∈ M } , N = P c ⋂ M P = \lbrace(i, j) | |T^*(x_i) - y_j|| < \tau, (i, j) \in M \rbrace, N = P^c \bigcap M P={(i,j)T(xi)yj<τ,(i,j)M},N=PcM
T ∗ T^* T是G.T.的旋转平移变换。
Loss是二值交叉熵损失:
L b c e = 1 ∣ M ∣ ( Σ ( i , j ) ∈ P log p ( i , j ) + Σ ( i , j ) ∈ N l o g ( 1 − p ( i , j ) ) ) L_{bce} = \frac{1}{|M|}(\Sigma_{(i, j) \in P}\text{log}p_{(i, j)} + \Sigma_{(i, j) \in N}log(1 - p_{(i, j)})) Lbce=M1(Σ(i,j)Plogp(i,j)+Σ(i,j)Nlog(1p(i,j)))

2.3 Weighted Procrustes

作者利用上述卷积得到了每一对correspondence的权重 w w w, 接下来优化下式来求解 R , t R, t R,t.
e 2 = e 2 ( R , t ; w , X , Y ) = Σ ( i , j ) ∈ M w ^ ( i , j ) ( y j − R ( x i ) − t ) 2 \begin{aligned} e^2 &= e^2(R, t; w, X, Y) \\ &= \Sigma_{(i, j) \in M}\hat{w}_{(i, j)}{(y_j - R(x_i) - t)}^2 \end{aligned} e2=e2(R,t;w,X,Y)=Σ(i,j)Mw^(i,j)(yjR(xi)t)2

其中 w ^ = [ w ^ 1 , . . . , w ^ ∣ M ∣ ] = ϕ ( w ) ∣ ∣ ϕ w ∣ ∣ 1 \hat w = [\hat w_1, ..., \hat w_{|M|}] = \frac{\phi (w)}{||\phi w||_1} w^=[w^1,...,w^M]=ϕw1ϕ(w), ϕ \phi ϕ是一个非线性变换

先粘贴一下论文中的定理, 由定理得知我们的R,t可以由闭式解求出。接下来我们通过真实 R ∗ , t ∗ R^*, t^* R,t的监督信息来优化参数, loss包括旋转loss和平移loss。

Deep Global Registration

L rot ( R ) = arccos Tr ( R T R ∗ ) − 1 2 , L trans = ∣ ∣ t − t ∗ ∣ ∣ 2 L_{\text{rot}}(R) = \text{arccos} \frac{\text{Tr}(R^TR^*) - 1}{2}, L_{\text{trans}} = ||t - t^*||^2 Lrot(R)=arccos2Tr(RTR)1,Ltrans=tt2

最终的loss是 L rot L_{\text{rot}} Lrot, L trans L_{\text{trans}} Ltrans L bce L_{\text{bce}} Lbce的加权和。

貌似问题解决了? 但在实际应用中, 由于输入点云 X X X Y Y Y的小的overlap和噪声的影响, 有效correspondences不够时, 会得到数值上不稳定的输出。作者提出计算 Σ i ϕ ( w i ) / ∣ M ∣ \Sigma_i \phi(w_i) / |M| Σiϕ(wi)/M来估计有效correspondences的比重, 进而预测配准是否稳定。当比重较低时, 选择使用耗时但精确的配准算法, 比如RANSAC算法等。

接下来讨论当有效correspondences足够多时, 作者是如何优化接触的R和t。

2.4 微调R, t

作者使用6D向量表示旋转矩阵: a 1 , a 2 ∈ R 3 a_1, a_2 \in \mathbb R^3 a1,a2R3, 并且原始旋转矩阵 b b b可以通过如下关系进行返回:
f ( [ a 1 , a 2 ] ) = [ b 1 , b 2 , b 3 ] f([a_1, a_2]) = [b_1, b_2, b_3] f([a1,a2])=[b1,b2,b3]
b 1 , b 2 , b 3 ∈ R 3 , b 1 = N ( a 1 ) , b 2 = N ( a 2 − ( b 1 ⋅ a 2 ) b 1 ) , b 3 = b 1 × b 2 b_1, b_2, b_3 \in \mathbb R^3, b_1 = N(a_1), b_2 = N(a_2 - (b_1 \cdot a_2)b_1), b_3 = b_1 \times b_2 b1,b2,b3R3,b1=N(a1),b2=N(a2(b1a2)b1),b3=b1×b2, N ( ⋅ ) N(\cdot) N()表示L2归一化。

通过上述关系, 可以互相转换 [ a 1 , a 2 ] , t [a_1, a_2], t [a1,a2],t R , t R, t R,t( R , t R, t R,t -> a 1 , a 2 a_1, a_2 a1,a2通过查看源码确定)。定义损失函数 L = Σ ( i , j ) ∈ M ϕ ( w ( i , j ) L ( Y j , f ( a ) X i + t ) L = \Sigma_{(i, j) \in M} \phi(w_{(i, j)}L(Y_j, f(a)X_i + t) L=Σ(i,j)Mϕ(w(i,j)L(Yj,f(a)Xi+t)来优化 a , t a, t a,t, 优化算法可以使用一阶的SGD, Adam算法, 由于参数数量较少, 高阶优化算法也可以使用。

至此, 介绍了Deep Global Registration的流程和一些细节。

三、论文的实验

作者做了哪些实验来证明Deep Global Registration算法的有效性 ?

3.1 基于3DMatch的pairwise registration实验

Deep Global Registration

  • Recall 成功配准的比例: 如果旋转误差和平移误差小于预先设定的阈值, 则表明配准成功.
  • TE 平移误差, 由上述 trans {\text{trans}} trans定义
  • RE 旋转误差, 由上述 rot {\text{rot}} rot定义

表格中前面6行是我们方法和经典全局配准方法的结果(w/o表示without); 7-10行是ICP变种的结果; 11-12行是基于学习的配准方法的结果(作者也尝试了PRNet, 3DRegNet等方法, 但在3DMatch 数据集上不收敛或者结果不稳定)。
由表格可以看出, Deep Global Registration方法在真实的数据集上远超其它的结果。

3.2 Multi-way 配准

Multi-way配准生成一个全局一致的重建结果。作者是在3DMatch数据集上进行训练, 在multi-way 配准数据集上进行测试, 这样证实了跨数据集的泛化能力。

Table 2是在ICL-NUIM数据集上的测试结果; ATE是指的absolute trajectory error(The absolute trajectory error directly measures the difference between points of the true and the estimated trajectory.)

Deep Global Registration

3.3 Outdoor LIDAR Registration

在Kitti上的实验结果如Table 3

Deep Global Registration

论文的不足