徐鑫偉,蘭太吉,薛旭成,吳夢飛
(1.中國科學院長春光學精密機械與物理研究所,吉林 長春 130033;2.中國科學院大學,北京 100049)
視頻穩定是業余和專業視頻拍攝的共同需求。在業余方面,特定的視頻穩定設備通常是十分昂貴的,而隨著以手機為主的手持式攝像機的普及,業余用戶每天拍攝出來的視頻占比越來越大,不具有穩定器的攝像設備在拍攝過程中經常會受到高頻抖動的干擾,導致拍攝的視頻帶有比較明顯的抖動,視覺質量大幅降低。將帶有抖動的視頻重新穩定下來是一項非常有意義的研究[1]。
電子穩像技術以僅需要計算、無需額外設備就能達到穩像效果的優勢成為了當今主流的穩像方法。一些傳統電子穩像方法[2-3]需要提取特征軌跡或使用光流法估計攝像機的運動,然后對其進行平滑以實現穩定,最后根據固定網格計算出一個全局單應矩陣或幾個同形矩陣以將晃動的幀重新翹曲成穩定的幀。由于相機運動而產生的視差和深度的變化,使得這些傳統方法難以產生穩定的視頻。此外,這些方法通常依賴特征點的提取,魯棒性較差,并在處理低質量視頻(如夜景視頻、模糊視頻、有水印的視頻和帶有噪聲的視頻)時可能會穩像失敗。
近年來,卷積神經網絡(Convolutional Neural Networks,CNN)在計算機視覺任務上取得了巨大的成功,比如圖像識別[4]、目標檢測[5]和分割[6]。特別是一些傳統的視頻處理問題已經可以用深度神經網絡重新解決,如圖像去噪去模糊[7]、圖像效果增強[8]等。通過創建一個實際的數據集在構建好的神經網絡上面進行訓練,CNN也可以實現視頻穩定的效果。
Wang等[9]設計了一種用于多網格翹曲變換學習的網絡,該網絡能夠獲得與傳統方法相當的性能,并且對低質量的視頻更具魯棒性。Xu等[10]設計了一種對抗性網絡,用來估計一個仿射矩陣,通過仿射矩陣可以生成穩定的幀。然而,這些方法在固定網格的基礎上估計一個或一組仿射矩陣,對于不同深度變化的場景不夠靈活和準確。與傳統的穩定方法相比,基于CNN的穩定方法具有更強的魯棒性,因為它能夠很好地提取高維抽象特征,而不是依賴于特征點提取和匹配,特征點提取和匹配的準確性很大程度上取決于視頻的質量。在基于仿射變換或基于網格變換方面,它們與傳統的方法非常相似,在強視差、深度變化以及有遮擋的情況下,這些方法是非常脆弱的,很容易把視頻幀像素翹曲到錯誤的位置。
Zhao等[11]提出了一種新的名為PWStableNet的CNN來消除各種不穩定視頻的抖動,其學習的對象是為每個不穩定幀像素提供理想位置的像素翹曲場,通過像素翹曲場,可以將抖動視頻幀中的每個像素轉換到穩定位置。與傳統方法的每幀估計一個單應性變換或基于固定網格估計幾個單應的變換方法相比,像素翹曲場為每個像素提供翹曲方向。每幀計算2個像素翹曲場分別代表像素橫向翹曲方向和縱向翹曲方向,可以為穩定視圖中的每個像素提供理想的單獨位置,一旦某個位置發生了計算錯誤,對整體的影響很小,所以對退化模糊的圖像具有很強的魯棒性并且可以很好地處理視差,也可以處理不同對象之間的不連續深度變化。該網絡能夠有效處理各種低質量、高深度的抖動視頻,是當前魯棒性最好的深度學習穩像方法,同時對比其他的深度學習方法在運算速度上有所提升。
PWStableNet在處理有噪聲、有模糊、帶水印和大深度等低質量抖動視頻有魯棒性和通用性很強的優點,但該網絡也存在缺乏有效局部運動抑制,易產生過度翹曲,造成局部失真的問題。本文針對此處進行改進創新,在訓練過程中以損失函數的形式對生成的像素翹曲矩陣在空間上添加頻域損失計算來抑制高頻成分的出現,并利用MeshFlow網格流模型[12]對局部區域運動劇烈程度進行評估,添加局部運動損失阻止過度運動。實驗測試結果表明,改進后的PWStableNet能夠有效抑制局部失真并且在峰值信噪比(Peak Signal to Noise Ratio,PSNR)、幀間結構相似度(Structural Similarity Index,SSIM)和穩定度(Stability)等客觀指標上有所提升。
PWStableNet的基本結構如圖1所示,網絡結構的輸入是給定的一組共2w+1張連續、不穩定的視頻幀,主體部分是一個多級級聯的編碼解碼卷積網絡用來估計幀間運動的抖動,網絡輸出一個像素級的翹曲場,該翹曲場由2個翹曲矩陣組成,指示了穩定幀每個像素應該由哪個不穩定幀像素移動而來。通過這些翹曲場,可以將抖動幀中的像素轉換到新的位置組成穩定幀。與以往基于固定網格估計單應矩陣或少量同形矩陣的方法相比,PWStableNet提出的像素級翹曲場可以為穩定視圖中的每個像素提供合適的單獨位置,并能很好地處理不同物體之間的視差甚至不連續的深度變化。

