天天看點

SGPN閱讀筆記:相似性聚類的點雲模型分割

簡介

這也是一篇在PointNet基礎上進行模型分割的論文。它的流程是,首先使用PointNet和PointNet++找到每個點對應的特征。然後對特征兩兩求差,得到相似性矩陣,它表示了一對點是不是屬于同一類物體。除相似性矩陣外,SGPN還有一個置信向量,來表示點是否屬于模型的一部分(而不是背景);以及一個語義分割矩陣,給同一類的部分打上同樣的label。

方法

SGPN簡單且符合直覺,它的結構如下圖所示。對于有 N p N_p Np​個點的點雲 P P P,它首先使用PointNet得到每個點上的特征,次元為 N p × N f N_p \times N_f Np​×Nf​。對于這一特征矩陣,我們分别在計算相似性矩陣、置信向量和語義分割矩陣時稱之為 F S I M F_{SIM} FSIM​、 F C F F_{CF} FCF​和 F S E M F_{SEM} FSEM​,并分别得到對應的三種損失函數 L S I M L_{SIM} LSIM​、 L C F L_{CF} LCF​和 L S E M L_{SEM} LSEM​,它們的和即為總的損失函數。

SGPN閱讀筆記:相似性聚類的點雲模型分割

相似性矩陣

兩個點的相似性由兩個點特征向量差的 L 2 L_2 L2​範式。即對于點 P i P_i Pi​和 P j P_j Pj​,它們的特征向量為 F S I M i F_{SIM_i} FSIMi​​和 F S I M j F_{SIM_j} FSIMj​​,則相似性矩陣 S S S為

S i j = ∣ ∣ F S I M i − F S I M j ∣ ∣ 2 S_{ij} = || F_{SIM_i} - F_{SIM_j} ||_2 Sij​=∣∣FSIMi​​−FSIMj​​∣∣2​

它的假設是,兩個點如果屬于同一部分(或同一類),則它們的特征會更加接近。下圖(a)是對這一假設的一個驗證,對箭頭指出的點,顔色越深表明特征越接近。

SGPN閱讀筆記:相似性聚類的點雲模型分割

相似性矩陣的Double-Hinge Loss

對于兩個點 P i P_i Pi​和 P j P_j Pj​,它們之間有三種關系:

  1. 它們屬于同一部分
  2. 它們不屬于同一部分,但在語義上它們是同一類物體(比如椅子腿一般有多個,不同椅子腿上的點就是這一關系)
  3. 它們語義上也不是同一類物體

對這三種情況,它們的損失函數不同:

