1. 程式人生 > 實用技巧 >[ECCV 2020] IDAM(Iterative Distance-Aware Similarity Matrix Convolution with Mutual-Supervised ..)

[ECCV 2020] IDAM(Iterative Distance-Aware Similarity Matrix Convolution with Mutual-Supervised ..)

零、概要

0.0 摘要

論文中提出了一種新的基於學習的用於具有部分重疊(partially overlapping)3D點雲配準的流程(pipeline)。該模型包括一個迭代的距離感知相似度矩陣卷積(iterative distance-aware similarity matrix convolution, IDAM)模組,將特徵和歐幾里得空間的資訊整合到點對(pairwise point)的匹配過程中。而且,作者提出了一個兩階段的可學習的點消除技術,以提高計算效率和減少假陽性的對應對(correspondence pairs)。作者提出了一種新的互監督損失模型,在不增加關鍵點註釋的情況下對模型進行訓練。整個流程可以很容易地與傳統特徵(如FPFH)或者基於學習的特徵進行整合。在部分重疊和具有具有噪聲點的點雲資料上的配準實驗,表明該方法在提高計算效率的同時,優於現有的配準技術。

一、論文的出發點和貢獻

點雲配準是計算機視覺中的一項重要任務,它的目的是通過剛體變換將一個(源, source)三維點雲與另一個(目標, target)點雲對齊。它在計算機視覺、增強現實和虛擬現實等領域有著廣泛的應用,如位姿估計和三維重建。

經典的點雲配准算法ICP對於初始位置較敏感,一些全域性匹配的演算法如Go-ICP, FGR等效率較慢,導致在實際應用中都存在問題。

近些年來,基於學習(資料驅動)的配准算法也被提出,如PointNetLK, DCP等演算法,但這些演算法仍舊有缺點,比如DCP假定源點雲中的每個點在目標點雲中都有對應(correspondence)關係。

因此,作者提出了迭代的距離感知相似度矩陣卷積網路(Iterative Distance-Aware Similarity Matrix Convolution Network, IDAM),一種新的用於精確(accurate)、高效(efficient)點雲配準的可學習的流程(pipeline)。

  • 解決點特徵和距離問題

    作者認為,在迭代匹配過程中,結合幾何特徵距離特徵可以解決模糊性問題,並且比使用其中任何一個都有更好的效能。對於距離,論文提出使用一個學習模組,基於兩個點的特徵來計算相似性分數(similarity score)。

  • 提升配準效率

    為了降低計算複雜度,論文提出了一種新的two-stage的點消除(point elimination)技術,來平衡效能和效率。第一個stage, hard point消除,獨立的過濾掉大部分不太可能是匹配點的點; 第二個stage,混合點(hybrid point)消除,消除對應對(correspondence pair),降低很可能是假陽性對應對(correspondece pair)的權重。

  • 提出互監督損失(mutual-supervision loss)

    作者設計了一種新的互監督損失來訓練這些點消除模組(point elimination modules)。這種損失使得模型可以進行端到端的訓練,而不需要額外的關鍵點標註。

二、論文的方法

源(source)點雲記為 S S S,具有 N S N_S NS個點; 目標點雲記為 T T T,具有 N T N_T NT個點。 p i ∈ S p_i \in S piS表示源點雲 S S S的第 i i i個點, q j ∈ T q_j \in T qjT表示目標點雲 T T T的第 j j j個點。 R ∗ R^* R t ∗ t^* t表示源點雲 S S S到目標點雲 T T T的真實(Ground Truth)變換(旋轉矩陣和平移向量)。

2.1 點對應關係

給定 p i ∈ S p_i \in S piS的幾何特徵為 u S ( i ) ∈ R K u^S(i) \in \mathbb R^K uS(i)RK q j ∈ T q_j \in T qjT的幾何特徵為 u T ( j ) ∈ R K u^T(j) \in \mathbb R^K uT(j)RK,論文中將第n次迭代的距離增強特徵張量(distance-augmented feature tensor)表示為:

