張樂
【摘 要】圖像拼接是將一系列圖像結(jié)合成一個寬場景的圖像。本文簡述了圖像拼接的一般流程,重點(diǎn)介紹了三種基于單應(yīng)性(Homograohy)矩陣的圖像拼接方法。文中利用三種圖像拼接方法對兩組圖像進(jìn)行拼接實(shí)驗。實(shí)驗結(jié)果表明:如果兩幅圖像在同一個平面場景或者拍照中心相同,用一個基本的單應(yīng)性矩陣能完成拼接;如果兩張幅像之間存在除了旋轉(zhuǎn)之外的變換或者不在同一平面場景,由于單應(yīng)性矩陣無法處理視差,僅使用單應(yīng)性矩陣來拼接得到的結(jié)果將出現(xiàn)鬼影或錯位。
【關(guān)鍵詞】圖像拼接;單應(yīng)性矩陣;視差;鬼影;錯位
【Abstract】Image stitching is a combination of a series of images into a wide view image. The paper briefly describes the general process of image stitching, mainly introduces three image stitching method based on homography matrix. In this paper, the three methods are used to stitching two sets of images. The result shows that: if the two images scenes are effectively planar or have same camera center, using a basic homography matrix can complete stitching; if there is another transformation except rotation between two images or they dont in a same plane scene, as the homography matrix cannot account for parallax, stitching by homoagrapy matrix alone will result in ghosting and dislocation.
【Key words】Image stitching; Homography matrix; Parallax; Ghosting; Dislocation
0 引言
圖像拼接是一個很有意義的研究[1]。為了在不降低圖像分辨率的條件下獲取超寬視角甚至360°的全景圖,利用計算機(jī)進(jìn)行圖像拼接被提出并逐漸研究發(fā)展起來。目前,圖像拼接技術(shù)已經(jīng)成為計算機(jī)圖形學(xué)的研究焦點(diǎn),被廣泛應(yīng)用于空間探測、遙感圖像處理等領(lǐng)域。圖像配準(zhǔn)和圖像融合是圖像拼接的兩個關(guān)鍵技術(shù)[2]。圖像配準(zhǔn)是圖像融合的基礎(chǔ),而且圖像配準(zhǔn)算法的計算量一般非常大。因此,圖像拼接技術(shù)的發(fā)展很大程度上取決于圖像配準(zhǔn)技術(shù)的創(chuàng)新。圖像拼接技術(shù)已經(jīng)發(fā)展到一個相對成熟的階段[3]。多數(shù)圖像拼接的算法都是采用相似的思路:首先估計變換矩陣(相似變換、仿射變換或投影變換)來配準(zhǔn)重疊區(qū)域的圖像,然后將配準(zhǔn)后的圖像合成到一個公共的畫布上[4]。然而對于許多圖像數(shù)據(jù),完美的配準(zhǔn)是很難實(shí)現(xiàn)的,配準(zhǔn)結(jié)果往往存在視差錯誤和鬼影。因此當(dāng)前許多工作為了研究出更好的配準(zhǔn)和合成技術(shù)來減少誤對齊和鬼影。
1 相關(guān)工作
圖像拼接主要包括以下4個步驟:
1)圖像預(yù)處理。包括數(shù)字圖像處理的基本操作(如去噪)。
2)圖像特征提取。提取圖像的特征點(diǎn),常見的提取特征點(diǎn)算法有SIFT,SURF特征等。
3)圖像配準(zhǔn)。采用一定的匹配策略,找出帶拼接圖像中的特征點(diǎn)在參考圖像中對應(yīng)的位置,從而確定兩幅圖像之間的單應(yīng)性矩陣。
4)圖像融合。將待拼接圖像的重疊區(qū)域進(jìn)行融合,得到全景圖像。
多數(shù)圖像拼接方法采用單應(yīng)性矩陣來變換圖像?;趩螒?yīng)性矩陣的拼接方法有它的缺陷:只有當(dāng)圖像的運(yùn)動僅僅包含旋轉(zhuǎn)或者成像平面基本在處于同一平面時,直接利用單應(yīng)性矩陣拼接圖像才會得到比較滿意的結(jié)果。單應(yīng)性矩陣在拼接時無法處理圖像間的視差問題。因此當(dāng)輸入圖像如果不滿足這些條件,或圖像間存在較大的視差時,拼接結(jié)果就會出現(xiàn)視差錯誤和鬼影。
為了最小化由投影變換造成的視差錯誤,Carroll 等人提出了一種基于內(nèi)容保持[5]的變換方法。它通過改變投影變換,使其適應(yīng)圖像中的內(nèi)容來最小化廣角圖像的配準(zhǔn)偏差。但是,當(dāng)待拼接的圖像不滿足使用單應(yīng)性矩陣拼接的假設(shè)時,拼接結(jié)果會出現(xiàn)視差錯誤。Gao等人提出了雙重單應(yīng)性變換方法[6]來著重處理包含兩個不同平面場景的圖像,變換矩陣是由兩個有著不同空間權(quán)重的單應(yīng)性矩陣進(jìn)行線性組合來定義的,由于它的變換同樣基于單應(yīng)性矩陣且無改進(jìn),因此它的拼接結(jié)果也存在投影導(dǎo)致的視差錯誤。Lin 等人提出了一個平滑地改變?nèi)址律渥儞Q[7]的方法來處理視差圖像,其拼接結(jié)果仍會有視差錯誤。
Zaragoza 等人提出了盡可能投影的拼接方法[8]。它是一個全局的投影,在重疊區(qū)域運(yùn)用局部投影變換,進(jìn)而利用移動直接線性變換 (moving DLT) 來平滑地將局部投影外插到非重疊區(qū)域。它是一個全局的投影變換,在拼接過程中允許存在局部偏差導(dǎo)致拼接大視差圖像時出現(xiàn)錯位。Fan等人提出了視差容忍的拼接方法[9]。為了獲得更好的拼接結(jié)果容忍配準(zhǔn)時有偏差。它首先通過計算圖像間的單應(yīng)性矩陣完成圖像的預(yù)配準(zhǔn),再通過尋找縫合線的代價[10]來評估單應(yīng)性矩陣的好壞。重復(fù)這個過程,直到找到符合要求的單應(yīng)性矩陣。最后,引入縫合線技術(shù)[11]優(yōu)化拼接結(jié)果。
2 基于單應(yīng)性矩陣的圖像拼接方法的介紹
假設(shè)圖像間的變換僅包含旋轉(zhuǎn)或者成像平面基本在處于同一平面時,那么可以用描述平面物體運(yùn)動關(guān)系的單應(yīng)性矩陣來表示它們之間的關(guān)系。單應(yīng)性矩陣是一個3×3的矩陣。如果用齊次坐標(biāo)表示圖像上的像素點(diǎn),那么一對匹配點(diǎn)與單應(yīng)性矩陣之間可以描述為:
當(dāng)兩幅圖像之間不僅僅存在旋轉(zhuǎn)關(guān)系,或者它們不在一個平面場景,直接利用一個基本的單應(yīng)性矩陣來拼接不可避免的會產(chǎn)生誤配準(zhǔn)或者視差[8]。為了解決這個問題,有人提出對每一個像素點(diǎn)用一個局部的單應(yīng)性矩陣來映射,使用移動直接線性變換進(jìn)行配準(zhǔn)。使用全局的單應(yīng)性矩陣進(jìn)行拼接時能夠避免圖像產(chǎn)生扭曲。但是,對于兩幅大視差的圖像,利用全局單應(yīng)性矩陣來拼接不能消除視差帶來的影響[12]。在 Parallax-tolerant Image Stitching 中提出了先用一個單應(yīng)性矩陣來預(yù)配準(zhǔn),然后用內(nèi)容保持變換進(jìn)行局部配準(zhǔn)。單應(yīng)性矩陣能夠保持全局圖像結(jié)構(gòu)但不能處理視差。相反內(nèi)容保持變換能很好的處理視差問題,但是它在保持圖像結(jié)構(gòu)方面不如單應(yīng)性矩陣。
2.1 直接使用單應(yīng)性矩陣的圖像拼接方法
直接使用單應(yīng)性矩陣的圖像拼接方法的步驟有:
1)特征點(diǎn)提取,得到兩張圖像重疊區(qū)域的特征點(diǎn)。
2)特征點(diǎn)匹配,得到同名點(diǎn)對。
3)利用RANSAC算法剔除誤匹配。
4)利用直接線性變換,解算出Homography矩陣。
5)利用Homography矩陣變換圖像,得到拼接結(jié)果。
當(dāng)兩張圖像之間不僅僅因為旋轉(zhuǎn)而不同或者它們不在同一個平面場景,直接使用單應(yīng)性矩陣來拼接圖像會產(chǎn)生誤配準(zhǔn)或者視差誤差。As-Projective-As-Possible Image Stitching with Moving DLT在直接使用單應(yīng)性矩陣拼接的基礎(chǔ)上,對單應(yīng)性矩陣進(jìn)行了改進(jìn)。
2.2 As-Projective-As-Possible Image Stitching with Moving DLT
As-Projective-As-Possible Image Stitching with Moving DLT圖像拼接方法為了解決直接使用Homography矩陣拼接圖像導(dǎo)致的問題,利用局部的單應(yīng)性矩陣對每個像素點(diǎn)進(jìn)行變換。它的主要步驟如下:
1)特征點(diǎn)提取,得到兩張圖像重疊區(qū)域的特征點(diǎn)。
2)特征點(diǎn)匹配,得到匹配點(diǎn)對。
3)利用RANSAC算法剔除誤匹配。
4)利用移動直接線性變換(moving DLT)計算Homography矩陣。與前一種方法不同之處是在移動直接線性變換加入了權(quán)重。它投影變換時很好的尊重了特征點(diǎn)周圍的結(jié)構(gòu),這樣對緩解視差誤差有一定的幫助。
5)光束平差,進(jìn)一步優(yōu)化Homography矩陣。
6)利用Homography矩陣變換圖像,得到拼接結(jié)果。
全局的單應(yīng)性矩陣能夠避免影響扭曲。但是,對于兩幅大視差圖像,單應(yīng)性矩陣不能處理視差錯誤導(dǎo)致的圖像錯位。因此,除了使用單應(yīng)性矩陣進(jìn)行配準(zhǔn)外,還需要引入其它技術(shù)來消除圖片間的錯位。
2.3 Parallax-tolerant Image Stitching
Parallax-tolerant Image Stitching 拼接方法的基本思想是在預(yù)配準(zhǔn)時容忍圖像的視差錯誤,然后引入縫合線技術(shù)消除視差導(dǎo)致的錯位。在特征點(diǎn)匹配過程中沒有嚴(yán)格地使用所有的匹配點(diǎn),而是隨機(jī)選擇足夠數(shù)目的特征點(diǎn)解算單應(yīng)性矩陣。然后,利用單應(yīng)性矩陣進(jìn)行預(yù)配準(zhǔn),利用內(nèi)容保持變換局部優(yōu)化配準(zhǔn)結(jié)果。最后,引入縫合線技術(shù)消除錯位。單應(yīng)性矩陣能很好地保持圖像結(jié)構(gòu),內(nèi)容保持能處理視差,把二者結(jié)合起來形成了視差容忍的圖像拼接方法。它的算法描述如下:
1)特征點(diǎn)提取,得到兩張圖像重疊區(qū)域的特征點(diǎn)。
2)特征點(diǎn)匹配,得到匹配點(diǎn)對。
3)計算輸入圖像的邊緣圖。
4)從特征點(diǎn)中隨機(jī)選取一個作為種子點(diǎn),根據(jù)距離越近越先被聚合的原則,一個一個地聚合鄰近的特征點(diǎn)直至不能被帶有預(yù)定閾值的Homography矩陣擬合。在迭代過程中,為了識別特征點(diǎn)被選的次數(shù),給它們加上懲罰值。當(dāng)一個特征點(diǎn)被選中后,它的懲罰值會加1。每次迭代過程中,為了選取一個有效的種子點(diǎn),需要保證在這之前特征點(diǎn)要沒被選中過且它的懲罰值要低于所有特征點(diǎn)的懲罰值。
5)利用縫合線技術(shù)中圖割的代價來評價步驟4中得到的Homography矩陣。如果Homography矩陣滿足預(yù)先定義的質(zhì)量閾值,則進(jìn)入步驟6。否則,如果平均懲罰值低,則回到步驟4;否則選取迭代過程中最佳的Homography進(jìn)去到步驟6中。
6)利用Homography矩陣來預(yù)對齊圖像,利用由選取的特征點(diǎn)來引導(dǎo)內(nèi)容保持變換,優(yōu)化配準(zhǔn)。
7)光束平差,優(yōu)化Homography矩陣。
8)利用Homography矩陣變換圖像,利用縫合線技術(shù)消除錯位,得到拼接結(jié)果。
3 實(shí)驗結(jié)果與分析
我們用上述三種拼接方法分別拼接兩組不同類型的實(shí)驗圖像。第一組圖像中出現(xiàn)了有著不規(guī)則線條的古建筑、枝椏分散的樹木、走動的人群和線條規(guī)則的現(xiàn)代建筑。它的圖像內(nèi)容較為復(fù)雜,但圖像呈現(xiàn)出來的視差小。第二組圖像只出現(xiàn)了一些建筑物,內(nèi)容簡單,但圖像呈現(xiàn)出的視差較大。下面通過表1、表2列出參與實(shí)驗的拼接方法與圖像。
實(shí)驗一 用三種方法拼接第一組實(shí)驗圖像
實(shí)驗二 用三種方法拼接第二組實(shí)驗圖像
實(shí)驗一使用DH, APAP, PTIS 三種拼接方法對第一組實(shí)驗圖像進(jìn)行拼接,拼接結(jié)果分別如圖1、圖2和圖3所示。因為第一組實(shí)驗圖像視差小,滿足使用單應(yīng)性矩陣進(jìn)行拼接的前提條件,所以三組實(shí)驗結(jié)果都相對較好。圖1配準(zhǔn)結(jié)果良好,但是在圖像重疊部分出現(xiàn)的鬼影影響了拼接效果。APAP在DH的基礎(chǔ)上,對單應(yīng)性矩陣進(jìn)行改進(jìn),在移動線性變換過程中加入權(quán)值,得到的拼接效果圖2優(yōu)于圖1。PTIS除了在用單應(yīng)性矩陣配準(zhǔn)外,還引入了縫合線技術(shù),使得它的拼接效果是最好的。
實(shí)驗二使用DH,APAP,PTIS三種方法對第二組實(shí)驗圖像進(jìn)行拼接,拼接結(jié)果分別如圖4、圖5和圖6所示。因為第二組實(shí)驗圖像視差較大,一定程度上并不滿足使用單應(yīng)性矩陣進(jìn)行拼接的前提條件,所以單獨(dú)使用單應(yīng)性矩陣的拼接方法的效果并不理想。PTIS方法在使用單應(yīng)性矩陣配準(zhǔn)之后,引入了縫合線技術(shù),很好地處理了圖像間的視差錯誤,消除了結(jié)果中的鬼影和錯位。
從上述兩組實(shí)驗結(jié)果可知,對于一般的圖像來說,三種方法的拼接效果接近。對于存在視差的圖像,由于單應(yīng)性矩陣不能處理視差錯誤,直接使用單應(yīng)性矩陣來拼接會存在視差錯誤,所以DH的拼接效果不好。而在DH基礎(chǔ)上改進(jìn)的APAP方法與PTIS方法處理視差的能力強(qiáng)于DH。對于視差小的圖像,APAP與PTIS的拼接效果接近,DH的拼接效果不如APAP和PTIS的拼接效果。如果兩張待拼接圖像視差較大時,APAP效果明顯不如PTIS。
4 結(jié)語
本文介紹了圖像拼接技術(shù)的相關(guān)技術(shù)和研究現(xiàn)狀,描述了一種基礎(chǔ)的拼接方法和目前兩種優(yōu)秀的拼接方法。本文使用三種方法設(shè)計了兩組對比實(shí)驗,對比分析了它們各自的拼接結(jié)果發(fā)現(xiàn)單應(yīng)性矩陣是獲得良好拼接結(jié)果的條件之一。如果拼接內(nèi)容復(fù)雜或者視差大的圖像,還需要引入其它的技術(shù)如優(yōu)化局部配準(zhǔn),縫合線技術(shù)等來完善拼接結(jié)果。
【參考文獻(xiàn)】
[1]Szeliski R. Image Alignment and Stitching: A Tutorial[J]. Foundations & Trends?誖 in Computer Graphics & Vision, 2006, 2(11-12): 273-292.
[2]方賢勇.圖像拼接技術(shù)研究[D].浙江大學(xué),2005.
[3]嚴(yán)宇波.無人機(jī)攝影測量影像匹配與糾正技術(shù)研究[D].沈陽航空航天大學(xué), 2013.
[4]汪華琴.基于特征點(diǎn)匹配的圖像拼接方法研究[D].華中師范大學(xué),2007.
[5]Carroll R, Agrawal M, Agarwala A. Optimizing Content-Preserving Projections for Wide-Angle Images[J]. Acm Transactions on Graphics, 2009, 28(3):341-352.
[6]Gao J, Kim S J, Brown M S. Constructing image panoramas using dual-homography warping[C]//2013 IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2011:49-56.
[7]Lin W Y, Liu S, Matsushita Y, et al. Smoothly varying affine stitching[C]//Computer Vision and Pattern Recognition(CVPR), 2011 IEEE Conference on. IEEE, 2011: 345-352.
[8]Zaragoza J, Chin T J, Tran Q H, et al. As-projective-as-possible image stitching with moving DLT[J]. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 2014, 36(7): 1285-1298.
[9]Zhang F, Liu F. Parallax-tolerant image stitching[C]//Computer Vision and Pattern Recognition(CVPR), 2014 IEEE Conference on. IEEE, 2014: 3262-3269.
[10]Gao J, Li Y, Chin T J, et al. Seam-driven image stitching[J]. Eurographics 2013, 2013: 45-48.
[11]Kwatra V, Sch?觟dl A, Essa I, et al. Graphcut textures: image and video synthesis using graph cuts[C]//ACM Transactions on Graphics(ToG). ACM, 2003, 22(3): 277-286.
[12]Brown M, Lowe D G. Automatic panoramic image stitching using invariant features[J]. International journal of computer vision, 2007, 74(1): 59-73.
[責(zé)任編輯:楊玉潔]