零、概要
- 論文: USIP: Unsupervised Stable Interest Point Detection from 3D Point Clouds
- tag:
;ICCV 2019
,Keypoints
Registration
- 代碼: https://github.com/lijx10/USIP
- 作者: Jiaxin Li, Gim Hee Lee
- 機構: National University of Singapore
- 筆者整理了一個最近幾年150多篇點雲的論文清單,歡迎大家一塊學習交流。
0.0 摘要
論文中提出了USIP檢測器:一種無監督的穩定的興趣點檢測器(Unsupervised Stable Interest Point detector),它可以在不需要任何Ground Truth訓練集的情況下,在任何變換的3D點雲中,檢測出高度可重複的(highly repeatable)和精确定位的關鍵點。USIP由一個feature proposal 網絡組成,該網絡從輸入的3D點雲和對其進行變換後的3D點雲中學習穩定的關鍵點。作者進行退化分析,并且提出解決方法。論文中提出了基于機率的chamfer loss,對輸入點雲對的關鍵點之間的距離進行優化。對來自雷射雷達、RGB-D和CAD模型的幾個模拟和真實三維點雲資料集,進行大量可重複性的測試,實驗結果表明USIP明顯優于
現有的手工制作和基于深度學習的關鍵點檢測器。
一、論文的出發點和貢獻
三維興趣點或關鍵點檢測,是指在任意的SE(3)變換的情況下,在三維點雲中尋找具有高度可重複性的穩定點的問題。這些檢測到的關鍵點在很多計算機視覺和機器人任務中扮演着重要角色。
大多數現有的3D關鍵點檢測器仍然是人工設計的,這些人工設計的檢測器都有一個共同點,即依賴點的局部幾何特征來選擇關鍵點,是以這些檢測器的性能在噪聲、密度變化、和坐标變換的幹擾下性能下降。由于缺少帶有ground truth的訓練集,非常少的基于深度學習的關鍵點檢測器被提出,據作者所說,當時唯一存在的基于深度學習的檢測器是3DFeatNet[ECCV 2018],但3DFeatNet主要集中在學習具有區分性的描述子,而預測的score map用來估計每個點顯著性隻是它的副産品,是以它不能保證關鍵點檢測的良好性能。
是以,作者提出了USIP檢測器: 一種基于深度學習的無監督的穩定的興趣點檢測器。作者的主要貢獻在于:
- USIP是完全無監督的,是以避免了對有标簽的點雲資料的需要;
- 作者對USIP進行了退化了分析,并提出了接近方案;
- 作者提出了Feature Proposal Network(FPN),輸入是原始點雲和根據FPS選擇的M個點,輸出是M個關鍵點(不一定是輸入點雲中的點)的坐标和每個關鍵點的顯著性不确定分數
- 作者引入了基于機率的chamfer loss和點-點損失,來提高關鍵點的可重複性和定位的精确性。
二、論文的方法
設訓練集中的一個點雲 X = [ X 1 , X 2 , . . . , X N ] ∈ R 3 × N X = [X_1, X_2, ..., X_N] \in \mathbb R^{3 \times N} X=[X1,X2,...,XN]∈R3×N和 L L L個随機生成的變換矩陣 { T 1 , . . . , T L } \lbrace T_1, ..., T_L\rbrace {T1,...,TL}, T l ∈ S E ( 3 ) T_l \in SE(3) Tl∈SE(3),将每個變換矩陣作用于點雲 X X X,得到 L L L對資料 { { X , X 1 ~ } , . . . , { X , X L ~ } } \lbrace \lbrace X, \tilde{X_1} \rbrace, ..., \lbrace X, \tilde{X_L} \rbrace \rbrace {{X,X1~},...,{X,XL~}},作為訓練時網絡的輸入。
2.1 Feature Proposal Network
作者提出的FPN(Feature Proposal Network)如Figure 2(b)所示。FPN首先從輸入點雲中 X ∈ R 3 × N X \in \mathbb R^{3 \times N} X∈R3×N,根據FPS(Farthest Point Sampling)選擇M個Nodes,記為 S = [ S 1 , . . . , S M ] ∈ R 3 × M S = [S_1, ..., S_M] \in \mathbb R^{3 \times M} S=[S1,...,SM]∈R3×M。對于每一個node S m ∈ S S_m \in S Sm∈S,作者使用point-to-node采樣方式[每個point選擇距離最近的node]對其進行分組,得到 { X m 1 ∣ S m , . . . , X m K m ∣ S m } \lbrace X_m^1 | S_m, ..., X_m^{K_m} |S_m \rbrace {Xm1∣Sm,...,XmKm∣Sm}, K m K_m Km表示與node S m S_m Sm有關的點的個數。為了實作平移不變性,作者對其進行了去均值操作,得到 { X ^ m 1 ∣ S m , . . . , X ^ m K m ∣ S m } \lbrace \hat X_m^1 | S_m, ..., \hat X_m^{K_m} |S_m \rbrace {X^m1∣Sm,...,X^mKm∣Sm},其中 X ^ m K m = X m K m − S m \hat X_m^{K_m} = X_m^{K_m} - S_m X^mKm=XmKm−Sm。作者在代碼實作的時候,并沒有選擇 S m S_m Sm,而是減去 X ^ m 1 , . . . , X ^ m K m \hat X_m^1, ..., \hat X_m^{K_m} X^m1,...,X^mKm的均值。這樣就得到了去中心化的每個點的坐标。
這裡就是Figure 2(b)第一個網絡(淺紅色背景,記為PointNet)之前的過程,但看了作者實作的代碼之後,發現這裡送入PointNet的并非M個nodes及其鄰域的點作為一個group,其實是去均值後的輸入點雲 X decentered ∈ R 3 × N X_{\text{decentered}} \in \mathbb R^{3 \times N} Xdecentered∈R3×N,這裡的去均值化就是通過前面第一段介紹的過程。通過PointNet網絡(64, 64, 64)後,輸出特征 F ∈ R C × N F \in \mathbb R^{C \times N} F∈RC×N。這樣就獲得了每個點的特征,通過gather操作得到M個node的特征。作者在代碼實作的時候,連續經過了兩個PointNet,而且有一些cuda的操作沒有看明白(感覺上這兩次PointNet都沒有考慮鄰域特征),但不管怎樣,最後得到了每個node的特征 G ∈ R C 1 × M G \in \mathbb R ^{C1 \times M} G∈RC1×M。
對每一個node S m S_m Sm在nodes節點中進行KNN操作,得到 { { ( G m 1 , S m 1 ) ∣ S m } , . . . , { ( G m K , S m K ) ∣ S m } } \lbrace \lbrace (G_m^1, S_m^1) | S_m \rbrace, ..., \lbrace (G_m^K,S_m^K) | S_m \rbrace\rbrace {{(Gm1,Sm1)∣Sm},...,{(GmK,SmK)∣Sm}},對鄰域的坐标資訊進行歸一化, S ^ m k = S m k − S m \hat S_m^k = S_m^k - S_m S^mk=Smk−Sm,得到 { { ( G m 1 , S ^ m 1 ) ∣ S m } , . . . , { ( G m K , S ^ m K ) ∣ S m } } \lbrace \lbrace (G_m^1, \hat S_m^1) | S_m \rbrace, ..., \lbrace (G_m^K, \hat S_m^K) | S_m \rbrace\rbrace {{(Gm1,S^m1)∣Sm},...,{(GmK,S^mK)∣Sm}},這樣M個node對應一個次元為(C+3, M, K)的特征,進行MLP(128, 256, 256)和池化操作,得到(256, M)的特征,将其與(256, M, K)的特征在特征次元上進行caoncat,得到(512, M, K),再經過MLP(512, C2)和池化操作,得到(C2, M)的特征。
對上述(C2, M)的特征與KNN之前的特征(C1, M)在特征次元上進行Concat得到(C1 + C2, M)的特征,進行MLP(512, 256, 4),得到了(4, M)的輸出,其中輸出的前3個次元表示關鍵點的相對位置資訊,加上node的位置表示關鍵點的絕對位置資訊,第4次元經過softplus表示顯著性的不确定性。不确定性越小越好。
在網絡的預測階段,輸入是 X ∈ R 3 × N X \in \mathbb R^{3 \times N} X∈R3×N和Node S ∈ R 3 × M S \in \mathbb R^{3 \times M} S∈R3×M,經過FPN網絡,輸出 ( Q 1 , σ 1 ) , . . . , ( Q M , σ M ) (Q_1, \sigma_1), ..., (Q_M, \sigma_M) (Q1,σ1),...,(QM,σM),其中 Q m ∈ R 3 × M , σ ∈ R + Q_m \in \mathbb R^{3 \times M}, \sigma \in R^+ Qm∈R3×M,σ∈R+分别表示M個關鍵點的坐标和不确定性。對這M個關鍵點進行非極大值抑制,保證關鍵點的選擇不會太密集。最後根據關鍵點的不确定性進行排序,選擇不确定性最小的關鍵點作為最終的輸出。
在網絡的訓練階段,把輸入的成對點雲 X 1 X_1 X1和 X 2 X_2 X2及其Nodes點 S 1 S_1 S1和 S 2 S_2 S2進行Concat,得到 X X X和 S S S。送入網絡FPN,輸出 Q Q Q和 σ \sigma σ,再将它們根據分割成兩部分 Q 1 Q_1 Q1和 σ 1 \sigma_1 σ1以及 Q 2 Q_2 Q2和 σ 2 \sigma_2 σ2。
2.2 損失函數
在無監督情況下,如何設計loss使FPN網絡能夠work呢 ? 論文中提出了兩個損失函數: 基于機率的(Probabilistic) Chamfer Loss和點-點(point-to-point) Loss
-
Probabilistic Chamfer Loss
作者假設顯著性的不确定性在變換後不受影響。設 Q Q Q和 Q ^ \hat Q Q^分别表示FPN網絡的輸出, Q ′ = T − 1 ( Q ^ ) Q' = T^{-1}(\hat Q) Q′=T−1(Q^)。在任何變換下,從三維點雲中檢測高精确點位和可重複性高的關鍵點的目标可以通過最小化Q和Q’的不同來實作,一種最簡單的方式是Chamfer Loss:
L c = Σ i = 1 M min Q j ′ ∈ Q ′ ∣ ∣ Q i − Q j ′ ∣ ∣ 2 2 + Σ j = 1 M min Q i ∈ Q ∣ ∣ Q i − Q j ′ ∣ ∣ L_c = \Sigma_{i=1}^M \min_{Q_j' \in Q'}||Q_i - Q_j'||_2^2 + \Sigma_{j=1}^M \min_{Q_i \in Q} ||Q_i - Q_j'|| Lc=Σi=1MQj′∈Q′min∣∣Qi−Qj′∣∣22+Σj=1MQi∈Qmin∣∣Qi−Qj′∣∣
但是每一個proposal關鍵點的顯著性的不确定并不是一緻的,是以作者提出了基于機率的Chamfer Loss:
L c = Σ i = 1 M − ln p ( d i j ∣ σ i j ) + Σ j = 1 M − ln p ( d j i ∣ σ j i ) = Σ i = 1 M ( ln σ i j + d i j d i j ) + Σ j = 1 M ( ln σ j i + d j i d j i ) \begin{aligned}L_c &= \Sigma_{i=1}^M-\text{ln}p(d_{ij} | \sigma_{ij}) + \Sigma_{j=1}^M-\text{ln}p(d_{ji}|\sigma_{ji}) \\ &= \Sigma_{i=1}^M (\text{ln} \sigma_{ij} + \frac{d_{ij}}{d_{ij}}) + \Sigma_{j=1}^M (\text{ln} \sigma_{ji} + \frac{d_{ji}}{d_{ji}})\end{aligned} Lc=Σi=1M−lnp(dij∣σij)+Σj=1M−lnp(dji∣σji)=Σi=1M(lnσij+dijdij)+Σj=1M(lnσji+djidji)
其中, σ j i = σ j ′ + σ i 2 , d j i = min Q i ∈ Q ∣ ∣ Q i − Q j ′ ∣ ∣ 2 2 \sigma_{ji} = \frac{\sigma_j' + \sigma_i}{2}, d_{ji} = \min_{Q_i \in Q}||Q_i - Q_j'||_2^2 σji=2σj′+σi,dji=minQi∈Q∣∣Qi−Qj′∣∣22
-
Point-to-Point Loss
為了防止産生距離輸入點雲比較遠的錯誤關鍵點的産生,作者提出了Point-to-Point Loss,
L point = Σ i = 1 M min X j ∈ X ∣ ∣ Q i − X j ∣ ∣ 2 2 + Σ i = 1 M min X ^ j ∈ X ^ ∣ ∣ Q ^ i − X ^ j ∣ ∣ 2 2 L_{\text{point}} = \Sigma_{i=1}^M\min_{X_j \in X}||Q_i - X_j||_2^2 + \Sigma_{i=1}^M\min_{\hat X_j \in \hat X}||\hat Q_i - \hat X_j||_2^2 Lpoint=Σi=1MXj∈Xmin∣∣Qi−Xj∣∣22+Σi=1MX^j∈X^min∣∣Q^i−X^j∣∣22
另外,作者還提出了Point-to-Plane Loss:
L plane = Σ i = 1 M N j T ( Q i − X j ) + Σ i = 1 M N ^ j ( Q ^ i − X ^ j ) L_{\text{plane}} = \Sigma_{i=1}^MN_j^T(Q_i - X_j) + \Sigma_{i=1}^M \hat N_j(\hat Q_i - \hat X_j) Lplane=Σi=1MNjT(Qi−Xj)+Σi=1MN^j(Q^i−X^j)
N j N_j Nj和 N ^ j \hat N_j N^j分别表示在 X X X和 X ^ \hat X X^中距離點 Q j Q_j Qj和 Q ^ j ′ \hat Q_j' Q^j′最近平面的法向量。
2.3 退化分析
FPN中的nodes的數量M和KNN的K值都和網絡的感受野有很大關系,M值越小網絡的感受野越大;K值越大,網絡的感受野越大。這兩個值都和網絡的退化有關系,如Figure 3所示,在M值固定(M=64)時,FPN檢測到的關鍵點随着K值變化的情況。
三、論文的實驗
作者從repeatablitiy,distinctiveness和計算效率上評估USIP,檢測器算法ISS,Harris-3D,SIFT3D和基于學習的3DFeat-Net進行比較。作者在Oxford資料集上訓練戶外雷達的模型,在3DMatch資料集上訓練RGBD模型,在ModelNet40上訓練object的模型。
3.1 Repeatablitiy
可重複性這次詞前面經常提到,指的是檢測器在不同幹擾下,如視點變化、噪聲、缺失部件等,在相同位置檢測關鍵點的能力。具體地,給定一對點雲 ( X , X ^ ) (X, \hat X) (X,X^),關鍵點檢測器分别檢測到關鍵點 Q = [ Q 1 , . . . , Q M ] Q = [Q_1, ..., Q_M] Q=[Q1,...,QM]和 Q ^ = [ Q ^ 1 , . . . , Q ^ M ] \hat Q = [\hat Q_1, ..., \hat Q_M] Q^=[Q^1,...,Q^M],對于關鍵點 Q i Q_i Qi,如果
∣ ∣ R Q i + t − Q ^ j ∣ ∣ 2 < ϵ ||RQ_i + t - \hat Q_j||_2 < \epsilon ∣∣RQi+t−Q^j∣∣2<ϵ
其中 Q ^ j \hat Q_j Q^j是距離 R Q i + t RQ_i + t RQi+t最近的點,那麼稱關鍵點 Q i Q_i Qi是可重複的(repeatable)。為了公平的對比,作者使用了相對Repeatablity = ∣ Q rep ∣ / ∣ Q ∣ |Q_{\text{rep}}| / |Q| ∣Qrep∣/∣Q∣, Q rep Q_{\text{rep}} Qrep表示通過了可重複性測試的關鍵點。
作者在KITTI, Oxford, RedWood和ModelNet40資料集上進行了評估可重複性(注意,作者的USIP并未在KITTI和RedWood資料集上進行訓練),實驗結果如Figure 4所示,USIP在四個不同資料集上和不同的關鍵點數量上,明顯優于其他5個方法。
Figure 5是幾種不同的模型在不同的資料集上,在有噪聲的情況下的Repeatablity的對比,Figure 6是在不同下采樣比例下的Repeatablity的對比,可以看到USIP的性能明顯優于其他幾種算法或者性能一緻較差。
3.2 Distinctiveness
差別性(distinctiveness)是衡量點雲配準中關鍵點檢測器和描述子性能的一種度量。論文中基于幾種不同的描述子(3DFeatNet, FPFH, SHOT和Our Desc(作者自己設計的),對USIP在點雲配準任務中進行了評估。實驗的資料集為KTIIT。一對點雲成功的配準,就是指這一對點雲的相對平移誤差(Relative Translational Error, RTE)小于2m和相對旋轉誤差(Relative Rotational Error, RRE)小于5°。實驗結果如Tab.2所示:
上述實驗,特征點的數量均固定設定為256(對于USIP和3DFeatNet都不一定是最好的選擇),評估名額是配準失誤率(Registration Failure)和Inlier Ration(這個論文中沒有詳細介紹,感覺應該是和RANSAC算法有關)。從Table 2中可以看到,USIP和各種描述子都工作的特别好,而且相比其他的特征點檢測器,在Registration Failure Rate和Inlier Ratio方面均明顯好于其它算法。
3.3 計算效率
作者從兩個方面評估了USIP的速度,一個是固定輸入點雲的數量,統計找到不同數量關鍵點的時間,實驗結果如Table 5(輸入點雲的點的數量為16384)所示,可以看到計算關鍵點的時間随數量沒有明顯增多。
另一方面是,設定不同的輸入點雲數量,統計計算關鍵點的時間,實驗結果如Table 6(不同的方案均設定找到256個關鍵點)所示,USIP明顯優于其他算法,而且随着點的的數量的增多,計算關鍵點的時并沒有明顯增多。
3.4 Ablation Studies
- point-to-node grouping vs knn vs ball grouping 實驗結果如Table 4所示,knn和ball query group在Kitti資料集上,相比于point-to-node方法,具有明顯性能的下降。
- probabilistic chamfer loss vs normal chamfer loss 作者就probabilistic chamfer loss和normal chamfer loss在KTIIT和ModelNet40資料集上進行了實驗,實驗結果如Figure 9所示,probabilistic chamfer loss的結果明顯優于normal chamfer loss。
- effect of point-to-point loss 從Figure 10可以看到,point-to-point loss有效的限制了關鍵點距離輸入點雲不能太遠。
四、對論文的看法
- 優點:
- 無監督的loss: 在無監督的情況下,可以有效的檢測關鍵點,還是具有很大創新性的。
- 基于作者提供的權重,在ModelNet40資料集上進行了可視化實驗,效果還不錯,下面兩個圖為測試集中/rotated/800.npy的關鍵點檢測結果(不同視角):
- 不足:
- Repeatablity名額較低,仍舊有較大提升空間。