Deep Global Registration

zhulf0804發表於2020-09-26

零、概要

論文提出了用於真實世界中3D點雲配準的可微框架: Deep Global Registration. Deep Global Registration基於以下三個框架: 用於預測correspondence confidence的卷積網路, 用於求解R,t的可微的Weighted Procrustes演算法和用於優化R,t的魯棒的迭代演算法。 實驗表明, 論文中的方法在真實資料集中優於SO他的經典演算法和基於學習的演算法。

一、論文的出發點和貢獻

三維重建、跟蹤、姿態估計和目標檢測等很多應用程式,都將點雲配準問題作為其操作的一部分。點雲配準的精度和速度在現實世界的應用中都是很重要的。最近,基於學習的端到端的網路被證明在配準的經典流程裡是有效的。但是基於學習的端到端的網路存在不少問題: 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。
在這裡插入圖片描述

在訓練時如何生成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。

在這裡插入圖片描述

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實驗

在這裡插入圖片描述

  • 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.)

在這裡插入圖片描述

3.3 Outdoor LIDAR Registration

在Kitti上的實驗結果如Table 3

在這裡插入圖片描述

論文的不足

相關文章