A novel binary shape context for 3D local surface description
文章目錄
參考資料popSLAM:
Binary Shape Context (BSC) descriptor
二進制上下文描述子
2 BSC for 3D local surface description
2.1 Binary shape context descriptor In
2.1.1. Adaptive-scale keypoint detection
遍歷所有的點雲,在每個點鄰域r的球體內,計算協方差,並PCA分解之。當三個特徵值兩兩間的比值比較大時,認爲是特徵點。
一句話:找那些分佈崎嶇的點。
2.1.2. Local reference frame construction
LRF的構建具有重要意義。
- 旋轉不變性
- 二義性通過遍歷計算來進行消除。
協方差矩陣的計算是通過特徵點,取其鄰域r內的點來計算
:特徵點
:以特徵點爲球心的搜索半徑。由上一步確定。
:點集合,最前面的就是特徵點,後面則是半徑r內的所有點。m是周圍的點的數量。
- 對於點集的除特徵點外所有的點,計算兩個權重,分別是,
對於
該權重用於補償變化的點密度,因此點密度低的區域中的點比密度高的區域中的點貢獻更大。
其中,
整個分母表示爲:在半徑的範圍內的點的數量。
因此,對於一個密度比較大的點來說,它的分母會很大,這就導致它的密度係數變小。而密度小的地方,分母也小,對應的這個點的密度權重就會變大。
目的:爲了能夠更好的從全局來描述
p是特徵點,q離特徵點越遠,裏的內容越大,分子越小,權重越小。
所以該權重和距離成反比。越遠,權重越小。
- 整個協方差矩陣的計算,充分考慮到了上面兩個權重的參與:
然後說到關於特徵向量的二義性。纔去的方法和大多數的人的類似,都是挨個對比,選取配對最優的解。
2.1.3. Local surface coordinate transformation
這裏比較簡單,就是把計算出來的局部座標轉換到(0,0,1)(0,1,0)(0,0,1)座標系下。爲了後續的往XoY各個平面上的投影做準備。
2.1.4. Projection-feature calculation
將轉化到標準座標系下的點雲進行投影。xy xz yz 三個平面。
原始的點集:N
歸一化到特徵點的點集:N‘
分別往三個平面上投影:
獲得新的三個點集。
投影的柵格爲S×S格的二維平面。
接下來,通過累積相應面元中每個點的特徵,獲得每個面元的投影點密度特徵和投影點距離特徵
注意,如圖4所示,直接累積鄰近點的相應特徵會導致噪聲敏感性、邊界效應和LRF擾動。
左邊的是點的投影分佈。右邊的是對應的投影點密度特徵。直接累加每個柵格內落入了多少個點。
以上是密度矩陣。還有一個距離矩陣,就是該點到平面的距離
可以看到分佈相似,但是實際計算出來的 投影密度特徵相差很大。
所以在這裏引入了。高斯核密度估計。來計算每個點的加權投影密度和距離
這個公式的直觀理解就是該點和周圍的每一個點的一個距離係數。當距離爲0時,就是累加,然後隨距離遞減。
其加權計算公式如下:
(5):該點的加權投影密度值
(6):該點的加權投影距離值
要求的點的3h範圍附近的所有點。
…省略幾個公式。
到目前爲止,以上公式都是計算的每個點的距離權重和密度權重。那麼如何投影到平面以獲得這種黑白的柵格圖呢?如下所示:
這裏需要注意的是,經過上面的操作,所有的點只有兩個屬性,一個是距離權重,一個是密度權重。後面的往柵格上的投影,都是計算每個柵格上的這兩個權重值。
然後就可以計算每一個柵格的加權投影點 **距離特徵和密度特徵。**計算公式如下:
q是點Bb是當前這個bin的集合
這個地方相當於是分子分母歸一化。
分母是計算當前平面內所有的範圍在3h以內的點集的權重和。
分子是隻計算當前柵格內的點的權重和。
然後依次計算個柵格。
距離權重的計算相同!
需要說明的是,這種方法不僅解決了上面提及的邊界問題,特徵向量漂移問題。還能夠解決相似的分佈,但是點雲的密度不同,其計算出來的投影矩陣是類似的。
然後,本文爲了可視化每一個柵格,生成了一個 特徵圖!
這個公式並不參與後面的計算,只是爲了單純的顯示使用
兩個大G代表最後的計算灰度值。
其中分母是max-min 分子是f-fmin。操作類似歸一化。
越亮的地方點越多。代表灰度值越高。正好映射0代表黑色。
2.1.5. Projection features difference test
特徵二值化
目的:特徵二值化可以顯著提高特徵存儲和匹配的效率,滿足大規模點雲數據快速配準和目標提取的需求。本文利用特徵差異性測試實現上述投影特徵的二值化,特徵差異測試隨機選擇兩個格子並計算它們特徵的差異性,如果特徵之間存在顯著差異,那麼測試結果爲1,否則爲0。對於每個投影面上的N個格子,存在C_2_N(N個格子,兩兩配對)種差異性測試,對所有格子的兩兩詳盡組合進行差異測試非常耗時,並導致特徵維數高、內存效率低。實驗中發現,當差異性測試的數量較小時,增加其數量可以顯著提高描述子的表達能力;進一步增加其數量不會向描述子添加任何重要的信息。因此,從C_2_N種差異性測試中隨機選擇一定數量的子集可以在不削弱描述子表達能力的前提下,降低時間和內存消耗。
以xoy 投影面上的投影距離特徵爲例,詳細介紹其二值化的方法:
- 從種組合中,隨機選擇對bins。組成一個集合 如下所示:
這個地方的意思是,在個bins裏面,隨即挑選一部分子集,進行差異性測試。
然後比如有兩個需要對比的特徵,一個帶丿一個不帶丿。兩個特徵對應的bin,進行值的差值計算。
選取g個。
也就是說,任意兩個特徵在進行對比的時候,都是隻選一部分bin來進行對比,優點有2個:
1.減少計算量和內存消耗
2.一定數量的bins就已經足夠表達當前特徵了。
- 對集合中的任意兩個格子根據一下公式進行差異性測試。把投影特徵轉化爲一個二進制字符串。
這個公式(11)需要從下往上看。
這裏的意思是,對於個柵格,不用全都計算差異性,而是隨機選擇一些進行計算,然後組成描述子
這就是自己和自己匹配。隨機挑選對,算出來一個閾值。然後每個pair相似與否根據這個閾值來確定。
相同的描述子,因爲匹配的配對的index是固定的,所以最後計算出來的二進制字符串也是一樣的。所以是可以自圓其說的。
2.2 BSC generation parameters
後續是關於各個參數是怎麼獲得的。這裏不再展開贅述。