更快更強!視頻理解模型PP-TSM重磅發(fā)布:速度比SlowFast快4.5倍
隨著多媒體、網絡和存儲技術的快速發(fā)展,視頻數據量呈現爆炸式增長。面對如此龐大的視頻數據,無論是處理還是監(jiān)管都成了難題!剪輯人員希望從比賽錄像中便捷地提取比賽集錦,上網課的老師希望隨時了解電腦攝像頭前的學生是否在安心聽講,短視頻網站希望能迅速給每個新作品打上標簽并推送給合適的用戶,監(jiān)管部門也希望能精準發(fā)現不合規(guī)的視頻內容等等。但是人力有窮時,都靠人來做肯定是不現實的,人搞不定,人工智能行不行呢?這個真可以有!

在深度學習的CV領域中,有個重要的研究方向就是視頻理解,簡而言之,就是通過AI技術讓機器可以理解視頻內容,如今在短視頻、推薦、搜索、廣告,安防等領域有著廣泛的應用和研究價值,像下面這種視頻打標簽、視頻內容分析之類的任務都可以通過視頻理解技術搞定!


視頻相較于圖像,具有額外的時間維度信息,因此如何更好的利用視頻中的時序信息是視頻領域研究的重點。目前常用的方法有三類:
使用RNN對視頻特征做時序建模,如AttentionLSTM模型。這類模型的輸入是視頻特征,而不是原始視頻,因此往往用作后處理模塊。
使用3D網絡提取時序信息。如SlowFast模型,創(chuàng)新性的使用Slow和Fast兩個網絡分支分別捕獲視頻中的表觀信息和運動信息。這一方法在很大程度上是受到靈長類視覺系統(tǒng)中視網膜神經節(jié)細胞的生物學研究所啟發(fā)。
研究發(fā)現,在靈長類的視覺系統(tǒng)中,約80%為是P細胞,15-20%是M細胞。M細胞以較高的頻率工作,對時間變化更加敏感;P細胞則提供良好的空間細節(jié)和顏色感知。相應的,SlowFast模型的Slow分支類似于P細胞,感知空間信息;Fast分支類似于M細胞,對時間變化敏感。該模型在視頻分類任務上取得了SOTA的效果,同時也是AVA 視頻檢測挑戰(zhàn)賽的冠軍模型。
使用2D網絡提取時序信息,如經典的TSN和TSM模型。相較于TSN模型,TSM模型使用時序位移模塊對時序信息建模,在不增加計算量的前提下提升網絡的精度,非常適合工業(yè)落地。

3D網絡在精度方面很有優(yōu)勢,但由于3D卷積計算量大,訓練和推理耗時較大,難以用于產業(yè)實踐;而2D網絡雖然計算量較小,訓練和預測速度快,但對時序信息的建模能力相對不足,精度普遍偏低。依托豐富的視覺領域模型優(yōu)化經驗,飛槳視頻理解團隊基于TSM模型打造了一個非常適用于產業(yè)實踐的高效行為識別模型PP-TSM,并在相關應用場景取得顯著收益。在基本不增加計算量的前提下,PP-TSM使用Kinetics-400數據集訓練的精度可以提升到76.16%,超過同等Backbone下的3D模型SlowFast,且推理速度提升了4.5倍,具有顯著的性能優(yōu)勢。


源碼鏈接:
https://github.com/PaddlePaddle/PaddleVideo
那PP-TSM到底采用了哪些優(yōu)化策略呢?下面咱們帶領大家一起來深入剖析一下飛槳團隊算法優(yōu)化的 “內功心法”。
1.數據增強Video Mix-up
Mix-up是圖像領域常用的數據增廣方法,它將兩幅圖像以一定的權值疊加構成新的輸入圖像。對于視頻Mix-up,即是將兩個視頻以一定的權值疊加構成新的輸入視頻。相較于圖像,視頻由于多了時間維度,混合的方式可以有更多的選擇。實驗中,我們對每個視頻,首先抽取固定數量的幀,并給每一幀賦予相同的權重,然后與另一個視頻疊加作為新的輸入視頻。結果表明,這種Mix-up方式能有效提升網絡在時空上的抗干擾能力。