l ( i , j ) = { ∣ ∣ F S I M i − F S I M j ∣ ∣ 2 C i j = 1 α max ⁡ ( 0 , K 1 − ∣ ∣ F S I M i − F S I M j ∣ ∣ 2 ) C i j = 2 max ⁡ ( 0 , K 2 − ∣ ∣ F S I M i − F S I M j ∣ ∣ 2 ) C i j = 3 \begin{aligned} l(i,j) = \left\{ \begin{aligned} & || F_{SIM_i} - F_{SIM_j} ||_2 & C_{ij} = 1 \\ & \alpha \max (0, K_1 - || F_{SIM_i} - F_{SIM_j} ||_2) & C_{ij} = 2 \\ & \max (0, K_2 - || F_{SIM_i} - F_{SIM_j} ||_2) & C_{ij} = 3 \end{aligned} \right. \end{aligned} l(i,j)=⎩⎪⎨⎪⎧​​∣∣FSIMi​​−FSIMj​​∣∣2​αmax(0,K1​−∣∣FSIMi​​−FSIMj​​∣∣2​)max(0,K2​−∣∣FSIMi​​−FSIMj​​∣∣2​)​Cij​=1Cij​=2Cij​=3​​

其中, C i j C_{ij} Cij​表示了它們屬于哪一類關系, α > 1 \alpha>1 α>1以及 K 2 > K 1 K_2>K_1 K2​>K1​都是一些參數。顯然,我們希望對于第2類關系,它們相似性應小于 K 1 K_1 K1​,對于第三類關系,它們相似性應小于 K 2 K_2 K2​。

整體的損失函數為兩兩損失的加和,即

L S I M = ∑ i N p ∑ j N p l ( i , j ) L_{SIM} = \sum_{i}^{N_p} \sum_{j}^{N_p} l(i,j) LSIM​=i∑Np​​j∑Np​​l(i,j)

相似性置信網絡

F C F F_{CF} FCF​被傳入另一個PointNet,得到一個 N p × 1 N_p \times 1 Np​×1的置信向量 C M CM CM。 C M CM CM表示了它對于該點是一個模型上的點的信心(與之相對的是背景點)。上圖(b)可視化了置信向量的結果,可以看到,在模型中間,置信度很高;而在模型邊緣,置信度就下降了,因為我們擔心它們實際上是背景點。

置信向量的ground truth和相似性矩陣 S S S相關。訓練時,對每個點 P i P_i Pi​,每一輪疊代中,相似性矩陣給出了和 P i P_i Pi​同類的一個點集 S i S_i Si​,以及我們本來就有的分割ground truth點集 G i G_i Gi​,我們以它們的IoU(Intersection over Union)為 P i P_i Pi​的置信ground truth。當點 P i P_i Pi​為背景點時, G i G_i Gi​為空,IoU顯然為0;在訓練過程中, S i S_i Si​會慢慢地接近 G i G_i Gi​,IoU也就會越來越大,進而使我們的網絡也對它們逐漸更有信心。

是以,置信網絡的損失函數 L C F L_{CF} LCF​為網絡産生的結果和IoU的L2範數。

在測試階段,當置信度大于門檻值 T h C Th_C ThC​時,我們才認為這些是有效的、需要分割的點。

語義分割映射

F S E M F_{SEM} FSEM​被傳入了第三個PointNet,得到一個 N p × N C N_p \times N_C Np​×NC​的語義分割矩陣 M S E M M_{SEM} MSEM​,其中 N C N_C NC​代表分割的種類數量。 M S E M M_{SEM} MSEM​中的每一項代表了該點屬于該類别的機率。

這一過程的損失函數為softmax交叉熵,和大多數的分類問題一緻。作者使用了中頻平衡(median frequency balancing),每個類具有的權重為 a c = m e d i a n f r e q / f r e q ( c ) ac=medianfreq/freq(c) ac=medianfreq/freq(c),其中 f r e q ( c ) freq(c) freq(c)表示類别為 c c c的點占總點數的比例, m e d i a n f r e q medianfreq medianfreq表示 f r e q ( c ) freq(c) freq(c)中的中位數。這樣,對于數量特别多的類别,其權重就會下降;數量特别少的類别,權重就會上升。

方案整合

在相似性矩陣中,每個點都提出了自己的一個聚類的主張,即和自己像的點劃為一類,其他點劃為一類。是以這樣的主張共有 N p N_p Np​個,它們大多有噪聲,或表示了同樣的一個部分。我們首先丢棄掉那些置信度小于 T h C Th_C ThC​和基數(cardinality,即集合的元素數量)小于 T h M 2 Th_{M2} ThM2​的點。然後我們采用了非極大值抑制(Non-Maximum Suppression,NMS)的方法來得到不重疊的分割方案,即我們選擇了IoU大于門檻值 T h M 1 Th_{M1} ThM1​的聚類中,基數最大的那一個作為最終的聚類結果。

這樣每個點就被配置設定到了每一類中,但仍有少量的點(大約2%)被配置設定給了多個部分。這通常意味着這些點出于部分和部分的邊緣。由于邊緣的二義性,随機配置設定這些點并不會顯著影響分割的結果。這一過程被稱為了GroupMerging。

參考文獻

Wang, Weiyue, et al. “Sgpn: Similarity group proposal network for 3d point cloud instance segmentation.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018.

繼續閱讀