簡介
這也是一篇在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,它們的和即為總的損失函數。
相似性矩陣
兩個點的相似性由兩個點特征向量差的 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)是對這一假設的一個驗證,對箭頭指出的點,顔色越深表明特征越接近。
相似性矩陣的Double-Hinge Loss
對于兩個點 P i P_i Pi和 P j P_j Pj,它們之間有三種關系:
- 它們屬于同一部分
- 它們不屬于同一部分,但在語義上它們是同一類物體(比如椅子腿一般有多個,不同椅子腿上的點就是這一關系)
- 它們語義上也不是同一類物體
對這三種情況,它們的損失函數不同:
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∑Npj∑Npl(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.