論文筆記:PPFNet

原論文:PPFNet: Global Context Aware Local Features for Robust 3D Point Matching

PPFNet

1、四個問題

  1. 要解決什麼問題?
    • 在3D視覺中,3D幾何信息的局部描述子在許多任務中扮演了很重要的角色,諸如:對應性估計、匹配、配準、物體檢測以及形狀恢復等。儘管近10年間,出現了一系列手工設計(hand-craft)的3D特徵描述子,但是卻很難爲3D點雲數據生成理想的可重複且具有區分性的局部描述子。因爲很多時候,3D點雲中含有較多噪聲,或是不完整的。
    • 所以,這篇論文的目的是爲3D點雲生成理想且魯棒的3D局部特徵子。
  2. 用了什麼方法解決?
    • 文中,提出了PPFNet網絡。基於深度學習方法來生成易區分且抗旋轉的3D局部特徵子。
      1. 首先,將一些簡單的幾何特徵屬性如:點的座標、法線以及點對特徵(point pair features, PPF),組合起來成原始特徵;
      2. 隨後,又設計了一個新的損失函數:N-tuple Loss。其類似於contrastive loss,能同時將多個同類或者不同類樣本嵌入到一個歐式空間中,樣本之間的差異用其特徵向量的歐式距離表示。
      3. 最後,PPFNet網絡的結構繼承自PointNet,因此它天生就可以處理點雲以及應對點的無序性。
  3. 效果如何?
    • 文中對PPFNet進行了額外的驗證實驗,在準確率、速度、對點的稠密程度的魯棒性以及抗3D平移旋轉等方面都取得了最state-of-the-art的效果。
  4. 還存在什麼問題?
    1. PPFNet的一個問題在於二次內存的佔用,導致我們只能將硬件上的patch數限制爲2000個。而另一個3D匹配方法——3D Match,則取到5000個,所以在某些特定任務上效果相比下略微差一些。
    2. 現在的3D匹配都是基於室內場景的3D特徵點匹配,還沒有針對更具一般性更難的場景下進行研究。

2、論文概述

2.1、相關工作

  1. hand-crafted的3D特徵描述子:
    • 旋轉不變特徵,比如點對特徵(point pair feature, PPF),例如:PPFHFPFH
  2. 訓練得到的3D特徵描述子:
    • 有一部分方法是直接處理點雲,進行編碼。比如,TDFTSDF等。最近有一項此類的研究工作——3DMatch,它先使用TSDF進行編碼,隨後使用一個contrastiev loss損失函數來衡量樣本間的一致性並訓練網絡。
    • 另外一個分支,是基於3D信息獲取投影的2D圖片或者深度圖,並使用已經廣泛研究過的基於2D圖片的分類網絡。
    • 此外還有一個分支,圖網絡(graph networks)也可以用於表示點集。
    • 一個比較重要的突破源自於PointNet,可以直接輸入原始的3D點雲。之後還擴展爲了PointNet++,以更好地提取局部信息。

2.2、背景

2.2.1、動機

  • 假設有兩個點集XRn×3X \in \mathbb{R}^{n \times 3}YRn×3Y \in \mathbb{R}^{n \times 3},其中xix_iyiy_i分別表示連個點集中對應的第ii個點的座標。
  • 假設每個點xix_i都有一個與之對應的yiy_i,使用一個置換矩陣PPnP \in \mathbb{P}^n來表示這個對應關係。
  • 兩個點集之間的變換關係矩陣可以定義爲:T={RSO(3),tR3}T=\{ R \in SO(3), t \in \mathbb{R}^3 \}
  • 點集之間的L2距離如下:

(1)d(X,YR,t,P)=1ni=1nxiRyi(P)td(X, Y | R, t, P) = \frac{1}{n} \sum_{i=1}^{n} \| x_i - Ry_{i(P)} - t \| \tag{1}

  • 其中,xix_iyi(P)y_{i(P)}之間的對應關係爲PP
  • 假設XXYY的維度相同,即X=Y=n|X| = |Y| = n
  • 式子1可以轉爲如下式:

(2)d(X,YT,P)=1nXPYTTd(X, Y | T, P) = \frac{1}{n} \| X - P Y T^T \| \tag{2}

  • 理想情況下,如果兩個點集相互匹配,那麼d(X,YT,P)0d(X, Y | T, P) \approx 0
  • 這也意味着,我們需要尋找一個也滿足類似性質的非線性映射關係:f(x)f(x)

