特征點檢測算法——FAST角點


上面的算法如SIFT、SURF提取到的特征也是非常優秀(有較強的不變性),但是時間消耗依然很大,而在一個系統中,特征提取僅僅是一部分,還要進行諸如配准、提純、融合等后續算法。這使得實時性不好,降系了統性能。

Edward Rosten和Tom Drummond兩位大神經過研究,於2006年在《Machine learning for high-speed corner detection》中提出了一種FAST特征點,並在2010年稍作修改后發表了《Features From Accelerated Segment Test》,簡稱FAST。注意:FAST只是一種特征點檢測算法,並不涉及特征點的特征描述

FAST詳解

FAST角點特征定義:若某像素與其周圍鄰域內足夠多的像素點相差較大,則該像素可能是角點。

步驟

1、上圖所示,一個以像素p為中心,半徑為3的圓上,有16個像素點(p1、p2、...、p16)。

2、設定閾值t,如果這周圍的16個像素中有連續的n個像素的像素值都小於 Ip−t或者有連續的n個像素都大於Ip+t, 那么這個點就被判斷為角點。 opencv中默認采用Fast-9-16(還包括Fast-5-8,Fast-7-12).即在周圍取16個像素點,若超過連續9個點與中心點差值大於閾值即成為候選角點。

4、很可能大部分檢測出來的點彼此之間相鄰,我們要去除一部分這樣的點。為了解決這一問題,我們采用了非極大值抑制的算法,對圖像進行非極大值抑制,對一個角點P建立一個3*3(或5*5,7*7)的窗口,如果該窗口內出現了另一個角點Q,則比較P與Q的大小,如果P大,則將Q點刪除,如果P小,則將P點刪除。

得分計算公式如下(公式中用V表示得分,t表示閾值):

opencv中角點強度計算方法不采用上面的公式所描述,而是采用最小的差值作為其角點強度值。例如若采用Fast-9-16,計算連續的9個位置與中心位置的差值的絕對值,取最小的一個差值作為其強度值。

FAST 算法特點

1、在速度上要比其他算法速度快很多

2、受圖像噪聲以及設定的閾值影響很大

3、FAST不產生多尺度特征而且FAST特征點沒有方向信息,這樣就會失去旋轉不變性。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM