理解視頻中的人體行為在視頻監控、自動駕駛以及安全保障等領域有著廣泛的應用前景。目前視頻中的人體行為分類研究是對分割好的視頻片段進行單人的行為分類。對視頻中的人體行為分類研究已經從最初的幾種簡單人體動作到幾乎包含所有日常生活的幾百類行為。上篇官微文章詳細介紹了基于RGB視頻數據的兩種深度行為分類模型,本文將介紹第三種深度行為分類模型——基于3D卷積神經網絡的,并對三種模型進行分析和對比。
視頻特征學習的難點在于時序特征的學習。表現良好的雙流架構在基于2D CNN挖掘空間信息的同時,不斷探索時序上運動特征的表達方式。這里的運動特征指的是視頻幀外觀的改變。視頻本身就是一個3D體,用3D卷積的方式獲取視頻中的空時特征顯然是更直觀的,3D卷積網絡(3D ConvNets)比2D卷積網絡更適用于時空特征的學習。3D卷積與2D卷積的區別如圖1所示,圖中(a)(b)是2D卷積核分別應用于單幀圖像和多幀圖像(或者是單通道圖像,多通道圖像),輸出2D特征圖,(c)是3D卷積核應用于3D視頻體,輸出的3D特征圖保留了時間維度的信息。
圖 1 2D與3D卷積示意圖
Baccouche等人[1]和Ji等人[2]首先提出了3D卷積網絡,使用3D卷積核同時處理空間和時間維度,然而該3D卷積模型淺層且參數量巨大,十分臃腫。Karpathy [3]等人在研究如何使用2D CNN來融合時間信息時,發現在單個視頻幀上運算的網絡與處理整個視頻空時體的網絡表現差異很小,因此認為時間維度上的建模對于行為識別的精度并不重要。Facebook在2015年提出C3D[4],該模型實現了與2014年雙流法接近的視頻行為分類的精度。它使用3D卷積和3D池化以及全連接層構成了11層的淺層網絡(如圖2),其最大的優勢在于速度,然而C3D的模型大小卻達到321MB,甚至大于152層ResNet[5]的235MB模型。這樣的模型訓練起來是困難的,且無法在像ImageNet這樣大規模圖片數據集上預訓練,淺層的網絡也限制了模型的分類性能。2017年,Facebook實驗室的Du Tran[6]等人又在殘差網絡框架下重新實現了C3D,使得推理速度快了兩倍的同時模型參數也少了兩倍。
圖 2 C3D模型示意圖
為了進一步提高3D CNN模型的泛化能力,P3D[7]將三維卷積核分解為二維空間卷積和一維時間卷積((2+1)D卷積)(如圖3)。
圖 3 3D卷積分解成(2+1)D卷積
Pseudo-3D(P3D)[7]在殘差學習[5]的框架下,將2維的殘差單元中的卷積核全部擴充成3維的卷積核,并將3*3*3的卷積核分解為一個1*3*3的二維空間卷積和3*1*1的一維時域卷積。P3D模型加深了模型深度的同時,提高了視頻人體行為分類的精度,并且相比于原始的C3D降低了模型大小。I3D[8]是基于ImageNet預訓練的Inception-V1骨干網絡,將網絡中的2D卷積核和池化核都擴展為3D的,同時結合雙流網絡處理連續多幀的 RGB圖像和光流圖像。使用大型視頻數據集Kinetics預訓練后,I3D模型在更小的UCF 101數據集上展現了優越的性能,成為了后續研究工作重點比較的模型。2018年Facebook和谷歌deepmina團隊又分別在P3D和I3D的基礎上,進一步探究3D空時卷積在行為識別中的作用,相繼提出了R(2+1)D [9] 和S3D [10]。兩個網絡都采用了將3D卷積核分解為2D卷積核加1D卷積核的形式(如圖3),證明了從長期時序上學習視頻的時間動態特征的必要性。R(2+1)D模型相比3D網絡,虛擬主機,在不增加模型參數量的情況下,具有更強的表達能力且更易優化,尤其是在網絡層數加深時。S3D模型在準確率、模型容量、還有計算效率上都實現了比原始的I3D更好的性能,在S3D模型基礎上S3D-G增加了上下文特征門控機制,進一步提高了行為分類的精度。視頻的行為分類任務應用2D可分離卷積大大提升了精度與計算能力,受此啟發,facebook在2019年最新的一個研究工作CSN[11],考慮了卷積運算中通道交互的因素,將一個3D卷積核分為的傳統卷積,用于通道交互;的深度卷積用于局部空時交互。CSN在顯著減少模型參數量的同時又提升了精度,其中的通道分離對模型有正則化的作用,避免了過度擬合。本文在UCF101數據集和kinetics數據集上對上述3D網絡模型的參數量,計算效率,以及分類精度做了對比。(如表1所示)。
表 1 在UCF101和kinetics數據集上比較3D卷積模型