(3)df(X,YT,P)=1nf(X)f(PYTT) d_f(X, Y | T, P) = \frac{1}{n} \| f(X) - f(PYT^T) \| \tag{3}

  • 如果兩個點集相互匹配,那麼也會有:df(X,YT,P)0d_f(X, Y | T, P) \approx 0
  • 此外,爲了保證旋轉和置換不變性,最好能保證f(Y)f(PYTT)f(Y) \approx f(PYT^T)
  • 很自然地,就想到了PointNet架構,它可以處理無序點集,並提取成全局特徵。

2.2.2、Point Pair Features(PPF)

  • PPF是一個4維的描述子,表示的是一對點x1x_1x2x_2的表面特徵,計算公式如下:

(4)ψ12=(d,(n1,d),(n2,d),(n1,n1))\psi_{12} = (\|d\|, \angle{(n1, d)}, \angle{(n2, d)}, \angle{(n1, n1)} ) \tag{4}

  • dd:兩個點之間的差值,是一個向量。
  • n1n_1、$ n_2分別是x_1 x_2$上的法向量。
  • ˙\| \dot{} \|:歐氏距離。
  • \angle表示向量之間的夾角:

(5)(v1,v2)=atan2(v1×v2,v1v2) \angle(v_1, v_2) = atan2(\| v_1 \times v_2 \|, v_1 \cdot v2) \tag{5}

2.2.3、PointNet

  • 文中只是用了原始的PointNet(vanilla PointNet),不帶STN單元。
  • PointNet是通過一些獨立的MLP來處理點雲數據,最後通過一個全局的最大池化來提取全局特徵,可以處理無序、長度可變化的點集。(具體內容不做贅述,可以參考PointNet的論文)

2.3、PPFNet

2.3.1、局部幾何信息編碼

在這裏插入圖片描述

  • xrx_r爲中心點,xix_i表示一個以xrx_r爲中心的patch內的點(即iirr領域的點)

(6)Fr={xr,nr,xi,...,ni,...,ψri,...}F_r = \{ x_r, n_r, x_i, ..., n_i, ..., \psi_{ri}, ... \} \tag{6}

2.3.2、網絡結構

在這裏插入圖片描述

  1. 輸入包含有N個均勻採樣的局部區域(local patches)。
  2. 從這些區域中提取特徵,隨後送入mini-PointNet中,進一步提取特徵。所有的PointNet的權值和偏置參數都共享。
  3. 接着使用一個最大池化層將各個patch的局部特徵聚合爲全局特徵。
  4. 然後再把全局特徵拼接到各個局部特徵上。
  5. 最後使用一組MLP來融合局部和全局特徵得到最終的3D特徵描述子。

2.3.3、N-tuple Loss

在這裏插入圖片描述

  • 兩種常用的loss函數:contrastive loss和triplet loss。儘管這兩個loss會盡可能區分2/3個樣本,但是也存在一些隱患,如圖中所示,儘管都滿足了減小類內間距增加類間間距的要求,但是並沒有保證所有的樣本都能滿足這一性質。而樣本對的選取是隨機的,無法保證一定能包括所有可能情況。
  • 將這類loss推廣到N個樣本的情況,提出了N-tuple loss。
  • 給定ground truth的變換矩陣TT,首先要計算點集對齊後的對應性矩陣:MRN×NM \in \mathbb{R}^{N \times N}M=(mij)M = (m_{ij})

(7)mij=σ(xiTyj2<τ)m_{ij} = \sigma ( \| x_i - T y_j \|_2 < \tau) \tag{7}

  • σ\sigma是標誌函數。
  • 類似地,也可以計算特徵空間距離矩陣DRN×ND \in \mathbb{R}^{N \times N}D=dijD = d_{ij}

(8)dij=f(xi)f(yi)2d_{ij} = \| f(x_i) - f(y_i) \|_2 \tag{8}

  • N-tuple loss計算公式如下:

(9)L=(MDM22+αmax(θ(1M)D,0)N2M22) L = \sum^* ( \frac{M \circ D}{\| M \|_2^2} + \alpha \frac{max(\theta - (1 - M) \circ D, 0)}{N^2 - \|M\|_2^2} ) \tag{9}

  • \circ表示矩陣的哈達馬乘積(hadamard product),即矩陣對應位置的數相乘。
  • α\alpha爲權衡同類和異類樣本對間距的超參數,θ\theta爲異類樣本點之間距離的下邊界(最小值)。

2.4、訓練網絡

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章