劉 敏, 周 聰, 湯靖博
(湖北工業(yè)大學(xué)太陽(yáng)能高效利用湖北省協(xié)同創(chuàng)新中心, 湖北 武漢 430068)
圖像配準(zhǔn)就是將使用不同的傳感器在不同的環(huán)境條件下采集到的兩幅或者多幅圖像進(jìn)行空間匹配的過(guò)程[1]。作為數(shù)字圖像處理中的關(guān)鍵技術(shù)之一,圖像配準(zhǔn)技術(shù)已經(jīng)成為圖像拼接[2]和物體檢測(cè)與跟蹤[3]的核心基礎(chǔ),并且廣泛應(yīng)用于計(jì)算機(jī)視覺(jué)[4]、遙感技術(shù)[5]、醫(yī)學(xué)成像技術(shù)[6]、虛擬現(xiàn)實(shí)[7]等領(lǐng)域。圖像配準(zhǔn)發(fā)展階段大致可以分為三類:基于灰度信息圖像配準(zhǔn)、基于變換域圖像配準(zhǔn)和基于特征的圖像配準(zhǔn)[8]。其中在計(jì)算量、匹配精度以及魯棒性方面,基于特征的圖像配準(zhǔn)均優(yōu)于其他兩類而受到廣泛的研究和應(yīng)用。
Lowe[9]等人提出SIFT(Scale Invariant Feature Transformation)算法并進(jìn)一步完善,使得該算法解決了圖像尺度不變性和旋轉(zhuǎn)不變性,同時(shí)具有一定的抗噪性以及較好的魯棒性。因此本文采用SIFT算法來(lái)提取特征。
在進(jìn)行圖像配準(zhǔn)的過(guò)程中,特征點(diǎn)在對(duì)應(yīng)的匹配點(diǎn)對(duì)中通常會(huì)出現(xiàn)部分的誤匹配點(diǎn)對(duì)。目前對(duì)于誤匹配點(diǎn)的剔除使用最為廣泛的是RANSAC(Random Sample Consensus)算法[10],然而該算法由于迭代次數(shù)多使得運(yùn)算速度較慢,進(jìn)而影響配準(zhǔn)效率。針對(duì)這個(gè)問(wèn)題,近年來(lái)國(guó)內(nèi)外學(xué)者對(duì)此算法進(jìn)行改進(jìn)優(yōu)化[11-13]。
本文提出改進(jìn)的RANSAC方法,在進(jìn)行相似關(guān)鍵點(diǎn)匹配過(guò)程中,對(duì)兩個(gè)相似關(guān)鍵點(diǎn)的相似性判斷進(jìn)行優(yōu)化,從而提高配準(zhǔn)的準(zhǔn)確率和效率。
在某些情況下,圖像中的關(guān)鍵點(diǎn)可以當(dāng)做是圖像中的角點(diǎn),由于圖像的關(guān)鍵點(diǎn)需要包含尺度以及方向,因此需要建立相應(yīng)的圖像尺度空間。經(jīng)過(guò)國(guó)內(nèi)外學(xué)者研究證明,高斯核是唯一可以產(chǎn)生尺度空間的核因子,因此SIFT特征采用高斯核作為核心算子來(lái)實(shí)現(xiàn)圖像的尺度空間變換。對(duì)于圖像f(x,y),利用其與高斯函數(shù)卷積可實(shí)現(xiàn)多尺度變換,尺度空間D(x,y,σ)滿足下式:
D(x,y,σ)=f(x,y)*G(x,y,σ)
(1)
(2)
其中G(x,y,σ)表示多尺度變換的高斯函數(shù),參數(shù)σ為尺度因子,其大小決定圖像曲線平滑變化情況,當(dāng)尺度因子取值越小時(shí),所得到的圖像就越清晰。在檢測(cè)圖像的關(guān)鍵點(diǎn)的過(guò)程中,對(duì)于連續(xù)圖像通常是利用高斯差分算子來(lái)構(gòu)建高斯差分金字塔(DoG)。根據(jù)不同尺度下高斯差分核來(lái)進(jìn)行極值點(diǎn)檢測(cè):
D(x,y,k,σ)=L(x,y,kσ)-L(x,y,σ)
(3)
使用DoG對(duì)圖像進(jìn)行操作,相比于傳統(tǒng)的方法,在對(duì)圖像進(jìn)行梯度檢測(cè)過(guò)程中能夠產(chǎn)生更加穩(wěn)定的最大輸出響應(yīng)和最小輸出響應(yīng)。在對(duì)特征點(diǎn)中的極值點(diǎn)進(jìn)行判定時(shí),該特征點(diǎn)需要滿足上下尺度平面集在進(jìn)行差分高斯操作時(shí)對(duì)應(yīng)的26個(gè)點(diǎn)中的極值,進(jìn)而確保獲取到的點(diǎn)是局部極值點(diǎn)。
由于高斯差分算子對(duì)邊緣及噪聲相對(duì)敏感,會(huì)產(chǎn)生偽邊緣信息和偽極值響應(yīng)信息,原因在于該算子函數(shù)最主要的特性是水平邊緣方向上存在較大主曲率,而垂直方向卻存在較小主曲率。從而形成偽關(guān)鍵點(diǎn),然而偽關(guān)鍵點(diǎn)在大部分場(chǎng)景中不能直接進(jìn)行特征描述。主曲率可以利用Hessian矩陣得到:
(4)
特征點(diǎn)高斯差分算子函數(shù)的主曲率與H矩陣特征值成正比,假設(shè)λ1為矩陣較大特征值,λ2為矩陣較小特征值,那么可以計(jì)算出H矩陣的跡和行列式的值:
det(H)=λ1λ2=AC+B2
(5)
trace(H)=λ1+λ2=A+C
(6)
令λ1=kλ2,同時(shí)考慮H矩陣的跡的平方與行列式值的比:
(7)
當(dāng)檢測(cè)到的主曲率對(duì)應(yīng)的M滿足閾值T時(shí),即M<(T+1)2/T時(shí),對(duì)應(yīng)特征點(diǎn)判定為邊緣點(diǎn),也就是偽關(guān)鍵點(diǎn),并進(jìn)行去除。
通過(guò)偽關(guān)鍵點(diǎn)去除可以實(shí)現(xiàn)圖像特征尺度不變性,但是要實(shí)現(xiàn)特征旋轉(zhuǎn)不變性,則需要對(duì)特征點(diǎn)方向進(jìn)行重新分配。假設(shè)關(guān)鍵點(diǎn)領(lǐng)域像素梯度方向?yàn)橹付ǖ闹鞣较?,每個(gè)采樣圖像生成相應(yīng)的特征向量,圖像中的特征點(diǎn)梯度和方向計(jì)算如下:
(8)
其中,a1=i+1,j,k,σ;a2=i-1,j,k,σ;a3=i,j+1,k,σ;a4=i,j-1,k,σ
(9)
首先在梯度方向上將整個(gè)圓周平均分為36份;然后對(duì)每個(gè)特征點(diǎn)所屬的圖像尺寸空間,在特征中心點(diǎn)領(lǐng)域窗口內(nèi)進(jìn)行采樣;最后利用直方圖統(tǒng)計(jì)領(lǐng)域的每個(gè)像素點(diǎn)的梯度方向,對(duì)得到的關(guān)鍵點(diǎn)梯度方向利用高斯函數(shù)對(duì)其進(jìn)行平滑操作。直方圖的峰值表示特征點(diǎn)在此領(lǐng)域梯度上的方向,最高峰表示關(guān)鍵點(diǎn)的主方向。
圖像中的每個(gè)SIFT特征包含128維特征,矩形區(qū)域被分為16個(gè)子塊,每個(gè)子塊的梯度方向直方圖分為8個(gè)子部分,每個(gè)梯度方向子塊部分對(duì)特征的貢獻(xiàn)一樣,進(jìn)而生成具有尺度不變與旋轉(zhuǎn)不變特性的128維特征向量。
在特征描述過(guò)程中為了消除飛線性光照或環(huán)境的影響,特征向量通常需要進(jìn)行歸一化操作,經(jīng)過(guò)歸一化操作后得到的特征向量可直接用于特征匹配。
特征匹配方法主要有單向匹配、雙向匹配和最近鄰匹配三種。其中單向匹配耗時(shí)短,但誤匹配率較高;雙向匹配相當(dāng)于進(jìn)行兩次單向匹配,實(shí)時(shí)性較差;本文采用常用的最近鄰匹配方法進(jìn)行特征粗匹配,但是當(dāng)兩幅圖像存在較大范圍的相似區(qū)域時(shí),經(jīng)過(guò)粗匹配之后依然存在大量的誤匹配點(diǎn)對(duì)。因此需要使用RANSAC算法進(jìn)行誤匹配點(diǎn)剔除,傳統(tǒng)RANSAC算法步驟如下。
算法偽代碼輸入:
Data—一組觀測(cè)數(shù)據(jù)
Model—適應(yīng)于數(shù)據(jù)的模型
N—適用于模型的最小數(shù)據(jù)個(gè)數(shù)
K—算法的迭代次數(shù)
t—用于決定數(shù)據(jù)是否應(yīng)用于模型的閾值
d—判定模型是否適用于數(shù)據(jù)集的數(shù)據(jù)數(shù)目
輸出:
Best_model—與數(shù)據(jù)最匹配的模型參數(shù)
Best_consensus_set—估計(jì)出模型的數(shù)據(jù)點(diǎn)
IG戰(zhàn)隊(duì)在LPL聯(lián)賽當(dāng)中一路勢(shì)如破竹,讓大家看到了他們的勇氣和實(shí)力,最終為中國(guó)贏下寶貴的冠軍榮耀。這一役,IG戰(zhàn)隊(duì)不僅展現(xiàn)出了驚人的實(shí)力,更意味著,我們?cè)谶@一年里所取得的榮譽(yù),并非是虛妄和運(yùn)氣。
Best_error—估計(jì)出模型的錯(cuò)誤數(shù)據(jù)點(diǎn)
通過(guò)傳統(tǒng)的RANSAC方法進(jìn)行誤匹配點(diǎn)剔除之后,仍然存在部分誤匹配點(diǎn)對(duì),從而會(huì)影響配準(zhǔn)的準(zhǔn)確度和效率。在當(dāng)前的研究當(dāng)中,通常會(huì)在經(jīng)過(guò)初匹配之后再進(jìn)行精匹配。在進(jìn)行精匹配時(shí),本文提出了一種改進(jìn)的RANSAC誤匹配點(diǎn)對(duì)剔除的方法,提高配準(zhǔn)率。具體實(shí)現(xiàn)方法如下:
若一組正確的匹配點(diǎn)(Pi,Qi)和(Pj,Qj),d(Pi,Pj)為Pi到Pj的距離,d(Qi,Qj)為Qi到Qj的距離,兩個(gè)距離相似。利用Pi與第一幅圖像中所有感興趣的點(diǎn)Pj的關(guān)系和Qi與第二幅圖像中所有感興趣的點(diǎn)Qj的相似性來(lái)評(píng)價(jià)兩點(diǎn)的對(duì)應(yīng)關(guān)系,提出如下評(píng)價(jià)函數(shù):
(10)
其中,Pi和Qi與每一對(duì)興趣點(diǎn)的平均距離是D(i,j)=[d(Pi,Pj)+d(Qi,Qj)]/2,r(i,j)=exp(-uij),uij=|d(Pi,Pj)-d(Qi,Qj)|/D(i,j)是Pi和Qi與每對(duì)興趣點(diǎn)距離的相似性差異。
改進(jìn)之后的RANSAC算法步驟如下:
1)計(jì)算ω(i)的所有值;
2)求出全部ω(i)的均值ω;
3)判斷ω(i),如果ω(i)>0.8ω,Pi和Qi是正確相似點(diǎn)對(duì),則保留,否則刪除;
4)將篩選出來(lái)的正確相似點(diǎn)作為RANSAC算法的初始迭代特征點(diǎn)對(duì);
6)通過(guò)變換模型計(jì)算出其他特征點(diǎn)與候選匹配點(diǎn)之間的距離,并設(shè)置閾值τ,當(dāng)距離小于此閾值時(shí),判定該特征點(diǎn)為內(nèi)點(diǎn),否則為外點(diǎn)。
7)使用內(nèi)點(diǎn)對(duì)變換模型進(jìn)行重新估計(jì),進(jìn)行N次迭代。
本文實(shí)驗(yàn)環(huán)境為Windows10操作系統(tǒng),酷睿i7-3770,cpu Intel @3.40MHz,內(nèi)存4GB,使用仿真軟件為VS2017+OpenCV 3.4.0。
實(shí)驗(yàn)分為兩組:第一組實(shí)驗(yàn)過(guò)程選取相同場(chǎng)景不同成像條件下采集到的兩幅像素均為400×300的圖像,如圖1所示。分別使用傳統(tǒng)的SIFT + RANSAC方法和本文改進(jìn)的方法對(duì)兩幅圖像進(jìn)行圖像配準(zhǔn)實(shí)驗(yàn),所得實(shí)驗(yàn)結(jié)果(主要是匹配時(shí)間、匹配點(diǎn)對(duì)、正確匹配點(diǎn)對(duì)和配準(zhǔn)率)進(jìn)行分析比較。圖2是利用改進(jìn)之前的RANSAC算法進(jìn)行配準(zhǔn)后的圖像,圖3是通過(guò)改進(jìn)后的RANSAC進(jìn)行配準(zhǔn)后的圖像。
圖 1 配準(zhǔn)原圖像
圖 2 SIFT+RANSAC
圖 3 SIFT+RANSAC(改進(jìn))
從圖2和圖3對(duì)比中可以看出,使用傳統(tǒng)的RANSAC算法時(shí),并沒(méi)有完全將誤匹配點(diǎn)對(duì)全部剔除,仍然出現(xiàn)了少量的誤匹配點(diǎn)對(duì)。使用本文提出的改進(jìn)的RANSAC算法能夠有效的將誤匹配點(diǎn)對(duì)進(jìn)行剔除,從而達(dá)到提高匹配的準(zhǔn)確率的目的。同時(shí)將兩種方法進(jìn)行特征點(diǎn)匹配時(shí)的數(shù)據(jù)進(jìn)行對(duì)比分析,結(jié)果見表1。
表1 配準(zhǔn)數(shù)據(jù)對(duì)比
由傳統(tǒng)RANSAC算法步驟可知,從時(shí)間上分析,改進(jìn)之后的算法在特征點(diǎn)匹配過(guò)程中從0.82 s減少到0.77 s,即優(yōu)化之后進(jìn)行特征點(diǎn)匹配所用的時(shí)間能夠得到有效的減少,并且通過(guò)相似性判斷優(yōu)化之后,能夠有效的降低相似特征點(diǎn)的誤判斷,從而得到更加精確的相似特征點(diǎn)。同時(shí)將匹配正確率從64%提高到91%,明顯提高了匹配正確率,由此可以證明改進(jìn)之后的算法綜合性得到了提升。
第二組實(shí)驗(yàn)過(guò)程采用的是同一條件下采集到的相同場(chǎng)景的一組圖像,但是在旋轉(zhuǎn)、亮度和尺度方面存在差異性的一組圖像a,b,c,d。像素分別為400×300,300×400,400×300和300×225(圖4)。分別使用傳統(tǒng)的SIFT+RANSAC方法和本文改進(jìn)的RANSAC方法對(duì)4幅圖像進(jìn)行特征點(diǎn)提取,同時(shí)將a圖與b圖,c圖和d圖記性特征點(diǎn)匹配,將匹配之后的實(shí)驗(yàn)結(jié)果進(jìn)行分析比較。其中圖5是將原圖a經(jīng)過(guò)90°旋轉(zhuǎn)之后,使用改進(jìn)后方法進(jìn)行配準(zhǔn)之后的圖像。圖6是將原圖a通過(guò)亮度和對(duì)比度調(diào)整之后,使用改進(jìn)之后的方法進(jìn)行配準(zhǔn)之后的圖像。圖7是將原圖a通過(guò)尺寸大小調(diào)整之后,使用改進(jìn)之后的方法進(jìn)行配準(zhǔn)之后的圖像。
圖 4 配準(zhǔn)原圖像
圖 5 改進(jìn)算法(旋轉(zhuǎn))
圖 6 改進(jìn)算法(亮度)
圖 7 改進(jìn)算法(尺度)
其中,圖5、圖6和圖7均是利用本文的方法進(jìn)行特征點(diǎn)匹配所得到的配準(zhǔn)圖形,從圖中可以看出,誤匹配點(diǎn)對(duì)較少。通過(guò)使用兩種方法進(jìn)行試驗(yàn),對(duì)第二組實(shí)驗(yàn)數(shù)據(jù)進(jìn)行對(duì)比分析,結(jié)果見表2。
表2 圖像調(diào)整匹配算法數(shù)據(jù)對(duì)比
從表2可以看出,同一場(chǎng)景中,采集到的相同的圖像在不同角度、亮度和對(duì)比度的條件下,使用傳統(tǒng)的RANSAC方法,正確匹配率均能達(dá)到92%以上,使用本文方法能夠?qū)⒄_率提高到99%。在不同的尺度條件下,正確率的提升較少。通過(guò)第二組實(shí)驗(yàn)也可以證明,改進(jìn)之后的方法的綜合性能得到了提升。
本文采用SIFT特征描述子,該特征能夠有效地對(duì)目標(biāo)特征信息進(jìn)行表達(dá),并且根據(jù)場(chǎng)景調(diào)整特征點(diǎn)數(shù)量,具有很強(qiáng)的特征分析能力。在進(jìn)行特征點(diǎn)匹配過(guò)程中,對(duì)RANSAC算法中相似特征點(diǎn)的相似性評(píng)價(jià)進(jìn)行優(yōu)化,通過(guò)實(shí)驗(yàn)和數(shù)據(jù)分析與對(duì)比,得到以下結(jié)論。
1)優(yōu)化之后的方法在圖像配準(zhǔn)時(shí)間上有所提升。
2)改進(jìn)之后的方法能夠更加有效的對(duì)相似特征點(diǎn)對(duì)進(jìn)行判斷。
3)在相同場(chǎng)景不同成像條件下,改進(jìn)之后的方法能夠提升正確匹配率。
4)在相同場(chǎng)景相同條件下,對(duì)于采集到的圖像經(jīng)過(guò)不同方面的調(diào)增,改進(jìn)之后的方法能夠提升正確匹配率。