陳雪松,武小凱
(東北石油大學(xué) 電氣信息工程學(xué)院,黑龍江 大慶 163318)
圖像匹配是計(jì)算機(jī)視覺(jué)和圖像處理的重要基礎(chǔ)之一[1]。圖像匹配是指在圖像與圖像之間,經(jīng)過(guò)特定的算法,識(shí)別出圖像之間同名點(diǎn)的過(guò)程[2]。圖像匹配技術(shù)在遙感、醫(yī)療、全景影像、三維重建和圖像拼接等領(lǐng)域具有較為廣泛的應(yīng)用[3-6]。然而一般情況下,圖像經(jīng)常會(huì)受到旋轉(zhuǎn)、光照、模糊等因素影響圖像之間的匹配效果[7]。因此,如何快速且穩(wěn)定地對(duì)圖像進(jìn)行匹配,逐漸成為圖像匹配的一個(gè)重要發(fā)展趨勢(shì)。
目前,較為常用的算法有Harris、SIFT(Scale-Invarivant Feature Transform)、SURF(Speeded-Up Robust Features)、FAST(Features from Accelerated Segment Test)、ORB(Oriented FAST and Rotated BRIEF)等,這幾種算法在使用中各有優(yōu)勢(shì)和特點(diǎn)[8]。其中SIFT算法是由David[9]于2004年提出,該算法在不同尺度下或圖像發(fā)生旋轉(zhuǎn)的情況下,匹配效果依然十分出色,而且對(duì)光線、視角以及噪聲變化均有很好的匹配效果。在某些場(chǎng)景中,由于紋理信息過(guò)于豐富,會(huì)在局部產(chǎn)生大量的無(wú)用特征點(diǎn),影響運(yùn)行速度;SIFT特征描述符具有128維向量,導(dǎo)致計(jì)算過(guò)于復(fù)雜,使匹配效率降低。針對(duì)上述情況,Mikolajczyk等[10]提出了GLOH描述子,使用對(duì)數(shù)極坐標(biāo)代替坐標(biāo)象限;Bay等[11]提出的SURF算法Hessian 矩陣行列式近似值圖像代替DOG(Difference of Gaussian)圖像,降低了運(yùn)算量;馮政壽等[12]提出利用Harris算法提取的角點(diǎn)作為特征點(diǎn),對(duì)特征點(diǎn)使用同心圓描述符,提高了匹配效率;李為民等[13]提出了對(duì)Harris改進(jìn)的角點(diǎn)指示器,可根據(jù)需求檢測(cè)不同數(shù)量角點(diǎn);趙小強(qiáng)等[14]提出了基于Harris角點(diǎn)與SIFT的快速圖像匹配算法,提高了圖像匹配的實(shí)時(shí)性;胡育誠(chéng)等[15]提出了消除冗余性能的策略,并對(duì)SIFT算子進(jìn)行改進(jìn),提升特征點(diǎn)檢測(cè)的時(shí)間效率。
筆者針對(duì)SIFT算法計(jì)算量大,實(shí)時(shí)性差的問(wèn)題,分別對(duì)特征點(diǎn)與特征描述符進(jìn)行改進(jìn),提出了一種Harris算法與SIFT算法相結(jié)合的方法。在一定程度上降低了SIFT算法的計(jì)算量,提升了匹配效率。
為使從圖像中提取的特征點(diǎn)具備尺度不變性,進(jìn)行特征點(diǎn)檢測(cè)時(shí)應(yīng)在不同的尺度中進(jìn)行。將圖像I(x,y,σ)與不同尺度的高斯核函數(shù)G(x,y,σ)卷積得到高斯金字塔L(x,y,σ),如下
L(x,y,σ)=G(x,y,σ)*I(x,y,σ)
(1)
(2)
將高斯金字塔中相鄰尺度的高斯圖像作差得到高斯差分金字塔(DOG)。如下
D(x,y,σ)=(G(x,y,kσ)-D(x,y,σ))*I(x,y,σ)=L(x,y,kσ)-L(x,y,σ)
(3)
將差分金字塔中的每個(gè)像素與其相鄰的26個(gè)點(diǎn)(8+9×2=26)比較,判斷其是否為極值點(diǎn)。
特征點(diǎn)確定主方向,是為減小描述符由于圖像旋轉(zhuǎn)等所帶來(lái)的負(fù)面影響。采用
(4)
(5)
可計(jì)算出像素點(diǎn)的梯度和方向。在每個(gè)特征點(diǎn)的鄰域范圍內(nèi)統(tǒng)計(jì)0360°之間的36個(gè)方向(每10°為一個(gè)方向)的梯度直方圖,取梯度直方圖峰值的方向作為特征點(diǎn)的主方向。
將坐標(biāo)軸旋轉(zhuǎn)至上述特征點(diǎn)的主方向上。以特征點(diǎn)為中心點(diǎn),取16×16的窗口區(qū)域。平均分為4×4=16個(gè)子塊區(qū)域(種子點(diǎn))。根據(jù)式(4)和式(5)統(tǒng)計(jì)出每個(gè)種子點(diǎn)在8個(gè)方向(每45°為一個(gè)方向)的梯度直方圖,并對(duì)每個(gè)梯度直方圖進(jìn)行高斯加權(quán),以減弱遠(yuǎn)離特征點(diǎn)的地方對(duì)特征點(diǎn)的影響。每個(gè)特征點(diǎn)的描述向量為4×4×8=128維。
由于Harris算法提取的角點(diǎn)具有高穩(wěn)定性,為此筆者將Harris算法與SIFT算法相結(jié)合,流程如圖1所示。
圖1 筆者算法流程圖Fig.1 Algorithm flowchart
首先對(duì)輸入的圖像使用Harris算法檢測(cè)出角點(diǎn),再對(duì)圖像進(jìn)行SIFT特征點(diǎn)檢測(cè),若SIFT特征點(diǎn)與Harris算法檢測(cè)的特征點(diǎn)之間小于閾值,則該SIFT特征點(diǎn)作為筆者的特征點(diǎn)[14]。雖然會(huì)增加特征點(diǎn)提取的時(shí)間,但篩選得到的SIFT特征點(diǎn)將會(huì)同時(shí)具有Harris特征點(diǎn)的高穩(wěn)定性,且減少了后續(xù)算法的時(shí)間。閾值如下
(6)
其中σoct為Harris角點(diǎn)所在尺度。
圖2 改進(jìn)的描述符Fig.2 Improved descriptor
筆者采用圓形描述符,由于圓形具有旋轉(zhuǎn)不變性,故無(wú)需確定特征點(diǎn)主方向。以關(guān)鍵點(diǎn)為圓心,取半徑為11的圓形窗口為特征點(diǎn)鄰域范圍,將該領(lǐng)域分別以半徑為1、2、3、4、5、7、9、11個(gè)像素劃分為8個(gè)同心圓,即8個(gè)種子點(diǎn)。統(tǒng)計(jì)每個(gè)同心圓上8個(gè)方向(每45°為一個(gè)方向)的像素梯度與方向。每個(gè)特征向量具有8×8=64個(gè)特征向量,并對(duì)特征向量進(jìn)行排序,描述符如圖2所示。為防止距離特征點(diǎn)較遠(yuǎn)的像素對(duì)描述符的影響過(guò)大,采用高斯窗口進(jìn)行加權(quán)。為減小由于光照變化對(duì)匹配效果產(chǎn)生負(fù)面影響,采用歸一化對(duì)特征向量進(jìn)行處理。
筆者采用最近鄰距離(min)與次近鄰距離(secmin)的比值(min/secmin)作為匹配依據(jù)[16]。閾值一般設(shè)置為0.6~0.8之間,數(shù)值越小,誤匹配率越低,匹配點(diǎn)對(duì)也將變少。筆者將閾值設(shè)置為0.6。由于在匹配中經(jīng)常發(fā)生誤匹配的情況,筆者采用RANSAC(RANdom SAmple Consensus)算法對(duì)特征點(diǎn)進(jìn)行提純[17]。
對(duì)筆者所提出的算法與SIFT算法進(jìn)行圖像匹配實(shí)驗(yàn),并對(duì)結(jié)果進(jìn)行對(duì)比與分析。圖3a和圖3b分別為SIFT算法和筆者算法提取的特征點(diǎn)。筆者算法相較于SIFT算法,特征點(diǎn)的數(shù)量有所減少,但特征點(diǎn)大部分為角點(diǎn),提高了特征點(diǎn)的穩(wěn)定性。
圖3 提取的特征點(diǎn)Fig.3 Extracted feature points
表1為兩種匹配算法的統(tǒng)計(jì)結(jié)果。圖4和圖5分別為SIFT算法和改進(jìn)SIFT算法的的匹配效果。使用兩種算法分別進(jìn)行20組以上的圖像匹配,求出每次平均所使用時(shí)間??梢钥闯?筆者算法與原SIFT算法相比節(jié)約大約1/3的時(shí)間,誤匹配率比SIFT算法有所降低。
圖4 SIFT算法匹配結(jié)果 圖5 改進(jìn)SIFT算法匹配結(jié)果 Fig.4 SIFT algorithm matching result Fig.5 Improved SIFT algorithm matching result
表1 實(shí)驗(yàn)結(jié)果Tab.1 Experimental results
從該實(shí)驗(yàn)中,可得出以下兩點(diǎn)結(jié)論。
1) 筆者算法相較于SIFT算法減少了特征點(diǎn)的數(shù)量。且筆者算法提取的特征點(diǎn)大部分為圖像角點(diǎn),增加了特征點(diǎn)的穩(wěn)定性,保障了算法的精確度。
2) 筆者采用的64維描述符相比于SIFT算法的128維描述符,降低了描述符維度,減少了算法的復(fù)雜度。誤匹配率有所下降。整體所用時(shí)間減少了大約1/3,提高了特征匹配的實(shí)時(shí)性。
針對(duì)SIFT算法復(fù)雜的情況,筆者使用Harris算法與SIFT算法相結(jié)合的方式提取特征點(diǎn),篩選出在Harris特征點(diǎn)附近的SIFT特征點(diǎn)作為筆者特征點(diǎn),使用64維圓形描述符代替SIFT算法的128維高維向量,有效的降低了算法復(fù)雜度。經(jīng)實(shí)驗(yàn)證明,筆者算法相比于SIFT算法在一定程度上提高了運(yùn)行速度,降低了算法的復(fù)雜度,且誤匹配率有所降低。