圖1 PWStableNet的基本結構
神經網絡輸入需要足夠量的信息,要想將一幀圖像穩定下來需要用到相鄰視頻幀的信息,因此網絡以待穩定幀前后w幀作為輸入。如圖1所示,待穩定幀為第T幀,網絡輸入是t-w~t+w幀,共2w+1幀。輸入幀圖像半徑w的大小決定信息量的大小,會對穩定效果和處理速度產生一定的影響。
像素翹曲場是與圖片像素寬、高相同,通道數為2的一組矩陣,用來映射穩定幀和不穩定幀之間的關系。像素翹曲場的映射關系如圖2所示。

圖2 像素翹曲場的映射關系


神經網絡主體結構如圖3所示,可以看到有三級級聯的網絡結構,每級結構相似,主要是編碼器-解碼器框架,類似于U-Net[13]的結構。以單一級結構來看,其編碼器由若干個抽象層組成,這些抽象層能夠提取大大小小的特征信息,在較深的層上有較多的通道。它的解碼器由與編碼器對應的信道編號相同、大小相同的反卷積層組成,并通過跳躍連接與對應的反卷積層相連接。以級間結構來看,每級結構都與相鄰的級自上而下保持連接,意義在于當前級的各層能夠學習其前一級的剩余特征,在更細節位置得到更精確的估計。每級結構都輸出一個翹曲場Tn(n表示級序數),這些學習了更多圖像細節的翹曲場相疊加得到該幀最終輸出的翹曲場T。

圖3 神經網絡主體結構
在性能測試時發現,原生的PWStableNet網絡模型生成的視頻整體上穩定,但是偶爾在局部會產生不穩定區域,出現不正常的扭曲失真,經過分析并查閱文獻后發現了導致該問題的一部分原因。像素級翹曲矩陣為每個像素安排位置,擁有極高的自由度,但是原網絡對像素自由運動只做了簡單的幀間均方差進行約束,缺乏更加直接有效的約束來防止過量運動。其后果就是輸出的翹曲場很容易發生個別像素點的誤匹配,把像素移動到過遠或過近的位置,增加了輸出圖像的噪聲,一定區域內誤匹配數量過多則會局部圖像失真,降低生成的穩定圖像的質量。
在查閱相關文獻后,受到基于光流的視頻穩定神經網絡[14]的啟發,在網絡訓練過程中采用對生成的翹曲矩陣加強空間平滑度的方式,來抑制局部失真和減少噪聲。加強空間平滑度的方法常見的有總變分約束和Yu等[15]提出的線性翹曲場約束。然而,這2種方法存在著一定的局限性,總變分約束對局部噪聲的抑制作用較強,而對畸變的抑制作用較弱;線性翹曲場約束難以控制,因為強約束限制了像素級翹曲場處理大規模非線性運動的靈活性,而弱約束不能很好地抑制局部形變[14]。因此,加強翹曲場空間平滑度的方法應該滿足以下3個條件:一是能保證像素級翹曲矩陣的處理抖動視頻幀的靈活性;二是能抑制輸出圖像的局部形變;三是能減弱輸出圖像的整體和局部噪聲。在頻域利用傅里葉譜約束的方法能夠同時滿足以上條件,適合作為加強翹曲場空間平滑度的方法。
具體實現方法是在訓練過程中對翹曲場中的每個翹曲場進行傅里葉變換得到其頻譜,再對頻譜進行加權運算得到新的頻譜,新頻譜的L2范數就作為此幀翹曲場頻域損失函數的值,計算公式為:
(1)

(2)