T ( n ) = [ u S ( i ) ; u T ( j ) ; ∣ ∣ p i − q j ∣ ∣ ; p i − q j ∣ ∣ p i − q j ∣ ∣ ] T^{(n)} = [u^S(i); u^T(j); ||p_i - q_j||; \frac{p_i - q_j}{||p_i - q_j||}] T(n)=[uS(i);uT(j);piqj;piqjpiqj]

[ ⋅ ; ⋅ ] [\cdot ; \cdot] [;]表示concatenation。 T ( n ) ( i , j ) T^{(n)}(i, j) T(n)(i,j)是一個(2K+4)維的向量,表示 p i p_i pi q j q_j qj幾何特徵和歐幾里得特徵的組合。這樣就構造了一個 ( N S , N T , 2 K + 4 ) (N_S, N_T, 2K+4) (NS,NT,2K+4)的張量(distance-augmented feature tensor)。接下來,對每一個位置 ( i , j ) (i, j) (i,j)處的特徵,進行多次MLP(2K+4, 32, 32, 32, 32, 1)生成(N_S, N_T)的特徵,並在最後一個維度上經過softmax操作 S ( n ) S^{(n)} S(n),生成相似度矩陣(similarity matrix) S ( n ) ( i , j ) S^{(n)}(i, j) S(n)(i,j)表示 q j q_j qj p i p_i pi對應點的概率。通過在 S ( n ) S^{(n)} S(n)的每一行上尋找arg max,可以構造對應對(correspondence pairs) { ( p i , p i ′ ) ∣ ∀ p i ∈ S } \lbrace (p_i, p_i') | \forall p_i \in S \rbrace {(pi,pi)piS},接下來通過SVD方法求解R, t。

但有兩個地方需要注意:

  • IDAM是一個迭代演算法,在第n次迭代時求解的R, t,將作用於第i次源點雲,作為第i+1次的迭代,幾何特徵不變,只改變了距離特徵;最終求解的R, t是n次迭代求解 R ( n ) , t ( n ) R^{(n)}, t^{(n)} R(n),t(n)的組合。
  • 效率問題: 在產生相似度矩陣時,利用了 ( N S , N T , 2 K + 4 ) (N_S, N_T, 2K+4) (NS,NT,2K+4)的張量, N S , N T N_S, N_T NS,NT一般會超過1000,計算量是龐大的。為了提升效率,作者提出了2階段點消除(two-stage point elimination)流程: 包括hard point消除(elimination)和混合點消除(hybrid point elimination),分別被用來提高效率和精度。

在這裡插入圖片描述

2.2 hard point 消除

為了減少相似度矩陣卷積的負擔,作者首先提出了hard point 消除。設輸入點雲的數量是N,hard point消除的結果是儲存M個點,M = N // 6。此過程在訓練集和測試集的處理流程是不一樣的

  • 測試集

    在測試集hard point的消除如Fig. 2(left)所示,輸入點集特徵 F ∈ R N × C F \in \mathbb R^{N \times C} FRN×C,對每個點進行引數共享的MLP(C, 64, 64, 1),得到每個點的重要性得分significance score,選擇Top K 個點進入到下一階段。對於源點雲 S S S和目標點雲 T T T,經過hard point 消除後的點雲,分別記為 B S B_S BS B T B_T BT

  • 訓練集

    首先,在源點雲中定義S正樣本和負樣本。

    p pos ( i ) = 1 [ min ⁡ q ∈ T ∣ ∣ R ∗ p i + t ∗ − q ∣ ∣ 2 ≤ r 2 ] + ϵ p_{\text{pos}}(i) = 1[\min_{q \in T} ||R^*p_i + t^* - q||^2 \leq r^2] + \epsilon ppos(i)=1[qTminRpi+tq2r2]+ϵ
    p neg ( i ) = 1 [ min ⁡ q ∈ T ∣ ∣ R ∗ p i + t ∗ − q ∣ ∣ 2 > r 2 ] + ϵ p_{\text{neg}}(i) = 1[\min_{q \in T} ||R^*p_i + t^* - q||^2 > r^2] + \epsilon pneg(i)=1[qTminRpi+tq2>r2]+ϵ

    ϵ = 1 0 − 6 \epsilon = 10^{-6} ϵ=106是某個比較小的數。在訓練時,對於源點雲選擇 M//2個正樣本,選擇N//2個負樣本,形成了大小是M的集合 B S B_S BS。對於目標的點雲,作者選擇距離 B S B_S BS最近的點:

    B T = { arg ⁡ min ⁡ q ∣ ∣ R ∗ p i + t ∗ − q ∣ ∣ ∣ i ∈ B S } B_T = \lbrace \arg \min_{q}||R^*p_i + t^* - q|| | i \in B_S\rbrace BT={argqminRpi+tqiBS}

2.3 混合點消除

雖然hard point 消除顯著提高了效率,但對模型的效能有負面影響,比如,目標點雲中的對應點可能被消除,對於區域性overlap的點雲組也會出現這樣的找不到對應點的情況,這些"negative point pairs"可以使得輸出的R, t不精確。因此,作者提出了混合點消除(hybrid point elimination)。混合點消除模組是在相似度矩陣模組後面的,它不同於hard point 消除,混合消除模組是作用於點對(point pairs)的。

設相似度矩陣為F,其維度為M x M x K’,混合點消除模組首先計算它的有效性分數:

v ( i ) = σ ( f ( ⨁ j ( F ( i , j ) ) ) ) v(i) = \sigma(f(\bigoplus_j(F(i, j)))) v(i)=σ(f(j(F(i,j))))

σ ( ⋅ ) \sigma (\cdot) σ()是sigmoid函式, ⨁ \bigoplus 是池化方法(均值或最大值), f f f是一個多層感知機(32, 32, 1),混合點消除模組的結果如Fig2.(right)所示。這樣就有了源點雲中每個點的有效性分數,也就是每個點對的有效性分數。

有了這個有效性得分,我們然後可以計算混合消除的權重,第 i i i個點對的權重為:

w i = v ( i ) ⋅ 1 [ v ( i ) ] ≥ median k ( v ( k ) ) ] Σ i v ( i ) ⋅ 1 [ v ( i ) ] ≥ median k ( v ( k ) ) ] w_i = \frac{v(i) \cdot 1 [v(i)] \geq \text{median}_k(v(k))]}{\Sigma_i v(i) \cdot 1 [v(i)] \geq \text{median}_k(v(k))]} wi=Σiv(i)1[v(i)]mediank(v(k))]v(i)1[v(i)]mediank(v(k))]

