文/張瑞麟 李佳蔚 甘雨
角點(diǎn)是圖像的一種重要的特征點(diǎn),是圖像的特征,有很多對(duì)圖像的操作都是針對(duì)角點(diǎn)進(jìn)行的。目前角點(diǎn)檢測算法廣泛應(yīng)用在圖像配準(zhǔn)、圖像拼接和圖像識(shí)別等方面,所以對(duì)角點(diǎn)檢測算法的完善在現(xiàn)階段的研究中有十分重要的意義。FAST角點(diǎn)檢測算法是一種關(guān)于角點(diǎn)檢測的經(jīng)典算法。相比于其他的角點(diǎn)檢測算法,其最大的優(yōu)勢就是在運(yùn)行速度和角點(diǎn)檢測結(jié)果上都具有一定的優(yōu)勢。本文兩種算法的提出是基于FAST角點(diǎn)檢測算法的基礎(chǔ)上對(duì)其檢測結(jié)果的補(bǔ)充。所以繼承了其速度上的優(yōu)勢,也可使檢測的結(jié)果更加的準(zhǔn)確。
傳統(tǒng)的FAST角點(diǎn)檢測算法定義為16個(gè)點(diǎn)的圓形窗口上,如圖1所示,以P為像素中心,周圍的16個(gè)點(diǎn)為我們需要考慮的點(diǎn)。這個(gè)圓稱為Bresenham圓。
在設(shè)定好合適的閾值t之后,可以得到如下式子。
其中,第一個(gè)范圍是相較于其他的點(diǎn)比較暗的點(diǎn),我們稱之為darker;第二個(gè)范圍是比較大眾化的點(diǎn),我們稱之為similar;第三種是相對(duì)于其他的點(diǎn)以較亮的點(diǎn),我們稱之為brighter。我們?cè)谶M(jìn)FAST行角點(diǎn)檢測之前,要先將圖片中的點(diǎn)先按照上述的公式進(jìn)行分類,分類之后按照?qǐng)D1所示的點(diǎn)那樣開始進(jìn)行對(duì)比,若有連續(xù)12個(gè)點(diǎn)同時(shí)比中心點(diǎn)更亮(brighter)或更暗(darker),即可認(rèn)為該點(diǎn)是角點(diǎn)。
在傳統(tǒng)的FAST角點(diǎn)檢測算法的基礎(chǔ)上,構(gòu)造出一個(gè)變形的FAST角點(diǎn)檢測算法,將用于角點(diǎn)檢測候選點(diǎn)周圍的16個(gè)點(diǎn)縮減為8個(gè)點(diǎn),如圖2所示。
也就是說要使用圓周上的8個(gè)點(diǎn)與圓周進(jìn)行比較,比較的方式也與傳統(tǒng)的FAST角點(diǎn)檢測相同:分別將周圍的一周像素點(diǎn)分別運(yùn)用公式1與P進(jìn)行比較,如果得到連續(xù)6個(gè)點(diǎn)相比于圓心P在同一個(gè)范圍內(nèi)(darker或brighter),即可認(rèn)定該點(diǎn)為角點(diǎn)。但是其也繼承了FAST角點(diǎn)檢測的缺點(diǎn):沒有被檢測出來的并不一定就不是角點(diǎn)。本文提出下面兩個(gè)算法。
Y型角點(diǎn)是一種FAST角點(diǎn)檢測算法無法探測出的角點(diǎn),因?yàn)樗⒉皇菆A周上有連續(xù)一定數(shù)目的角點(diǎn)而是由一定的點(diǎn)構(gòu)成的特定的形狀,Y型角點(diǎn)的模板如圖3所示。
當(dāng)然,這不難看出,傳統(tǒng)的FAST角點(diǎn)檢測的方法中的16個(gè)點(diǎn)的檢測很難表達(dá)出角點(diǎn)檢測的具體公式。所以,我將16個(gè)周圍點(diǎn)簡化為8個(gè)點(diǎn),如圖3所示中發(fā)白區(qū)域所示。
圖3中內(nèi)部顯示的白框區(qū)域即為角點(diǎn)檢測區(qū)域,對(duì)于檢測區(qū)域中,有一個(gè)近似于字母Y型的灰度值區(qū)域,可以較為簡單的進(jìn)行分辨。所以在這里近似的將角點(diǎn)以圓周為8時(shí)的檢測結(jié)果為準(zhǔn)。檢測得標(biāo)準(zhǔn)為:遍歷圓周一周,當(dāng)周圍點(diǎn)的灰度值范圍在darker或brighter中的點(diǎn)有三個(gè)時(shí),進(jìn)入篩選的范圍;然后相同灰度值范圍的(darker或brighter)不能相鄰,且以圓心為對(duì)稱點(diǎn)的兩個(gè)點(diǎn)灰度值范圍不同。滿足以上的條件的點(diǎn),可以認(rèn)為其是一個(gè)Y型角點(diǎn)。該算法的步驟:
第一步:首先把原圖像轉(zhuǎn)換為灰度圖像,將候選點(diǎn)P的灰度值設(shè)置為Ip。
第二步:根據(jù)經(jīng)驗(yàn)設(shè)置一個(gè)閾值t。
第三步:計(jì)算候選點(diǎn)P與周圍8個(gè)點(diǎn)的灰度值之差,將其按照上述規(guī)則進(jìn)行篩選,則可認(rèn)為候選點(diǎn)p是一個(gè)Y型角點(diǎn)。
同F(xiàn)AST檢測一樣,這個(gè)檢測的最后需要進(jìn)行非極大值抑制。
X型角點(diǎn)也是一種傳統(tǒng)的FAST角點(diǎn)檢測無法檢測出的角點(diǎn),其模板如圖4。
同樣,在16個(gè)點(diǎn)時(shí),雖然可以將X型角點(diǎn)用某些特定的公式表示出來,但是在過程中會(huì)略顯麻煩。所以,同樣將FAST角點(diǎn)的模板變?yōu)?個(gè),可得圖4中的發(fā)白區(qū)域。
單單這么看看不出什么規(guī)律,經(jīng)過查閱資料可知X角點(diǎn)有以下特點(diǎn)(如圖5):
特點(diǎn)一:AC與BD為相互垂直的兩條直線。
特點(diǎn)二:AP=PC;BP=PD。
特點(diǎn)三:對(duì)稱區(qū)域的灰度相等,即區(qū)域a與區(qū)域b相等,區(qū)域c與區(qū)域d相等。
由以上三條特點(diǎn)可知:在X型角點(diǎn)中,只能有兩種灰度,即為darker和similar或bighter和similar;對(duì)角線上的兩點(diǎn)灰度相等,相同一邊上灰度不同。對(duì)于X型角點(diǎn)的檢測的標(biāo)準(zhǔn)為:先對(duì)圓周進(jìn)行遍歷,如果只有兩種灰度值的點(diǎn),且個(gè)數(shù)都為偶數(shù),即為篩選后得到的點(diǎn);我們將整個(gè)圖形中十字狀的點(diǎn)集作為分割線,在進(jìn)行位置上的檢測,如果對(duì)角線上的點(diǎn)灰度相等,且同一條邊上的兩個(gè)點(diǎn)灰度值不同。X型角點(diǎn)檢測算法的步驟:
第一步:首先把原圖像轉(zhuǎn)換為灰度圖像,將候選點(diǎn)P的灰度值設(shè)置為Ip。
圖1:FAST角點(diǎn)檢測
圖3:正常Y型角點(diǎn)模板以及8點(diǎn)X型角點(diǎn)的模板
第二步:根據(jù)經(jīng)驗(yàn)設(shè)置一個(gè)閾值t。
第三步:計(jì)算候選點(diǎn)P與周圍8個(gè)點(diǎn)的灰度值之差,將其按照上述規(guī)則進(jìn)行篩選,則可認(rèn)為候選點(diǎn)p是一個(gè)X型角點(diǎn)。
同樣,這種角點(diǎn)檢測需要進(jìn)行極大值抑制。
本文首先對(duì)FAST角點(diǎn)進(jìn)行介紹,利用相同的原理,提出了一種8點(diǎn)模板進(jìn)行Y型角點(diǎn)和X型角點(diǎn)的方法,對(duì)只能檢測出L型角點(diǎn)的進(jìn)行了補(bǔ)充。
圖2:變形后的FAST角點(diǎn)檢測
圖4:正常X型角點(diǎn)模板以及8點(diǎn)X型角點(diǎn)的模板
圖5:理想中X型角點(diǎn)的模板