圖4 倒置高斯加權函
頻域約束是通過對翹曲矩陣進行整體性約束來抑制局部失真的發生,屬于間接方法,圖像的局部失真程度可以采用更為直接的方式進行評估。Liu提出的MeshFlow模型[12]和SteadyFlow模型[16]都能很好地檢測局部區域內的幀間移動。MeshFlow模型基于KLT稀疏光流特征匹配[17],SteadyFlow模型基于稠密光流,二者效果上相似,但是MeshFlow計算復雜度遠低于SteadyFlow。為了提升計算效率加快運行速度,本文采用MeshFlow模型來計算局部區域的幀間運動,評估局部區域不穩定程度。


(a)相鄰圖像的一對特征點
所有匹配的特征都會將它們的運動傳播到附近的網格頂點,每個網格頂點會接收多個來自不同特征點的運動矢量。因此需要篩選出其中一個來代表此頂點運動矢量。中值濾波器經常用于光流估計,并被視為高質量流估計的訣竅[18]。這里借用了該研究的稀疏運動規則化的類似思想,采用中值濾波篩選出代表頂點區域的運動矢量。所有帶有運動矢量的網格頂點組成了一個稀疏運動場,表示了幀間的運動情況。
網格運動矢量分解如圖6所示,每個網格頂點運動矢量一般可以分解為2個部分:一個是表示整個幀全局運動的全局矢量;另一個是表示局部細節自由運動的局部自由矢量。

圖6 網格運動矢量分解
目的是計算出局部區域的不穩定程度,全局矢量與局部區域不穩定度無關,應該采用代表局部自由運動的局部自由矢量來衡量局部運動劇烈程度。局部自由矢量可以由網格矢量與全局矢量相減得到,因此需要計算出全局矢量。前面提到MeshFlow模型的特征點由KLT光流特征匹配[17]生成,可以借鑒傳統方法利用這些特征點計算出全局仿射變換,把網格頂點坐標帶入到仿射變換模型中得到新網格頂點的位置:
(3)
式中,[X′,Y′]表示仿射變換后的網格頂點坐標;[X,Y]表示仿射變換前網格頂點的坐標;m11,m12,m21,m22,b1,b2均為全局仿射變換的參數。全局矢量則定義為:
(4)
在訓練過程中根據網絡輸出的翹曲場T生成一個穩定幀,這個穩定幀與上一個穩定幀組成相鄰幀,構建出MeshFlow網格模型并計算所有網格頂點的局部自由矢量。用這些局部自由矢量組成的稀疏運動場的L2范數來衡量此幀局部區域運動的劇烈程度,一個視頻所有幀局部損失相加作為該視頻的損失函數:
(5)
式中,t表示幀序數;Lt,m為該幀的局部運動損失;N表示一幀網格頂點數量;n表示網格頂點序數;Mt,n,g表示第n個根據特征點直接求出的網格頂點矢量;Mt,d為根據仿射變換求出的全局矢量。
在公開數據集DeepStab[9]上進行訓練,該數據集共有61對穩定、不穩定視頻數據,數據集中的穩定視頻稱為真穩定視頻,以45對視頻作為訓練集,8對視頻作為驗證集,8對視頻作為測試集。網絡模型學習率采用階梯式下降的方法,初始狀態學習率為0.01,之后每經過10輪,學習率下降10倍。本文所有實驗數據結果均在同一硬件平臺上運行,CPU型號為Intel i9-12900k,GPU型號為Nvidia RTX-3090,在此平臺上進行測試輸出視頻的平均幀率為79幀/秒,能夠達到拍攝視頻實時處理的需求。
本文的改進之處在于引入了更多的約束來改善PWStableNet易發生局部失真的缺點,卷積網絡結構未發生改變,處理低質量視頻的優秀能力得以保留,同樣具有很強的魯棒性。
用肉眼難以直接察覺到穩定后視頻微小的局部運動,但是可以通過幀間差分圖像來實現局部運動可視化。網絡改進前、網絡改進后和真穩定視頻的幀間差分圖如圖7所示,白色區域表示了相鄰幀之間發生了運動的物體的基本輪廓,白色區域的密集程度能夠反映幀間運動的劇烈程度。由圖7可以看出,改進后白色區域的密集程度接近于真穩定視頻,明顯低于改進前,說明改進后的局部運動受到了抑制,減少了局部失真發生的可能性,主觀效果優于改進前。本文改進后在局部區域運動上更符合穩定視頻的要求。

