楊 濤,羅健欣,金鳳林
(中國人民解放軍陸軍工程大學 指揮控制工程學院,江蘇 南京 210007)
隨著數碼相機與攝像頭的普及并應用于手機、無人機等各種移動平臺,移動場景下拍攝的視頻成為了網絡中最活躍的媒體形式之一。然而移動平臺下捕捉的視頻通常會在人們所預期的運動之上存在一定程度的抖動甚至旋轉變形,這就需要人為對相機的運動進行區分和過濾,數字視頻穩像[1](Digital Video Stablization,DVS) 就是完成這樣的工作。相機運動估計[2]是視頻穩像中的一個基礎環節,完成對相機運動路徑的估計之后就可以通過濾波、曲線擬合等方式對其進行運動補償,最后進行適當的圖像修補和變形,從而達到視頻穩像的效果。
相機運動估計在選定的相機模型下,根據視頻幀序列重疊區域之間的變換來估計相機運動姿態。根據使用的變換模型不同,可以將相機運動估計的方法大致分為四種:傳統2D相機運動估計方法、3D相機運動估計方法、傳感器輔助運動估計方法、新興2D相機運動估計方法[2]。傳統的2D相機運動估計通常使用單個仿射矩陣或者單應性矩陣來建模相鄰幀間的相機運動,計算簡單,算法魯棒性較好。典型的方法有基于像素點的塊匹配法[3]、光流法[4-5]、相位相關法[6-8]和基于特征點的方法[9]。但是傳統的2D方法一方面忽略了相機的空間運動信息,另一方面對于圖像各局部景物深度不一樣的情況,單一的矩陣難以處理視差問題。3D相機運動估計最常用的傳統方法是運動恢復結構(Structure From Motion,SFM)[10],該算法從2D視頻幀序列中恢復出相應的3D運動信息。應用該算法比較經典的例子是2009年LIU F等人提出的CPW方案[11],該方案首先使用SFM算法恢復相機的原始運動以及3D場景點云,而后使用3D點云和參考幀圖像進行運動平滑和圖像變形修復。在修復過程中,使用了內容保持的圖像變形技術。然而,SFM技術依然面臨著重建條件不足和計算效率低的問題[12]。傳感器輔助運動估計則使用陀螺儀、加速度傳感器等建立相機旋轉運動模型,簡化了運動估計,然而從實質上它們依然屬于2D解決方案,無法避免視差問題。LIU等人[13]通過引入深度攝像頭,將深度圖像與原圖像結合進行3D運動估計,但是深度攝像頭成本較高;新興的2D相機運動估計則試圖利用2D的方法在一定程度上解決視差問題,在無需三維重建的情況下得到接近3D的運動估計效果。文獻[2]將此類方法分為特征軌跡法和多路徑算法。特征軌跡法的代表是LIU F等人提出的Subspace[14]方法,而多路徑方案則是將“As Similar As Possible”[15]的思路引入到相機運動估計中,提出一種多重的、時空可變的網格變形模型,使圖像的不同網格可以有獨立的運動路徑。本文正是在此基礎上添加直線保持約束進行改進的新興2D方法。
本文使用網格變形模型來表示連續圖像幀之間的運動,不同于傳統單個2D線性變換模型,網格化表示相機路徑具有更強的建模能力[16]。算法在原內容保持變形CPW算法的基礎上,提出了具有直線約束的相機運動估計方法。算法流程如圖1所示。

圖1 算法流程


圖2 全局相機路徑表示

(1)



圖3 特征點保持約束

(2)

(3)

按照LIU S等人的方法,相似性保持項用來衡量變形后的每個網格與原網格的相似程度。具體而言,在幀Ft中,將每個網格分成兩個三角形,三角形中的每一個頂點都可以由另外兩個頂點所形成的向量和與該向量垂直的向量為基底形成的坐標系來表示。以v1為例,可以通過等式(4)表示。
v1-v2=u(v2-v3)+vR90(v2-v3)
(4)
由(4)可得:
v1=v2+u(v2-v3)+vR90(v2-v3)
(5)


圖4 v1的坐標


(6)

(1)四個網格頂點,如圖5(a)所示;
(2)網格邊緣除頂點外的點,如圖5(b)所示;
(3)內部網格線交點,如圖5(c)所示。

圖5 v1所處位置及三角形劃分
在實驗中,圖5(a)、(b)、(c)中的v1將分別受到2、4、8個三角形的相似性約束。
特征點約束和相似性約束均是在單網格內對網格的變形加以約束,并且沒有考慮圖像中的具體紋理。通常認為,人眼對直線結構是較為敏感的。對于這樣的直線結構,如果在網格變形的過程中發生較大程度的扭曲或挫切,會直接影響視覺效果。此外,圖像中長度較長的直線結構會存在跨越多個網格的情況。因此考慮在特征點約束和相似性約束的基礎上,增加直線保持約束。首先運用GIOI G R V等人[20]提出的LSD(Line Segment Detector)方法對前一幀圖像進行直線提取,如圖6所示。

