周露露,路 綱,田艷玲
(陜西師范大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,陜西 西安 710000)
圖像拼接技術(shù)[1]是將兩幅或多幅不同情況下拍攝有共同區(qū)域的圖像經(jīng)過匹配、配準(zhǔn)、融合等操作,拼接成寬視角、高分辨率圖像的過程。該技術(shù)目前廣泛應(yīng)用于醫(yī)學(xué)圖像診斷、虛擬場景設(shè)置、數(shù)字化圖像呈現(xiàn)等領(lǐng)域。
其中,圖像拼接過程中的核心環(huán)節(jié)是圖像配準(zhǔn)。圖像配準(zhǔn)的算法根據(jù)區(qū)域和特征具體分為兩大類?;趨^(qū)域的配準(zhǔn)方法是比較每個(gè)對應(yīng)區(qū)域中的像素并計(jì)算出兩幅圖像之間的最佳轉(zhuǎn)換矩陣。另外,基于特征的配準(zhǔn)方法是通過找到兩圖像之間的相對特征點(diǎn)實(shí)現(xiàn)配準(zhǔn)。目前,廣泛使用的特征提取方法包括:SIFT特征提取算法[1]、SURF特征點(diǎn)檢測算法[2]、Harris角點(diǎn)檢測算法[3]等。文獻(xiàn)[4-7]表明,SIFT算法對圖像的旋轉(zhuǎn)、噪聲的干擾和光線的影響都具有很強(qiáng)的魯棒性,可以及時(shí)檢測到足夠的特征點(diǎn)。不同特征提取算法的實(shí)驗(yàn)對比表明,SIFT特征提取算法在圖像旋轉(zhuǎn)、光照變化、縮放、幾何變化等情況下具有最好的特征提取性能。但在實(shí)踐中發(fā)現(xiàn),盡管SIFT特征匹配方法可以獲得豐富的特征點(diǎn),仍然存在兩個(gè)缺陷:一是在配準(zhǔn)結(jié)果中存在不匹配的特征點(diǎn),特別是對于具有大量類似區(qū)域的圖像;二是對于正確匹配的特征點(diǎn),它們的對應(yīng)位置不嚴(yán)格對應(yīng),導(dǎo)致轉(zhuǎn)換矩陣出錯,致使拼接圖像明顯重影。
拓?fù)鋵W(xué)屬于幾何類范疇[8]。每個(gè)節(jié)點(diǎn)之間的關(guān)系被認(rèn)為是一條連接線,并且節(jié)點(diǎn)之間的連接關(guān)系被稱為拓?fù)浣Y(jié)構(gòu)。通過點(diǎn)之間形成的拓?fù)鋱D,顯示各個(gè)節(jié)點(diǎn)的連接。
基于SIFT算法,文中利用特征點(diǎn)之間歐氏距離匹配,結(jié)合拓?fù)浣Y(jié)構(gòu)理論消除誤匹配特征點(diǎn),以提高特征點(diǎn)的正確匹配率,達(dá)到較少耗時(shí)和高精度的圖像拼接效果。運(yùn)用特征點(diǎn)重復(fù)率、辨識率等對配準(zhǔn)與拼接結(jié)果進(jìn)行評價(jià),結(jié)果顯示改進(jìn)后的拼接效果更好,拼接精度更高。
特征點(diǎn)被用作圖像拼接處理中圖像區(qū)域的定位信息。利用圖像中對應(yīng)的特征點(diǎn),對圖像進(jìn)行對齊匹配;使用匹配的特征點(diǎn)計(jì)算兩幅圖像之間的轉(zhuǎn)換矩陣,然后完成拼接。
SIFT特征提取算法[1],首先構(gòu)造卷積圖像的尺度空間,并在尺度空間中進(jìn)行特征點(diǎn)搜索,然后利用擬合的方法獲得特征點(diǎn)的確切方位,之后將特征點(diǎn)鄰域梯度的主方向作為該特征點(diǎn)方向。特征點(diǎn)的描述符根據(jù)確切的主方向得到。具體實(shí)現(xiàn)步驟如下:
一幅圖像的不同尺度空間可以定義為圖像I(x,y)與高斯核G(x,y,σ)的卷積:
L(x,y,σ)=G(x,y,σ)×I(x,y)
(1)
其中,L為圖像所在的比例空間;(x,y)為圖像的像素坐標(biāo);σ為比例因子。
尺度空間的建立過程為:第一層為原圖像,然后利用不同大小高斯因子逐個(gè)與原圖像做卷積處理,以形成一系列不同比例的空間圖像,形成圖像金字塔。
依據(jù)文獻(xiàn)[4]的研究證明,σ22G作用于圖像后,將查找出的局部極大值以及極小值作為圖像穩(wěn)定的特征點(diǎn)。Lowe定義了DoG算子來近似替代σ22G,DoG算子如下:
D(x,y,σ)=[G(x,y,kσ)-G(x,y,σ)]*I(x,y)=
L(x,y,kσ)-L(x,y,σ)
(2)
遍歷尺度空間中圖像的所有像素點(diǎn),并判斷其相鄰像素的大小,該像素點(diǎn)的值大于或小于鄰域內(nèi)其他點(diǎn)的像素值,則將該點(diǎn)列為候選特征點(diǎn)。
(1)特征點(diǎn)篩選及位置的確定。DoG算法將產(chǎn)生很強(qiáng)的邊緣響應(yīng),因此具有邊緣響應(yīng)關(guān)鍵點(diǎn)不能作為穩(wěn)定的特征點(diǎn),須要消除不穩(wěn)定的邊緣響應(yīng)點(diǎn)。同時(shí),為了確保匹配的穩(wěn)定性,需要去除低對比度的特征點(diǎn)。根據(jù)特征點(diǎn)鄰域像素梯度分布,擬合函數(shù)來確定特征點(diǎn)位置。
(2)特征點(diǎn)方向的分配。通過直方圖估計(jì)特征點(diǎn)鄰域像素梯度的方向,并且與直方圖的峰值相對應(yīng)的方向?yàn)樘卣鼽c(diǎn)的主方向。如果存在相當(dāng)于主峰值80%能量的峰值,則將其作為該特征點(diǎn)的輔方向,使得檢測出來的特征點(diǎn)具有旋轉(zhuǎn)不變性。
(3)特征描述子的生成。將坐標(biāo)系的橫坐標(biāo)軸旋轉(zhuǎn)至特征點(diǎn)的主方向[5],確保旋轉(zhuǎn)不變。以特征點(diǎn)為中心8×8窗口,將該窗口分成16個(gè)2×2的小塊,計(jì)算小塊內(nèi)各點(diǎn)的梯度方向。計(jì)算每個(gè)小塊中8個(gè)方向上的累加值,一個(gè)特征點(diǎn)對應(yīng)16×8=128維的向量。
從上面的算法描述中可以看出,SIFT算法利用特征點(diǎn)鄰域的梯度信息來描述特征點(diǎn),使算法對圖像旋轉(zhuǎn)、光線影響較不敏感。同時(shí),它也減少了對特征點(diǎn)位置的精確要求。通過實(shí)驗(yàn)可以發(fā)現(xiàn),匹配的特征點(diǎn)對的位置并不完全一致,它會給轉(zhuǎn)換矩陣帶來更明顯的錯誤。文章將針對上述問題進(jìn)行相應(yīng)的改進(jìn)。
在特征點(diǎn)匹配過程中,現(xiàn)有拼接算法只考慮了單個(gè)特征點(diǎn)的相關(guān)信息,而忽視了同幅圖像中特征點(diǎn)間的關(guān)聯(lián)信息[9]。在圖像的共同區(qū)域,特征點(diǎn)間具有類似的關(guān)聯(lián),可以利用這種關(guān)聯(lián)信息來判定特征點(diǎn)間的空間關(guān)系。
結(jié)合拓?fù)淅碚揫10],每個(gè)特征點(diǎn)被認(rèn)為是一個(gè)節(jié)點(diǎn),并且節(jié)點(diǎn)通過特定的規(guī)則連接起來。匹配的特征點(diǎn)具有類似的連接。對同一幅圖像特征點(diǎn)通過歐氏距離確定距離最近的點(diǎn)集,距離最近的特征點(diǎn)間應(yīng)具有相同的匹配關(guān)系,以此作為匹配過程中的約束項(xiàng)。由此,設(shè)計(jì)特征點(diǎn)間的連接規(guī)則。
拓?fù)浣Y(jié)構(gòu)非常穩(wěn)定,不受縮放、位移、拉伸等影響。如果圖像的拓?fù)潢P(guān)聯(lián)不同,則意味著兩幅圖像中有不匹配的特征點(diǎn)。文中定義了一個(gè)矩陣Pn×n,其中n為當(dāng)前特征點(diǎn)集中元素的數(shù)量。
(3)
令A(yù)i和Aj是圖像特征點(diǎn)集中的任意兩點(diǎn),如果特征點(diǎn)Ai和Aj不滿足兩者之間距離最小,P(i,j)和P(j,i)的值為0,否則P(i,j)和P(j,i)值為1,矩陣對角線值為0,生成連接矩陣。
首先,建立待匹配圖像特征點(diǎn)間的連接矩陣P1,P2。如果P1(j,i)和P2(j,i)均為1,則意味著兩幅圖像的特征點(diǎn)集合中的第i個(gè)特征點(diǎn)Ai與第j個(gè)特征點(diǎn)Aj均具有連接關(guān)系[11]。如果P1(j,i)為0,P2(j,i)為1,則表示第一幅圖像的特征點(diǎn)集合中的第i個(gè)特征點(diǎn)Ai與第j個(gè)特征點(diǎn)Aj不具有連接關(guān)系,第二幅圖像的特征點(diǎn)集合中的第i個(gè)特征點(diǎn)Ai與第j個(gè)特征點(diǎn)Aj具有連接關(guān)系,也就是說,兩幅圖像的特征點(diǎn)集合中第i個(gè)特征點(diǎn)和第j個(gè)特征點(diǎn)具有不同的連接性。如果P1(j,i)和P2(j,i)都為0,則意味著兩幅圖像的特征點(diǎn)集合中的第i個(gè)特征點(diǎn)Ai與第j個(gè)特征點(diǎn)Aj都不存在連接關(guān)系。也就是兩幅圖像的特征點(diǎn)集合中第i個(gè)特征點(diǎn)和第j個(gè)特征點(diǎn)都不存在連接性。
(4)
P1和P2做異或運(yùn)算得到判斷矩陣C。如果判斷矩陣C(j,i)為0,P1(j,i)和P2(j,i)都為1或0,則兩幅圖像特征點(diǎn)集合中Ai與Aj均具有相同連接性。如果判斷矩陣C(j,i)為1,P1(j,i)和P2(j,i)一個(gè)為0,一個(gè)為1,則這兩幅圖像中Ai與Aj具有不同的連接性,表明相應(yīng)的特征點(diǎn)不具備匹配關(guān)系。去除特征點(diǎn)集合中不具有一樣連接性的特征點(diǎn),也就是判斷矩陣C中1對應(yīng)的特征點(diǎn),并更新特征點(diǎn)集合直到C為全0矩陣,意味著此時(shí)的特征點(diǎn)集合中的所有特征點(diǎn)具有相同的連接性,用這些點(diǎn)生成的拓?fù)渚仃囃耆嗤?jì)算流程如圖1所示。
通過拓?fù)浣Y(jié)構(gòu)去除誤匹配特征點(diǎn),得到特征點(diǎn)匹配圖,在此基礎(chǔ)上通過隨機(jī)抽樣一致[12]估計(jì)圖像間的轉(zhuǎn)換矩陣,對圖像進(jìn)行融合與拼接。結(jié)果顯示特征點(diǎn)匹配正確率有所提高,拼接結(jié)果圖拼接精度更高。
圖1 誤匹配點(diǎn)去除流程
為了評價(jià)特征點(diǎn)檢測算法的質(zhì)量,常用指標(biāo)是特征點(diǎn)的重復(fù)率[13],即檢測圖像發(fā)生尺度變化、平移、旋轉(zhuǎn)、受噪聲干擾特征點(diǎn)的重復(fù)程度。文中對兩幅實(shí)驗(yàn)圖像檢測到的特征點(diǎn)與拼接后圖像特征點(diǎn)進(jìn)行重復(fù)率檢測。這里定義的重復(fù)率越接近100%,表明拼接圖像與原圖像有更多的重復(fù)特征點(diǎn),并且圖像匹配的效果也更好。假定在原始圖像1檢測到的特征點(diǎn)數(shù)量是n1,在原始圖像2檢測到的特征點(diǎn)數(shù)量是n2,在拼接后的圖像檢測到的特征點(diǎn)數(shù)量是n3,重復(fù)率R定義為:
(5)
特征點(diǎn)描述符可以用來記錄特征,具有較高辨識性的特征點(diǎn)描述符,則具有更高圖像的匹配精度。文中用辨識率衡量特征點(diǎn)描述算子的辨識性,用L來表示辨識率,若去除錯誤匹配后的算法中的正確匹配點(diǎn)對的數(shù)量為m1,如果用歐氏距離提取符合要求的特征點(diǎn)匹配點(diǎn)對數(shù)量為m2,則辨識率L定義為:
(6)
基于SIFT算法加入拓?fù)浼s束以去除錯誤匹配的特征點(diǎn),文中分別用30對存在光照、旋轉(zhuǎn)等影響的圖像進(jìn)行實(shí)驗(yàn)拼接[14],分別觀察圖像拼接過程中的重復(fù)率、辨識率和圖像拼接運(yùn)行時(shí)間,對改進(jìn)前后進(jìn)行對比。如圖2所示,在做改進(jìn)之前,特征點(diǎn)臨近區(qū)域的拼接效果較好,遠(yuǎn)離重疊區(qū)的拼接誤差很大,特別是在拼接縫附近區(qū)域。改進(jìn)后的圖像拼接總體效果更好。
圖2 拓?fù)浼s束前后匹配和拼接效果
采用拓?fù)浼s束對SIFT特征點(diǎn)檢測配準(zhǔn)與拼接算法[15-16]進(jìn)行改進(jìn),在應(yīng)用改進(jìn)算法前后分別對30對圖像進(jìn)行配準(zhǔn)與拼接。并記錄統(tǒng)計(jì)分析重復(fù)率R(單位為%)、拼接圖像運(yùn)行時(shí)間T(單位為s)的數(shù)據(jù),同時(shí)與典型的SIFT、SURF、Harris算法等[17]進(jìn)行對比。對比數(shù)據(jù)結(jié)果如圖3所示。
圖3 配準(zhǔn)與拼接測試數(shù)據(jù)
為了評估改進(jìn)算法的效果,分別對SIFT重復(fù)率Rsift、改進(jìn)后重復(fù)率Rtopology、SURF算法重復(fù)率Rsurf、Harris算法重復(fù)率Rharris,改進(jìn)前后運(yùn)行時(shí)間Tsift、Ttopology以及SURF運(yùn)行時(shí)間Tsurf和Harris運(yùn)行時(shí)間Tharris,進(jìn)行均值、標(biāo)準(zhǔn)差、極值等的分析,結(jié)果如表1和表2所示;去除錯誤匹配后獲得的辨識率,結(jié)果如表3所示,辨識性越高的特征點(diǎn)描述符,對應(yīng)圖像的匹配精度越高。
表1 特征點(diǎn)重復(fù)率 %
表2 算法用時(shí)比較 s
表3 特征點(diǎn)辨識率 %
從表1的數(shù)據(jù)分析可知,使用拓?fù)浼s束去除錯誤匹配后特征點(diǎn)的重復(fù)率為98.6%,與待拼接圖像中具有最多重復(fù)的特征點(diǎn),從而達(dá)到提高匹配的準(zhǔn)確性和魯棒性以及圖像拼接精度的效果。表2比較了四種不同的圖像拼接算法,拓?fù)浼s束后算法運(yùn)行時(shí)間與SIFT算法時(shí)間接近,但拼接運(yùn)行效果有明顯提高,與SURF和Harris用時(shí)比較則有明顯的提高。另外,拓?fù)浼s束后特征點(diǎn)辨識率達(dá)到0.83的平均水平,原算法特征匹配過程確實(shí)存在少量錯誤匹配對,改進(jìn)算法去除了錯誤匹配對,提高了特征點(diǎn)的匹配穩(wěn)定性和圖像匹配的正確性,大大提高了拼接效果。
針對圖像拼接中的SIFT特征匹配算法存在錯誤匹配以及拼接精度低的問題,提出利用拓?fù)淅碚?,將拓?fù)浼s束與SIFT拼接相結(jié)合,以提高拼接算法的準(zhǔn)確性和正確性。并通過對圖像匹配拼接過程中的特征點(diǎn)重復(fù)率、辨識率、運(yùn)行時(shí)間等進(jìn)行分析,與傳統(tǒng)SIFT算法相比,拓?fù)浼s束的拼接算法特征點(diǎn)匹配正確率有顯著提高。繼承了SIFT算法的穩(wěn)健性,進(jìn)一步提高了拼接的準(zhǔn)確性。然而,當(dāng)圖像的分辨率較大時(shí),算法拼接過程需要較長的時(shí)間,從而影響了圖像拼接的效果,這將是下一步要研究的問題。