李四杰,唐清善,高英華
(1.長沙理工大學(xué)物理與電子科學(xué)學(xué)院,湖南 長沙 410114; 2.中國人民解放軍第3303工廠,湖北 武漢 430200)
圖像拼接是指將多幅具有一定重疊區(qū)域的圖像融合成一幅完整的大視角圖像[1-4]的技術(shù)。圖像拼接是計算機圖像學(xué)領(lǐng)域的一大研究熱點,在虛擬現(xiàn)實[5]、遠(yuǎn)程視頻監(jiān)控[6]、醫(yī)學(xué)圖像處理[7]、遙感技術(shù)[8-9]等方面都有著廣泛而迫切的應(yīng)用需求。
現(xiàn)有圖像拼接算法主要可以分為3類:
1)全局對齊方法。
這類方法首先通過特征提取算法SIFT[10]或SURF[11]進行圖像匹配,然后利用隨機抽樣一致(RANdom SAmple Consensus, RANSAC)算法計算出全局單應(yīng)性矩陣進行圖像配準(zhǔn),最后對圖像進行融合得到無縫的拼接圖像,如自動拼接(AutoStitch)算法[12]。文獻[13]提出基于改進SURF的圖像拼接算法,提高了圖像匹配的效率。然而在大視差圖像拼接的場景中,SIFT、SURF和其改進算法容易產(chǎn)生錯誤的匹配點,難以計算出精確的全局單應(yīng)性模型,導(dǎo)致拼接圖像出現(xiàn)鬼影和模糊等問題。
2)以盡可能投影(As-Projective-As-Possible, APAP)算法[14]為代表的空域變化繪制方法。
該類方法將圖像劃分為密集網(wǎng)格,對于每個網(wǎng)格分別計算出單應(yīng)性矩陣進行對齊,即局部單應(yīng)性,因此該方法對齊圖像的效果很好,在視差較小的情況下表現(xiàn)優(yōu)異,但計算量較大,并且會出現(xiàn)局部圖像結(jié)構(gòu)扭曲的現(xiàn)象。文獻[15]提出了自適應(yīng)盡可能自然(Adaptive-As-Natural-As-Possible, AANAP)算法,與APAP算法不同,該算法結(jié)合全局變換和局部變換進行拼接,局部變換用于對齊圖像,全局變換用于矯正形狀,避免了圖像的局部扭曲,但是同樣只適用于小視差的場景。文獻[16]提出基于直線特征約束網(wǎng)格變形的圖像拼接方法,該方法通過直線約束改善了圖像非重疊區(qū)域的扭曲問題,同時提高了圖像拼接的精度和還原度,在航拍圖像拼接上效果較好。
3)基于縫合線的方法。
這類方法通過計算圖像重疊區(qū)域上的最佳縫合線來拼接圖像。文獻[17]采用基于圖像的顏色差異和幾何差異的動態(tài)規(guī)劃求解最佳縫合線。但該方法無法徹底消除鬼影問題,且在圖像曝光差異大的情況拼縫較明顯。
綜上所述,在拼接圖象視差較大的情況下,上述算法均無法解決鬼影、亮度不均等問題。因此,本文提出一種基于GMS和改進最佳縫合線的視差圖像拼接算法。算法開始基于GMS算法快速獲得圖像中的特征匹配點,后通過改進最佳縫合線算法中的能量函數(shù)優(yōu)化鬼影問題,再利用梯度域融合平滑圖像中亮度不均勻區(qū)域,從而實現(xiàn)圖像拼接。
Step1利用ORB算法在2幅輸入圖像中提取出大量的特征點,并計算特征描述子,通過暴力匹配(Brute Force, BF)算法,對2幅輸入圖像進行粗匹配,再由GMS算法過濾掉誤匹配點。
Step2計算2幅圖像之間的單應(yīng)性矩陣,利用單應(yīng)性矩陣將一幅圖像投影到另一幅圖像的平面上,得到配準(zhǔn)圖像。
Step3計算改進后的能量函數(shù),并在配準(zhǔn)圖像的重疊區(qū)域利用圖割求解最佳縫合線。
Step4在圖像中縫合線兩側(cè)進行梯度融合得到輸出圖像。
本文算法主要流程如圖1所示。
圖1 基于GMS和改進最佳縫合線的視差圖像拼接算法流程圖
特征點提取中的ORB算法特點是提取速度快、特征點魯棒性差,易產(chǎn)生大量的誤匹配點。而GMS算法將運動平滑度表示為區(qū)域中一定數(shù)量的匹配項的統(tǒng)計似然性[18],即正確的匹配點周圍一定會存在足夠多數(shù)量的正確匹配點支撐它,而錯誤的匹配點周圍沒有或者只有極少數(shù)的匹配點,通過統(tǒng)計特征點周圍的支持量可以快速地找到2幅圖像中正確的特征匹配對。融合二者的優(yōu)點,新的算法可以有效降低誤匹配點,并保證特征提取的實時性。
在使用ORB算法和BF算法后,得到特征粗匹配對。接著應(yīng)用GMS算法時,假設(shè)IA和IB為2幅輸入圖像,存在IA到IB最近鄰匹配集合λ={λ1,λ2,…,λi,…,λN},其中λi表示一個特征匹配對。假設(shè)λi鄰域支持量為Si,則有:
Si=|γ|-1
(1)
其中,γ是λ的子集,|γ|表示γ中包含特征匹配對的數(shù)量,-1項表示除去初始匹配對。
由于每個特征點是相互獨立的,所以特征點鄰域內(nèi)支持量Si近似服從于二項分布,則有:
(2)
其中,Pt為2幅圖像的2個對應(yīng)區(qū)域內(nèi),在一個點匹配正確的條件下,周圍點支持它的概率,Pf表示為2幅圖像的2個對應(yīng)區(qū)域內(nèi),在一個點匹配錯誤的條件下,周圍點支持它的概率。R表示與所在網(wǎng)格區(qū)域相鄰但不相交的網(wǎng)格數(shù),n表示該網(wǎng)格中的特征點數(shù)。
Si的均值與標(biāo)準(zhǔn)差可由公式(3)計算:
(3)
根據(jù)標(biāo)準(zhǔn)差Sf與均值mf可以得出判斷鄰域特征支持量是否匹配正確的閾值:
τ=mf+αSf
(4)
通過實驗可以發(fā)現(xiàn)mf的值小到可以忽略不計,而α通常取一個較大的值來保證可以篩除掉錯誤匹配,本文中α的取值為6。因此,τ也可以近似表示為:
(5)
其中,ns表示9個網(wǎng)格中特征點數(shù)量之和的平均值。
將圖像IA和IB分別劃分為G個網(wǎng)格,取G=20×20。統(tǒng)計網(wǎng)格中所有特征匹配對的鄰域支持量Si,并刪除Si<τ的特征匹配對,剩余的特征匹配對即為正確匹配。
在完成圖像匹配之后,通過RANSAC算法找到至少4對匹配點,可以計算出單應(yīng)性矩陣H。接著利用單應(yīng)性矩陣H將2幅圖像變換到同一坐標(biāo)系上。
(6)
其中,(x,y)和(x′,y′)分別為變換前后的圖像坐標(biāo)。其中h0、h1、h3、h4描述了圖像的尺度變化和旋轉(zhuǎn)量;h2表示水平方向的平移量;h5表示垂直方向的平移量;h6、h7表示水平和垂直方向的變形量。
經(jīng)過配準(zhǔn)后可以得到配準(zhǔn)圖像I0和I1,用P表示I0和I1的重疊區(qū)域,令L={0,1}表示一個標(biāo)簽集合,其中“0”代表該像素點屬于圖像I0,“1”代表該像素點屬于圖像I1。對于重疊區(qū)域中的每一個像素p賦予標(biāo)簽lp∈L,即求得重疊區(qū)域的縫合線l??p合線l的能量函數(shù)表示如下:
(7)
其中,N?P×P是相鄰像素對(p,q)的四鄰域像素集合。
能量函數(shù)由2個部分組成:1)數(shù)據(jù)項,表示把標(biāo)簽lp賦給像素點p的懲罰,用Dp(lp)表示;2)平滑項Sp,q(lp,lq),表示把標(biāo)簽對(lp,lq)賦給相鄰像素對(p,q)的懲罰。
最佳縫合線即所含能量最小的縫合線,能量最小問題可以由圖切割法求解[19]。相比動態(tài)規(guī)劃法,圖切割法更加靈活。圖切割法首先需要建立一個有向圖G=<Φ,Ψ>,其中Φ表示頂點的集合,而Ψ表示有權(quán)邊e的集合。另外還有2個特殊的頂點,分別稱為源節(jié)點和匯節(jié)點。圖像的一個割C實際上就是Ψ的一個子集,即C?Ψ。經(jīng)過圖切割之后得到的有向圖G=<Φ,ψ/C>源節(jié)點和匯節(jié)點是分離的,也就是說源節(jié)點和匯節(jié)點之間不存在通路。定義成本函數(shù)|C|為圖像的割所經(jīng)過有權(quán)邊e的權(quán)值之和。即:
(8)
其中,we為每條邊的權(quán)值。
如圖2所示,假設(shè)基準(zhǔn)圖像和待拼接圖像的重疊區(qū)域為一個3×3的像素矩陣,利用圖切割求解最佳縫合線的具體步驟如下:
圖2 最佳縫合線示意圖
Step1在重疊區(qū)域上建立圖。重疊區(qū)域上的每一個像素點對應(yīng)圖的一個節(jié)點,像素點之間的連線對應(yīng)圖的邊,邊的權(quán)值為連線兩端像素的顏色差。源節(jié)點和匯節(jié)點分別代表基準(zhǔn)圖像和待拼接圖像。
Step2計算數(shù)據(jù)項和平滑項。
數(shù)據(jù)項的定義為:
(9)
其中,?Ik∩?P分別表示Ik(k=0,1)與P的公共邊界。
當(dāng)像素點被賦值了錯誤的標(biāo)簽時,會使得該數(shù)據(jù)項的值趨向于無窮大,這樣可以避免所求最佳縫合線穿過2幅圖像重疊區(qū)域的邊界。
平滑項的定義為:
(10)
I*(·)=‖I0(·)-I1(·)‖2
(11)
其中,I*(·)表示用歐氏距離計算2幅圖像之間的RGB顏色空間距離差。
Step3利用最大流算法進行迭代求取最小能量,源節(jié)點擴張方式選擇α擴張[20-21]。求取使得目標(biāo)能量函數(shù)最小的縫合線,即最佳縫合線。
圖2中的虛線表示最佳縫合線,最佳縫合線左邊的像素1、4、5、7、8來自于基準(zhǔn)圖像,而右邊的像素2、3、6、9則來自于待拼接圖像。
人眼對于RGB顏色空間中3個顏色分量敏感程度是不相同的[22],HSV顏色空間在圖像處理中使用較多,相比RGB有著更符合人類視覺的顏色表達能力[23]。因此,本文采用HSV顏色空間,并且在約束項中添加圖像的梯度信息來改進最佳縫合線的能量函數(shù)。
改進算法的步驟1和步驟3與上述Step1和Step3保持一致,改進算法主要對能量函數(shù)公式(7)中的平滑項進行了修改。
1)HSV顏色差異項Ehsv。
由于RGB空間3個分量均對圖像亮度高度敏感,即圖像亮度改變,3個分量都會受到亮度的影響而改變。這導(dǎo)致拼接圖像在亮度變化不大的區(qū)域會產(chǎn)生不自然的切縫。改進算法將HSV顏色空間引入到最佳縫合線算法中,使最佳縫合線不僅對圖像的亮度敏感,而且圖像的飽和度以及明度都會影響最佳縫合線求解的結(jié)果。Ehsv的定義如下:
(12)
(13)
其中,h、s、v分別為HSV顏色空間的3個分量:色調(diào)(H),飽和度(S),明度(V)。
2)梯度差異項Eg。
對于彩色圖像來說,圖像梯度反映的是像素鄰域內(nèi)顏色的變化,圖像邊緣像素值變化大,所以在圖像邊緣有較大的梯度值,而圖像中較平滑的部分梯度值則較小。將圖像的梯度差異項加入縫合線搜索的約束項中,使縫合線避免穿過圖像中物體的邊緣。
Eg=‖?I0(p)-?I1(p)‖2+‖?I0(q)-?I1(q)‖2
(14)
其中,?I0(p)表示圖像I0在像素點p處的顏色梯度值,可由RGB圖像與Sobel算子進行卷積求得。
綜上,改進后的能量函數(shù)為:
(15)
(16)
其中,ε為2項之間的可調(diào)節(jié)的比例因子,ε的值越大,代表能量函數(shù)受Ehsv項的影響越大。
由于存在曝光差異,即使在利用最佳縫合線融合圖像后,圖像的拼縫仍然存在。本文采用梯度融合的方法對拼接圖像進行進一步的優(yōu)化。梯度融合即在梯度域中平滑過渡圖像拼縫來提高融合圖像的質(zhì)量[24]。具體步驟如下:
Step1根據(jù)求解最佳縫合線過程中得到的掩膜,將配準(zhǔn)后的圖像I0和I1分別與掩膜進行點乘,得到拼接圖像f(x,y),計算f(x,y)的梯度(Gx,Gy)。
Step2計算f(x,y)的散度div(G),并以散度向量作為導(dǎo)向向量構(gòu)建泊松方程:
?2f(x,y)=div(G)
(17)
其中:
Step3添加邊界約束條件:
(18)
Step4將最佳縫合線兩端的梯度值以及邊界上的梯度值設(shè)置為0,利用牛頓迭代法可求解方程(17),求得的解即為融合后的圖像。
為了驗證本文算法的效果,本文在Win 10系統(tǒng)的PC上進行算法仿真實驗,處理器為Intel(R) Core(TM) i5-9300H CPU @ 2.40 GHz。分別從圖像匹配質(zhì)量和拼接質(zhì)量2個方面評估算法的性能。
如圖3(a)所示,從上至下分別為4組分辨率為600×480的實驗圖像,圖3(b)~圖3(d)為實驗結(jié)果。從圖中可以看出每組的左右圖像之間存在較大的視差,這為圖像特征匹配帶來一定的挑戰(zhàn)。防止特征點過少導(dǎo)致的圖像配準(zhǔn)失敗,實驗中SIFT算法和SURF算法都設(shè)置了比較低的閾值來獲取更多的特征點。由表1可以看出,受到視差的影響,SIFT算法和SURF算法匹配的結(jié)果中存在大量的誤匹配,而本文算法匹配的正確率遠(yuǎn)大于上面2種算法,匹配質(zhì)量更加可靠。另外,本文算法具有更快的剔除誤匹配的速度,保證了算法執(zhí)行的效率。
圖3 圖像匹配結(jié)果對比圖
表1 3種特征匹配算法對比
2.2.1 參數(shù)ε選取
從圖4中可以看出,ε的不同取值會直接影響最佳縫合線的走向。如圖4(c)~圖4(e)中標(biāo)記的方框所示,當(dāng)ε的值為0.75、0.83、1時,最后的拼接圖中都生成了明顯的路標(biāo)鬼影。而當(dāng)ε取0.5和0.66時,得到的最佳縫合線基本一致,生成的拼接圖像也無明顯的畸變。為了保持能量函數(shù)中的Ehsv項所占權(quán)值大于Eg項,下面的實驗中均取ε=0.66。
(a) ε=0.5 (b) ε=0.66
(c) ε=0.75 (d) ε=0.83
(e) ε=1
2.2.2 圖像拼接主觀評價實驗
為了驗證本文算法生成拼接圖像的質(zhì)量,選取2組分辨率分別為800×541和640×480的視差圖像,然后將本文算法分別與AutoStitch算法、APAP算法、AANAP算法,以及最佳縫合線算法進行對比實驗。
從圖5和圖6可以看出,對于視差圖像的拼接,除本文算法以外,其他算法生成的拼接圖像均出現(xiàn)了“鬼影”。同時在圖5(d)中APAP算法的結(jié)果圖出現(xiàn)了嚴(yán)重局部圖像扭曲的問題,圖6(d)和圖6(e)出現(xiàn)了明顯的亮度不均勻。而本文算法在2組對比實驗中均表現(xiàn)良好,無明顯瑕疵,且生成的拼接圖觀感上比較自然。
對于傳統(tǒng)的最佳縫合線算法,由于其采用基于RGB顏色空間的歐氏距離差定義平滑項,僅僅只能保持局部顏色相似,而在某些圖像結(jié)構(gòu)比較復(fù)雜的情況下,求得的最佳縫合線有時候不符合人類視覺。如圖5(f)所示,圖像的背景為顏色相似的天空,傳統(tǒng)最佳縫合線僅考慮了RGB顏色差異,導(dǎo)致在拼接圖像中的黑色方框處出現(xiàn)了明顯的桅桿鬼影。而本文算法由于考慮了圖像的梯度差,使得最佳縫合線傾向于沿著物體的邊緣,避免直接穿過桅桿,消除了鬼影。在圖6(f)中的黑色方框處,傳統(tǒng)的最佳縫合線算法所求縫合線穿過了公路的邊沿處,導(dǎo)致拼接圖像出現(xiàn)斷層。而本文算法所求最佳縫合線避開了路沿和減速帶,使拼接圖像較為自然。
(a)船舶圖1
(b) 船舶圖2
(c) AutoStitch
(d) APAP
(e) AANAP
(f) 最佳縫合線
(g) 本文算法
(a)公路圖1
(b) 公路圖2
(c) AutoStitch
(e) AANAP
(f) 最佳縫合線
(g) 本文算法
2.2.3 圖像拼接自然度評價實驗
為了更直觀地評價各算法拼接圖像的自然度,本文采取圖像自然度評價算法[25](Natural Image Quality Evaluator, NIQE)對拼接圖像的質(zhì)量進行評價。NIQE是一種無參考圖像技術(shù)指標(biāo),該算法不需要輸入任何的參考圖像信息,就能夠獨立地對被測圖像進行打分。由于人類視覺系統(tǒng)總是傾向從圖像中清晰的區(qū)域?qū)D像的質(zhì)量進行判斷[26],因此NIQE算法首先在被測圖像中提取感興趣區(qū)域,接著從這些區(qū)域上計算36個相同的自然場景統(tǒng)計指標(biāo),然后將指標(biāo)與多元高斯模型進行擬合。最后,通過公式(19)計算待測圖像與自然圖像所建立的模型參數(shù)之間的距離來評估圖像質(zhì)量。NIQE的值越小代表圖像的自然度越高,即拼接圖像的質(zhì)量越好。反之,NIQE的值越大說明圖像的自然度越低,圖像失真越嚴(yán)重。
(19)
其中,ν1、ν2、Σ1、Σ2分別代表自然圖像多元高斯模型和被測圖像多元高斯模型的均值向量和協(xié)方差矩陣。
利用NQIE算法對圖像拼接對比實驗1和對比實驗2中5種拼接算法所生成的拼接圖像分別進行打分,如表2所示,本文算法在2組實驗中的得分均低于AutoStitch、APAP算法、AANAP以及最佳縫合線算法,這表明本文算法拼接圖像的自然度優(yōu)于上述4種算法。
表2 5種拼接算法NIQE得分
針對視差圖像拼接時易出現(xiàn)鬼影和亮度不均等問題,本文提出了一種改進的圖像拼接算法。在圖像配準(zhǔn)階段,結(jié)合ORB算法和GMS算法獲取可靠的特征點,從而得到更精確的變換模型,提高了圖像配準(zhǔn)的魯棒性。在圖像拼接階段,將HSV顏色空間和圖像梯度差引入能量函數(shù)中改進最佳縫合線,使鬼影問題得到優(yōu)化;同時采用梯度融合平滑拼接縫兩側(cè)亮度,使拼接圖像整體上看起來更自然。通過2組對比實驗對本文算法的性能進行了評估,結(jié)果表明:對于視差圖像場景的圖像拼接,本文算法的拼接效果優(yōu)于AutoStitch、APAP、AANAP和最佳縫合線算法,特征點匹配正確率最高提升了4.73倍,圖像拼接自然度平均提升了22.6%。在進一步的研究工作中將把算法移植到硬件平臺上進行加速,更好地提高算法的實時性。