劉 暢 金立左 費樹岷 馬軍勇
(1.東南大學自動化學院,南京,210096;2.光電控制技術(shù)重點實驗室,洛陽,471009)
數(shù)字圖像拼接技術(shù)是現(xiàn)代數(shù)字圖像處理中非常重要且發(fā)展迅速的技術(shù)之一,通過對于多幅圖像的準確匹配,可以更加有效地實現(xiàn)目標檢測、信息融合、三維重建、超分辨率重建等,相關(guān)技術(shù)目前的應(yīng)用范圍十分廣,在視頻監(jiān)控、遙感地圖、視覺測量、醫(yī)學成像等領(lǐng)域都發(fā)揮了很大作用,在其基礎(chǔ)上發(fā)展的視頻圖像拼接技術(shù)拓展了視頻處理相關(guān)技術(shù)的應(yīng)用范圍,其對視場的拓寬作用在視頻監(jiān)控、智能交通、行車輔助等應(yīng)用上得到了體現(xiàn)[1]。
以圖像拼接為基礎(chǔ)的大視場視頻成像技術(shù)是近些年數(shù)字圖像處理領(lǐng)域的研究熱點,而圖像配準就成了其中的關(guān)鍵技術(shù)。經(jīng)過早期的技術(shù)探索,基于圖像上幾何特征的圖像配準方法成為了圖像拼接領(lǐng)域的研究重點和主流方法,Richard Szeliski于1996年提出的基于運動的全景圖像拼接模型[2],采用了Levenberg-Marquardt迭代非線性最小化方法,通過圖像間的集合變換關(guān)系來進行圖像配準,此方法可以較好地處理具有平移、旋轉(zhuǎn)、仿射等多種變換的圖像拼接,成為了經(jīng)典的算法,使其成為圖像拼接領(lǐng)域的奠基人。Microsoft的交互式視覺媒體研究團隊在多年的技術(shù)升級中開發(fā)了著名的圖像全景拼接軟件 Microsoft ICE(Image composite editor),并對方法進行總結(jié)形成了圖像拼接的基礎(chǔ)教程。其他研究者如Lowe D G,提出的不變量技術(shù)運用在圖像拼接上提高了圖像配準精度,解決了圖像拼接的一大技術(shù)難題[3]。文獻[3]也開發(fā)了另一款重要的拼接軟件AutoSititch,實現(xiàn)了水平或垂直方向一系列照片的全景大圖像拼接。但上述方法計算量較大,不能滿足視頻拼接對實時性的要求,且對于有較大畸變的監(jiān)控攝像頭采集到的圖像拼接效果不佳。
數(shù)字圖像拼接的基本步驟一般是:采集視頻圖像進行相機參數(shù)標定,計算畸變矯正參數(shù),計算單應(yīng)矩陣,視頻圖像融合。其中計算單應(yīng)矩陣是圖像拼接的關(guān)鍵,首先對每幅圖像進行特征點提取,通過匹配的點坐標對計算相對參考平面的仿射或透視變換參數(shù),再將圖片向參考平面上進行重合區(qū)域的圖像融合得到大場景圖像。
視頻圖像拼接如對視頻流的每幀圖像計算單應(yīng)矩陣,則存在準確性下降和無法實時拼接的問題,為了解決上述問題本文提出了用控制幀提取圖像間變換參數(shù)的思想,采取的方法是固定攝像頭的相對位置,并用棋盤格等控制板制作控制幀圖像以增加匹配點的數(shù)量和準確性,使用各攝像頭控制幀圖像計算所得的單應(yīng)矩陣參數(shù),再將視頻流的每一幀圖像通過控制幀求得的變換參數(shù)建立的參數(shù)表,向?qū)?yīng)的全景參考平面投影,形成最終的全景視頻流。其流程如圖1所示。
圖1 流程圖Fig.1 Algorithm flowchart
通過攝像機標定,可以由已知特征點的圖像坐標和世界坐標求解攝像機的模型參數(shù)。標定的模型參數(shù)分為內(nèi)參和和畸變參數(shù),并使用標定所得參數(shù)進行圖像的畸變矯正[4]。
使用線性針孔模型表示圖像坐標和世界坐標的之間的關(guān)系,世界坐標上的點記為:M=[x,y,z]T,圖像平面上的二維點記為:m=[u,v]T,則空間點M和圖像點之間的映射關(guān)系是:=A[Rt,其中s為一任意的非尺度因子,R,t分別代表攝像機外參的旋轉(zhuǎn)矩陣與平移向量,A為攝像機內(nèi)部參數(shù)矩陣,定義為
使用Zhang Z Y提出的基于2D平面靶標的攝像機標定[5]方法,在該方法中需要使用攝像機對平面標靶進行拍攝,標靶自由移動通過提取位置固定的標靶特征,計算出標靶平面與其圖像平面之間的映射矩陣,其過程實質(zhì)是使實際坐標mi與通過單應(yīng)矩陣計算出的圖像坐標之間的殘差最小的過程,目標函數(shù)為
從而求得內(nèi)參矩陣和光心坐標。
當攝像頭具有大畸變時,利用線性參數(shù)計算畸變系數(shù)時會帶來很大的誤差,因此為了獲得準確的畸變系數(shù),就需要進行反復迭代計算,直到參數(shù)收斂為止。本文采用Xu D提出的攝像機大畸變標定方法[6]計算圖像的畸變系數(shù)并進行畸變矯正,并在此基礎(chǔ)上提出了坐標反投影的精確計算方法。
設(shè)(u,v)為畸變圖像坐標,(u′,v′)為矯正后的圖像坐標,圖像畸變的非線性模型為
其中
式中:ku,kv分別為v,u方向的二階畸變矯正系數(shù),r為畸變圖像坐標相對光心的距離。通過分析畸變圖像發(fā)現(xiàn)攝像機畸變?yōu)橥靶突儯鐖D2所示,故當一條直線P1Pn發(fā)生徑向畸變后形成曲線P1PiPN時其畸變系數(shù)ku,kv大于零,由式(2)可知畸變程度正比于圖像坐標的變化率,該變化率用PiP′i與P′iP0的比率近似。P1,Pi,PN等直線上的點可用拍攝棋盤格并提取角點得到,定義畸變系數(shù)如下式,其中Errku,Errkv為u,v方向上的畸變度,n為提取的線段中的點數(shù)。
圖2 畸變示意圖Fig.2 Distortion diagram
設(shè)畸變系數(shù)ku,kv初值為0,計算得到矯正后的圖像坐標再利用式(4)迭代計算新的畸變度,對畸變系數(shù)進行步長為αu,αv的修正,直到畸變度Errku,Errkv的絕對值小于某閾值為止,得到ku,kv的迭代結(jié)果如圖3。
圖3 畸變系數(shù)迭代結(jié)果Fig.3 Iterations result of distortion
圖4 矯正效果Fig.4 Correction effect
在求出式(5)中的畸變系數(shù)之后,像素的整數(shù)坐標 (u,v) 被轉(zhuǎn)換 到 實 值 坐 標 (u′,v′) 。當被 矯 正后的圖像被顯示時,實值坐標需要被轉(zhuǎn)換為整數(shù)坐標,在這個過程中由于四舍五入精度會丟失,假設(shè)矯正后的新圖像的初始像素灰度為零,則會在圖像上產(chǎn)生由空值像素帶來的黑色曲線見圖4,如簡單采用最臨近插值則會在曲線上的坐標附近帶來噪聲。對此問題進行優(yōu)化求解,本文提出一種使用解析法反投影解出準確矯正后圖像準確坐標的方法。
假設(shè) (u′,v′)為整數(shù)坐標,對(u,v)進行反投影求解,由于此反投影方程中r與u,v存在二次函數(shù)關(guān)系,無法直接求出 (u,v)的解析解,故而對式(2)進行重新整理,令
假設(shè)函數(shù)f(m),g(m),q(m),如下式
原方程即轉(zhuǎn)化為求q(m)=0在(0,+∞)上的解,因為采集的圖像畸變均為桶形畸變,可以假設(shè)ku,kv都大于零,則可知f(m)相對于m單調(diào)遞增,g(m)相對于m單調(diào)遞減,可以證明q(m)=0在(0,+∞)上有且僅有一解,對g(m)-f(m)在(0,(u′-u0)2+(v′-v0)2)上二分法經(jīng)過迭代可求解得m,代入原假設(shè)式(6),可準確求出 (u,v)坐標。使用以上方法得到準確矯正結(jié)果如圖5所示。
圖5 坐標精確計算結(jié)果Fig.5 Precise result of coordinate calculation
可以看出相比采用臨近插值方法,本文的方法所得到的矯正圖像更為稠密沒有間隙。
圖像經(jīng)過畸變矯正消除了攝像頭成像的失真之后,對控制幀圖像提取特征點并進行特征匹配,為了提高圖象變換單應(yīng)陣的準確性,可在場景中添加控制板以增加匹配點數(shù)和準確性。
圖像拼接算法在圖像正畸之后的下一個步驟是提取所有圖像的特征并進行匹配,這里采用由Lowe D G提出的SIFT特征(Scale-invariant feature transform)[6],SIFT 關(guān)鍵點特征位于圖像在各不同尺度空間下高斯函數(shù)的差的極大值即DOG(Difference of Gaussian),特征點在每個特征的位置,尺度和方向的特性被描述,為識別計算提供了具有相似不變性的描述子。雖然在描述子中對比采樣強度值就保證相似不變,但具有不變性的描述實際上是通過局部梯度方向直方圖的累加計算得到的,這使得邊緣的稍許變形不會改變描述向量,從而給透視變換帶來了一定的魯棒性。這種空間積累同樣對于平移不變性非常重要,因為關(guān)鍵點位置的準確度通常在0~3像素的范圍之內(nèi)。而光照的不變性是通過梯度(消除偏差)和規(guī)范描述向量(補償增益)來達成的。
得到圖像的SIFT特征描述子進行描述后使用一種改進的k-d樹查詢方法BBF(Best-bin-first search)[7]進行搜索,得到圖像兩兩之間的特征粗匹配。采用了BBF方法就可以將k-d樹擴展到高維數(shù)據(jù)集上。通過BBF算法可以快速地得到含有誤匹配的圖像間點的映射集合。
RANSAC(Random sample consensus)是由Fischler和Bolles提出的,它是從一組包含異常值的觀測數(shù)據(jù)集中估計數(shù)學模型參數(shù)的迭代方法,它通過反復選擇數(shù)據(jù)中的一組隨機子集來達成目標。
假設(shè)點(x,y)經(jīng)空間變換矩陣H變換到點(x′,y′),則由齊次坐標的性質(zhì)知,點(x,y)和點(x′,y′)之間的關(guān)系可用如下矩陣關(guān)系式進行統(tǒng)一表示
在圖像特征匹配的應(yīng)用中RANSAC是一個具有良好魯棒性的單應(yīng)陣模型評估過程,它采用一組隨機抽樣對應(yīng)關(guān)系的最小集合去估計圖像的變換并找到一個具有最佳數(shù)據(jù)關(guān)聯(lián)度的參數(shù)模型[8]。在圖像拼接的應(yīng)用中,可以通過選擇4組特征匹配使用直接線性變換來計算得到一個待修正的圖像的單應(yīng)陣H,這個單應(yīng)陣參數(shù)模型使用了圖像變換模型中的透視變換模型(式(8))。這個評估過程被重復執(zhí)行固定的次數(shù),每次產(chǎn)生的模型要么因為局內(nèi)點太少而被舍棄,要么因為比現(xiàn)有的模型更好而被選用。重復這個過程n次去選擇一個最佳的單應(yīng)陣解以得到最大數(shù)量的內(nèi)點。假設(shè)圖像之間正確的特征匹配概率(內(nèi)點的可能性)為pi,在n次測試中找到正確的單應(yīng)陣的概率
通過上述方法求得各攝像頭采集的控制幀圖像投影到大場景參考平面上的變換單應(yīng)陣H,規(guī)避了每幀圖像都要計算單應(yīng)陣的計算量,然而圖像的投影仍然需要大量乘法計算。這里采用查表法進行快速投影變換,遍歷參考圖像坐標,計算每一個點(i,j)的參數(shù)集,參數(shù)集的定義如表1所示。
表1 查找表參數(shù)Table 1 Lookup Table
在控制幀計算后生成如上查找表,之后每一幀每個像素的坐標投影只需要進行一次查詢和雙向性變換的4次乘法即可,大幅度降低了坐標變換的計算量。
在本文中,選定3個攝像頭的中間的一個作為標準,將其它兩個攝像頭采集到的圖像通過控制幀求得的單應(yīng)陣將圖像通過雙線性插值的方法投影到參考平面,并計算出圖像間的重合區(qū)域,在重合區(qū)域中進行圖像融合以消除拼縫。
獲得了圖象之間的兩兩重合區(qū)域后,就可以使用多帶融合算法進行圖像融合。本文采用多帶融合的思想[9],它的基本原理是:首先建立具有多分辨率信息的圖像金字塔(這里選擇5層金字塔),將待融合的匹配圖像降采樣為不同尺度下的帶通層圖像,繼而對各帶通層圖像進行線性加權(quán)融合得到拼接融合之后的帶通層圖像,最后對拼接融合后的各帶通層圖像進行相加[10]運算得到最終的融合圖像。
由于不同攝像機所處的位置不同,曝光條件也不同,會出現(xiàn)圖像間的整體亮度不同的問題,通過重合圖像象素的歸一化增益強度誤差e去解圖象的整體廣度補償系數(shù)來處理這一偏差[11],如下式
式中:gi,gj為光度增益;R(i,j)表示重合區(qū)域;ij代表圖像i在圖像i,j之間的重合區(qū)域的像素值和的平均。參數(shù)σN為標準歸一化強度偏差和增益獲取量,選擇σN=10.0,(I∈{0..255}),σg=0.1。對函數(shù)e求g的偏微,令它們等于零組成方程組,求解出每個圖像的增益補償系數(shù)gi,最后,對第i幅圖像的每個象素進行系數(shù)為gi增益補償,從而達到消除光度偏差的目的。
增益補償?shù)南禂?shù)計算是將原RGB888圖像轉(zhuǎn)化成單通道灰度圖像計算所得,再用增益補償系數(shù)在原圖的RGB3個通道同等比例進行補償,故色彩不會改變而亮度得到補償。
圖像的無縫拼接融合有很多種方法,其中Duplaquet[12]提出了動態(tài)搜索縫合線的融合方法,由于其計算量較低被廣泛地用于視頻圖像的實時拼接。圖6為上述經(jīng)典方法和本文方法的融合結(jié)果比較。其中圖6(a)為縫合線拼接融合結(jié)果,圖6(b)為本文結(jié)果,可以從視覺上明顯看出,本文方法在圖像間光照條件差異較大的情況下有良好的融合效果。
圖6 融合結(jié)果Fig.6 Blending result
實驗場景選擇在寬度15m深度5m的室內(nèi)部環(huán)境,由于室外遠景的場景可以忽略視差帶來的影響,所以室內(nèi)環(huán)境更為復雜,且由于變換參數(shù)由控制幀計算所得,室外惡劣條件也不對拼接結(jié)果的優(yōu)劣產(chǎn)生影響。
圖7 實驗結(jié)果Fig.7 Experimental results
本文所述算法在VS2010環(huán)境下使用配置為Intel Core i5 3.1GHz,RAM 4GB的計算機運行,通過視頻采集卡的圖像數(shù)據(jù)為768×576的RGB888彩色圖像。實驗結(jié)果如圖7所示,其中圖7(a,b,c)為攝像頭采集的控制幀圖像,d為控制幀的拼接結(jié)果,圖7(e-i)為使用控制幀求得的單應(yīng)陣參數(shù)進行拼接融合的視頻結(jié)果的若干幀??梢钥闯銎唇咏Y(jié)果沒有重影,不同攝像頭之間的光度差進行了良好的補償,圖像重合處無明顯拼縫,達到了視頻圖像拼接的目的。
本文方法的評價從兩個方面出發(fā),一方面是單幀圖像拼接的準確性,另一方面是大場景視頻拼接的實時性。準確性方面如表2所示,取控制幀1和控制幀2兩幅圖像,將控制幀1圖像中與控制幀2相匹配的特征點P1k投影到控制幀2的坐標系上得P′1k,再分別計算P'1k與控制幀2的特征點P2k x,y兩方向上的均方根誤差RMSE(Root-mean-square deviation)。
表2 準確性對比Table 2 Accuracy comparison
實時性方面,統(tǒng)計20幀圖像內(nèi)直接拼接與本文方法分別使用最臨近和雙線性坐標進行投影的平均每幀所需時間如表3所示。
表3 運算時間對比Table 3 Real-time comparison ms
可以發(fā)現(xiàn),本文基于控制幀的三攝像頭的拼接通過查表法優(yōu)化完全可以達到25幀/秒的實時性要求,經(jīng)過實驗可知使用同規(guī)格的攝像頭,按圓周設(shè)置六架即可達到360°全景覆蓋,從每幀處理時間的角度仍然可以滿足實時拼接的要求。
文獻[13-15]在視頻實時拼接算法也進行了類似的研究,在硬件條件差異不大的前提下比較各自拼接兩幅圖像的速度如表4所示。
表4 算法速度對比Table 4 Algorithm speed comparison ms
本文研究了圖像拼接的一般方法,進行了試驗研究,并對畸變矯正算法中的圖像反投影提出了一種精確坐標計算方法,在現(xiàn)有算法的基礎(chǔ)上提出了一種固定多攝像頭的視頻拼接策略,實現(xiàn)了視頻的精確拼接融合。今后的研究的重點是:(1)圖像投影融合的算法優(yōu)化,減少運算時間已達到視頻實時拼接的要求。(2)研究解決攝像頭視差帶來的拼接虛影問題。(3)提高魯棒性,當由于外部惡劣環(huán)境使得攝像頭相對位置變化時能夠?qū)螒?yīng)陣進行自動修正。
[1]鄒曉春,何明一,趙歆波.基于二維透射變換的視頻全景圖拼接算法[J].數(shù)據(jù)采集與處理,2012,27(5):528-534.
Zou Xiaochun,He Mingyi,Zhao Xinbo.Video panorama mosaic algorithm based on 2Dprojection trans-form [J].Journal of Data Acquisition and Processing,2012,27(5):528-534
[2]Richard Szeliski.Video mosaics for virtual environments[J].IEEE Computer Graphics and Applications,1996,16(2):22-30.
[3]Lowe D G.Distinctive image features from scale-invariant keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.
[4]朱玉艷.攝像機標定方法研究[D].昆明:昆明理工大學,2010.
Zhu Yuyan.A research of camera calibration[D].Kun ming:Kunming University of Science and Technology,2010.
[5]Zhang Z Y.A flexible new technique for camera calibration[J].Transactions on Pattern Analysis and Machine Intelligence,2000,22(11):1330-1334.
[6]Xu D,Li Y F,Tan M.Method for calibrating cameras with large distortion in lens[J].Optical Engineering,2006,45(4):1-8.
[7]Basri J,Lowe D G.Shape indexing using approximate nearest-neighbour search in high-dimensional spaces[C]//Coference on Computer Vision and Pattern Recognition.Puerto Rico:[s.n.],1997:1000-1006.
[8]湯伯超.基于SIFT算法的圖像特征描述方法研究[D].廣州:廣東工業(yè)大學,2012.
Tang Bochao.Research on image feature descriptors based on the SIFT algorithm[D].Guangzhou :Guangdong University of Technology,2012.
[9]Szeliski R,Uyttendaele M,Steedly D.Fast poisson blending using multi-splines [C]//Computational Photography(ICCP).Pittsburgh,PA:IEEE,2011:8-10.
[10]嚴磊.基于特征匹配的全自動圖像拼接算法研究[D].合肥:中國科學技術(shù)大學,2009.
Yan Lei.A automatic image stitching algorithm based on feature matching[D].Hefei:University of Science and Technology of China,2009.
[11]Brown M,Lowe D G.Recognising Panoramas[J].Proceedings of Ninth IEEE International Conference on Computer Vision,2003,2:1218-1225.
[12]Duplaquet M L.Building large image mosaics with invisible seam lines[C]//Aerospace Defense Sensing and Controls.[S.l.]:International Society for Optics and Photonics,1998:369-377.
[13]Emmanuel K S,Huang D J.Automatic seamless video mosaic from webcams using LSF techniques[C]//Computer Vision and Pattern Recognition Workshops(CVPRW),2010IEEE Computer Society Conference.[S.l.]:IEEE,2010:17-24.
[14]劉明杰,任帥,金城.基于自適應(yīng)投影矩陣的實時視頻拼接算法[J].計算機應(yīng)用與軟件,2012,29(5):81-85.
Liu Mingjie,Ren Shuai,Jin Cheng.A real-time video stitching algorithm based on adaptive projection matrix[J].Computer Applications and Software,2012,29(5):81-85.
[15]王小強,陳臨強,梁旭.實時全自動視頻拼接方法[J].計算機工程,2011,37(5):291.
Wang Xiaoqiang,Chen Linqiang,Liang Xu.Method of real time automatic video stitching[J].Computer Engineering,2011,37(5):291.