這個加權過程的作用是,給那些有效性得分小於均值的點對賦予0權重(hard elimination),其餘的與有效性得分成比例的加權(soft elimination)。接下來通過SVD求解一個加權的優化函式,來獲得R, t:

R , t = arg ⁡ min ⁡ R , t Σ i w i ∣ ∣ R p i + t − p i ′ ∣ ∣ R, t = \arg \min_{R, t}\Sigma_iw_i||Rp_i + t - p_i'|| R,t=argR,tminΣiwiRpi+tpi

2.4 整體框架

在瞭解了上述三個子模組之後,接下來看一下IDAM網路的整體架構,如Fig.1所示。網路的輸入是N x 3的源點雲S和M x 3的目標點雲T,網路的輸出是使得源點雲和目標點雲對齊的R, t。

  1. 首先,源點雲S和目標點雲T分別經過一個特徵提取模組(GNN或FPFH),分別得到 N x K 和 M x k 的特徵。
  2. 通過 hard point 消除模組,從S和T中取樣得到M個點集
  3. 生成相似度矩陣,維度為(M, M, 32),從而得到相似度分數S,來構成對應點(correspondence points)關係
  4. 混合點消除模組,生成每個點對的有效性分數,從而得到每個點對的權重 w i w_i wi
  5. 利用加權SVD求解R, t
  6. 迭代3, 4, 5。

