梁夢姿 劉 宏 李 希 徐大宏
(湖南師范大學信息科學與工程學院 長沙 410081)
視頻表示學習是視頻理解的基礎任務,在動作識別、視頻檢索等下游任務中發揮著重要作用。常見的方法是以監督學習方式,使用深度神經網絡來提高視頻表示學習能力。然而大量的標記是耗時費力的。自監督學習利用無標簽數據集對模型進行訓練并取得良好的效果。對比學習是自監督學習的主流方法之一,它在圖像表征學習方面取得了重 大 進 展。典 型 的 算 法 有SimCLR[1],MoCo[2],BYOL[3]等。最近的研究致力于將對比學習應用在視頻表示上。在視頻表示學習中,不僅要學習它的空間特征還要學習時序特征,所以它的難度更大。此外,現有的視頻對比學習方法,如Pace[4],SeCo[5],CMC[6]等,它們大多是在片段級或幀級定義正對進行對比學習,這限制了在長時間范圍內對全局時空的利用。因此合理選擇編碼器以及合理制定正負對是視頻對比學習的關鍵。
對比學習的目標是訓練一個有效的特征編碼器。目前,提取視頻時空特征的主要架構是卷積網絡和Transformer。卷積神經網絡主要有兩個研究方向:一種是基于2D 卷積的方法。最典型的是雙流法[7],一個分支從單幀RGB 圖像中提取空間特征,另一個分支從光流中提取時間特征。還有一種是基于3D卷積的方法。它能同時捕獲視頻中的時空信息[8],但難以捕獲較長的時域信息依賴。另一個主流架構是Transformer。它可以使用自注意力機很自然地捕獲全局表示,典型的算法有ViT[9](Vision Transformer)。ViTAE[10]在ViT 基礎上引入Reduction Cell 和Normal Cell 兩 種 模 塊,解 決 了Transformer 基于全局自注意力的計算導致計算量較大的問題,同時也解決其捕獲局部表示能力的不足。
為了讓模型更有效地學習到視頻的全局時空表示,本文提出了一種基于雙流網絡的視頻級對比學習框架(VCTN)。文章從兩個方面對現有的視頻對比學習方法進行改進。在網絡結構上,我們采用了CNN 和Transformer 的雙流網絡并行地提取視頻的時間和空間特征。在數據增強上,我們提出了一種基于時間段的增強方法,用來形成正對,從而進行視頻級的對比學習。
本文提出了一種基于雙流網絡的視頻級對比學習方法,如圖1 所示,這是模型的整體框架圖。這個框架中有兩個分支。一個分支叫在線網絡(參數為θ),由視頻編碼器fθ,投影器gθ和預測器qθ三部分構成;另一個分支叫目標網絡(參數為δ),由編碼器fδ和投影器gδ兩部分構成。其中fθ、fδ包括一個Transformer 編碼器和一個CNN 編碼器,用于提取特征。gθ、gδ是一個多層感知機(MLP,隱藏層為2,其中一個隱藏層維度為4096),用于獲取更高維的潛在向量。qθ也是一個多層感知機,用來預測目標網絡的投影特征。兩個網絡相互作用相互學習。在線網絡通過優化目標網絡更新其參數,目標網絡通過計算指數滑動平均值來更新其參數。

圖1 模型的整體框架
對比學習最關鍵的一部分是構建增強視圖。視頻比圖片多了時間維度。因此本文提出了一個基于時間段的數據增強算法用于構建增強視圖。如圖2所示,給定一個視頻V,首先,將視頻均勻劃分成T個相等時長且不重疊的片段{S1,S2,S3,…,ST}。然后使用了基于時間段的增強方法構建兩個增強視圖,該方法融合了隨機采樣、稀疏采樣和整體采樣策略。隨機采樣是從一個片段的隨機起始點采樣視頻幀。稀疏采樣是從一個片段中采樣一部分視頻幀。整體采樣是從一個視頻的每個片段采樣視頻幀。具體采樣方式如下:

圖2 數據增強
1)首先定義每段視頻的持續時間ad,ad=num_frames T,其中,num_frames是視頻的總幀數,T是視頻分段數。
2)接下來就是從每段Si中隨機抽取幀數。按照隨機采樣的方式,假設第一個片段隨機數為r1,則第一個片段抽取的幀I1的序號為0×ad+r1。
3)按照稀疏采樣的方式,從第一個片段中采樣以I1為中心的5幀。
4)整體采樣。在每個片段中都采取隨機采樣和稀疏采樣的方式。這樣每個片段抽取到的中心幀序號為[0 ×ad+r1,1×ad+r2,…,(T-1) ×ad+rT]。
本文從每個片段Si中隨機抽取以Ii為中心的五幀圖像。這樣一個增強視頻V1總共采樣得到5×T幀圖像。用同樣的方式,得到另一個增強視頻V2。對于空間數據增強部分,本文使用了隨機調整大小和裁剪、水平翻轉。
為了有效學習到視頻的全局時空信息,本文將視頻分成多個片段,然后使用雙流網絡去處理每個片段,再將不同片段提取出來的局部時、空特征分別用平均聚合函數進行融合,最后再將融入全局上下文的時間特征和空間特征拼接得到視頻級的時空表示。本文的雙流網絡使用的是兩個獨立的網絡架構:一個Transformer編碼器和一個2D CNN 編碼器。
在空間上,本文使用具有內在局部性的Transformer 網絡ViTAE 在每一段的中間幀I={I1,…,IT}上提取空間信息。如圖3所示,ViTAE包括3個Reduction Cell(RC)和若干個Normal Cell(NC)。RC模塊可以讓模型學習到視頻圖像的多尺度不變特征,NC 模塊可以讓模型學習視頻圖像的局部特征以及全局依賴關系。本文沿不同時間段提取了大小為T×3×224×224 的RGB 視頻序列輸入到Vi-TAE 網絡中。ViTAE 網絡首先使用三個RC 將視頻序列逐步下采樣4 倍、2 倍和2 倍。然后將RC 的輸出token展平與一個可學習的向量class token連接,并添加正弦位置編碼。再將這些tokens 送到下面的NC 模塊,這些NC 保持tokens 的長度。最后,將最后一個NC 上的class token 輸出作為每段的空間特征。

圖3 空間網絡
在時間上,本文使用2D CNN 去提取時間特征,采用的骨干網絡是ResNet50。如圖4 所示,在一個片段Si內,本文選用RGB 差分代替光流信息,即所有幀之間兩兩計算RGB 差分:,然后將其堆疊輸入到ResNet50 中。R1,R2]代表以Ii為中心的連續五幀之間的RGB 差分。按照相同的方法,可以得到其他片段的運動視圖[R(I2),…,R(IT)]。 再把它們分別送入到ResNet50中提取每一段的時間特征。

圖4 時間信息
本文遵循BYOL 方法,選用均方誤差MSE 作為視頻的損失函數。本文的對比學習目標是最大化具有相同上下文的視頻片段之間的相似性。對于V1,先將它送入在線網絡中,通過視頻編碼器fθ提取ST-Feature1 ,再經過投影器gθ得到投影向量zr。然后經過預測器qθ得到預測向量vr。對于V2,先 將 它 送 入 目 標 網 絡 中,通 過fδ提 取S分后T-的別。F預e對歸at測一uvrre輸化,2出的,zr再d方-v兩經r法和個過如目向g式標δ量 (得網1進)到絡所行投的示歸影。投一向最影量化后輸得z用r出d到。歸然一后和化的MSE函數作為損失函數。如式(2)所示,其中, 是點積運算。
按照相同的方式,將V2送到在線網絡,V1送到目標網絡計算出對稱損失函數l2。因此,整個視頻的損失函數為
模型訓練過程中只有在線網絡的參數θ根據梯度進行更新,目標網絡的參數δ依據滑動平均公式進行更新,如式(4)所示,其中τ是目標衰減率,τ∈[0 ,1] 。
本文在UCF-101[11]和Kinetics-400[12]兩個廣泛使用的動作數據集上進行實驗。UCF-101 由來自101 個不同動作類別的13320 個視頻組成,其中約9.5k 視頻用于訓練,3.7k 視頻用于測試。Kinetics-400 擁有大約30 萬剪輯過的視頻,涵蓋400 個類別。其中240k用于訓練、20k用于驗證,40k用于測試。
在輸入方面,本文采用基于時間段的采樣算法,默認將段的數量設置為8,從每段中隨機抽取以Ii為中心的五幀圖像,這樣增強視頻V1共包含40 幀。用同樣的方式,可以得到另一個增強視頻V2。在空間數據增強方面,本文首先將視頻幀的大小調整為256×320,然后隨機裁剪為224×224。在訓練時,本文遵循與BYOL 相同的方法去預訓練視頻編碼器(ResNet50和ViTAE-S)。在優化方面,本文使用的是LARS優化器,初始學習率設置α=0.2,并隨批大小線性縮放(α=0.2×Batc?Size/256 ),權重衰減為1.5×10-6,本文使用余弦衰減計劃衰減學習速率而不重啟。對于目標網絡,指數移動平均參數τ從τbase=0.996 開始,在訓練過程中增加到,其中k為當前訓練步長,K為最大訓練步長數。
為了驗證所提框架的有效性,本文在兩種情況下進行評估:1)線性評估;2)微調。本文首先在大型數據集Kinetics-400 上對網絡進行預訓練,批量大小為512,訓練時間為200 個周期。然后在較小的數據集UCF-101 上對網絡進行微調。本文選用Top-1 準確率(Accuracy)作為評估模型框架的指標。
3.3.1 Kinetics-400的線性評估
線性評估的方法是保持視頻編碼器上的參數固定不變,然后在生成的視頻表示上訓練分類器。本文選擇在Kinetics-400訓練集的視頻表示上訓練分類器,最后在其驗證集上進行評估。從表1 可以看出,本文的方法在Kinetics-400 數據集上取得了66.8%的準確率,高于以往的算法。其中,比SeCo方法高4.9%,比VCLR高2.7%。

