楊佳豪,董靜靜,袁 彤,何雨恒,楊 丹,石美紅
(西安工程大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,陜西 西安 710600)
角點(diǎn)包含圖像中的重要結(jié)構(gòu)信息,且信息的數(shù)據(jù)量少,是數(shù)字圖像范疇中極為重要的特征點(diǎn)。因其具有旋轉(zhuǎn)不變性、尺度不變性,同時(shí)對(duì)光照變化、仿射及投影變換也有一定不變性等特點(diǎn)[1-4],在相機(jī)標(biāo)定[5]、圖像拼接[6]、三維建模[7]、目標(biāo)跟蹤[8]等機(jī)器視覺(jué)領(lǐng)域有很高的應(yīng)用價(jià)值。
角點(diǎn)檢測(cè)方法可分為基于邊緣輪廓、基于模型和基于灰度變化3類(lèi)角點(diǎn)檢測(cè)[9].基于邊緣輪廓的角點(diǎn)檢測(cè)嚴(yán)重依賴(lài)圖像的邊緣檢測(cè)性能,一旦圖像邊緣出現(xiàn)中斷,直接影響角點(diǎn)提取的質(zhì)量。基于模型的角點(diǎn)檢測(cè)是采用定義的模板,以待測(cè)像素為中心,通過(guò)比較周?chē)袼睾椭行南袼氐幕叶葟?qiáng)度來(lái)尋找角點(diǎn),諸如經(jīng)典的SUSAN算法[10],其優(yōu)點(diǎn)是對(duì)噪聲不敏感,但邊緣點(diǎn)和角點(diǎn)區(qū)分不明顯,運(yùn)算速度比較慢。為此,邵澤明等[11]提出了一種基于SUSAN算法的分層快速角點(diǎn)檢測(cè)算法,可較大幅度地提高運(yùn)算速度,節(jié)省運(yùn)算時(shí)間;文獻(xiàn)[12]提出了一種基于灰色絕對(duì)關(guān)聯(lián)度分析的角點(diǎn)檢測(cè)算法,該算法的綜合檢測(cè)性能較好,且算法簡(jiǎn)單、易于實(shí)現(xiàn);陳洪等[13]通過(guò)改進(jìn)SUSAN算法中灰度差閾值的獲取方法,提出一種自適應(yīng)的角點(diǎn)特征提取方法,提高了角點(diǎn)檢測(cè)的精度,縮短了角點(diǎn)特征提取時(shí)間,具有較好的魯棒性?;诨叶茸兓慕屈c(diǎn)檢測(cè)是根據(jù)圖像像素點(diǎn)的灰度值變化提取角點(diǎn),諸如經(jīng)典的Harris算法[14],其優(yōu)點(diǎn)是計(jì)算量小、魯棒性好,但角點(diǎn)檢測(cè)的性能依賴(lài)于所選取的高斯窗口大小和閾值,且易受到噪聲影響。針對(duì)Harris算法存在的缺陷,文獻(xiàn)[15]提出了一種基于變分B樣條濾波與快速局部窗口搜索相結(jié)合的Harris特征點(diǎn)檢測(cè)算法,角點(diǎn)檢測(cè)定位準(zhǔn)確、抑噪性好;文獻(xiàn)[16]提出了一種快速預(yù)篩選方法,并結(jié)合多閾值角點(diǎn)提取及鄰近角點(diǎn)剔除策略,有效避免了角點(diǎn)簇?fù)憩F(xiàn)象,提高了角點(diǎn)檢測(cè)效率;文獻(xiàn)[17]通過(guò)在Harris算法中采用一種加權(quán)系數(shù)濾波窗口,有效地降低了噪點(diǎn)對(duì)角點(diǎn)檢測(cè)的干擾,提高了角點(diǎn)檢測(cè)的精準(zhǔn)度?;贖arris和SUSAN 2種算法的優(yōu)勢(shì)互補(bǔ),文獻(xiàn)[18]提出了一種 Harris 鄰域像素取差法與SUSAN相結(jié)合的改進(jìn)算法,改善了角點(diǎn)檢測(cè)的準(zhǔn)確性;文獻(xiàn)[19]提出了一種基于灰度差分與模板的Harris角點(diǎn)檢測(cè)快速算法,能準(zhǔn)確地提取圖像中的角點(diǎn),并去除了大量的偽角點(diǎn)。
受文獻(xiàn)[19]的啟示,文中提出了一種基于圖像鄰域灰度變化的角點(diǎn)檢測(cè)改進(jìn)方法。根據(jù)常見(jiàn)的X型、T型和Y型3類(lèi)角點(diǎn)的空間分布特點(diǎn),借鑒Harris角點(diǎn)檢測(cè)算法思想,對(duì)圖像進(jìn)行第1次角點(diǎn)集篩選,然后基于USAN模板內(nèi)的分布離散度對(duì)初始角點(diǎn)集進(jìn)行第2次角點(diǎn)集篩選,最后采用非極大值抑制函數(shù),從第二次篩選的角點(diǎn)集中提取角點(diǎn)。將本文改進(jìn)方法分別與 Harris 算法、SUSAN算法和文獻(xiàn)[19]算法的角點(diǎn)檢測(cè)結(jié)果進(jìn)行對(duì)比,說(shuō)明了文中改進(jìn)方法的有效性。
Harris算法[14]是基于窗口的圖像灰度變化自相關(guān)性來(lái)檢測(cè)角點(diǎn)。在圖像上無(wú)論怎樣滑動(dòng)窗口,如果圖像的灰度值均變化較大,則認(rèn)為窗口區(qū)域存在角點(diǎn)。窗口誤差函數(shù)計(jì)算式為
(1)
對(duì)I(x+u,y+v)進(jìn)行二元泰勒級(jí)數(shù)展開(kāi)得到
(2)
式中:I(x,y)和I(x+u,y+v)分別表示位于(x,y)和(x+u,y+v)的像素灰度值;w(x,y)為高斯函數(shù);Ix表示在x方向的偏導(dǎo)數(shù);Iy表示像素在y方向上的偏導(dǎo)數(shù)。令
設(shè)M的特征值是λ1和λ2,分別反映了x方向和y方向的極值曲率。當(dāng)這2個(gè)正交方向上的極值曲率均較大時(shí),疑似為角點(diǎn)。位于(x,y)像素的角點(diǎn)響應(yīng)函數(shù)為
CRF(x,y)=detM-k(traceM)2
(3)
式中:detM=λ1λ2;traceM=λ1+λ2;k是經(jīng)驗(yàn)值,通常取0.04~0.06。如果CRF(x,y)的值大于預(yù)先設(shè)定的閾值T,那么位于(x,y)像素的疑似角點(diǎn)才為真正角點(diǎn)[19]。由于Harris算法是利用圖像一階或二階偏導(dǎo)數(shù)來(lái)檢測(cè)角點(diǎn),若不存在大尺度變化,提取的角點(diǎn)穩(wěn)定可靠,但對(duì)噪聲敏感,對(duì)于T型角點(diǎn)的定位精度低[20]。
SUSAN算法選用由37個(gè)像素點(diǎn)組成的環(huán)形窗口模板(如圖1所示)檢測(cè)角點(diǎn)。
圖 1 7×7環(huán)形窗口模板
其中心為被檢測(cè)點(diǎn),也稱(chēng)為核心點(diǎn)。根據(jù)模板內(nèi)被檢測(cè)點(diǎn)的周?chē)徲蛳袼鼗叶葟?qiáng)度與核心點(diǎn)像素灰度強(qiáng)度差的不同,被劃分強(qiáng)度不相似區(qū)域和強(qiáng)度相似區(qū)域(即核值相似區(qū)USAN),其計(jì)算模型為
(4)
(5)
式中:I(r)表示周?chē)徲蛳袼豶的灰度強(qiáng)度值;I(r0)表示核心像元r0的灰度強(qiáng)度值;t為相似度閾值;CRF(r)為角點(diǎn)檢測(cè)值,非零為疑似角點(diǎn);n(r)=∑f(r)為f(r)的累加和,表示USAN面積;g為角點(diǎn)響應(yīng)幾何閾值,取環(huán)形窗口模板面積的1/2[10]。然后,利用USAN的重心遠(yuǎn)離圓形模板核心位置來(lái)去除偽角點(diǎn)。由于SUSAN算法是利用USAN的面積大小來(lái)檢測(cè)角點(diǎn),所以抗噪能力強(qiáng)、角點(diǎn)檢測(cè)效率高,但是因沒(méi)有考慮USAN的形狀分布,致使角點(diǎn)的定位準(zhǔn)確性較低,難以區(qū)分諸如X型角點(diǎn)與邊緣點(diǎn)。
在圖像中,角點(diǎn)往往位于兩直線的交點(diǎn),即至少有2個(gè)或2個(gè)以上灰度變化較明顯的區(qū)域相交的匯聚點(diǎn)。因此,角點(diǎn)至少在2個(gè)方向上都有較大的灰度變化。常見(jiàn)角點(diǎn)有X型、T型、Y型。圖2是基于7×7窗口的不同角點(diǎn)分布的部分示意圖,其中,USAN面積的相似區(qū)域面積均為18。
(a) X型角點(diǎn) (b) T型角點(diǎn)
(c) Y型角點(diǎn) (d) 邊緣圖 2 基于7×7窗口的不同角點(diǎn)分布示意圖Fig.2 Diagram of distribution of different corner based on 7×7 window
首先,利用像素灰度變化的空間自相關(guān)和角點(diǎn)的形狀分布特征,基于3×3鄰域環(huán)形模板,依次掃描圖像,進(jìn)行第一次角點(diǎn)初篩,得到初始角點(diǎn)集,再根據(jù)USAN分布的離散度,對(duì)初始角點(diǎn)集進(jìn)行第2次角點(diǎn)定位,得到準(zhǔn)角點(diǎn)集,然后,采用非極大值抑制法,從準(zhǔn)角點(diǎn)集中得到最終角點(diǎn)集。
為了降低遍歷檢測(cè)角點(diǎn)的時(shí)間開(kāi)銷(xiāo),選用一個(gè)3×3鄰域環(huán)形模板(如圖3所示)。
圖 3 3×3環(huán)形窗口模板
對(duì)像素進(jìn)行初始角點(diǎn)篩選。首先,計(jì)算中心像素c與周?chē)噜徬袼氐幕叶炔钪?/p>
σ(i)=|I(i)-I(c)|
(6)
式中:i=0,1,2,…,7;I(c)和I(i)分別表示位于(c)和(i)的像素灰度值。然后,利用圖像灰度變化的空間自相關(guān)性,分別計(jì)算沿中心像素c的x方向I(3)、I(7),y方向I(1)、I(5),45°方向I(2)、I(6)和135°方向I(0)、I(4)與中心像素I(c)的灰度差值σ(i),按式(7),判斷其是否均小于等于閾值T(閾值T根據(jù)經(jīng)驗(yàn)值設(shè)置)。
(7)
如果是或者僅在一個(gè)方向上存在大于T,則移動(dòng)窗口進(jìn)行下一像素檢測(cè)。否則,統(tǒng)計(jì)周?chē)噜徬袼嘏c中心像素的灰度相似的數(shù)目個(gè)數(shù)
(8)
根據(jù)角點(diǎn)的形狀特征和模板中相鄰像素與中心像素的灰度相似度分布(圖4是部分灰度相似度分布圖),初篩角點(diǎn)如下:當(dāng)S(c)值在[0,1]范圍時(shí),表明中心像素的灰度與鄰域像素的灰度不相似,則中心像素為噪聲點(diǎn);當(dāng)S(c)值在[7,8]范圍時(shí),表明中心像素的灰度與鄰域像素的灰度相似,則中心像素位于平坦區(qū);若S(c)值在[2,3]范圍時(shí),直接將中心像素標(biāo)記為準(zhǔn)角點(diǎn);當(dāng)S(c)值在[4,6]范圍時(shí),再進(jìn)行第2次角點(diǎn)篩選。
圖 4 與中心像素灰度相似的鄰域像素灰度分布示意圖Fig.4 Diagram of distribution of neighborhood pixel gray level similar to central pixel gray level
從圖2可看出,若為角點(diǎn),其圍繞中心像素點(diǎn)的鄰域像素點(diǎn)的相似區(qū)域分布是離散的,否則,其相似區(qū)域分布是連續(xù)的。針對(duì)X型、T型、Y型3類(lèi)角點(diǎn),對(duì)值在[4,6]范圍的初篩角點(diǎn)進(jìn)行二次定位。
首先,采用式(4)和(5),計(jì)算USAN面積。如果USAN面積值大于g時(shí),則從初篩角點(diǎn)集中剔除。如果USAN面積值小于g時(shí),則定位為準(zhǔn)角點(diǎn),否則,選用圖2的3×3鄰域環(huán)形模板,依次對(duì)從編號(hào)0到7的8鄰域像素,判斷其相似區(qū)域的空間分布,若相似區(qū)域空間分布的離散度大于2,即由n(i)到n(i+1)的值由1跳變?yōu)?或者由0跳變?yōu)?的次數(shù)之和大于2,其中,i=0,1,2,…,7,i+1=(i+1)mod 8,則可定位為準(zhǔn)角點(diǎn),否則,從初始角點(diǎn)集中剔除。例如,圖2(a)的X型角點(diǎn)的8鄰域相似區(qū)域分布離散度為3;圖2(b)的T型角點(diǎn)的8鄰域的相似區(qū)域分布離散度為4;圖2(c)的Y型角點(diǎn)的8鄰域的相似區(qū)域分布離散度為5;而圖2(d)位于邊緣的中心像素,其8鄰域的相似區(qū)域分布離散度小于等于2。
首先計(jì)算待測(cè)準(zhǔn)角點(diǎn)在x,y,xy方向的灰度變化梯度值,然后根據(jù)其角點(diǎn)響應(yīng)值,采用局部非極大抑制法,精準(zhǔn)定位角點(diǎn)。具體步驟如下:
第1步 采用3×3窗口的Sx(i)和Sy(i)(如式(9)所示)模板,以準(zhǔn)角點(diǎn)i為中心,分別計(jì)算它與鄰域像素在x和y方向上的灰度變化梯度;
(9)
第2步 根據(jù)x和y方向的灰度變化梯度,計(jì)算準(zhǔn)角點(diǎn)i在x,y,xy方向的梯度值,即
τx(i)=Sx(i)2,τy(i)=Sy(i)2
τxy(i)=Sx(i)Sy(i)
(10)
第3步 計(jì)算準(zhǔn)角點(diǎn)及其鄰域像素的響應(yīng)值
R(i)=τx(i)×τy(i)-τxy(i)2-t×
(τx(i)+τy(i))2
(11)
其中t∈[0.04,0.06]。
第4步 在3×3窗口內(nèi),若Ri為局部極大值,則定位為角點(diǎn),否則,從準(zhǔn)角點(diǎn)集中剔除。
圖5是利用改進(jìn)算法對(duì)三角形圖進(jìn)行角點(diǎn)檢測(cè)的實(shí)驗(yàn)結(jié)果圖。
圖 5 改進(jìn)算法的實(shí)驗(yàn)結(jié)果圖Fig.5 Experimental result diagram of improved algorithm
改進(jìn)算法在處理器為Inter(R) Core i5-7300HQ 2.50 GHz、內(nèi)存8 GB的計(jì)算機(jī)上運(yùn)行。實(shí)驗(yàn)數(shù)據(jù)分別采用模擬幾何圖像和真實(shí)圖像進(jìn)行實(shí)驗(yàn),并與Harris算法、SUSAN算法和文獻(xiàn)[19]算法進(jìn)行對(duì)比。
為了客觀評(píng)價(jià)角點(diǎn)檢測(cè)算法的性能,選擇常用的一致性(CCN,Consistency of Corner Numbers) 和準(zhǔn)確性(ACU,Accuracy)評(píng)判準(zhǔn)則[21]進(jìn)行性能評(píng)價(jià),其計(jì)算式為
CCN=100%×1.1-|Nt-No|,
(12)
式中:No表示檢測(cè)到原圖像的角點(diǎn)數(shù);Nt表示加噪后檢測(cè)到圖像的角點(diǎn)數(shù);Ng表示原圖像的真實(shí)角點(diǎn)數(shù);Na表示與真實(shí)角點(diǎn)相匹配的實(shí)際檢測(cè)到的角點(diǎn)數(shù)。
圖6和表1為對(duì)2種模擬幾何圖像進(jìn)行角點(diǎn)檢測(cè)的實(shí)驗(yàn)結(jié)果。
(a) 模擬幾何圖像1
(b) 模擬幾何圖像2圖 6 不同角點(diǎn)檢測(cè)算法對(duì)模擬幾何圖像的檢測(cè)結(jié)果
圖像算法檢測(cè)角點(diǎn)數(shù)正確角點(diǎn)數(shù)偽角點(diǎn)數(shù)漏檢角點(diǎn)數(shù)ACU/% 模擬幾何圖像1Harris算法943856465.45 SUSAN算法573918380.64 文獻(xiàn)[19]算法44422097.72 本文算法424200100模擬幾何圖像2Harris算法753144169.10 SUSAN算法503119179.44 文獻(xiàn)[19]算法33321098.48 本文算法323200100
從圖6可看出,Harris算法存在角點(diǎn)簇和角點(diǎn)漏檢的現(xiàn)象;SUSAN算法有所改進(jìn),但存在部分偽角點(diǎn);從放大圖中可看到,文獻(xiàn)[19]算法也存在少量的角點(diǎn)簇,相對(duì)其他算法,本文改進(jìn)算法能檢測(cè)到真實(shí)角點(diǎn)。從表1可以看出,依據(jù)客觀評(píng)價(jià)指標(biāo), Harris算法因存在大量的角點(diǎn)簇和少量的漏檢角點(diǎn),致使ACU分別為65.45%和69.10%;相對(duì)Harris算法和SUSAN算法的角點(diǎn)檢測(cè)準(zhǔn)確性能有所改善,ACU分別為80.64%和79.44%;文獻(xiàn)[19]算法進(jìn)一步改善了角點(diǎn)檢測(cè)準(zhǔn)確性能,ACU分別為97.72%和98.48%。相比而言,本文改進(jìn)算法很好地剔除了偽角點(diǎn),角點(diǎn)檢測(cè)準(zhǔn)確性能均達(dá)100%。
圖7和表2是對(duì)用于相機(jī)標(biāo)定的棋盤(pán)圖進(jìn)行角點(diǎn)檢測(cè)的實(shí)驗(yàn)結(jié)果。從圖7可以明顯看到,Harris算法存在角點(diǎn)簇,SUSAN算法有漏檢角點(diǎn)或角點(diǎn)定位偏離;文獻(xiàn)[19]算法能檢測(cè)到棋盤(pán)格中全部角點(diǎn),但仍存在少量偽角點(diǎn)或角點(diǎn)定位有點(diǎn)偏差;相對(duì)文獻(xiàn)[19]算法,本文改進(jìn)算法能精準(zhǔn)定位棋盤(pán)格的全部角點(diǎn),ACU提升了4.26%。
圖 7 不同角點(diǎn)檢測(cè)算法對(duì)棋盤(pán)格圖的檢測(cè)結(jié)果Fig.7 Detection results of different corner detection algorithms on checkerboard images
算法檢測(cè)角點(diǎn)數(shù)正確角點(diǎn)數(shù)漏檢角點(diǎn)數(shù)偽角點(diǎn)數(shù)ACU/% Harris算法8511602046353.84 SUSAN算法4241651525965.28 文獻(xiàn)[19]算法1881800895.74 本文算法18018000100.00
為了進(jìn)一步驗(yàn)證本文改進(jìn)算法的有效性,選用真實(shí)圖像進(jìn)行實(shí)驗(yàn)驗(yàn)證。圖8和表3為部分真實(shí)圖像的角點(diǎn)檢測(cè)結(jié)果??梢钥闯?所有算法都存在漏檢角點(diǎn)(見(jiàn)紅色標(biāo)記)和偽角點(diǎn)問(wèn)題,但是,Harris算法和SUSAN算法存在著明顯的角點(diǎn)簇,諸如房檐。文獻(xiàn)[19]算法和本文改進(jìn)算法有了較大改善,本文改進(jìn)算法的角點(diǎn)定位更精確(見(jiàn)放大圖)。
(a) 真實(shí)圖像1
(b) 真實(shí)圖像2
圖8不同角點(diǎn)檢測(cè)算法對(duì)真實(shí)圖像的檢測(cè)結(jié)果
Fig.8 Detection results of different corner deterction algorithms on real images
為了測(cè)試本文改進(jìn)算法的抗噪性,對(duì)圖6(b)的模擬幾何圖像和圖8(b)的真實(shí)圖像分別加入不同密度的椒鹽噪聲和不同方差的高斯噪聲,對(duì)比其一致性指標(biāo)CCN,結(jié)果如圖9所示。隨著噪聲密度的增加,各算法的CCN下降,Harris算法最明顯,其次是SUSAN算法,文獻(xiàn)[19]算法和本文改進(jìn)算法的CCN性能明顯好于Harris算法和SUSAN算法。但是,隨著椒鹽和高斯的噪聲密度加大,本文改進(jìn)算法的CCN性能優(yōu)于文獻(xiàn)[19]算法。對(duì)于模擬幾何圖像,當(dāng)高斯噪聲的方差值大于0.6時(shí),文獻(xiàn)[19]算法的CCN值低于本文改進(jìn)算法;對(duì)于真實(shí)圖像,當(dāng)高斯噪聲的方差值大于0.4時(shí),文獻(xiàn)[19]算法的CCN值下降速度明顯比本文改進(jìn)算法快。
(a) 模擬幾何圖像抗椒鹽噪聲的CCN變化曲線
(b) 真實(shí)圖像抗椒鹽噪聲的CCN變化曲線
(c) 模擬幾何圖像抗高斯噪聲的CCN變化曲線
(d) 真實(shí)圖像抗高斯噪聲的CCN變化曲線圖 9 不同算法的角點(diǎn)檢測(cè)一致性CCN變化曲線Fig.9 Change curves of CCN of corner detection from different algorithms on images
為了提高角點(diǎn)檢測(cè)的準(zhǔn)確性,增強(qiáng)角點(diǎn)檢測(cè)的抗噪性,借鑒Harris算法和SUSAN算法的思想,提出了一種基于圖像鄰域灰度變化的角點(diǎn)檢測(cè)改進(jìn)算法。改進(jìn)算法中可以檢測(cè)X型、T型、Y型3類(lèi)角點(diǎn),通過(guò)角點(diǎn)初篩,可有效地降低角點(diǎn)檢測(cè)的時(shí)間開(kāi)銷(xiāo)。基于USAN模板內(nèi)的分布離散度和非極大值抑制法,定位角點(diǎn),在有效消除偽角點(diǎn)的同時(shí),避免角點(diǎn)漏檢。這為目標(biāo)的重建、跟蹤、識(shí)別等處理奠定了基礎(chǔ)。后續(xù)將對(duì)本文改進(jìn)算法做進(jìn)一步優(yōu)化,提升角點(diǎn)檢測(cè)的自適應(yīng)性和實(shí)時(shí)性。