BRISK特徵提取算法(翻譯)

原文鏈接:BRISK: Binary Robust Invariant Scalable Keypoints

1.不同尺度的關鍵點檢測

爲了獲得在不同尺度的穩定關鍵點,brisk算法採用FAST算法在不同尺度空間中求解關鍵點。在brisk算法中,不同尺度的金字塔層由 n個 octaves層 ci 和 n個 intra-octaves 層 di組成,i = {0, 1, ... , n-1}。本文中n = 4.每個 octaves 層由連續地對原圖二倍下采樣獲得。每個 intra-octaves 層 di 處在 ci 層和 ci+1層之間。第一個 intra-octaves層 d0 是通過對原圖c0 1.5倍下采樣獲得,其他 intra-octaves 層由連續地對d0二倍下采樣獲得。因此,用t表示尺度,則t(ci) = 2 ** i, t(di) = 1.5 * 2 ** 1.5。

首先,使用9-16FAST算法分別檢測每個 octave 層和 intra-octave 層,使用相同的閾值T獲得候選關鍵點區域。然後,對這些候選區域進行非極大值抑制。非極大值抑制是通過比較8個鄰域內關鍵點與其環繞點的強度差值和,差值和最大的爲角點。

fast score在計算是會在不同層間二次差值得到

2.採樣模式

確定特徵點後會在特徵點周圍S×S區域內進行採樣,慮 N*N(N-1)/2對採樣點。在這些位置,平滑後的強度值爲,紅色半徑的大小對應高斯平滑核的方差σ大小。

 考慮所有的採樣點對:

 定義短距離點對的子集,以及L個長距離點對的子集:

距離的閾值設置爲,t是特徵點所在尺度。

3.確定主方向

通過採樣獲得的長距離點對集合,帶入下式獲得主方向

4.獲得描述子(特徵)

計算描述子時,採樣區域需要先根據特徵點的主方向做個旋轉,旋轉角度爲

 BRISK描述子是二值特徵,描述子的每一bit的值等於短距離點對的比值,即

在計算描述子的時候只考慮短距離的點對,原文中選取512個短距離點對,因此描述子bit-string的位數爲512。

5.匹配原則

對描述子匹配時,採用漢明距離,進行二值匹配。

6.漢明距離

它表示兩個(相同長度)字對應位不同的數量,我們以d(x,y)表示兩個字x,y之間的漢明距離。對兩個字符串進行異或運算,並統計結果爲1的個數,那麼這個數就是漢明距離。

1011101 與 1001001 之間的漢明距離是 2。

2143896 與 2233796 之間的漢明距離是 3。

"toned" 與 "roses" 之間的漢明距離是 3。

 

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