文/汪海洋 陳德林 帥一師 郭宏宇 吳成 岳林幫
角點(diǎn)是圖像重要的特征信息,角點(diǎn)是圖像中重要的局部特征信息,角點(diǎn)檢測(cè)是計(jì)算圖像角點(diǎn)的數(shù)學(xué)方法。從圖像分析角度,角點(diǎn)可以有以下兩種定義:
(1)角點(diǎn)可以是兩個(gè)邊緣的角點(diǎn);
(2)角點(diǎn)是鄰域內(nèi)具有兩個(gè)主方向的特征點(diǎn)。
目前,角點(diǎn)檢測(cè)大致分為三大類:
(1)基于灰度圖像的角點(diǎn)檢測(cè);
(2)基于二值圖像的角點(diǎn)檢測(cè);
(3)基于輪廓曲線的角點(diǎn)檢測(cè)。
常見的基于灰度的角點(diǎn)檢測(cè)算法有Kitchen-Rosenfeld角點(diǎn)檢測(cè)算法,Harris角點(diǎn)檢測(cè)算法、KLT角點(diǎn)檢測(cè)算法及SUSAN角點(diǎn)檢測(cè)算法。從角點(diǎn)檢測(cè)的快速性、準(zhǔn)確性等角度看,以上算法各有利弊。相比較而言,Harris角點(diǎn)檢測(cè)應(yīng)用較為廣泛,且計(jì)算結(jié)果穩(wěn)定。但是,其檢測(cè)精度、效率仍有較大的提升空間。
Harris角點(diǎn)在Moravec算法基礎(chǔ)上提出的一種基于信號(hào)的點(diǎn)特征檢測(cè)改進(jìn)算法。人眼對(duì)角點(diǎn)的識(shí)別通常是在一個(gè)局部的小區(qū)域或小窗口完成的。如果在各個(gè)方向上移動(dòng)這個(gè)特征的小窗口,窗口內(nèi)區(qū)域的灰度發(fā)生了較大的變化,那么就認(rèn)為在窗口內(nèi)遇到了角點(diǎn)。Harris角點(diǎn)算法與人眼感官一樣,在水平和垂直方向變化較大的點(diǎn)則為角點(diǎn)。算法對(duì)窗口定義為一個(gè)矩陣函數(shù),窗口可以在任意方向上位移,以像素點(diǎn)為中心發(fā)生x和y的位移,圖像的將會(huì)產(chǎn)生u和v的灰度變換。
圖像窗口平移[u,v]產(chǎn)生灰度變化的自相關(guān)函數(shù)如下:

其中,窗函數(shù)(權(quán)重矩陣)可以是平坦的,也可以是高斯函數(shù)。然而將式(1)進(jìn)行泰勒展開如下:

表1:標(biāo)準(zhǔn)Harris和本文改進(jìn)算法對(duì)比

圖1

圖2


其中

通過卷積得到MI在領(lǐng)域像素上局部平均,矩陣M稱為Harris矩陣,定義角點(diǎn)響應(yīng)函數(shù)CRF:

CRF可防止水平梯度和垂直梯度離散化,CRF只和M的特征值有關(guān),CRF為大數(shù)值正數(shù)時(shí)是角點(diǎn),CRF為大數(shù)值負(fù)數(shù)時(shí)是邊緣,CRF為小數(shù)值時(shí)則表示平坦區(qū)域。在角點(diǎn)檢測(cè)時(shí),對(duì)角點(diǎn)響應(yīng)函數(shù)CRF進(jìn)行閾值處理,CRF大于給定閾值,則檢測(cè)窗口中心點(diǎn)是角點(diǎn)。閾值高低將直接影響角點(diǎn)檢出數(shù)量,閾值較低時(shí),檢出角點(diǎn)數(shù)量較多,否則角點(diǎn)數(shù)據(jù)就較少。為了減少后續(xù)匹配算法的計(jì)算量,需要合理設(shè)定閾值,從而將局部響應(yīng)較高的角點(diǎn)檢出,抑制一些“偽角點(diǎn)”。因此,如何自動(dòng)設(shè)定閾值成為本領(lǐng)域的研究熱點(diǎn)。
改進(jìn)算法主要為了提高Harris算法檢測(cè)速率。在計(jì)算自相關(guān)矩陣前,先做預(yù)處理。設(shè)定一個(gè)閾值TH1,確定待選點(diǎn)與中心點(diǎn)在垂直或水平方向上的相似性。假設(shè)待選點(diǎn)與中心點(diǎn)的灰度差小于設(shè)定閾值TH1,則認(rèn)為中心點(diǎn)與該點(diǎn)相似,同理可判斷鄰域內(nèi)其他點(diǎn)的相似性。

