OpenCV-Python教程:38.FAST角點檢測算法

理論

我們看到了一些特征檢測算法,他們很多都不錯卖漫,但是從實時應用的角度看捞魁,他們都不夠快,一個最好的例子是SLAM(同步定位與地圖創(chuàng)建)移動機器人沒有足夠的計算能力用含。

作為解決方案矮慕,F(xiàn)AST(加速切片測試特征)算法被提出,Edward Rosten和Tom Drummond 2006年在他們的論文“Machine learning for high-speed corner detection”提出啄骇,并在2010年最后修訂痴鳄,算法的基本大意如下:

使用FAST進行特征檢測

1.選擇一個圖像里的像素p用來識別是不是一個興趣點,它的強度是Ip

2.選擇一個合適的閾值t

3.在要測試的像素周圍找16個像素的圓


4.現(xiàn)在如果存在一個在圓內(nèi)(16像素的)的n個連續(xù)像素集合缸夹,他們都比Ip + t要亮痪寻,或者都比Ip - t 要暗(用白虛線顯示),那p就是角虽惭, n取12橡类。

5.用一個高速測試來排除大量非角。這個測試只檢查1,9,5和13位置的像素(首先1和9會測試是否他們太亮或者太暗芽唇,如果是顾画,再檢查5和13)。如果p是角,那么至少3個都比Ip+t要亮或者比Ip-t要暗亲雪,如果不是這樣勇凭,那么p不可能是角。這個檢測器展現(xiàn)了高性能义辕,但是有幾個缺陷:

·當n< 12時不能拒絕很多備選點

·像素的選擇不是可選的目派,因為它的效率依賴問題和角的分布墨吓。

·高速測試的結果被丟棄了

·會檢測出多個愛挨在一起的特征

機器學習角點檢測

1.選擇一組圖像進行訓練(最好從目標應用范圍內(nèi))

2.運行FAST算法來對每個圖像進行特征點查找

3.對每個特征點,存下周圍的16個像素作為向量。所有圖像做完以后得到特征向量P宇色。

4.這16個像素里的每個像素(設為x)可以有下面的三個狀態(tài):

5.根據(jù)這些狀態(tài)蹦漠,特征向量P被分成3個子集挑随,Pd, Ps, Pb.

6.定義個新的布爾變量Kp,如果p是角就是真反之為假侥猬。

7.使用ID3算法(決策樹分類)來查詢每個子集,對于每個true類用變量Kp撩幽,它選擇x來得出一個備選像素是否是角的信息库继。

8.對所有子集迭代直到為0

9.創(chuàng)建的決策樹用來對其他圖形做fast檢測

非極大值抑制

在臨近位置檢測多個興趣點是另一個問題,可以使用非極大值抑制來解決窜醉。

1.計算一個分數(shù)函數(shù)宪萄,V是所有檢測到的特征點,V是p和16個圍著的像素值得絕對差榨惰。

2.計算兩個相鄰關鍵點的V值

3.丟掉V值低的那個

總結:

它比其他存在的角點算法要快幾倍

但是它對高噪點情況來說不健壯拜英,依賴閾值

OpenCV里的FAST特征檢測

它和其他OpenCV里的特征檢測類似,如果你愿意琅催,你可以指定閾值居凶,是否使用非極大值抑制,要用的鄰居等藤抡。

對于鄰居侠碧,定義了三個標志位, cv2.FAST_FEATURE_DETECTOR_TYPE_5_8, cv2.FAST_FEATURE_DETECTOR_TYPE_7_12和cv2.FAST_FEATURE_DETECTOR_TYPE_9_16.

import numpy as np
import cv2
from matplotlib import pyplot as plt

img = cv2.imread('simple.jpg',0)

# Initiate FAST object with default values
fast = cv2.FastFeatureDetector()

# find and draw the keypoints
kp = fast.detect(img,None)
img2 = cv2.drawKeypoints(img, kp, color=(255,0,0))

# Print all default params
print "Threshold: ", fast.getInt('threshold')
print "nonmaxSuppression: ", fast.getBool('nonmaxSuppression')
print "neighborhood: ", fast.getInt('type')
print "Total Keypoints with nonmaxSuppression: ", len(kp)

cv2.imwrite('fast_true.png',img2)

# Disable nonmaxSuppression
fast.setBool('nonmaxSuppression',0)
kp = fast.detect(img,None)

print "Total Keypoints without nonmaxSuppression: ", len(kp)

img3 = cv2.drawKeypoints(img, kp, color=(255,0,0))

cv2.imwrite('fast_false.png',img3)

看結果缠黍,第一個圖像顯示了使用了非極大值抑制的FAST舆床,第二個是沒有使用非極大值抑制的。

END

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末嫁佳,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子谷暮,更是在濱河造成了極大的恐慌蒿往,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件湿弦,死亡現(xiàn)場離奇詭異瓤漏,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門蔬充,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蝶俱,“玉大人,你說我怎么就攤上這事饥漫≌ゴ簦” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵庸队,是天一觀的道長积蜻。 經(jīng)常有香客問我,道長彻消,這世上最難降的妖魔是什么竿拆? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮宾尚,結果婚禮上丙笋,老公的妹妹穿的比我還像新娘。我一直安慰自己煌贴,他們只是感情好御板,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著崔步,像睡著了一般稳吮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上井濒,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天灶似,我揣著相機與錄音,去河邊找鬼瑞你。 笑死酪惭,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的者甲。 我是一名探鬼主播春感,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼虏缸!你這毒婦竟也來了鲫懒?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤刽辙,失蹤者是張志新(化名)和其女友劉穎窥岩,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宰缤,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡颂翼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年晃洒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片朦乏。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡球及,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出呻疹,到底是詐尸還是另有隱情吃引,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布诲宇,位于F島的核電站际歼,受9級特大地震影響,放射性物質發(fā)生泄漏姑蓝。R本人自食惡果不足惜鹅心,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望纺荧。 院中可真熱鬧旭愧,春花似錦、人聲如沸宙暇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽占贫。三九已至桃熄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間型奥,已是汗流浹背瞳收。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留厢汹,地道東北人螟深。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像烫葬,于是被迫代替她去往敵國和親界弧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容