圖6 直線提取示例
考慮到時間連續性問題,對一些長度較短的直線進行剔除,只保留長度大于網格寬度和高度的直線。而后將提取的線段平均切分為N段,N+1個子線段端點為p0,p1,…,pj,…,pN,其中p0和pN分別代表原直線的兩個端點。在實驗中,選取N=5,端點pj可由兩端點表示為:
(7)
同時pj也可由所在網格的四個頂點Vj雙線插值表示。因此,式(7)可如下轉換:

(8)
類似于前兩項約束,直線保持約束可定義為:
(9)
其中l代表檢測出的所有符合條件的直線。

對于α2,認為在1.4節中對直線的長度加以限制后,篩選出的直線條數應當影響直線保持約束的權值。直線條數越多,越需要增大α2加強直線保持約束以避免直線扭曲和挫切。
由于式(1)中三個約束均為二次項,因此可以通過稀疏線性系統求解最小化。具體地,將待求解的變形后的網格頂點的像素坐標按順序編號表示成向量X:
X=[x1,y1,x2,y2,…,xi,yi,…,xn,yn]T
(10)

X=A
(11)

(12)

按照1.1節中所述,可以將相機的全局運動定義為隨空間變化的各網格的運動路徑的集合,如圖7所示。假設Ci(t)表示在t時刻網格單元i處的相機位姿,單個網格所表示的局部相機路徑可表示為:
Ci(t)=Ci(t-1)Hi(t-1)
=Hi(0)Hi(1)…Hi(t-1),
1≤t≤T,1≤i≤n×m
(13)
其中,T為總幀數,n×m為網格總數,且Ci(0)定義為單位矩陣。至此,增加直線約束的相機運動估計完成。后續可以在此基礎上完成各網格相機路徑的平滑,并通過原始路徑向平滑后路徑的重投影對視頻進行穩像。

圖7 全局相機路徑
首先,為了更直觀地驗證直線保持約束的有效性,在估計出t時刻到t+1時刻的相機運動之后,將t時刻的幀Ft逐網格重投影到估計出的相機位姿上,即從Ft+1的拍攝視角重建Ft,從直觀上比較兩種網格變形模型的效果。實驗視頻幀選用LIU S等人提供的網格變形模型的demo中直線結構較為明顯的兩對相鄰幀,如表1所示,分辨率為640×360。

表1 選用的相鄰幀
經過原算法的變形之后的Ft如圖8所示。

圖8 原算法變形效果
可以觀察到,在黑色粗方框的位置存在明顯的直線扭曲,經放大后更加清晰,如圖9所示。

圖9 扭曲細節放大
在保持α=1等參數相同的情況下,增加了直線保持約束之后,直線扭曲得到了明顯的改善,如圖10所示。

圖10 改進算法變形效果
將之前發生扭曲的部分細節放大,觀察改善之后的效果,如圖11所示。

圖11 改進后細節放大
其次,分析相似性約束的權重α1是如何調節整體的變形的。對同一幀在其他參數不變的情況下,取不同的α1值進行圖像變形,不同效果如圖12所示。

圖12 不同α1變形效果
通過觀察可以發現,如1.1節中所述,α1可以用來整體調節變形的剛性。具體而言,α1值越大,變形越趨于剛性,受特征點約束越弱,網格頂點越趨向于保持原來的位置,運動越簡單,越體現出相似性保持的作用。


表2 實驗數據幀

表3 與原算法對比結果
通過實驗可以發現,將幀重投影到估計的相機運動位姿上,增加了直線結構保持約束的網格變形方法得到的圖像對于目標位置幀的PSNR值和SSIM值比增加直線約束之前都有小幅度的提升。更重要的是,在直觀的視覺感受上,保持了人眼較為敏感的直線結構不變形,提升了主觀視覺質量。
本文在原內容保持變形CPW算法的網格變形模型基礎上添加了對圖像中的直線結構進行保護的直線保持約束。通過稀疏線性系統求解,對相鄰幀的各個網格的相機運動進行獨立的估計。實驗證明,在根據算法估計出的運動路徑對圖像變形時,較好地保護了圖像中的直線結構,從直觀上提升了圖像變形的視覺效果。后續可以基于本文的網格變形模型估計的相機運動路徑,進行路徑平滑和圖像重投影,從而提升視頻穩像和視頻拼接的效果。