陶菁,李毅
(1.四川大學計算機學院,成都 610065;2.四川大學國家空管自動化系統技術重點實驗室,成都 610065)
機場場面視頻的拼接問題,其本質是視頻間每一幀圖片的拼接問題。圖像拼接(Image Stitching)屬于計算機視覺領域,最近幾年再計算機領域(Computer Vision)受到了很大的關注。在幾十年的發展后,圖像拼接技術已經比較成熟。通過提取圖像的SIFT[1](SURF或ORB)特征點來計算圖像重疊區域的單應性矩陣(Homograph),以單應性矩陣對齊,再通過相關投影和融合技術處理對齊圖像的拼接算法是老一代拼接算法的核心。該算法以Brown的AutoStitch[2]為代表。但該方法因為采用一個單應性矩陣對齊圖像,對大場景和不在一個平面的圖像來進行拼接,會出現因視差出現的不對齊現象。Smoothly Varying Affine(SVA)[3]論文中采用6個單應性矩陣來進行圖像的配準,該方法能有效改善拼接過程中的視差問題,但計算量大,時耗嚴重。As-projective-As-possible[4]提出的網格化拼接算法,就是將所有圖像網格化,然后對對應的每個網格進行單應性對齊。該方法也存在時耗嚴重的問題,而且只能處理小視差問題。而本文采用的方法就是先用單應性矩陣將圖像預對齊,然后找出預對齊圖像重疊區域的最佳縫合線,最后再通過相應的融合技術得到拼接結果。該方法可以處理視差問題,計算速度比較快。
對于視頻拼接,其應用特別廣泛,尤其是在虛擬現實(VR)和場面監控領域。從圖像拼接到視頻拼接的過渡主要需要解決三個問題視頻去抖動,拼接實時性(在線拼接速度)和重疊部分移動物體經過的。由于機場場面的監控攝像頭相對位置固定,視頻抖動造成的影響較小。對于實時性問題,圖像拼接主要分對齊和融合兩個階段,而最耗時的是融合階段因其需要對全景圖片中每個像素點的值進行計算,本文引入GPU中的CUDA[5]加速技術讓每個像素點并行計算能成倍的提高運算速度,同時采用視頻特定幀的圖像作為拼接模板并在有運動物體經過拼接重疊區域的時候及時更新模板數據的方式來減短運算時間,和減緩運動物體造成的干擾。圖1為拼接算法的原始視頻圖像。
圖像拼接的主要步驟有如下三步:圖像預處理、圖像配準和圖像融合。由于在視頻圖像的獲取過程中產生了較多的干擾如光線不統一等,這會造成圖像模糊,灰度便偏移等問題。為了消除干擾我們需要對圖像做一些去燥、投影、修正等基本的圖像預處理操作。而圖像配準是圖像融合的基礎。

圖1 拼接原始圖

圖2 拼接模擬圖示
圖像配準主要是將兩幅圖像的各像素點坐標統一到同一個坐標系中,即找到兩幅圖像間的空間對應關系。因此圖像配準需先確立圖像的成像模型本文采用的是針孔成像模型[6],接著通關系模型的參數,算出兩幅圖像間坐標投影變換矩陣H就完成了配準過程。如圖2所示,圖A和圖B通過黑色重疊部分區域拼接成右邊的圖像,其中點P在圖A和圖B中對應的點分別為P1和P2。首先通過攝像機相關的成像模型分別得出點P和P1,點P和P2間的關系。最后以點P為媒介,通過相關的投影坐標轉換模型[7],計算出點P1和P2間的投影變換矩陣H,關系式如下:

一般情況下8參數的透視投影變換最適合描述圖像之間的坐標關系,參數對應的具體描述間表1:

表1 投影變換矩陣參數表
投影變換矩陣中參數的計算需要至少4對如P1和P2這樣的點對坐標數來獲得。本文通過特征點的方式來獲得點對數據。基于圖像的特征點匹配的常用算法有ORB,SURF和SIFT特征點算法。其中SIFT特征點算法具有對旋轉、尺度縮放、亮度變化保持不變,對視角變化、仿射變換、噪聲也保持一定程度的穩定性。相比于ORB,SURF算法具有更強的魯棒性。雖然用時最長,但通過GPU加速技術,特征點的提取和匹配速度能達到實時的要求。SIFT特征點提取階段主要步驟首先是Dog尺度空間的極值檢測建立對應的高斯金字塔,然后刪除不穩定極值點,接著確定特征點的主方向,最后根據特征點周圍的點變化情況生成n維的特征描述子。在得到兩幅圖的特征點后,采用歐式距離作為度量標準來進行兩幅圖的特征點匹配,最總形成成對的特征點坐標數據。原始形成的匹配對中存在較多的誤匹配,為提高匹配的質量,增加算法魯棒性,需對匹配方式做一些改進。因此引入了最近鄰/次近臨算法和RANSAC算法[8]來剔除誤匹配,提高圖像的拼接質量,提純結果如圖3和圖4所示。最后為保持視覺的一致性還需對圖像進行柱面投影處理[9]。

