姚 莉,杜俊康,李長(zhǎng)順
(東南大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,江蘇 南京 211102)
圖像拼接技術(shù)一般包括圖像采集、圖像預(yù)處理、圖像配準(zhǔn)和圖像融合。其中圖像配準(zhǔn)是該流程的一個(gè)關(guān)鍵步驟。圖像配準(zhǔn)方法主要分為3大類:基于灰度的配準(zhǔn)方法、基于變換域的配準(zhǔn)方法和基于特征的配準(zhǔn)方法。
基于特征的配準(zhǔn)方法是最為常用的方法。以Brown等[1]的研究成果為里程碑,形成了一套相對(duì)成熟的解決方案,該方法也被稱為全局單應(yīng)變換方法。首先在圖像對(duì)間的重疊區(qū)域內(nèi)進(jìn)行特征點(diǎn)檢測(cè)匹配,生成全局單應(yīng)矩陣,然后利用光束平差法修正相機(jī)參數(shù),再將圖像對(duì)投影變換至同一平面,最后利用圖像融合算法生成一幅拼接結(jié)果圖。此方法應(yīng)用十分廣泛,筆者也提供了開(kāi)源的軟件供下載使用,并且OpenCV計(jì)算機(jī)視覺(jué)庫(kù)也封裝了該方法,同時(shí)提供了多種參數(shù)選擇,包括特征點(diǎn)檢測(cè)方法、投影變換方法和圖像融合方法等。但是此方法受到相機(jī)共光心和拍攝圖像共平面條件的約束,而實(shí)際場(chǎng)景中一般很難滿足該約束條件。后續(xù)的算法多是針對(duì)該問(wèn)題進(jìn)行改進(jìn)。
針對(duì)圖像配準(zhǔn)階段,2011年,Gao等[2]提出了一個(gè)新方法:既然僅僅使用全局單應(yīng)矩陣無(wú)法解決視差所帶來(lái)的深度問(wèn)題,那么將場(chǎng)景劃分為前后景分別計(jì)算單應(yīng)矩陣,使用兩個(gè)單應(yīng)矩陣來(lái)對(duì)齊,做到無(wú)縫拼接大部分現(xiàn)實(shí)場(chǎng)景。2014年Zaragoza等[3]通過(guò)將圖像劃分為多個(gè)密集網(wǎng)格,然后每一個(gè)網(wǎng)格里進(jìn)行特征關(guān)系查找,來(lái)計(jì)算局部單應(yīng)關(guān)系,并給出了一套高效的計(jì)算方案(moving DLT),在局部特征對(duì)齊的效果優(yōu)良。2016年,Chen等[4]通過(guò)添加一個(gè)更強(qiáng)的全局相似性系數(shù)約束,保證了圖像對(duì)之間的全局相似性變換。Misra等[5]通過(guò)利用深度學(xué)習(xí)去嘗試進(jìn)行特征點(diǎn)的檢測(cè)、方向分配和描述子計(jì)算工作及端到端訓(xùn)練。
針對(duì)圖像融合階段,2013年,Gao等[6]提出用seam-cut指導(dǎo)來(lái)估計(jì)最佳幾何變換,在圖像融合階段加入縫合線檢測(cè)流程,以構(gòu)造更為合理的拼接。2014年,Zhang等[7]借鑒經(jīng)典視頻去抖方法(content-preserving warps,CPW)的優(yōu)化項(xiàng)和縫合線檢測(cè)方法,提高了大視差場(chǎng)景的拼接性能。2016年,Lin等[8]在文獻(xiàn)[6]的基礎(chǔ)上,改進(jìn)了縫合線估計(jì)方法,同時(shí)在配準(zhǔn)階段加入了曲線和直線保護(hù)項(xiàng),提升了圖像的拼接效果。
現(xiàn)階段圖像拼接技術(shù)中,仍然存在著以下幾個(gè)問(wèn)題:① 圖像對(duì)重疊區(qū)域中深度不一致;② 圖像的特征種類單一;③ 圖像的特征數(shù)目相對(duì)較少;④ 圖像的特征分布存在局限性。
這些問(wèn)題導(dǎo)致目前的圖像拼接算法對(duì)于大視差多焦段的圖像匹配效果較差,在重疊區(qū)域易出現(xiàn)較為嚴(yán)重的偽影現(xiàn)象。本文對(duì)這些問(wèn)題進(jìn)行了研究,提出了針對(duì)偽影改善的拼接方案。
本文采用了一套基于網(wǎng)格優(yōu)化的圖像配準(zhǔn)方法來(lái)保證對(duì)圖像實(shí)施更好地對(duì)齊。首先使用點(diǎn)特征和線特征的特征檢測(cè)方法,提高特征的數(shù)目和質(zhì)量;隨后利用基于先驗(yàn)的RANSAC方法獲得最佳變換模型,并提高了模型的計(jì)算速度;緊接著使用APAP方法對(duì)圖像進(jìn)行網(wǎng)格變形;再使用多項(xiàng)圖像對(duì)齊約束來(lái)獲取到最佳的特征匹配對(duì)和變換參數(shù),提升圖像的拼接效果;最后利用柱面變換模型將一幅圖像投影到同一平面之上。
首先使用SIFT[9](scale-invariant feature transform)特征檢測(cè)算法檢測(cè)圖像特征點(diǎn),然后使用LSD[10](line segment detector)算法來(lái)檢測(cè)圖像中的線段特征信息。LSD算法檢測(cè)出的直線段有寬度和長(zhǎng)度兩大信息,可以根據(jù)寬度和長(zhǎng)度對(duì)線段檢測(cè)結(jié)果進(jìn)行篩選,僅保留大于寬度閾值和長(zhǎng)度閾值的有效線段,剔除對(duì)后續(xù)匹配不起作用或起干擾作用的過(guò)細(xì)或過(guò)短的冗余線段,得到優(yōu)化的線段特征集合。通過(guò)足量的重復(fù)性實(shí)驗(yàn)選定上述長(zhǎng)度和寬度閾值,對(duì)線段檢測(cè)結(jié)果集合進(jìn)行篩選。圖1和圖2所示是使用SIFT特征檢測(cè)算法和LSD檢測(cè)算法的檢測(cè)結(jié)果。
1.2.1 經(jīng)典的RANSAC篩選方法
在經(jīng)典的RANSAC流程中,目標(biāo)函數(shù)C被看作:在第k次迭代過(guò)程中,在當(dāng)前變換參數(shù)H作用下,數(shù)據(jù)集U中滿足變換參數(shù)的點(diǎn)的個(gè)數(shù),也就是在當(dāng)前變換條件下局內(nèi)點(diǎn)(inliers)的個(gè)數(shù),而RANSAC就是最大化C的過(guò)程。而判斷當(dāng)前點(diǎn)是否為局內(nèi)點(diǎn)需要一個(gè)閾值t。
由此可知,RANSAC方法主要存在效率和精度的局限性。
(1)效率:與隨機(jī)子集大小、局內(nèi)點(diǎn)比例w、迭代次數(shù)k以及數(shù)據(jù)集U大小有關(guān),因此在某些場(chǎng)景中效率較低。
(2)精度:經(jīng)典方法計(jì)算參數(shù)時(shí)選取最小子集是從效率考慮的,往往得到的是非最佳參數(shù),在應(yīng)用之前需要做細(xì)化處理。
圖1 點(diǎn)特征檢測(cè)結(jié)果Figure 1 Point feature detection result
圖2 線段特征檢測(cè)結(jié)果Figure 2 Line feature detection result
1.2.2 基于先驗(yàn)的RANSAC篩選方法
由于RANSAC方法在每次初始化時(shí)會(huì)隨機(jī)選取子集,而該子集與后續(xù)得到的單應(yīng)矩陣的準(zhǔn)確度存在著密切的聯(lián)系,并且也會(huì)影響RANSAC方法的迭代速度。一般情況下,數(shù)據(jù)的情況是未知的,若在開(kāi)始就知道特征點(diǎn)對(duì)的分布特點(diǎn),就可以更快速地獲得最佳采樣集,構(gòu)建最佳模型。因此,本文提出了基于先驗(yàn)的RANSAC篩選方法。
在初始化時(shí)提前確定好選取的子集,即構(gòu)造先驗(yàn)集。將先驗(yàn)集構(gòu)造的匹配結(jié)果局內(nèi)點(diǎn)數(shù)目作為排序的依據(jù),然后在后續(xù)每次采樣時(shí)根據(jù)匹配結(jié)果進(jìn)行由高到低的得分排序。這樣在已知數(shù)據(jù)集的分布關(guān)系情況下,便有可能較早地確定好模型,同時(shí)提高模型的計(jì)算速度。圖3是將二維樣本作為輸入,使用經(jīng)典RANSAC方法和基于先驗(yàn)的RANSAC方法針對(duì)模型的計(jì)算時(shí)間做了對(duì)比驗(yàn)證,可以看出,本文方法在計(jì)算效率上有明顯的優(yōu)勢(shì)。
圖3 基于先驗(yàn)的RANSAC方法與經(jīng)典RANSAC方法處理時(shí)間的比較Figure 3 Comparison of the processing time between the results of the prior-based RANSAC method and the classic RANSAC method
通過(guò)網(wǎng)格變形得到對(duì)應(yīng)的匹配點(diǎn)信息,同時(shí)該特征匹配對(duì)在圖像的重疊區(qū)域內(nèi)分布也更加均勻及廣泛,一定程度上避免了因低紋理場(chǎng)景而導(dǎo)致的特征分布過(guò)于局限的問(wèn)題。后面的對(duì)齊約束計(jì)算會(huì)利用到該匹配對(duì)信息。
圖像對(duì)齊是在圖像中確定像素點(diǎn)之間的對(duì)應(yīng)關(guān)系[12]。對(duì)同一場(chǎng)景不同視角下的圖像拼接場(chǎng)景進(jìn)行對(duì)齊時(shí),需要解決待拼接圖像對(duì)之間的剛性變化和非剛性變化的問(wèn)題。本文提出了多種對(duì)齊優(yōu)化方法,約束點(diǎn)線特征和網(wǎng)格四邊的變形過(guò)程,最終明顯改善了拼接效果。
1.4.1 點(diǎn)特征對(duì)約束
(1)
1.4.2 線特征對(duì)約束
假定圖片Is中的直線段L=[a,b]和圖片It中的直線段L′=[a′,b′]是一對(duì)匹配的直線段。a、b、a′、b′分別為對(duì)應(yīng)直線段的首末端點(diǎn)。為了最小化對(duì)齊誤差,在線段L上進(jìn)行采樣,然后最小化采樣點(diǎn)與匹配的直線段L′之間的距離。假設(shè)目標(biāo)圖像上的直線段L′的表達(dá)式為kx+b-y=0,那么可以構(gòu)建線段匹配對(duì)系數(shù)約束:
(2)
1.4.3 形狀一致性約束
形狀一致性約束是為了使圖像中變形的網(wǎng)格四邊形維持一個(gè)相似的變換過(guò)程,不要造成太大的扭曲變形,以保證重疊區(qū)域的局部變形效果。首先將網(wǎng)格劃分為2個(gè)三角形,并應(yīng)用局部相似性變形方法使得網(wǎng)格四邊形維持一個(gè)相似的變換過(guò)程[13]。
(3)
(4)
式中:Nt為網(wǎng)格集合中所擁有的所有三角形數(shù)目。
1.4.4 能量函數(shù)確定
在建立以上的約束之后,通過(guò)統(tǒng)一這些約束來(lái)構(gòu)建一個(gè)能量函數(shù),使用該能量函數(shù)來(lái)優(yōu)化點(diǎn)線及網(wǎng)格相關(guān)變量信息,并最小化該能量函數(shù),得到精確的網(wǎng)格頂點(diǎn)數(shù)據(jù)集和點(diǎn)、線特征集,從而最大化精確圖像的對(duì)齊效果。能量函數(shù)定義如式(5)所示:
Eshape(V)=Epoint(V)+Eline(V)+Eshape(V)。
(5)
當(dāng)頂點(diǎn)集合中的頂點(diǎn)距離小于等于一個(gè)像素點(diǎn)時(shí),能量函數(shù)的最優(yōu)化過(guò)程便趨于收斂,最后得到一個(gè)優(yōu)化的特征匹配對(duì)集合,從而得到相關(guān)的變換參數(shù)(包括單應(yīng)矩陣特征匹配對(duì)數(shù)目和相機(jī)內(nèi)外參數(shù)等信息)。
由于圖像采集設(shè)備一般會(huì)在不同角度下進(jìn)行拍攝,圖像對(duì)一般不會(huì)出現(xiàn)在同一個(gè)投影平面上。為了保證圖像拼接結(jié)果的一致性觀感,需要對(duì)圖像進(jìn)行投影變換,采用適當(dāng)?shù)耐队白儞Q模型,讓圖像對(duì)投影后處于同一個(gè)平面上。
平面投影是最為簡(jiǎn)單的一種投影方式,但是面對(duì)帶有視差的場(chǎng)景圖像集時(shí),會(huì)出現(xiàn)較大的拉升效果,視覺(jué)效果不理想。
柱面投影是進(jìn)行寬視野的類環(huán)形拼接應(yīng)用時(shí)最佳的投影選擇。柱面投影以相機(jī)為圓柱中心點(diǎn),相機(jī)的焦距為半徑,構(gòu)造的一個(gè)柱面作為投影面。
在針對(duì)多目多焦段場(chǎng)景時(shí),需要利用各個(gè)圖像的優(yōu)勢(shì),結(jié)合短焦圖像的大視角和長(zhǎng)焦圖像豐富的細(xì)節(jié),使得圖像對(duì)的重疊區(qū)域占滿長(zhǎng)焦的圖像,得到一幅寬視野的高分辨率圖像。為此,本文提出了基于圖像對(duì)重疊區(qū)域細(xì)節(jié)增強(qiáng)的縫合線查找算法。針對(duì)給定的輸入圖像對(duì)Ii、Ij,首先需要計(jì)算出重疊區(qū)域圖像的相關(guān)信息,包括長(zhǎng)寬及左上角頂點(diǎn)坐標(biāo)信息。利用該信息便可計(jì)算該重疊區(qū)域圖像在各個(gè)圖像中的位置,從而可以對(duì)圖像掩碼矩陣進(jìn)行賦值。
圖像掩碼矩陣同一行/列(重疊區(qū)域?qū)挻笥诟?寬小于高)值的突變便是縫合線的取值點(diǎn),通過(guò)縫合線來(lái)控制重疊區(qū)域中對(duì)于圖像對(duì)Ii、Ij的取值。長(zhǎng)焦鏡頭的畫(huà)面相較短焦鏡頭而言,細(xì)節(jié)更為豐富,因此可以通過(guò)操作圖像掩碼矩陣使得重疊區(qū)域都取圖像Ij中的像素值,這樣就可以達(dá)到豐富重疊區(qū)域內(nèi)圖像細(xì)節(jié)的效果。圖4是圖像輸入,圖5是采用本節(jié)縫合線檢測(cè)算法的拼接結(jié)果。
從圖5中可以看出,長(zhǎng)焦鏡頭豐富了短焦鏡頭的畫(huà)面內(nèi)容,并補(bǔ)足了重疊區(qū)域的細(xì)節(jié),如紅框內(nèi)車牌區(qū)域。
對(duì)于上一步得到的縫合線,若是僅僅根據(jù)縫合線對(duì)于重疊區(qū)域的劃分來(lái)界定圖像對(duì),那么在重疊區(qū)域中會(huì)出現(xiàn)很明顯的接縫線,視覺(jué)上在縫合線處的過(guò)渡會(huì)出現(xiàn)不連貫。為此,需要對(duì)縫合線兩側(cè)的不同圖像進(jìn)行融合處理,本文使用了漸入漸出融合方法來(lái)實(shí)施圖像融合。
圖4 圖像輸入Figure 4 Input images
圖5 基于圖像對(duì)重疊區(qū)域細(xì)節(jié)增強(qiáng)的縫合線檢測(cè)算法的拼接結(jié)果Figure 5 The stitching result of the stitch line detection algorithm based on the image enhancement of the overlapping area details
漸入漸出融合是通過(guò)對(duì)縫合線邊界進(jìn)行平滑虛化,通過(guò)漸入漸出的方法來(lái)達(dá)成相對(duì)自然的平滑效果。其平滑公式如下:
(6)
本文在i7-7700k、16 G內(nèi)存的Windows10主機(jī)設(shè)備上使用了Visual Studio2017工具進(jìn)行實(shí)驗(yàn)。
本文使用華為Mate20X設(shè)備進(jìn)行數(shù)據(jù)拍攝,鏡頭能夠進(jìn)行3倍光學(xué)變焦,并且將現(xiàn)有的幾個(gè)主流解決方案(APAP[3],NIS[4]和AANAP[14])與本文的方法進(jìn)行了對(duì)比實(shí)驗(yàn)。
場(chǎng)景1、2、3(圖6~8所示)為大視差且焦距有較大變化的場(chǎng)景,若是沒(méi)有恰當(dāng)?shù)靥幚砗靡暡顔?wèn)題,在重疊區(qū)域會(huì)出現(xiàn)嚴(yán)重的偽影情況。
圖9~11為本文方法和APAP、AANAP和NIS的結(jié)果對(duì)比圖,圖12、13為場(chǎng)景1、2的細(xì)節(jié)放大對(duì)比圖。可以看出,在拼接結(jié)果的重疊區(qū)域內(nèi),APAP、AANAP和NIS在結(jié)果中都出現(xiàn)了嚴(yán)重的偽影和扭曲變形。相較于其他方法,本文提出的點(diǎn)特征與線特征結(jié)合的特征檢測(cè)方法以及各項(xiàng)圖像對(duì)齊約束有效地提升了圖像配準(zhǔn)的準(zhǔn)確度,最后在圖像融合階段結(jié)合了基于重疊區(qū)域細(xì)節(jié)增強(qiáng)的縫合線檢測(cè)算法來(lái)有效地處理不同尺度圖像之間的融合問(wèn)題。通過(guò)使用本文的方法來(lái)進(jìn)行實(shí)驗(yàn),重疊區(qū)域能夠?qū)崿F(xiàn)很好地對(duì)齊,并且能極大程度上避免偽影情況的產(chǎn)生。
圖6 場(chǎng)景1的圖像輸入Figure 6 Input images of scene 1
圖7 場(chǎng)景2的圖像輸入Figure 7 Input images of scene 2
圖8 場(chǎng)景3的圖像輸入Figure 8 Input images of scene 3
本文將原始圖像與拼接結(jié)果圖像使用PSNR(峰值信噪比)標(biāo)準(zhǔn)進(jìn)行測(cè)試。根據(jù)PSNR的度量標(biāo)準(zhǔn),PSNR值越高,代表圖像結(jié)果的質(zhì)量越好,與原始圖像越相像。當(dāng)度量結(jié)果為30~40 dB時(shí),說(shuō)明圖像結(jié)果的質(zhì)量一般,失真程度不大;當(dāng)度量結(jié)果為20~30 dB時(shí),說(shuō)明圖像結(jié)果的質(zhì)量較差;當(dāng)度量結(jié)果小于20 dB時(shí),表明結(jié)果不可以接受,質(zhì)量極差。如圖14所示,可以看出,本文方法的結(jié)果是最優(yōu)的,在3個(gè)場(chǎng)景下驗(yàn)證的結(jié)果數(shù)值都維持在35~40 dB內(nèi),而其余的方法則在20~32 dB內(nèi)波動(dòng),表明在PNSR標(biāo)準(zhǔn)下,本文方法的拼接結(jié)果失真是最小的,并且與原始圖像的重疊區(qū)域存在高度相似,很好地保留了原始圖像的信息,其余方法的拼接結(jié)果均存在一定程度的失真。
圖9 場(chǎng)景1 的結(jié)果對(duì)比圖Figure 9 Comparison of the results of scene 1
圖10 場(chǎng)景2的結(jié)果對(duì)比圖Figure 10 Comparison of the results of scene 2
圖11 場(chǎng)景3的結(jié)果對(duì)比圖Figure 11 Comparison of the results of scene 3
圖12 場(chǎng)景1結(jié)果重疊區(qū)域放大圖Figure 12 The enlarged view of the overlapping area of the result of scene 1
圖13 場(chǎng)景2結(jié)果重疊區(qū)域放大圖Figure 13 The enlarged view of the overlapping area of the result of scene 2
圖14 PSNR對(duì)比折線圖Figure 14 PSNR line charts
針對(duì)圖像拼接中出現(xiàn)的各類問(wèn)題提出了一整套解決方案。在圖像配準(zhǔn)階段,提出了一種結(jié)合點(diǎn)特征和線段特征的特征檢測(cè)方法,提升了特征的數(shù)量和質(zhì)量,并提出了基于先驗(yàn)的RANSAC特征點(diǎn)對(duì)篩選方法,通過(guò)擬定先驗(yàn)集,更快速地獲得最佳采樣集;在圖像融合階段,使用了最佳縫合線的圖像融合算法,保證了圖像的對(duì)齊效果,并且極大程度上避免了重疊區(qū)域的偽影,通過(guò)在實(shí)驗(yàn)數(shù)據(jù)集上的對(duì)比驗(yàn)證,本文的算法在多個(gè)場(chǎng)景上的PSNR數(shù)值都維持在35~40 dB內(nèi),失真度較低,且圖像拼接的質(zhì)量也更優(yōu)。但是針對(duì)圖像對(duì)之間存在曝光差異的情況,本文算法未做考慮,后續(xù)可嘗試用曝光補(bǔ)償?shù)确椒▋?yōu)化曝光差異問(wèn)題。