2.更優(yōu)的網絡結構
Better Backbone:骨干網絡可以說是一個模型的基礎,一個優(yōu)秀的骨干網絡會給模型的性能帶來極大的提升。針對TSM,飛槳研發(fā)人員使用更加優(yōu)異的ResNet50_vd作為模型的骨干網絡,在保持原有參數量的同時提升了模型精度。
ResNet50_vd是指擁有50個卷積層的ResNet-D網絡。如下圖所示,ResNet系列網絡在被提出后經過了B、C、D三個版本的改進。ResNet-B將Path A中1*1卷積的stride由2改為1,避免了信息丟失;ResNet-C將第一個7*7的卷積核調整為3個3*3卷積核,減少計算量的同時增加了網絡非線性;ResNet-D進一步將Path B中1*1卷積的stride由2改為1,并添加了平均池化層,保留了更多的信息。

Feature aggregation:對TSM模型,在骨干網絡提取特征后,還需要使用分類器做特征分類。實驗表明,在特征平均之后分類,可以減少frame-level特征的干擾,獲得更高的精度。假設輸入視頻抽取的幀數為N,則經過骨干網絡后,可以得到N個frame-level特征。分類器有兩種實現方式:第一種是先對N個幀級特征進行平均,得到視頻級特征后,再用全連接層進行分類;另一種方式是先接全連接層,得到N個權重后進行平均。飛槳開發(fā)人員經過大量實驗驗證發(fā)現,采用第1種方式有更好的精度收益。

3.更穩(wěn)定的訓練策略
Cosine decay LR:在使用梯度下降算法優(yōu)化目標函數時,我們使用余弦退火策略調整學習率。假設共有T個step,在第t個step時學習率按以下公式更新。同時使用Warm-up策略,在模型訓練之初選用較小的學習率,訓練一段時間之后再使用預設的學習率訓練,這使得收斂過程更加快速平滑。

Scale fc learning rate:在訓練過程中,我們給全連接層設置的學習率為其它層的5倍。實驗結果表明,通過給分類器層設置更大的學習率,有助于網絡更好的學習收斂,提升模型精度。
4.Label smooth
標簽平滑是一種對分類器層進行正則化的機制,通過在真實的分類標簽one-hot編碼中真實類別的1上減去一個小量,非真實標簽的0上加上一個小量,將硬標簽變成一個軟標簽,達到正則化的作用,防止過擬合,提升模型泛化能力。
5.Precise BN
假定訓練數據的分布和測試數據的分布是一致的,對于Batch Normalization層,通常在訓練過程中會計算滑動均值和滑動方差,供測試時使用?;瑒泳档挠嬎惴绞饺缦?

但滑動均值并不等于真實的均值,因此測試時的精度仍會受到一定影響。為了獲取更加精確的均值和方差供BN層在測試時使用,在實驗中,我們會在網絡訓練完一個Epoch后,固定住網絡中的參數不動,然后將訓練數據輸入網絡做前向計算,保存下來每個step的均值和方差,最終得到所有訓練樣本精確的均值和方差,提升測試精度。
6、知識蒸餾方案:
Two Stages Knowledge Distillation
我們使用兩階段知識蒸餾方案提升模型精度。第一階段使用半監(jiān)督標簽知識蒸餾方法對圖像分類模型進行蒸餾,以獲得具有更好分類效果的pretrain模型。第二階段使用更高精度的視頻分類模型作為教師模型進行蒸餾,以進一步提升模型精度。實驗中,將以ResNet152為Backbone的CSN模型作為第二階段蒸餾的教師模型,在uniform和dense評估策略下,精度均可以提升大約0.6個點。最終PP-TSM精度達到76.16,超過同等Backbone下的SlowFast模型。
PP-TSM在實際業(yè)務中表現如何呢?以足球動作定位項目FootballAction為例,該項目可以提取出足球比賽的關鍵集錦,例如進球、角球、任意球等。在基礎特征提取階段,使用TSM模型替換TSN模型,精度由84%提升到90%,使用PP-TSM模型,分類精度能達到94%。FootballAction最終的precision和recall均有大幅提升,F1-score從0.57提升到了0.82。

PP-TSM所應用的這套優(yōu)化策略其實也可以嘗試應用于該系列的其它模型上(如TSN模型),歡迎廣大產業(yè)開發(fā)者或者科研人員展開進一步的探索。
如果您覺得PP-TSM對您帶來了一些啟發(fā)或者確實實用話,也歡迎您可以給PaddleVideo項目點亮Star。
PaddleVideo項目鏈接:
https://github.com/PaddlePaddle/PaddleVideo

點擊文末“閱讀原文”,為PaddleVideo獻上您寶貴的Star吧!
感興趣的同學歡迎加入PaddleVideo微信群,與我們一起交流和技術探討。
