魏文力, 黃陸明, 安城輝, 張彩友
(1.國(guó)網(wǎng)浙江省電力有限公司檢修分公司, 浙江 杭州 311200; 2.國(guó)網(wǎng)溫州供電公司, 浙江 溫州 325000)
視覺傳感器由于具有多用途、抗干擾、模塊化等優(yōu)點(diǎn),正逐漸成為移動(dòng)通信終端、無人駕駛汽車、無人機(jī)等移動(dòng)裝置的重要部件和任務(wù)載荷。移動(dòng)裝置采集的視頻影像往往存在抖動(dòng)、晃動(dòng)和畸變等不穩(wěn)定因素,這使得依賴視覺信息的控制和相關(guān)應(yīng)用受到極大限制。因此,研究視頻穩(wěn)像技術(shù)對(duì)于推動(dòng)通信終端、無人駕駛汽車、無人機(jī)的廣泛應(yīng)用具有重大意義。目前,機(jī)械穩(wěn)像方法大多需要在移動(dòng)裝置上搭載相應(yīng)的機(jī)械裝置,這就降低了移動(dòng)裝置攜帶有效載荷的能力。相比之下,電子穩(wěn)像技術(shù)由于無需加載附加的機(jī)械配件,正逐漸成為國(guó)內(nèi)外移動(dòng)裝置穩(wěn)像的主流技術(shù)。
一般來說,電子穩(wěn)像方法包含三個(gè)主要步驟:運(yùn)動(dòng)路徑估計(jì)、運(yùn)動(dòng)路徑平滑、新視點(diǎn)生成(見圖1)?,F(xiàn)有的電子穩(wěn)像技術(shù)根據(jù)計(jì)算原理的不同,主要分為2D[1,2]、3D[3]和2.5D[4,5]三類方法。
圖1 視頻穩(wěn)像處理流程Fig.1 Schematic diagram of video stabilization process
2D穩(wěn)像方法首先估計(jì)相鄰視頻幀之間的二維變換關(guān)系,通過連接圖像幀之間的變換關(guān)系,在2D空間內(nèi)估計(jì)相機(jī)運(yùn)動(dòng)路徑,然后通過平滑2D相機(jī)路徑實(shí)現(xiàn)穩(wěn)定視頻的生成。為了抑制相機(jī)低頻抖動(dòng),Chen等[6]提出用多項(xiàng)式曲線擬合相機(jī)的運(yùn)動(dòng)軌跡。Gleicher等[7]對(duì)相機(jī)的運(yùn)動(dòng)軌跡進(jìn)行分段處理,通過對(duì)各段軌跡進(jìn)行獨(dú)立的平滑計(jì)算,獲得了更好的穩(wěn)像效果。最近,Ma等[8]提出一種將軌跡平滑與幀變換融合的視頻抖動(dòng)去除方法。該方法以軌跡平滑為主體,幀變換為輔助,在一階導(dǎo)數(shù)和自適應(yīng)加權(quán)的約束下實(shí)現(xiàn)了視頻穩(wěn)像。該研究成果已成功應(yīng)用于Google公司YouTube網(wǎng)站的視頻優(yōu)化。Liu等[9]僅考慮網(wǎng)格頂點(diǎn)的矢量運(yùn)動(dòng),提出了一種空間平滑稀疏運(yùn)動(dòng)場(chǎng)模型的在線視頻穩(wěn)定技術(shù)。文獻(xiàn)[10]~[12]也是2D方法中的新進(jìn)展。由于2D類方法只需要估計(jì)相鄰幀之間的特征匹配,因此魯棒性較高,運(yùn)算速度較快。但是,基于特征點(diǎn)匹配的2D方法需要假設(shè)場(chǎng)景中的物體位于一個(gè)平面內(nèi)或者相機(jī)只進(jìn)行單純的旋轉(zhuǎn)運(yùn)動(dòng),因此其應(yīng)用具有較大的局限性。
3D穩(wěn)像方法需要估計(jì)完備的場(chǎng)景三維結(jié)構(gòu),即需要以準(zhǔn)確的相機(jī)3D姿態(tài)和場(chǎng)景中點(diǎn)云深度為先驗(yàn),才能實(shí)現(xiàn)穩(wěn)像。場(chǎng)景三維結(jié)構(gòu)一般可通過SFM算法[13,14]計(jì)算獲得,或者采用深度傳感器直接獲取。Buehler等[15]提出一種基于場(chǎng)景攝影重構(gòu)的三維視頻穩(wěn)像方法,而場(chǎng)景的攝影重構(gòu)則通過對(duì)未標(biāo)定的相機(jī)數(shù)據(jù)進(jìn)行SFM計(jì)算獲得。Zhang等[16]假設(shè)場(chǎng)景的歐氏重構(gòu)已經(jīng)獲得,通過最小化相機(jī)在旋轉(zhuǎn)、平移和變焦時(shí)的加速度來獲取平滑的相機(jī)運(yùn)動(dòng)軌跡,最終實(shí)現(xiàn)視頻穩(wěn)像。Liu等[3]通過引入內(nèi)容保護(hù)規(guī)整方法(content-preserving warps,IPW),在合成新視點(diǎn)圖像幀的基礎(chǔ)上,實(shí)現(xiàn)了基于完整三維結(jié)構(gòu)的視頻穩(wěn)像方法。雖然基于3D重構(gòu)的方法可以獲得精度很高的穩(wěn)像效果,但是由于3D重構(gòu)本身是一個(gè)病態(tài)的逆問題,加之采集的視頻存在低精度特征匹配、運(yùn)動(dòng)模糊、相機(jī)快速姿態(tài)變化以及焦距變化大等特點(diǎn),這使得3D重構(gòu)問題本身就存在精度不高及魯棒性差的問題。
2.5D穩(wěn)像方法是介于2D穩(wěn)像和3D穩(wěn)像之間的一種折衷方法。2.5D方法認(rèn)為,完整的3D結(jié)構(gòu)信息對(duì)于視頻穩(wěn)像來說是冗余的。因此,它將3D方法中對(duì)場(chǎng)景完整結(jié)構(gòu)信息的需求松弛為部分結(jié)構(gòu)信息,并采用對(duì)極幾何與特征跟蹤技術(shù)將相機(jī)運(yùn)動(dòng)信息表達(dá)為特征軌跡。Goldstein等[4]利用對(duì)極變換方法,在2.5D框架下實(shí)現(xiàn)了視頻穩(wěn)像,在一定程度上避免了脆弱的3D重建對(duì)穩(wěn)像的影響。Wang等[17]將每個(gè)軌跡表示為貝塞爾曲線,采用時(shí)空最優(yōu)化算法實(shí)現(xiàn)了軌跡平滑。Lee等[18]引入特征修剪技術(shù)來選擇魯棒的特征軌跡,并在此基礎(chǔ)上實(shí)現(xiàn)對(duì)運(yùn)動(dòng)軌跡的平滑。Liu等[3]通過擴(kuò)展子空間算法來處理立體視頻,但該方法的實(shí)用性仍受限于場(chǎng)景遮擋和長(zhǎng)特征軌跡(超過30幀)的獲取。
綜上所述,現(xiàn)有方法均能在一定程度上去除視頻抖動(dòng),但對(duì)劇烈抖動(dòng)、場(chǎng)景存在遮擋等復(fù)雜情況均無法獲得較好的穩(wěn)像結(jié)果。本文基于多視幾何理論,將相機(jī)陣列作為視頻采集平臺(tái),在普呂克坐標(biāo)系下對(duì)相機(jī)陣列的運(yùn)動(dòng)軌跡進(jìn)行估計(jì),進(jìn)而實(shí)現(xiàn)視頻的穩(wěn)像。本文的創(chuàng)新在于,提出了一種基于光線匹配的相機(jī)陣列運(yùn)動(dòng)軌跡估計(jì)方法,實(shí)現(xiàn)了對(duì)復(fù)雜場(chǎng)景結(jié)構(gòu)信息的獲取,為視頻穩(wěn)像提供了新的研究思路。
普呂克坐標(biāo)系是一個(gè)齊次坐標(biāo)系,與傳統(tǒng)的利用笛卡爾坐標(biāo)系表示直線的方法不同,用普呂克坐標(biāo)系描述直線可以在不使用無限大的情形下表示射影平面上的任意點(diǎn)[19]。在多視幾何中引用普呂克坐標(biāo)表示光線,可以消除對(duì)相機(jī)投影中心的依賴性。將相機(jī)陣列轉(zhuǎn)換到普呂克坐標(biāo)系下有兩個(gè)好處:①在普呂克坐標(biāo)系中描述光線,投影到均勻光場(chǎng)坐標(biāo)中的是一個(gè)線性映射;② 3D場(chǎng)景中的點(diǎn)可以在相鄰時(shí)刻的相機(jī)陣列中產(chǎn)生線性約束。
根據(jù)多視幾何理論,相機(jī)陣列的運(yùn)動(dòng)軌跡由一系列連續(xù)的相鄰時(shí)刻的相對(duì)運(yùn)動(dòng)組成,如圖2所示。其中,Rn、tn分別表示相機(jī)陣列從n時(shí)刻到n+1時(shí)刻的旋轉(zhuǎn)運(yùn)動(dòng)和平移運(yùn)動(dòng)。X′和X是同一場(chǎng)景點(diǎn)在兩個(gè)局部相機(jī)坐標(biāo)系中的坐標(biāo)。由于相機(jī)的旋轉(zhuǎn)和平移是相互獨(dú)立的,因此n時(shí)刻的相機(jī)路徑Cn可拆分為兩個(gè)部分:相機(jī)朝向CRn和相機(jī)位置Ctn。因此,相機(jī)路徑的估計(jì)表達(dá)式為:
(1)
圖2 相機(jī)陣列的運(yùn)動(dòng)軌跡Fig.2 Trajectory of the camera array
以對(duì)應(yīng)空間點(diǎn)的變換關(guān)系為基礎(chǔ)推導(dǎo)光線之間的線性關(guān)系。假設(shè)相鄰時(shí)刻的相機(jī)陣列存在旋轉(zhuǎn)矩陣R和平移矩陣t的相對(duì)運(yùn)動(dòng),則空間中給定的三維點(diǎn)在相鄰幀中的坐標(biāo)X和X′滿足如下關(guān)系:
X′=RX+t
(2)
在普呂克坐標(biāo)系下,空間點(diǎn)(X,X′)之間的關(guān)系可用光線對(duì)(l,l′)表達(dá),l=(q∶m)和l′=(q′∶m′),其中q表示光線方向,只與旋轉(zhuǎn)矩陣R有關(guān),q′=Rq,m表示直線的矩矢量,同時(shí)m=X×q:
(3)
因此,在普呂克坐標(biāo)系下,光線對(duì)的變換關(guān)系可寫成如下的矩陣形式:
(4)
式中:E=[t]×R是多視幾何理論框架下的本質(zhì)矩陣,是歸一化圖像坐標(biāo)下僅依賴于外參的基本矩陣;[·]×表示向量叉積。若n時(shí)刻和n+1時(shí)刻的相機(jī)陣列間存在Rn、tn的相對(duì)運(yùn)動(dòng),則n時(shí)刻光線集合Ln在n+1時(shí)刻的對(duì)應(yīng)光線Ln+1為:
(5)
在普呂克坐標(biāo)系下,兩條光線(q1∶m1)和(q2∶m2)相交可表示為:
(6)
因此根據(jù)式(5),可以得到兩個(gè)相機(jī)陣列關(guān)于Rn和tn的對(duì)極約束關(guān)系:
(7)
該約束方程建立了相機(jī)陣列之間的基于線匹配的相對(duì)運(yùn)動(dòng)約束關(guān)系。式(7)可改寫成線性方程的形式:
AEnvec(En)+ARnvec(Rn)=0
(8)
式中:vec(En)和vec(Rn)分別是En和Rn中所有分量的矢量表達(dá);AEn和ARn是由對(duì)應(yīng)約束集合產(chǎn)生的系數(shù)矩陣。
通過變換可消除變量En,得到只含參數(shù)Rn的線性方程:
(9)
[VD]=eig(MTM)
(10)
式中:eig(·)返回特征值的對(duì)角矩陣D和對(duì)應(yīng)的右特征向量為列的矩陣V。
當(dāng)M是非奇異矩陣時(shí),根據(jù)內(nèi)積的非負(fù)性可知MTM是一個(gè)正定矩陣,其特征值大于0。構(gòu)造正定矩陣的正定平方根:
(11)
當(dāng)M是奇異矩陣時(shí),MTM是一個(gè)對(duì)稱矩陣,其特征值與0的關(guān)系不定,特征值按先非0、后0的順序排列成對(duì)角矩陣D。用i表示非0特征值下標(biāo),1≤i<3,用j表示0特征值下標(biāo),j=i+1,從第j個(gè)特征值開始為0。構(gòu)造對(duì)稱矩陣的線性根:
(12)
因此,可以用式(13)從M中分解出旋轉(zhuǎn)矩陣Rn。
(13)
其中,±的選擇視情況而定,目的是保證M為奇異矩陣時(shí)分解得到的旋轉(zhuǎn)矩陣Rn的正交性。為滿足‖Rn‖=1約束,對(duì)Rn進(jìn)行歸一化操作:
Rn=Rn/det(Rn)
(14)
其中,det(·)用來求矩陣的模值。獲得旋轉(zhuǎn)矩陣Rn后,將其代入式(7)得到一個(gè)只與平移矩陣tn有關(guān)的線性方程,利用最小二乘法可以求解tn。利用上述方法,可以獲得所有時(shí)刻的旋轉(zhuǎn)矩陣和平移矩陣的線性解,進(jìn)而獲得相機(jī)陣列的運(yùn)動(dòng)軌跡。
本文的穩(wěn)像算法包含三個(gè)主要步驟:步驟一是本文提出的復(fù)雜場(chǎng)景長(zhǎng)軌跡生成方法;步驟二是利用最小曲率變化的路徑平滑方法[20]實(shí)現(xiàn)平滑路徑的生成;步驟三是利用單應(yīng)矩陣實(shí)現(xiàn)新視角視頻的生成。
輸入:n和n+1時(shí)刻相機(jī)陣列的視頻幀In、In+1;對(duì)應(yīng)的關(guān)聯(lián)光線集合L′n與L′n+1。
輸出:從n時(shí)刻到n+1時(shí)刻相機(jī)陣列的穩(wěn)定視頻幀I′n、I′n+1。
步驟一:
1) 從In、In+1中提取關(guān)聯(lián)光線集合L′n和L′n+1,執(zhí)行式(5)和(7)建立關(guān)于Rn、tn的對(duì)極約束關(guān)系;
3) 將Rn回代入式(7),得到關(guān)于tn的線性方程,利用線性求解方法求出tn的初始解;對(duì)于初始解Rn、tn,執(zhí)行非線性優(yōu)化操作,獲得相機(jī)陣列的原始運(yùn)動(dòng)軌跡CRn和Ctn。
步驟二:
利用最小曲率變化的路徑平滑方法構(gòu)造能量方程,從CRn和Ctn獲取相機(jī)陣列在平滑路徑上的朝向SRn和位置Stn。
步驟三:
利用3D稀疏點(diǎn)云與2D單應(yīng)融合的單應(yīng)矩陣方法,從平滑路徑生成新視點(diǎn)視頻幀,實(shí)現(xiàn)穩(wěn)像視頻I′n、I′n+1的生成。
本實(shí)驗(yàn)采用Windows 7平臺(tái),處理器Intel i7-8700,內(nèi)存8GB,Visostudio 2013。本文對(duì)比算法參考文獻(xiàn)[3]的Content-preserving warps(CPW)方法,該算法是3D穩(wěn)像方法中的代表方法,具有較好的穩(wěn)像效果。實(shí)驗(yàn)數(shù)據(jù)[16]均由相機(jī)陣列獲取。cooler 是一個(gè)具有顯著深度變化的靜態(tài)場(chǎng)景;juggle 是一個(gè)抖動(dòng)較小的遠(yuǎn)景動(dòng)態(tài)場(chǎng)景;crowd 是一個(gè)具有顯著相機(jī)抖動(dòng)的近景動(dòng)態(tài)場(chǎng)景。本文從定性觀察有無明顯扭曲變形和定量分析穩(wěn)定視頻幀的幀間變換保真度差異(difference of inter-frame transfor- mation fidelity,DITF)兩個(gè)方面,衡量生成視頻幀的質(zhì)量。幀間變換保真度差異定義為:
DITF(In)=|PSNR(In-1,In)-PSNR(In,In-1)|
(15)
式中:In-1、In、In+1分別表示生成的第n-1、n、n+1幀穩(wěn)定視頻幀;PSNR(In-1,In)為峰值信噪比,用來衡量幀間的相似度。利用峰值信噪比衡量視頻的幀間變化,涉及幀間運(yùn)動(dòng)和幀間圖像變化。當(dāng)連續(xù)兩幀間抖動(dòng)較大或者出現(xiàn)扭曲變形時(shí),幀間變化越大,DITF越高。
圖3~圖5給出了3種不同場(chǎng)景下本文算法和CPW算法的穩(wěn)定幀生成結(jié)果。
圖3 本文算法和CPW算法的穩(wěn)定幀生成結(jié)果對(duì)比(cooler)Fig.3 Comparison of the results by the proposed method and the CPW based on cooler
圖4 本文算法和CPW算法的穩(wěn)定幀生成結(jié)果對(duì)比(crowd)Fig.4 Comparison of the results by the proposed method and the CPW based on crowd
對(duì)比黃色和紅色框標(biāo)記的區(qū)域可以看出,CPW方法在cooler和crowd場(chǎng)景上均出現(xiàn)了明顯的扭曲,分別位于紅色框的柱子和黑板區(qū)域,原因在于柱子和黑板類似于光滑反光物體,其上的特征點(diǎn)數(shù)目較少甚至沒有特征點(diǎn)。無特征點(diǎn)的塊的單應(yīng)(即整體2D單應(yīng))與周圍有特征的塊的單應(yīng)差距較大,各自變換得到的塊并不能很好地拼接在一起,因此會(huì)出現(xiàn)明顯的變形。在juggle場(chǎng)景上,兩種算法均沒有明顯的扭曲變形,但對(duì)比圖中紅色和黃色邊框標(biāo)記的區(qū)域可以看出,CPW方法在天花板處有細(xì)微的扭曲。此外,CPW算法在圖5(a)、(c)上有輕微的凸起,在圖5 (b)、(d)上有輕微的凹陷,如圖5的第三行所示。出現(xiàn)這種細(xì)微扭曲的原因在于,天花板是一個(gè)整體平面區(qū)域,而CPW算法在分塊的過程中并未考慮其整體性,還是對(duì)其進(jìn)行分塊操作,使得各塊獨(dú)立按照各自的單應(yīng)做變換,雖然塊與塊間的單應(yīng)相差不大,但仍會(huì)導(dǎo)致天花板處塊與塊不能完美地拼接成一個(gè)平面,從而出現(xiàn)這種扭曲。這種扭曲在單個(gè)視頻幀上不易被肉眼察覺,但在動(dòng)態(tài)的視頻中會(huì)造成嚴(yán)重的視覺影響。
圖5 本文算法和CPW算法的穩(wěn)定幀生成結(jié)果對(duì)比(juggle)Fig.5 Comparison of the results by the proposed method and the CPW based on juggle
除了上述定性分析,本文還利用幀間變換保真度差異(DITF)對(duì)兩種算法生成的穩(wěn)定視頻進(jìn)行定量分析,如表1所示。
表1 兩種算法的平均幀間保真度差異(DITF)Tab.1 DITF of the two algorithms
可以看出對(duì)于3個(gè)場(chǎng)景,本文算法和CPW算法的DITF相對(duì)原始視頻均有所降低,但本文算法的DITF均比CPW低,這表明本文算法生成的穩(wěn)定視頻的幀間變換較小、穩(wěn)定度較高,說明本文算法效果更好。
最后,比較本文算法和CPW算法生成視頻幀所用的時(shí)間。表2給出了兩種算法在3個(gè)場(chǎng)景上平均每幀的生成時(shí)間。
表2 兩種算法的穩(wěn)定視頻幀生成時(shí)間對(duì)比Tab.2 Comparison of video frame generation time between two algorithms
由表2可以看出,本文算法比CPW算法快了8~9倍,且平均每幀的生成時(shí)間約為0.1 s,基本可以達(dá)到實(shí)時(shí)效果。
實(shí)驗(yàn)結(jié)果表明,本文提出的基于線約束的穩(wěn)像方法,無論是視覺效果還是量化的保真度差異,都優(yōu)于對(duì)比算法,同時(shí),本文算法的計(jì)算效率也明顯優(yōu)于對(duì)比算法。
本文以相機(jī)陣列作為數(shù)據(jù)采集平臺(tái),實(shí)現(xiàn)了基于光線匹配的相機(jī)陣列路徑生成,并在此基礎(chǔ)上使用基于最小曲率變化的路徑平滑方法和基于單應(yīng)矩陣的穩(wěn)定視頻幀生成方法,實(shí)現(xiàn)了快速高效的視頻穩(wěn)像。相較于傳統(tǒng)的基于單目視覺的方法,本文方法對(duì)于視頻劇烈抖動(dòng)、場(chǎng)景存在遮擋等復(fù)雜情況均能獲得較好的穩(wěn)像結(jié)果。后期研究會(huì)將相機(jī)陣列用于視頻模糊的去除,從而提升穩(wěn)像視頻的質(zhì)量。本文所提方法在電力行業(yè)的多傳感器無人機(jī)巡檢、搭載多相機(jī)的移動(dòng)消費(fèi)終端視頻質(zhì)量提升以及基于相機(jī)陣列的相關(guān)視覺應(yīng)用等領(lǐng)域具有廣闊的應(yīng)用前景。未來還需在系統(tǒng)輕量化、降低能耗和成本方面持續(xù)優(yōu)化。