在這裡插入圖片描述

2.5 損失函式

有了網路架構,也知道了網路的輸入和輸出,那麼損失函式是什麼呢,論文中的損失函式主要包括3個:

  • 負熵損失(Negative Entropy Loss)

    此損失用於訓練hard point消除,因為沒有關鍵點標註的直接資訊,作者提出使用互監督(mutual supervision)技巧來監督hard point消除。

    L hard ( S , T , R ∗ , t ∗ ) = 1 M Σ i = 1 M ∣ s ( i ) − Σ j = 1 M S ( i , j ) log S ( i , j ) ∣ L_{\text{hard}}(S, T, R^*, t^*) = \frac{1}{M}\Sigma_{i=1}^M|s(i) - \Sigma_{j=1}^MS(i, j)\text{log}S(i, j)| Lhard(S,T,R,t)=M1Σi=1Ms(i)Σj=1MS(i,j)logS(i,j)

    s ( i ) s(i) s(i)是點雲中第 i i i個點的重要性,而負熵看做重要性的監督資訊。對於源點雲和目標點雲都使用了負熵損失。而且,負熵損失在第一次迭代中被累加,因為作者認為,在配準的早期階段,形狀特徵比歐幾里得特徵更重要,作者希望基於形狀資訊過濾掉hard point。

  • 混合消除損失(Hybrid Elimination Loss)

    類似的互監督思想也可以用於混合點消除訓練。

    L hybrid ( S , T , R ∗ , t ∗ ) = 1 M Σ i = 1 M − I i ⋅ l o g ( v ( i ) ) − ( 1 − I i ) l o g ( 1 − v ( i ) ) L_{\text{hybrid}}(S,T,R^*, t^*) = \frac{1}{M}\Sigma_{i=1}^M-I_i \cdot log(v(i)) - (1 - I_i)log(1-v(i)) Lhybrid(S,T,R,t)=M1Σi=1MIilog(v(i))(1Ii)log(1v(i))

    其中 I i = 1 ∣ ∣ R ∗ p i + t ∗ − q arg ⁡ max ⁡ j S ( i , j ) ∣ ∣ 2 ≤ r 2 I_i = 1||R^*p_i + t^* - q_{\arg \max_jS(i, j)}||^2 \leq r^2 Ii=1Rpi+tqargmaxjS(i,j)2r2

    這種損失為 B S B_S BS中找到正確匹配的點分配一個正標籤1,否則分配一個負標籤0。

  • 點匹配損失(Point Matching Loss)

    點匹配損失用來監督相似度矩陣的卷積。它是一個標準的交叉熵損失。

    L match ( S , T , R ∗ , t ∗ ) = 1 M Σ i = 1 M − log ( S ( i , j ∗ ) ) ⋅ 1 [ ∣ ∣ R ∗ p i + t ∗ − q j ∗ ∣ ∣ 2 ≤ r 2 ] L_{\text{match}}(S, T, R^*, t^*) = \frac{1}{M}\Sigma_{i=1}^M-\text{log}(S(i, j^*)) \cdot 1[||R^*p_i + t^* - q_{j^*}||^2 \leq r^2] Lmatch(S,T,R,t)=M1Σi=1Mlog(S(i,j))1[Rpi+tqj2r2]

    其中, j ∗ = arg ⁡ min ⁡ 1 ≤ j ≤ M ∣ ∣ R ∗ p i + t ∗ − q j ∣ ∣ 2 j^* = \arg \min_{1 \leq j \leq M}||R^*p_i + t^* - q_j||^2 j=argmin1jMRpi+tqj2。如果 p i p_i pi q j q_j qj的距離大於 r r r,這就不能成為一個對應關係,也不會對他們施加監督資訊。

程式碼中的3個loss的實現還是很巧妙的,一開始沒有看懂(以為程式碼寫錯了),後來才發現作者利用srg和gt的產生方式,src和gt是一一對應的

三、論文的實驗

