李德財,嚴 群,2*,姚劍敏,2,林志賢,董澤宇
(1.福州大學 物理與信息工程學院, 福建 福州 350108;2.晉江市博感電子科技有限公司, 福建 晉江 362200)
視頻修復旨在用視頻中時空相關的內容來填充視頻序列中的缺失區(qū)域[1]。高質量的視頻修復對損壞的視頻修復[2-3],未損壞的對象移除[4-5],視頻重新定向[6]和曝光不足或過度的視頻修復[7]等任務具有重要意義。高質量的視頻修復仍然面臨著許多挑戰(zhàn),例如缺乏對視頻的高度理解[8]和高度的計算復雜性。大多數(shù)現(xiàn)有的視頻修復算法[9-14]遵循傳統(tǒng)的圖像修復方式,通過將問題公式化為基于塊拼接的優(yōu)化任務,通過采樣空間或空間-時間匹配來解決已知區(qū)域的最小化問題。盡管有一些好的修復結果,但這些方法不能處理復雜運動的情況,且計算復雜度較高。
隨著深度卷積神經(jīng)網(wǎng)絡的發(fā)展,深度視頻修復取得了重大進展。其中使用3D卷積和遞歸網(wǎng)絡進行視頻修復[15-16]越來越受到人們的關注。文獻[6]采用循環(huán)網(wǎng)絡來確保時間的一致性。文獻[16]首次提出將3D和2D全卷積網(wǎng)絡相結合來學習視頻的時間信息和空間細節(jié)。Xu等人[17-18]通過聯(lián)合估計空間特征和光流來提高性能。Chang等人提出了用于自由形式視頻修復的時態(tài)SN-PatchGAN[19]和時態(tài)移位模塊[20]。于冰等人[21]提出基于時空特征的生成對抗網(wǎng)絡進行視頻修復。這些方法通常會從附近的幀中收集信息來填充丟失的區(qū)域,但由于有限的時間感受野,在每一幀上直接應用圖像修復算法會導致時間偽影和抖動。為解決上述挑戰(zhàn),目前最先進的方法是應用注意力模塊來捕捉長距離幀的對應關系,從而可以使用來自遠處幀的內容來填充目標幀中的缺失區(qū)域[22-23]。文獻[22]是通過對視頻幀進行加權求和來合成缺失的內容,并進行逐幀關注。文獻[23]通過逐像素的關注,從邊界向內逐漸填充具有相似像素的缺失區(qū)域。雖然有較好的修復結果,但由于視頻中復雜的運動會引起明顯的外觀變化,導致修復幀的匹配效果較差,無法對復雜的空間信息進行合理匹配。此外由于沒有對復雜的時間信息處理模塊進行針對性優(yōu)化,而是對所有視頻進行逐幀處理,導致修復結果的時間一致性較差,而且需要較大的計算量和較長的處理時間。
針對上述問題,該文提出了一種基于殘差網(wǎng)絡[24]的卷積注意力網(wǎng)絡(RCAN)用以視頻修復。該網(wǎng)絡以視頻所有幀作為輸入,使用自注意力機制和全局注意力機制[25]來提取所有幀的時空特征信息,進而對所有輸入幀進行修復。此外殘差網(wǎng)絡的引入,能夠增強深度網(wǎng)絡的性能,提高網(wǎng)絡對所有幀的時空特征的學習能力,同時網(wǎng)絡采用時空對抗損失函數(shù)進行優(yōu)化,提高模型泛化能力,實現(xiàn)時空一致的視頻修復。此外網(wǎng)絡還能夠高度自由地定義層數(shù)和參數(shù)量,降低計算復雜度,減少計算資源需求,加快網(wǎng)絡訓練速度,大幅度提高實際應用能力。
(1)
本文提出的殘差卷積注意力網(wǎng)絡,以目標幀的相鄰幀和遠距離幀即視頻所有幀作為輸入,對所有視頻輸入幀進行修復。通過將自注意力機制和全局注意力機制引入進殘差網(wǎng)絡中,增強網(wǎng)絡對所有幀的空間及時間維度信息的學習能力,保持與相鄰幀以及遠距離關鍵幀的時空一致,提高視頻修復效果。
圖1 殘差卷積注意力網(wǎng)絡結構
殘差卷積注意力模塊由輕量型多頭自注意力機制,殘差前饋網(wǎng)絡以及殘差感知單元構成,每部分具體描述如下。
2.2.1 輕量型多頭自注意力機制
自注意力機制由自注意層構成,在自注意層中,輸入向量通過3個不同的投影矩陣轉換為3個不同的向量,即查詢向量q、鍵向量k與值向量v,各向量的維度相同。之后將不同輸入獲得的向量合為3個不同的矩陣Q、K和V,進行放縮點積計算,具體以計算過程如下:
(2)
自注意層進一步完善,形成了多頭自注意力機制。其中多頭自注意力機制進行了h次放縮點積計算,使模型能夠在不同位置聯(lián)合關注來自不同表示子空間的信息。具體處理過程如下:
MultiHead(Q,K,V)=
Concat(head1,…,headh)WO,
(3)
其中headi=Attention(Qi,Ki,Vi),Wo是線性投影矩陣。多頭自注意力機制進行放縮點積計算時,會根據(jù)頭部的個數(shù)來動態(tài)調整每個頭部的維度,以保持多頭自注意力機制的總計算量與全維單頭注意力機制的計算量相當,不增加其計算量。
為減少原始自注意力模塊的計算復雜度,本文采用了分塊處理,具體結構如圖2所示。在自注意力網(wǎng)絡中通過卷積網(wǎng)絡映射出不同的空間,將特征圖分成不同的特征塊,將每個特征塊的特征空間劃分為成不同的特征塊,之后計算當前圖像的注意力。分塊處理即將x∈H×W×C的圖像進行處理,變成一系列xp∈N×(P2·C)的展平的2D塊的序列[27]。這個序列共有N=HW/P2個展平的2D塊,每個塊的維度是(P2·C),其中P是塊大小,C是通道數(shù)。進行分塊處理,可以使網(wǎng)絡更關注低層次特征,提高對低層次特征的提取能力,同時局部圖像變小,可以降低計算量,提高模型速度。
圖2 輕量型多頭自注意力機制
2.2.2 殘差前饋網(wǎng)絡及殘差感知單元
殘差網(wǎng)絡是由一系列殘差塊組成的。殘差塊的引入可以解決網(wǎng)絡退化現(xiàn)象,在增加網(wǎng)絡層數(shù)時,網(wǎng)絡不會發(fā)生退化,提高了網(wǎng)絡的性能。殘差塊的一個通用表示為:
xl+1=xl+F(xl,Wl),
(4)
其分為映射和殘差兩部分,恒等映射通過直連實現(xiàn),殘差部分通常由2~3個卷積組成。其中直連是深度殘差網(wǎng)絡中旁路的支線,可以跳過一層或多層的連接,直接將輸入連接到后面的網(wǎng)絡層,使得后面的網(wǎng)絡層可以直接學習殘差,保留了信息的完整性和有效性。這種連接方式不會增加額外的參數(shù)計算復雜度,能夠簡化學習目標和難度,加速深度神經(jīng)網(wǎng)絡的訓練,提高深度網(wǎng)絡的性能。
本文提出的殘差前饋網(wǎng)絡在原始的前饋網(wǎng)絡基礎上添加殘差連接,并使用LeakyRelu作為激活函數(shù),通過改變連接方式來獲得更好的性能。具體結構如圖3(a)所示,包含了一個擴張層、深度卷積、投影層以及殘差連接結構。
圖3 殘差前饋網(wǎng)絡與殘差感知單元
視覺任務中經(jīng)常使用旋轉與平移來增廣數(shù)據(jù),這些操作應當不能影響模型最終的結果。然而,Transformer中的絕對位置編碼會破壞該不變性。此外,Transformer忽略了塊內的局部相關性與結構信息。為緩解該限制,本文提出了殘差感知單元以提升局部信息,定義如下:
RPU(X)=DWConv(X)+X.
(5)
具體結構如圖3(b)所示,由一個卷積核為1×3×3的3D卷積和一個殘差連接組成。
解碼模塊由反卷積的疊加并添加殘差連接構成,具體結構如圖4所示。先將殘差卷積注意力模塊的輸出進行轉換處理,從T幀變成單幀進行處理,然后進行反卷積,卷積核大小為3×3,步長為1,將通道數(shù)減半,輸入幀特征比例加倍,之后進行3×3卷積,步長為1,將通道數(shù)減半,最后進行1×1卷積進行投影。
圖4 解碼模塊
RCAN共包含5個解碼模塊,每個模塊通過反卷積將特征反向解碼,將輸入幀特征比例依次變?yōu)?/32,1/16,1/8,1/4,最后經(jīng)過Tanh激活函數(shù)得到完整的修復圖像。其中第2,3,4個解碼模塊與對應的殘差卷積注意力模塊添加了殘差連接,將上一個解碼模塊的輸出與殘差卷積注意力模塊的輸出拼接在一起,然后輸入下一個解碼模塊。此外第一個解碼模塊與第五個解碼模塊的通道數(shù)有所不同,第一個解碼模塊通道數(shù)減半一次,由512降為256,而第五個解碼模塊通道數(shù)由32降為16再降為3。
選擇優(yōu)化目標函數(shù)的原則是確保生成的視頻的像素重建精度、修復內容的合理性及時空一致性。該文選擇像素級重建損失和時空對抗損失作為損失函數(shù)。在生成幀和原始幀之間計算L1,以此衡量每個像素的重建精度。目標修復區(qū)域的L1表示為:
(6)
原始無空洞的有效區(qū)域的L1表示為:
(7)
由于對抗性訓練有助于高質量內容生成,該文借鑒使用了T-PatchGAN(Temporal Patch-GAN)[28]作為判別器。具體來說,T-PatchGAN由6層3D卷積層組成,其可以學習區(qū)分每個時空特征的真假,以便網(wǎng)絡更好地利用真實數(shù)據(jù)的時空信息和局部到全局的感知細節(jié)進行重建。T-PatchGAN判別器的詳細優(yōu)化函數(shù)如下:
(8)
本文在其基礎上進行改進,提出了時空對抗損失函數(shù),具體計算過程如下所示:
(9)
結合兩部分的總體損失函數(shù)為:
L=λrh·Lrh+λrv·Lrv+λadv·Ladv,
(10)
其中:λrh、λrv、λadv表示兩個像素級重建損失及時空對抗損失在網(wǎng)絡總體損失函數(shù)中的比重,通過調整比重參數(shù),可以更有針對性地調整網(wǎng)絡參數(shù),提高網(wǎng)絡訓練的靈活性和網(wǎng)絡的泛化能力。一般情況下為了平衡時空對抗損失和重建損失,將損失權重設置為λrh=0.5,λrv=0.5,λadv=0.9。
該網(wǎng)絡使用YouTube-VOS[29]數(shù)據(jù)集進行訓練,訓練使用數(shù)據(jù)集原始的數(shù)據(jù)分割方式,其中訓練視頻3 471個,驗證視頻474個,測試視頻508個。將視頻幀大小調整為384×192,然后對每個視頻幀進行固定掩膜處理,之后對視頻幀進行隨機旋轉,提高網(wǎng)絡對視頻序列旋轉角度的魯棒性,最后將經(jīng)過處理后的視頻幀輸入到網(wǎng)絡中進行訓練。
該網(wǎng)絡使用4張NVIDIA RTX2080Ti顯卡進行訓練,使用Adam優(yōu)化器,初始學習率為1e-4,batch size為6,步數(shù)為50萬步。此外還可以在DAVIS[30]數(shù)據(jù)集上訓練,不過由于DAVIS數(shù)據(jù)集規(guī)模較小,一般是將在YouTube-VOS數(shù)據(jù)集上訓練得到的模型來初始化模型,提高其訓練速度和精度。
為了更公平合理地評估本文提出的模型,更好地與現(xiàn)有視頻修復模型進行比較,本文采用了視頻修復中常用的DAVIS和YouTube-VOS數(shù)據(jù)集。其中DAVIS是面向實例級分割的數(shù)據(jù)集,共有50個視頻,3 455幀,每個視頻序列包含一個對象或者兩個空間連接的對象。視頻中的每一幀,都擁有像素級別的精度。YouTube-VOS是迄今為止最大、最全面的視頻對象分割數(shù)據(jù)集。YouTube-VOS包含94種類別,4 453個YouTube視頻,每個視頻時長約3~6 s,平均視頻長度約為150幀,共有197 272個對象注釋,每個對象由專業(yè)注釋員手動分割。
本文使用兩種自由形式的掩膜進行模型驗證:一種是固定掩膜,用來模擬水印去除、空洞修復等應用;另一種是動態(tài)掩膜,用來模擬對象移除等應用。固定掩膜是隨機生成不規(guī)則形狀的掩膜并將其應用在整個視頻幀的固定區(qū)域,動態(tài)掩膜是同一對象掩膜應用在整個視頻幀中;但每一幀的掩膜區(qū)域不同,一般使用數(shù)據(jù)集中標注的對象分割標注數(shù)據(jù)。本文使用YouTube-VOS數(shù)據(jù)集進行固定掩膜測試,使用DAVIS數(shù)據(jù)集進行固定掩膜和移動掩膜測試。
實驗結果分析采用峰值信噪比(PSNR)、結構相似性(SSIM)和 FID三種評價標準。其中PSNR是基于對應像素點間誤差的圖像質量評價方法,通過均方差進行定義。其具體計算公式如式(11)所示:
(11)
(12)
SSIM基于原始圖像x和生成圖像y之間的亮度、對比度和結構來進行衡量。計算公式如式(13)所示:
(13)
其中μ是均值,σ是方差,c1、c2為兩個常數(shù),避免分母為零。
FID是計算原始圖像和生成圖像的特征向量之間距離的一種度量。計算公式如式(14)所示:
FID(x,g)=‖μx-μg‖+
(14)
其中:x為原始圖像,g為生成圖像,tr表示矩陣對角線的元素之和,μ是均值,∑是協(xié)方差。FID的數(shù)值越小,表示生成圖像的多樣性和質量越好。
為了更好地驗證RCAN模型視頻修復質量的有效性,本文選擇將RCAN模型與4種現(xiàn)存主流模型進行了對比。其中VINet[6]、DFVI[17]、LGTSM[31]是基于卷積神經(jīng)網(wǎng)絡或遞歸網(wǎng)絡的模型,能夠同時對所有幀進行修復,但只使用了相鄰幀沒有使用遠距離幀建模。CPN[22]、OPN[23]是基于注意力的模型,對視頻逐幀修復,使用了遠距離幀建模,而對相鄰幀關注度不夠。本文提出的RCAN模型是在注意力的基礎上,使用視頻相鄰幀及遠距離幀即視頻所有幀進行建模,能夠同時對所有幀進行修復。
本文使用YouTube-VOS測試集的508個視頻,并使用固定掩膜進行模型驗證。該網(wǎng)絡在YouTube-VOS數(shù)據(jù)集上的視頻修復結果與其他模型結果的比較如表1所示。與其他模型相比,該模型的PSNR為30.69 dB,SSIM為0.965,F(xiàn)ID為0.059,運行時間為每幀0.85 s,遠快于DFVI和LGTSM,內存為6 742 MB,整體性能優(yōu)于其他模型。結果表明RCAN在像素級和整體感知上都有著更好的視頻修復質量和較快的修復速度。
表1 RCAN與現(xiàn)有網(wǎng)絡在YouTube-VOS上的修復結果對比
為了更好地驗證模型性能,實驗還比較了不同模型的視覺效果,結果如圖5所示。圖5(a)是輸入幀,圖5(b)是LGTSM模型的結果,圖5(c)是CPN模型結果,圖5(d)是本文RCAN模型結果。其中第一行和第三行中框選區(qū)域為修復區(qū)域,第二行和第四行為放大的修復結果,通過對比放大的修復結果可知,RCAN的修復質量更好,時空結構更一致,修復內容更完整。實驗表明了RCAN模型在固定掩膜視頻修復中的有效性。
圖5 YouTube-VOS固定掩膜修復結果
此外為了更好地驗證網(wǎng)絡的通用性,本文還在DAVIS數(shù)據(jù)集上使用固定掩膜以及移動掩膜兩種方式進行驗證。固定掩膜驗證結果如表2所示,PSNR為30.67 dB,SSIM為0.956,F(xiàn)ID為0.167,運行時間為每幀0.69 s,內存消耗為6 928 MB,整體性能優(yōu)于其他模型。數(shù)據(jù)顯示在DAVIS數(shù)據(jù)集上,本文模型取得了較高的修復精度和較快的修復速度。
表2 RCAN與現(xiàn)有網(wǎng)絡在DAVIS上的修復結果對比
使用固定掩膜及移動掩膜兩種方式的定性修復結果如圖6所示,前兩行是固定掩膜測試,后兩行是移動掩膜測試,圖6(a)是輸入幀,圖6(b)是LGTSM模型的結果,圖6(c)是CPN模型結果。圖6(d)是本文RCAN模型結果。對比發(fā)現(xiàn),本文模型結果空間結構相似性和時間連貫性更強,在復雜場景中也有很好的修復結果。
本文提出的RCAN模型將自注意力機制和全局注意力機制引入殘差網(wǎng)絡中,增強網(wǎng)絡對所有幀的空間及時間維度信息的學習能力,保持與相鄰幀以及遠距離關鍵幀的時空一致,提高視頻修復效果。表3是殘差網(wǎng)絡加入注意力機制后在DAVIS數(shù)據(jù)集上的修復效果對比,修復圖像的PSNR和SSIM得到了大幅度的提升,分別提高了5.4 dB和0.04,F(xiàn)ID降低了0.075。結果表明引入注意力機制,網(wǎng)絡能夠關注到重要的特征并抑制無關的干擾特征,能夠關注到視頻所有幀的關鍵幀及相鄰幀和遠距離幀的關鍵特征,從而提高了模型對所有幀的時空特征學習能力,提高了視頻修復效果。
表3 添加注意力機制修復結果對比
此外RCAN模型還可以高度自由地定義層數(shù)和參數(shù)量,通過控制殘差卷積注意力模塊的殘差層數(shù)來控制模型深度,以此來控制模型的復雜度和計算量。表4是網(wǎng)絡在不同殘差層數(shù)結構的結果比較,數(shù)據(jù)顯示網(wǎng)絡層數(shù)越多,網(wǎng)絡的整體精度越高,但同時也提高了網(wǎng)絡的復雜度和計算量。在現(xiàn)實應用中,可根據(jù)實際應用情況的不同來定義和選擇網(wǎng)絡的層數(shù)和參數(shù)量,提高模型的實際應用能力。
本文提出了一種新的用于視頻修復的殘差卷積注意力網(wǎng)絡,通過將自注意力機制和全局注意力機制引入進殘差網(wǎng)絡中,規(guī)避了卷積結構由于其感受野而無法獲得全局信息的缺陷,并由此獲得更加強大的表達能力,增強了網(wǎng)絡對視頻輸入幀時空特征的學習能力以及泛化能力,提高了視頻修復質量。同時結合時空對抗損失,提升修復內容的真實性,提高了網(wǎng)絡的整體性能。此外網(wǎng)絡還能夠根據(jù)現(xiàn)實應用中的實際情況自由地定義層數(shù)和參數(shù)量,來權衡網(wǎng)絡精度和速度,提高了模型的實際應用能力。實驗表明,本文提出的模型在YouTube-VOS和DAVIS數(shù)據(jù)集上的修復效果明顯優(yōu)于其他模型,對比DFVI模型,平均PSNR高出2.67 dB,SSIM高出0.044,F(xiàn)ID降低了12.98%,表明了殘差卷積注意力網(wǎng)絡在視頻修復中的有效性。