圖3:Rice圖像檢測(cè)結(jié)果
改進(jìn)算法主要采用3×3的矩形窗口,考慮中心點(diǎn)與領(lǐng)域內(nèi)8個(gè)像素點(diǎn)的相似性。設(shè)中心點(diǎn)與領(lǐng)域點(diǎn)相似的個(gè)數(shù)為L(zhǎng)(x,y),則L(x,y)最大值為8,最小值為0,討論各種情況如下:
L(x,y)=0時(shí),表示沒有相似點(diǎn),像素點(diǎn)為孤立像素點(diǎn)或者噪聲點(diǎn),應(yīng)排除像素點(diǎn)。
L(x,y)=8時(shí),表示9個(gè)點(diǎn)在灰度值沒有梯度變化,此類情況也應(yīng)排除。
L(x,y)=7時(shí),有兩種情況,圖1和圖2都不是中心點(diǎn)為角點(diǎn),則這種情況也不符合。
用Harris算法對(duì)一副圖片進(jìn)行角點(diǎn)提取時(shí),需要通過一個(gè)固定閾值進(jìn)行不斷調(diào)試,才會(huì)得到比較好的結(jié)果,但是所設(shè)置的閾值并不一定對(duì)其他圖片都適用,這需要算法本身有能力計(jì)算出合適的閾值。本算法將閾值設(shè)定為角點(diǎn)響應(yīng)函數(shù)最大值的p倍,即:。其中p取經(jīng)驗(yàn)值[0.005,0.015]時(shí),會(huì)檢測(cè)出較多的角點(diǎn),同時(shí)檢測(cè)到偽角點(diǎn)的數(shù)目較少。
為了驗(yàn)證實(shí)驗(yàn)算法的預(yù)處理的有效性,使用一副Rice圖片進(jìn)行前后效果比對(duì)。
從Rice的角點(diǎn)檢測(cè)實(shí)驗(yàn)圖(圖3)可以看出:在標(biāo)準(zhǔn)Harris算法檢測(cè)下圖像邊緣的偽角點(diǎn)均被檢測(cè)出,而使用本文的檢測(cè)算法能有效地過濾邊緣的偽角點(diǎn),提升檢點(diǎn)檢測(cè)的準(zhǔn)確性。此外,本算法檢測(cè)角點(diǎn)的時(shí)間在多次實(shí)驗(yàn)下較原算法大約縮減30%,有效的節(jié)約了時(shí)間,增加了算法的時(shí)效性。如表1所示。
針對(duì)Harris角點(diǎn)檢測(cè)算法運(yùn)行時(shí)間長(zhǎng)和精確度等級(jí)不高,本文提出了一種改進(jìn)的Harris角點(diǎn)檢測(cè)算法,以提高角點(diǎn)檢測(cè)效率。在計(jì)算Harris矩陣M矩陣前,利用灰度差對(duì)圖像進(jìn)行了預(yù)處理。實(shí)驗(yàn)表明,通過預(yù)處理,確定了候選角點(diǎn),耗時(shí)降低了21.92%。改進(jìn)算法在能有效地減少運(yùn)算時(shí)間的同時(shí)還減少了偽角點(diǎn)數(shù)量。