ORB特徵提取

2021-10-04 10:15:26 字數 1775 閱讀 2642

不明白的地方的一些整理:

非極大值抑制主要是為了避免影象上得到的角點過於密集,主要過程是每個特徵點都會計算得到相應的響應得分,然後以當前畫素p為中心,取其鄰域(如3*3),判斷當前畫素p的響應是否為該鄰域內最大的,如果是則保留,否則,則抑制。

非極大值抑制,排除不穩定的角點,採用強度響應函式:

如何確定特徵點的方向:

orb特徵確定特徵點方向的思路是:首先根據「矩」概念確定當前特徵點鄰域塊的中心位置c,然後根據當前畫素點中心o和c的連線方向確定特徵點方向θ ,

「矩」的定義為:

通過矩找到影象塊的質心:

連線影象塊的幾何中心o與質心c,得到乙個oc的向量,把這個向量的方向定義特徵點的方向:

orb特徵描述子採用改進的brief描述子,基本思想為:在特徵點鄰域塊內,按照一定的規則選擇若干對畫素點p,q,如果有ip>iq,則當前位的brief描述子的值為1,否則為0。對於畫素點對的個數可以選擇128,256不等。但實際上這樣會存在乙個問題就是得到的描述子會對雜訊很敏感,如果比較的畫素點屬於雜訊,將會對描述子的可靠性造成重要的影響,所以,做出以下的調整:

τ(p;x,y):=1:p(x)>p(y);τ(p;x,y):=0:p(x)≤p(y)

其中,p(x)表示畫素點x的強度值,可以選擇高斯濾波值作為當前畫素點的強度值,這樣比較的兩者不會是單獨的兩個畫素點值,而是畫素點鄰域塊的加權平均值,從而有效降低了雜訊的影響。

對於描述子旋轉不變性的解決方法:

在計算特徵點描述子的過程中,將其鄰域的若干比較對根據特徵點的方向進行相應的旋轉變換,即如果n個測試對座標表示為s=(p1,p2,…,pn),pi=(xi,yi), 特徵點方向角度為θ ,對應的旋轉矩陣為rθ ,那麼修後的比較點座標為sθ ,sθ =rθs,將修正後的座標sθ 帶入到描述子的計算,這樣得到的描述子是具有旋轉不變性的。

如何選取比較點:

如果比較點對的個數為256,那麼最終的brief描述子的位數就是256,乙個好的brief描述子的每一位的變化性應該是足夠大的,或者說每一位的數值分布是比較均勻的,不會過於密集或稀疏,另乙個方面,brief描述子的不同位之間應該是不相關的。

orb特徵採用這樣的演算法來選擇比較點對:

首先從資料集中確定300k個關鍵點,對於3131的畫素塊,設定55的子視窗畫素塊,也就是31331畫素塊中所有的子視窗可能性有n=(31-5)(31-5)種,那麼從n種子視窗種選擇兩個子視窗進行比較的可能性有c2n種,m= 205590種測試的可能性。

下面:1)對於m種中的每一種測試可能性,在300k 關鍵點上的計算結果(每一種可能性對應於brief描述子中的一位);

2)對於每一種測試可能性在關鍵點上的比較結果,計算300k個資料上的平均值,並按照距離0.5的遠近大小由小到大進行排序,構成集合t(距離0.5越近,認為資料分布越平均,可以考慮選擇這樣的例子,),這一步是考慮選擇盡可能使得每一位brief描述子的資料分布分散的比較對。

3)採用貪心演算法

1.首先將t中的第乙個測試對放入集合r種

2.從t中取下乙個排序測試對,並與r中的所有測試對計算關聯度,如果關聯度超過一定的閾值,則放棄當前從t中取得的測試對,反之則將當前測試對加入到集合r中。

3.重複前兩步,直至r中有256個測試對。

r中挑選的256個測試對滿足:

1.每一位描述子的變化性足夠大

2.不同描述子之間的關聯度盡可能小

ORB特徵提取1

orb特徵是在fast特徵點的基礎上再加上乙個旋轉量,本文以opencv自帶的fast函式求出特徵點keypoint,取特徵點附近一小塊區域b,b的大小是16 16,範圍是 u 8,v 8 u 7,v 7 可以定義該區域影象的矩 通過矩可以找到影象的質心 連線影象中心o與質心,可以得到方向向量oc,...

ORB特徵提取與匹配

特徵點的檢測 影象的特徵點可以簡單的理解為影象中比較顯著顯著的點,如輪廓點,較暗區域中的亮點,較亮區域中的暗點等。orb採用fast features from accelerated segment test 演算法來檢測特徵點。這個定義基於特徵點周圍的影象灰度值,檢測候選特徵點周圍一圈的畫素值,...

ORB特徵提取與匹配

orb特徵是目前最優秀的特徵提取與匹配演算法之一,下面具體講解一下 特徵點的檢測 影象的特徵點可以簡單的理解為影象中比較顯著顯著的點,如輪廓點,較暗區域中的亮點,較亮區域中的暗點等。orb採用fast features from accelerated segment test 演算法來檢測特徵點。...