表1 Kinetics-400的線性評估
3.3.2 UCF-101的微調
在表2 中,本文進一步將VCTN 與最近的自監督行為識別方法進行了比較。本文在UCF-101 數據集上對所有層進行微調。為了公平的比較,本文只列出了在Kinetics-400 上預訓練的方法。從表2中可以看出,本文使用2D ResNet50 的方法優于使用3D ResNet 的方法。同時,與SeCo 相比,本文的方法VCTN 在UCF-101 數據集上帶來了4.3%的性能提升。同樣,與VCLR 相比,UCF-101 的準確率從85.6%提高到87.7%。這些結果驗證了本文的VCTN可以有效地學習到視頻的全局時空表示。

表2 UCF-101的下游動作分類
本文進行多個實驗來分析框架的不同組件,以驗證在VCTN 中使用的每個單獨組件的有效性。除非另有說明,實驗均在Kinetics-400 數據集上進行。
3.4.1 網絡體系結構
在表3 中,本文研究了網絡架構對實驗結果的影響?!癛2D-50+ViTAE-S”表示本文的默認視頻編碼器?!皟HR2D-50”表示在時間和空間上僅只使用2D ResNet-50 和線性轉換層來提取每幀的特征。“R2D-50+ViT”表示時間上使用2D ResNet-50提取特征,空間上使用Vision Transformer提取特征。實驗結果表明,本文的默認網絡在Kinetics-400 數據集取得的準確率優于其他兩個網絡,達到66.8%。

表3 在不同網絡架構上的消融實驗
3.4.2 時間數據增強的研究
在實驗中,本文將K=8 作為默認的分段數,現在討論分段數對本文所提方法的影響。從表4 中可以看到,片段數量從1 增加到8,準確率不斷提高,從60.1%提高到66.8%。這表明在訓練視頻編碼器時使用全局上下文的必要性。但是當使用更多的段T=16時,性能趨近飽和,只提高了0.2%。因此,本文選擇T=8,以獲得更好的訓練速度與準確率的權衡。除此之外,本文還研究了RGB 差分對實驗結果的影響。從表5 中可以看到,與直接疊加五幀輸入的網絡相比中,使用RGB 差分堆疊獲得的準確率高1.7%。

表4 在不同數量段上的消融實驗

表5 RGB差分的效果影響
本文提出了一個基于雙流網絡的視頻級對比學習框架(VCTN),采用CNN 架構和Transformer 架構代替以往雙流網絡僅使用CNN 的方法,從而提取到了更豐富的時空特征。同時,本文提出了一種基于時間段的數據增強采樣算法,用來生成正對,從而加深了長時間范圍內對全局時空的利用。本文在UCF-101 和Kinetics-400 兩個廣泛使用的動作數據集上進行實驗。實驗表明,本文所提出的方法在Kinetics-400 數據集上取得66.8%的分類準確率,在UCF-101 數據集上取得87.7%的分類準確率。