圖3 原始匹配算法圖

圖4 1NN/2NN+RANSAC匹配算法圖
通過一個單應性矩陣對拼接圖像進行配準,要求重疊的圖像近似于一個平面或者相機的光心近乎重疊。否則對于大場景等情況下的圖像拼接中將出現重影或者不對齊的現象,無法處理視差問題,如圖5的拼接后示例圖的拼縫處明顯沒對齊。本文將網絡流中的最大流和最小割的實現運用于視屏圖像的拼接階段。其主要思想是先通過前面的方法將拼接圖像預對齊。然后通過網絡流中的最大流和最小割的方法分別找到兩幅預對齊圖像重疊部分中的最優圖割,然后分別保留割線左右兩側的圖像數據并繪制在全局圖中。這樣能很有效地緩解拼接視差造成的模糊和不對齊現象。

圖5 GrapCut能量圖
最大流/最小割采用GrapCut[10]算法來求解,該方法首先用一個G=<V,E>表示要分割的圖像,同時G圖在普通圖的基礎上引入了S和T兩個終端頂點。圖上所有其它的頂點都必須與這兩個終端頂點相連成為邊集合的一部分,因此該圖具有兩種邊,如圖6(a)圖所示。圖中每個邊都會根據其對應像素點數據值的情況而賦于對應的權值。這樣我們就能得到該圖的一個能量方程,如下列公式所示:

其中E(L)表示G圖中所有邊能量值(權值)的總和。cut就是在G圖中找出n個切割邊,讓G圖中的所有點劃分為兩個不相交的集合S和T。cut就是這n個邊的集合,如圖12(b)圖所示。最終需要獲得結果是在所有cut找出中n個邊能量和最大的那個cut,讓切割后圖的能量方程E(L)最小,該方法可以用網洛流中的最大流/最小割方法解決,同時采用優化增廣路徑算法[11]能快速解決最大流/最小割問題。因為最佳拼縫在同一幅圖中具有唯一性,因此在拼接過程中對重疊區域找出的兩條最小切割線是基本吻合的。圖6是根據該算法找出的拼接圖像的最佳拼接縫示例圖,可以看出左右兩幅圖的拼縫完全吻合:

圖6 最佳拼接縫
圖像拼接在經過單應性對齊和最佳拼接縫尋找后,如果直接將兩幅圖像的數據繪制到全景圖中,會發現拼接的重疊區域會出現明顯的拼縫和模糊狀況。為了消除拼接縫合重疊部份拼縫和光照不均勻的情況,還需對預對齊的拼接圖像做融合處理。常用的融合算法有漸進漸出融合(Feather Blending)和多頻帶融合[12-14](Multi-band Blending)。其中漸進漸出融合計算資源需求較少,但是融合后的成像質量較差。而多頻帶融合成像質量高可以處理小視差問題,但復雜度較高,比較耗時。
圖像拼接過程中圖像特征點計算,圖像的變換的線性插值和融合計算量巨大。特別是圖像融合階段采用多頻段技術時需要對大量像素點進行計算,是實現實時全景視頻的瓶頸。因為在多頻段融合階段,圖像中各個像素點數據值的計算相對較獨立,所以可以用并行計算的思路來提速融合操作。為了實現視頻拼接的實時性本人將CUDA并行加速技術運用于圖像融合階段。
GPU中的CUDA計算架構采用的計算模型是SIMT,即單指令多線程。該架構用多層次的網格來調度大量的GPU線程,達到并行計算的目的。CUDA架構中有線程網格(Grid),線程塊(Block),線程(Thread)。每個線程網格里面包含多個線程塊,每個線程塊中包含多個線程。
根據CUDA架構的線程網格,線程塊和線程的設計思路我們可以發現,其分布情況和圖像中每個像素點的分布規律一致。于是我們可以按照圖7的方式來處理圖像數據,把需要處理的圖像分成n塊,每塊中像素點的個數和CUDA中線程塊里的線程個數保持一致。然后我們將n塊分別分配到CUDA對應的線程塊中。讓圖像中多個像素點通過GPU中的多個線程,并行的進行運算處理。這樣就能極大的提高融合速度。