(a)改進前幀間差分
一般電子穩像方法輸出的幀邊界會有一部分無信息區域,處理這些區域的方法通常是直接裁剪,為了方便比較,把所有方法輸出的視頻都裁剪到一個公共區域。為了評估,改進了網絡的有效性,除了損失函數組成不同,網絡結構以及其他超參數均保持一致。本文改進后的穩像網絡除了與改進前網絡進行對比,還與原不穩定視頻和基于光流特征匹配的傳統方法[2]進行對比,共4組對照數據。測試對象為數據集DeepStab[9]上的8個不穩定視頻,根據視頻內容的特征分為“常規”“運動”“低照度”和“視差”4種類型,對應攝像機在日常使用過程中經常遇到的情況。為了定量比較提出的網絡和以前的方法,計算了3個客觀指標:PSNR,SSIM和穩定度,下面簡要地說明這3個指標。
① PSNR:能夠反映穩定后視頻圖像結構信息的完整程度,其值越高,表示受到噪聲影響越小,穩定后圖像質量越高,失真程度越小[19]。
② SSIM:能夠衡量相鄰兩幀之間圖像相似程度,一般認為穩定的視頻相鄰幀之間結構是相似的,幀間結構相似度越高說明視頻越穩定。
③ 穩定度:用于衡量視頻的穩定程度,一般認為穩定的視頻內的運動緩慢的低頻成分占比較大,穩定度計算了視頻內的低頻成分所占的比例。計算方法采用與文獻[10]相同的方法,將每個幀分割成4×4個網格,記錄每個網格頂點經過所有幀的歷史路徑,并將每個頂點路徑視為一維時域信號進行頻域分析。每個頂點的穩定度計算為最低頻率分量(除去直流分量,第2~6低的頻率)在全頻率的占比。該視頻的穩定度的值為計算所有網格頂點穩定度的平均值。
客觀指標對比結果如圖8所示,第1,2號視頻對應“常規”類型;第3,4號視頻對應“運動”類型;第5,6號視頻對應“低照度”類型;第7,8號視頻對應“視差”類型,相同類型的視頻指標數據相近。從PSNR指標上進行分析,改進后的網絡與改進前性能持平,二者均高于傳統方法;從SSIM指標上進行分析,本文方法性能略高于傳統方法與改進前網絡;從穩定度上進行分析,不同類型的視頻上呈現出不同的結果。在“常規”類型的視頻中,本文方法性能略高于傳統方法和改進前網絡;在“運動”類型的視頻中,3種方法性能接近;在“低照度”和“視差”類型中,傳統方法數據指標高于2種基于神經網絡的方法,其原因就在于傳統方法處理這2種類型的視頻時穩像失敗,生成了含有大量空白區域的幀,空白區域網格頂點的運動矢量為零導致了穩定度異常提高。總體上看,本文改進后網絡的客觀評價指標更好。

(a)測試視頻編號及類型
本文方法是基于PWStableNet改進而來,與改進前網絡相對比進行針對性的分析是評判改進有效性的重要內容。數據內容為有效穩像占比,如表1所示,用于衡量穩像方法的有效程度,以不穩定視頻指標到真穩定視頻指標之差為尺度1,以不穩定視頻指標到穩像方法指標為有效穩像,即:
(6)
式中,R為有效穩像占比;Ho為穩像方法的指標;Hu為不穩定視頻的指標;Hs為真穩定視頻的指標。
表1對比了網絡改進前后輸出的結果在不同視頻的3個指標上的具體數據。由表1中數據可以看出,提升的指標(加粗的數值)占多數約71%,以平均值來看,3種指標均有不同程度的提升,總的提升均值為7.73%。這些客觀評價指標說明了在引入2個新約束后的PWStableNet網絡在綜合性能上優于改進前。

表1 改進前后有效穩像對比
本文對現有的視頻穩像網絡PWStableNet進行改進,解決改進前網絡易發生局部失真的問題。對卷積網絡引入了2個新的約束:像素翹曲場的頻域約束和局部自由運動矢量的約束,來減少穩定視頻在局部區域的多余運動,抑制局部失真,生成更穩定的視頻。這2種約束的優點在于以直接和間接2種方式進行評估,更加細致、全面地計算出局部自由運動大小。經過實驗對比驗證,本文改進后的網絡生成的視頻在幀間差分具有更好的效果,同時在PSNR,SSIM和穩定度等客觀性能指標上較其他算法更優。隨后的研究重點內容將集中在優化網絡結構、提升計算效率上,以獲得更好的運算速度和穩像效果。