作者在實驗部分使用了ModelNet40資料集(9843訓練集, 2648測試集)。

對於一個原始點雲,作者隨機取樣1024個點作為源點雲S,隨機產生一個旋轉[0, 45°]和平移[-0.5, 0.5]作用於源點雲,產生目標點雲T。對於區域性重疊(partially overlap)的點雲,作者採用PRNet中的方法: 固定一個距離這源點雲和目標點雲都很遠的點A,對於這兩個點雲均取樣距離點A最近的768個點。

評估指標和DCP、PRNet一樣,RMSE®, MAE®, RMSE(t)和MAE(t)。

作者展示了三個不同實驗的結果,來證明提出方法的有效性和魯棒性。

3.1 Unseen Shapes

作者在訓練集上訓練,在測試集上測試,訓練集和測試集均包括40類樣本。實驗結果如Table 1所示,區域性匹配ICP演算法較差(因為初始旋轉角度較大);FPFH + RANSAC是傳統演算法中最好的,和許多基於學習的方法相當;作者的方法FPFH + IDAM 或 GNN + IDAM 均好於其它的方法,而且令人驚訝的是FPFH + IDAM的效果好於GNN + IDAM 的結果。作者認為是GNN在訓練集上過擬合了,在測試集上泛化的沒有那麼好。下面的實驗中,作者也證明了GNN + IDAM對噪聲也更加魯棒,並且比FPFH + IDAM更加高效。

在這裡插入圖片描述

重複上述實驗,在資料集中增加隨機高斯噪聲,傳統的方法和FPFH + IDAM演算法比在無噪聲的資料上效能低了很多。這說明了FPFH對噪聲特別不敏感。由於強大的特徵提取網路,資料驅動方法的效能與無噪聲時相當。與其他方法相比,論文中基於GNN的方法具有最好的效能。

在這裡插入圖片描述

3.2 Unseen Categories

作者在前20類資料集上進行訓練,在後20類資料上進行評估,實驗結果如Table 2所示。從Table 2可以看到,沒有在測試集的類別上進行訓練,所有基於學習的方法一致表現得較差。基於不同的評估指標,FPFH + RANSAC 和 FPFH + IDAM是效能最好的辦法。

在這裡插入圖片描述

3.3 Efficiency

作者對配準的速度進行了評估,分別評估1024, 2048和4096個點,實驗結果如Table 4所示,可以看到基於學習的方法普遍比傳統方法快。當點的數量較少時,GNN + IDAM方法只慢於DCP,但隨著點的數量增多, GNN + IDAM方法明顯快於其它方法。

在這裡插入圖片描述

3.4 Ablation Study

作者研究了模型的三個關鍵組成部分的有效性:距離感知相似度矩陣卷積(distance-aware similarity matrix convolution, SM),hard point 消除(elimination, HA)和混合點消除(Hybrid point elimination, HB)。作者使用BS表示不包括上述三個模組的基於GNN的模型,採用了Unseen Category的方式進行了評估,實驗結果如Table 5所示。可以看到,即使在隨機抽樣的情況下,相似度矩陣的效能已經遠遠超過BS。兩階段點消除進一步提升了網路的效能。

在這裡插入圖片描述

四、對論文的想法

最早看到這個論文題目的時候,被題目嚇到了,遲遲沒有閱讀。這兩天讀了一下這篇文章,發現文章還是很好懂的,開源的程式碼也很簡潔,結合程式碼可以很清楚地理解論文中的模型。

  • 跑了一下Unseen Shapes的結果,如下圖所示。在第9個epoch的時候,實驗效能已經高於了論文中的結果, 另外當迭代次數增加到30時,在測試集的效能明顯低於訓練集,且低於論文中的結果,應該是過擬合了。

在這裡插入圖片描述
在這裡插入圖片描述

  • 優點:
    • Loss: 互監督學習
    • 提取特徵GNN或FPFH
  • 缺點:
    • 實驗不充分,只在ModelNet40簡易資料集上進行了實驗,在真實資料集上的效果待驗證。