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

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

表1:標準Harris和本文改進算法對比

圖1

圖2


其中

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

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

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