圖7 GPU線程塊和圖像對應關系圖
機場場面視頻的拼接中由于機場攝像頭位置相對固定,因此不需要對視頻的每一幀都做預對齊處理。可以用第一幀視頻初始化拼接模板,后面一幀采用前一幀的拼接模板參數進行對齊。該方法能有效地減去拼接過程中預對齊階段的處理時間。可是當拼接區域有動態物體經過時如圖8所示,當飛機經過拼縫時會對拼接造成干擾,重疊區域的移動物體會產生錯位,因此需要新建一個線程,用于檢測每一幀視頻中是否有移動物體進入縫合線區域,出現該情況就以當前幀為背景更新拼接模板參數。該方法當有運動物體經過重疊區域時,視頻幀率會降低,但是能改善成像質量。對于如何進行動態物體檢測因不屬于本文研究范疇,此處不予介紹。
本文實驗采用的計算機環境是:Intel Core i5-6400 CPU@2.70GHz 2核并且4GB RAM。拼接中采用的幀圖片參數為規格為720p:1280×720,如圖1所示。在經過1-4節的處理后獲得了成像質量高,幀率較高的機場場面視頻。

圖8 運動物體經過拼縫區域錯位圖
在實時性方面本文通過GPU中的CUDA加速(GTX780)和模板拼接的處理大幅度提高了拼接速度,其中每一幀的耗時為平均為0.050s左右,如果加入拼縫更新處理,每幀耗時平均為0.09ms左右。同等情況下在不采用GPU加速的OpenCV傳統拼接方法中每幀耗時0.670s,STVH[15]采用多個單應性矩陣拼接的方法每幀耗時為2.3s左右。
在成像質量方面,如圖9(a)所示,拼接結果圖像中很好地減緩了重疊區域的視差問題,成像質量比較高。而傳統的OpenCV拼接效果圖(圖(b))中可以看出,重區域比較模糊,飛機明顯出現錯位變短的情況(如紅色矩形框A所示)且出現較多不對齊現象(如紅色矩形框B所示)。

圖9 拼接結果對比圖
對于機場場面的視屏拼接,目前面臨的兩大難題分別是對齊問題和實時性問題。在處理對齊等視差問題上本文采用最佳拼接縫和多頻帶融合等技術,能有效緩解場景中不對齊和模糊的視差問題。接著我們通過引入GPU的CUDA加速技術和模板拼接方法也成倍地提高了視頻拼接速度,滿足實時要求。實驗結果表明本文的效果優于許多常用的視屏拼接方法。但同時也存在一些需要繼續研究改進的問題。對于視差問題只能改善緩解,不能消除,如圖9(a)中小黃車有較明顯的錯位和模糊。對于大場景大視差處理效果不理想。拼接速度每25幀左右,基本滿足實時要求,仍有很大提升空間。
參考文獻:
[1]Lowe D G,Lowe D G.Distinctive Image Features from Scale-Invariant Keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.
[2]Brown M,Lowe D G.Automatic Panoramic Image Stitching using Invariant Features[C].IJCV.2007:59-73.
[3]Lin W Y,Liu S,Matsushita Y,et al.Smoothly Varying Affine Stitching[C].Computer Vision and Pattern Recognition.IEEE,2011:345-352.
[4]Zaragoza J,Chin T J,Tran Q H,et al.As-Projective-As-Possible Image Stitching with Moving DLT.[J].IEEE Transactions on Pattern Analysis&Machine Intelligence,2014,36(7):1285.
[5]Nvidia Corporation.CUDA Prohramming Guide Version 6.0[EB/OL].2017.http://www.nvidia.com/
[6]object/cuda_home_new.html.
[7]周雄圖,陳恩果,姚劍敏,et al.Design and Simulation of Combined Pinholes/Microlens Array for Integral Imaging[J].Chinese Journal of Liquid Crystals&Displays,2013,28(6):855-859.
[8]Lichti D D,Kim C.A Comparison of Three Geometric Self-Calibration Methods for Range Cameras[J].Remote Sensing,2011,3(12):1014-1028.
[9]Grunt.RANSAC算法詳解[EB/OL].2017.http://grunt1223.iteye.com/blog/961063.html
[10]吳子章.一種基于柱面投影的圖像拼接算法研究[J].計算機光盤軟件與應用,2011(5):168-168.
[11]Rother C,Kolmogorov V,Blake A."GrabCut":Interactive Foreground Extraction Using Iterated Graph Cuts[C].ACM SIGGRAPH.ACM,2004:309-314.
[12]XU ZhouBo,GU TianLong,ZHAO LingZhong,等.An Augmenting-Path-Based Symbolic ADD Algorithm for Maximum Flow in Networks網絡最大流問題求解的符號ADD增廣路徑算法[J].計算機科學,2005,32(10):38-40.
[13]Szeliski R,Shum H Y.Creating Full View Panoramic Image Mosaics and Texture-Mapped Models[J].ACM Siggraph Computer Graphics,1997.
[14]Cao J J,Feng J B,Su Z X.Panoramic Image Mosaic Algorithm[J].Journal of Dalian University of Technology,2003.
[15]El-Saban M,Izz M,Kaheel A.Fast Stitching of Videos Captured from Freely Moving Devices by Exploiting Temporal Redundancy[C].IEEE International Conference on Image Processing.IEEE,2010:1193-1196.