fast特徵點檢測演算法
在眾多特徵點檢測演算法中,fast演算法的優勢是速度快,主要利用周圍畫素比較的資訊就可以得到特徵,簡單有效。
fast演算法是基於角點檢測的影象特徵,其定義特徵點的依據是:如果某個畫素點和他周圍鄰域足夠多的畫素點處於不同區域,則這個畫素點就是特徵點,對於灰度圖來說,也就是該點的灰度值與其周圍足夠多的畫素點的灰度值不同,那麼這個畫素點就是特徵點。
fast特徵點檢測的詳細計算步驟
1.從中選取乙個座標點,獲取該點的畫素值,接下來判定該點是否為特徵點。
2.選取乙個圓,圓心放到選取點的座標位置,半徑為r(常用r=3),按照圓的軌跡離散化,這個圓上有16個點(r=3),如下圖所示:
3.選取乙個閾值,假設為t,當這個圓上的16個點中,有n個連續的畫素點,他們的亮度值與中心點的畫素值的差大於或者等於t,那麼這個點就是乙個特徵點,n一般取9,12。
注意:
1.為了獲得更快的結果,還採用了額外的加速辦法,如果測試了候選點周圍每個90度角的4個點,應該至少有3個點和候選點的灰度值差足夠大,否則不再計算其他點,直接判定該點不是特徵點。
2. 這種檢測方法會帶來乙個問題,就是造成特徵點的聚簇效應,多個特徵點在影象的某一塊重複高頻出現,fast 演算法採用一種非極大值的抑制辦法來消除這種情況,具體辦法如下,
為每乙個檢測到的特徵點計算它的響應大小vv,這個vv定義為中心點和它周圍16個畫素點的絕對偏差的和,考慮兩個相鄰的特徵點,並比較他們的vv值,vv值較低的點將會被刪除。
評價:
1.fast檢測演算法沒有多尺度的問題,所以計算速度相對較快
2.但是當中的噪點較多的時候,會產生較多的錯誤特徵點,健壯性並不好,並且, 演算法的效果還依賴於乙個閾值t
3.fast不產生多尺度特徵而且fast特徵點沒有方向資訊,這樣就會失去旋轉不變性
FAST特徵點檢測演算法
定義 fast演算法定義特徵點是如果某個畫素點和他周圍領域足夠多的畫素點處於不同區域,那麼這個畫素點就是特徵點。對於灰度圖,及特徵點處灰度值與周圍足夠多畫素灰度值不同。threshold 邊緣軌跡與中心點差值。nonmaxsuppression 是否使用非極大值抑制 聚簇情況下使用 fastfeat...
matlab練習程式(FAST特徵點檢測)
演算法思想 如果乙個畫素與它鄰域的畫素差別較大 過亮或過暗 那它更可能是角點。演算法步驟 1.上圖所示,乙個以畫素p為中心,半徑為3的圓上,有16個畫素點 p1 p2 p16 2.定義乙個閾值。計算p1 p9與中心p的畫素差,若它們絕對值都小於閾值,則p點不可能是特徵點,直接pass掉 否則,當做候...
FAST特徵點檢測features2D
特徵點檢測和匹配是計算機視覺中乙個很有用的技術。在物體檢測,視覺跟蹤,三維常年關鍵等領域都有很廣泛的應用。這一次先介紹特徵點檢測的一種方法 fast features from accelerated segment test 很多傳統的演算法都很耗時,而且特徵點檢測演算法只是很多複雜影象處理裡中的...