楊 丹,陳 君,朱小勇
(1.中國科學院聲學研究所國家網(wǎng)絡新媒體工程技術研究中心,北京 100190; 2.中國科學院大學,北京 100049)
普通視頻拍攝的視場角度非常有限,難以在不降低視頻分辨率的前提下,獲取大視角及信息豐富的場景[1]。全景視頻是通過全景攝像機或多個攝像機陣列在同一視點拍攝得到的具有全方位場景信息且高清晰度的視頻,在沉浸式虛擬現(xiàn)實(VR)、廣域視頻監(jiān)控、無人駕駛、視頻會議等領域具有廣泛的應用[2]。
將多個同步視頻流拼接成單個全景視頻是以圖像拼接為基礎的[3],國內外對圖像拼接的研究已經相對成熟。然而,相較于圖像拼接,視頻拼接是一個更具有挑戰(zhàn)性的問題,尤其是在非理想的輸入環(huán)境下,譬如攝像機的光學中心不在同一位置、場景非平面、視場視角大以及相機抖動[4-5],這些情況都會造成視頻拼接的復雜性大大增加。傳統(tǒng)的視頻拼接要求輸入圖像盡可能滿足圖像拼接的理想條件,即圖像中場景只包含一個主平面,且圖像本身只存在旋轉差異[6]。在這種苛刻的條件下雖然拼接速率高,但是視場視角小,且將視角限制在了水平方向。而在配準視場視角大,且攝像機光學中心不在一個水平線上的大視差圖像時,由于三維場景之間的復雜交互作用,傳統(tǒng)的雙單應性矩陣模型[7]和平滑仿射變換模型[8]處理這種復雜場景時配準誤差會急劇上升,這往往會產生嚴重的扭曲效果。大視差場景需要使用多個局部的單應性矩陣對齊投影,算法復雜度高,逐幀拼接難以滿足視頻實時性要求。當前,研究人員已經在視頻拼接方面做了大量的工作,文獻[9-10]主要應用于剛性固定的攝像機組,該類方法需預先標定出攝像機組的幾何關系,基本能實現(xiàn)實時性,但是該類方法通常視場視角小,拍攝場景需要遠離攝像機并近似為一個平面才能達到較好的拼接效果,難以應用于實際視頻監(jiān)控、無人駕駛、視頻會議等場景中。文獻[11]以視頻穩(wěn)定為主,通過估計外部(攝像機之間)運動和內部(視頻中相鄰圖像幀之間)運動求解最佳虛擬2D攝像機路徑,并獲得沿虛擬路徑的放大視場。該方法有效地處理了大視差場景,但是算法復雜性仍然太高,對于分辨率為1280×720的2路視頻的拼接速度為2 fps,無法達到實時效果。文獻[12]提出了一種自適應背景建模和移動前景檢測的視頻拼接方法,有效抑制了動態(tài)前景造成的鬼影,并利用GPU硬件加速達到了實時效果,但是該方法需要利用強悍的硬件設備,難以得到推廣和使用。
本文設計的系統(tǒng)以2路視頻流作為輸入,攝像機之間的相對位置固定,利用ORB(Oriented FAST and Rotated BRIEF)[13]和基于移動DLT(Direct Linear Transformation)的APAP(As-Projective-As-Possible)[14]算法建立背景模型,并改進一種基于最小能量檢測的最優(yōu)接縫選擇方法,實時校準攝像機標定參數(shù),可以處理大視差場景下的視頻拼接并達到了較好的實時效果。
傳統(tǒng)的視頻拼接[15]是對視頻流進行逐幀拼接,為每一幀圖像計算單應性矩陣,拼接效果雖好,但是難以在處理大視差場景的同時滿足實時性的要求。為了解決上述問題,本文提出背景建模的方案,采用的方法是固定2路攝像頭的相對位置,首先進行初始化,獲取初始幀并進行背景建模計算,通過ORB特征檢測算法快速提取2幀圖像的特征點,再利用基于移動DLT的APAP算法建立大視差背景模型。接著改進一種基于最小能量檢測的方法尋找最優(yōu)接縫,找到接縫后將固定的圖像變形數(shù)據(jù)存入索引表,用于后續(xù)幀的“循環(huán)使用”,以避免重復計算。最后對圖像幀的重合區(qū)域進行加權融合。系統(tǒng)流程如圖1所示。
預先計算的查表方法的主要開銷在于第一幀圖像的處理,在第一幀圖像計算完成之后,即完成了背景建模,所得全局單應性矩陣、局部單應性矩陣以及接縫數(shù)據(jù)被保存至索引表,后續(xù)的視頻幀利用索引表中的參數(shù)進行投影變換,減少了傳統(tǒng)視頻拼接中大量的重復計算,滿足了高清圖像幀拼接的實時性要求。
圖1 系統(tǒng)整體流程
背景建模對于避免不穩(wěn)定的前景至關重要,拼接模型計算模塊的重點在于實現(xiàn)大視差場景下的圖像配準,對于相對位置固定的攝像機組,本文僅在拼接模型計算階段執(zhí)行配準。首先采用輸入視頻的第一幀,利用傳統(tǒng)ORB算法分別提取出初始2幅視頻圖像的特征點并將其匹配成對,再利用基于移動DLT的APAP算法完成圖像配準,該方法實現(xiàn)了大視差圖像的配準。拼接模型計算的具體步驟如下:
1)輸入?yún)⒖紙D像I1和待配準圖像I2。
2)利用ORB算法提取2幅圖像的特征點對。
3)利用DLT方法計算待配準圖像幀的全局單應性矩陣H。
4)將待配準的圖像幀分割成C1×C2個網(wǎng)格小塊,利用移動DLT算法對每個塊求解局部單應性矩陣H*。
5)根據(jù)局部單應性矩陣H*完成圖像配準。
6)采用最小能量檢測的方法搜索最優(yōu)接縫。
7)將全局單應性矩陣H、局部單應性矩陣H*以及最優(yōu)接縫數(shù)據(jù)傳入索引表。
拼接模型計算流程如圖2所示。
圖2 拼接模型計算流程
常見的特征提取算法有ORB、SIFT[16]以及SURF[17]等。其中ORB算法是對FAST(Features from Accelerated Segment Test)角點檢測算法與BRIEF(Binary Robust Independent Elementary Features)特征描述子的一種結合與改進[13],具有旋轉不變性和很好的抗噪能力,拼接速度上比SIFT算法快2個數(shù)量級,比SURF算法快1個數(shù)量級。在視頻拼接中,為了保證高效的拼接速率,本文將采用ORB算法提取2幅待配準圖像I1、I2的特征點對集合。
直接線性變化(DLT)是計算原始圖像與目標圖像之間映射關系的一種基礎算法,這種映射關系通常用單應性變換矩陣H表示,然而這種全局圖像變換的方法對于視差圖像配準效果不佳,易出現(xiàn)形狀扭曲和重影等情況[8]。移動DLT方法是在DLT[18]方法的基礎上進行改進,可以有效處理大視差場景。假設X=[xy]T,X′=[x′y′ ]T是原始圖像I和目標圖像I′中的點,首先根據(jù)DLT方法求取全局變換矩陣H如式(1)所示:
(1)
(2)
(3)
式(3)矩陣只有2行是線性無關的,令ai∈R2×9為式(3)的前2行,i代表第i個特征點對,則矩陣H的目標函數(shù)為:
(4)
(5)
wi*=exp(-‖X*-Xi‖2/σ2)
(6)
同時為了避免像素點遠離特征點區(qū)域時產生的權重系數(shù)接近于0的誤差,進行了規(guī)格化處理,取閾值γ為默認最小值,處理如下:
wi*=max(exp(-1‖X*-Xi‖2/σ2),γ),γ∈[0,1]
(7)
通過上述方法,可以求出圖像重疊區(qū)域中每個像素點的幾何變換模型,實現(xiàn)局部圖像的精確配準。然而在實際應用中,由于整幅圖像的像素點數(shù)量非常龐大,若每個像素點都與特征點進行距離計算,則算法復雜度會非常高,且鄰近的像素點的變換矩陣H*相似。為了簡化且避免不必要的計算,將圖像分為C1×C2的網(wǎng)格,取每個網(wǎng)格的中心像素點X*,將整幅圖像像素點單應性矩陣的求解過程簡化成求取C1×C2個網(wǎng)格的中心像素點的單應性矩陣,本文選取的網(wǎng)格規(guī)模為60×40。
接縫路徑是圖像重疊區(qū)域中像素形成的連續(xù)曲線,以連接成對的彎曲圖像[19]。雖然基于移動DLT的APAP算法具有視差魯棒性,但該算法僅應用于提取背景場景中的拼接模型計算階段,無法避免移動前景引起的鬼影和錯位,通過合理的接縫選擇,能較大程度地降低重影效果。常見的最優(yōu)接縫有2類約束條件:1)在顏色強度方面,拼接縫上的像素點的顏色差值應最?。?)在幾何結構方面,拼接縫像素點在2幅匹配圖像上的結構應最相似[20-21]。見下式:
Ec(X)=I1(X)-I2(X)
(8)
Eg(X)=‖I1(X)-I2(X) ‖2
(9)
其中,Ec表示接縫點X在2幅匹配圖像I1、I2重疊區(qū)域上的顏色差值,Eg表示接縫點X在重疊區(qū)域的梯度差,表示Sobel算子[22],其給出特定像素位置處的梯度信息。
本文在使用能量函數(shù)最小化的一般接縫尋找方法的基礎上,提出新的約束項,加強最優(yōu)接縫在結構上的相似性。通常,如圖3所示縫合2個圖像幀的時候將會產生2個交點XE、XS,它們分別代表接縫的起點和終點。如果重疊區(qū)域是平坦的,則接縫可以簡單地確定為連接XE和XS的直線,即最短接縫線。因此,更靠近最短接縫線的像素被分配較低的能量成本,得到了新的交叉距離約束項:
(10)
(11)
其中,{λi}i=1,…,3分別表示3個約束項的權重,λ1+λ2+λ3=1。實驗中,λ1、λ2、λ3分別被選取為0.4、0.4和0.2。
圖3 交叉距離約束項參考圖
由于不同角度相機的采光不同,拼接圖片之間存在色差和灰度差。若直接對圖像進行覆蓋,可能會導致明顯的接縫,需要對圖像重疊區(qū)域進行圖像融合使拼接區(qū)域過渡自然,無明顯接縫[23]。本文采用傳統(tǒng)的加權圖像融合方式[24],引入加權因子ω1和ω2,原理如公式(12)所示:
(12)
其中,I(x,y)為融合后的圖像,I1(x,y)和I2(x,y)為2幅拼接的圖像,ω1+ω2=1,ω1,ω2∈(0,1)。假設圖像重疊區(qū)域的寬度為d,d1表示I1(x,y)到重疊區(qū)域左邊界的距離,d2表示I2(x,y)到重疊區(qū)域右邊界的距離,d=d1+d2,則ω1=d1/d,ω2=d2/d。這種漸入漸出的融合方式可以使得圖像的過渡更自然。
本文輸入設備為2個Logitech C902e攝像機。由于室外場景多為遠景,遠景近似為一個平面可忽略視差帶來的影響,室內環(huán)境更為復雜,故本文選擇的實驗場景為高度3.5 m的開放式室內環(huán)境。實驗測試平臺為VS2015,CPU為Intel Core i7-7700HQ 2.8 GHz,內存為8 GB。圖4為視頻拼接結果的若干幀展示圖。從圖4可以看出視頻拼接結果基本沒有重影,圖像重疊處無明顯接縫,且攝像頭之間進行了良好的光照補償。
(a) 第200幀拼接結果
(d)第350幀拼接結果
(e) 第400幀拼接結果
(f) 第450幀拼接結果
此外,為驗證本文方法在大視差場景下拼接的有效性,將本文拼接算法同SPHP[25]方法(算法1)以及文獻[26]提出的基于網(wǎng)格優(yōu)化的大視差圖像拼接方法(算法2)進行對比。圖5展示了單幀圖像的拼接結果,從圖5可以看出,在處理大視差圖像時,算法1出現(xiàn)了馬賽克、偽影現(xiàn)象和較為明顯的接縫,算法2頂部網(wǎng)格線出現(xiàn)較明顯的偽影現(xiàn)象,而本文方法自然感觀較好,有效地處理了大視差圖像。
(a) 參考圖像
(b) 待匹配圖像
(c) 算法1
(d) 算法2
(e) 本文方法
通常在線視頻播放每秒不會低于20幀,這就意味著實時視頻拼接系統(tǒng)速度至少要達到20 fps。為了驗證本系統(tǒng)視頻拼接的實時性,分別對1920×1080、1280×720、960×720、640×360這4種分辨率的輸入視頻流進行實驗,忽略初始化的時間開銷,統(tǒng)計1200幀圖像的平均拼接時間,實驗結果如表1所示。從表1可以看出,2路視頻的幀率達到23 fps~133 fps,基本滿足了視頻拼接實時性的要求。
表1 不同分辨率下的拼接速度對比
本文實現(xiàn)了一種大視差場景下的實時視頻拼接系統(tǒng)。根據(jù)固定攝像機之間的相對位置這一先驗條件,利用ORB算法和基于移動DLT的APAP算法進行圖像配準,且結合所改進的最優(yōu)接縫選擇的計算方法,預計算出了拼接模型,最后采用加權融合的方法進行融合。實驗結果表明,本系統(tǒng)能較好地處理大視差拼接場景且具有良好的實時性,具有一定的實際應用價值。