于海港,何 寧,劉圣杰,韓文靜
北京聯合大學 北京市信息服務工程重點實驗室,北京 100101
人體行為識別的應用場景越來越多元化,如在視頻監控、人機交互等領域已廣泛應用。但視頻中的人體行為識別研究仍面臨著時序信息捕獲困難、參數量過大等問題。3D卷積和注意力機制方法的提出不僅能夠提高提取網絡高層語義等特征的能力,還能結合視頻中的時序信息,為視頻中行為識別問題提供有效的解決方法。
目前行為識別方法主要分為傳統方法和基于深度學習的方法。傳統的行為識別方法都是通過手動建立的基于時空興趣點計算的運動描述,以時空關鍵點、密集軌跡方法等為代表。傳統方法對于簡單的圖像分類是有效的,但是依賴于人工分析圖像特征,面對復雜的場景難以解決識別問題。相比于傳統方法,深度學習方法可以識別復雜結構,具有良好的特征提取能力和泛化能力。基于深度學習的行為識別方法可以分為三維CNN和二維CNN的結構。2014年Simonyan等人[1]提出的雙流網絡是二維卷積神經網絡中的典型代表,該方法提出了將時間和空間信息單獨提取再融合的思想,顯著提高了識別的精度,但是相對獨立的兩個網絡也阻礙了信息的交流,難以有效結合各個維度的信息。Tran等人[2]提出C3D網絡,證明了三維卷積網絡對于時空特征提取的有效性,通過增加一個時間維度的方式幫助捕捉時間信息。Feichtenhofer等人[3]提出X3D網絡,之前的三維網絡基本上都是在二維網絡上對時間維度進行擴展,但時間尺度的擴展不一定是最佳的選擇,X3D從輸入的幀長度、幀率和網絡的寬度等方面逐一進行擴張,得到最好的擴張模型。然而三維網絡隨著維數的增加,參數量也暴漲,導致計算速度緩慢。
近年來,注意力模型被廣泛應用在時序動作識別,Roy等人[4]提出了SE注意力機制,通過壓縮空間,針對通道進行建模的方式把重要的特征進行強化以達到提升準確率的效果。Ying等人[5]針對現有通道注意力機制對各通道信息直接全局平均池化而忽略其局部空間信息的問題,提出了矩陣操作的時空交互和深度可分離卷積模塊。Cho等人[6]引入自注意力機制使網絡具備提取高階長期語義信息的能力。Wang等人[7]設計了運動模塊提取視頻中的動態信息。受上述方法的啟發,為了解決網絡對于時空信息捕獲和參數量問題,本文首先設計了一種混合注意力機制,不同于SE等注意力機制僅對空間和通道等單一維度建模,引入三維卷積層同時對時間和空間進行建模,結合獨立的通道注意力機制,每次計算都能夠同時從時間、空間和通道三個維度進行信息的篩選。其次結合殘差思想提出了一種時空殘差卷積模塊,在殘差結構第一層嵌入上述混合注意力模型,減少冗余信息進入下層網絡,時空殘差結構通過本文的混合注意力機制引入少量的三維卷積層,有效捕捉時空信息,避免了傳統三維卷積網絡中參數量的暴增問題,能夠靈活地嵌入到二維網絡中。
CNN是現在基于視頻中行為識別的一種先進的方法。然而,視頻中的人類行為分析包括視頻幀中時序關系的理解,把CNN用于捕捉這些關系還比較困難。雙流網絡增加一組獨立的深度卷積神經網絡捕捉時序信息,兩組獨立的深度卷積網絡同時工作,即空間流(spatial stream ConvNets)和時間流(temporal stream ConvNets),可以在關聯幀中捕捉動作信息。雙流網絡的網絡結構如圖1所示。時間流網絡從相鄰的幾幀圖片中提取光流信息,經過卷積操作提取高層特征,最終應用softmax函數計算時間流預測分數。空間流網絡采用單幀的圖像作為輸入,計算空間流的預測分數。兩個網絡單獨訓練,最后將兩個網絡的結果進行融合得到最終的預測結果。

圖1 TSN網絡Fig.1 Temporal segment network
雙流網絡使用幀之間密集光流信息有效結合時空信息,提高了網絡的性能。2016年Feichtenhofer等人[8]對雙流網絡做出了改進,提出了網絡的最佳融合位置。Liu等人[9]提出將運動歷史圖(motion history image,MHI)和RGB圖像作為輸入信息,分別送入不同的基礎網絡進行訓練、融合,根據融合結果計算出最終的預測分數。現在雙流網絡已經成為行為識別的主流方法之一,被廣泛應用于行為識別任務。但是,上述雙流網絡通過相鄰幀間的光流信息來提取時序信息,無論是空間流還是時間流都只是對視頻中的某一幀或者某幾幀操作,對于視頻中的上下文聯系是有限的。因此傳統的雙流網絡難以處理時間跨度比較長的視頻序列。2016年Wang等人[10]提出TSN(temporal segment networks)網絡結構,有效解決長范圍時間段的視頻行為識別問題。
TSN的網絡結構如圖1所示,將整個視頻分成K個小片段,對這些小片段進行隨機采樣,每個小片段中包含一幀RGB圖像和兩個光流特征圖,這就是文中提出的稀疏和全局時間采樣策略。將采樣結果分別送入雙流網絡中進行訓練,將兩組訓練結果輸入到融合函數(文中用的均值函數)中得到預測結果。TSN建模方法如公式(1)所示:

其中,(T1,T2,…,TK)代表視頻片段,從視頻中隨機采樣得到;F(TK;W)代表參數為W的神經網絡,通過函數F返回每一個片段的得分;G表示共識函數,結合多個片段的得分推算出類別假設的共識結果,H使用softmax函數,通過共識結果預測視頻中的行為類別。
ResNet是由He等人[11]提出的一種高性能的神經網絡。ResNet主要利用殘差的思想,殘差結構如圖2所示。傳統網絡大都存在傳遞信息丟失、耗能,以及梯度消失、爆炸的情況。這會導致很深的網絡無法進行有效訓練。ResNet網絡的提出在一定程度上解決了這些問題,它將信息繞過部分卷積結構直接傳入到輸出(原論文中提出的殘差塊結構),減少了信息的丟失,整個網絡只需要學習差別的部分。目前常見的有ResNet18、ResNet34、ResNet50、ResNet101和ResNet152五種ResNet網絡結構,這幾種網絡結構的主要區別在于使用的殘差塊及其數量不同。如表1所示是ReNet101網絡結構。

表1 ResNet101網絡結構Table 1 Resnet101 network architecture

圖2 殘差結構Fig.2 Residual structure
2017年Xie等人[12]提出了ResNet的改進版之一:ResNext網絡,它是ResNet和Inception網絡[13]的結合版,其核心就是殘差結構和分組卷積的結合。眾所周知,想要提升模型的表現,最簡單也是最直接的方法就是增加模型的深度和寬度,但是會帶來訓練困難和模型復雜度增加的問題,所以Xie等人考量模型的另一個維度:基數(cardinality),在不增加模型復雜度的情況下,提高了模型的學習能力。Gao等人[14]提出Res2Net殘差結構,將原ResNet結構的單個3×3卷積替換為多組3×3卷積并且在最后加入了SE結構。在不增加計算負載的情況下,增加了特征提取能力。但是SE結構只考慮了通道維度,所以本文結合時間、空間和通道信息設計了一種時空殘差結構。
本文采用TSN模型結構,以ResNet代替原TSN模型的基礎網絡。ResNet的殘差結構能夠很好地抑制較深的網絡在反向傳播時的梯度彌散情況,更適合用于視頻的特征提取,為此本文提出了時空殘差模塊。視頻相比圖像來說含有更加豐富的信息,但是視頻序列中的冗余信息量非常大。為此在時空殘差模塊中嵌入時空注意力機制和通道注意力機制,每次信息輸入殘差結構前先對信息進行篩選,通過權重分配抑制重復、無效信息。具體來說,在空間維上不同的空間信息被分配不同的分數,分數的大小決定了信息的重要程度。在通道上保證特征通道數不變,將空間維度進行壓縮,評估每一個通道的重要程度,通過評估結果為每個通道生成權重,將該權重應用于原來的每個特征通道,學習每個通道的重要性,其本質在于建模各個特征的之間的重要性,進行權重分配。通過權重分配使模型能夠自適應地將更多的注意力集中在重要區域,為后續進一步的特征提取提供了保障。將篩選后的信息輸入殘差結構進一步提取高層特征,提高網絡的特征提取效率。網絡總體架構如圖3所示。首先從視頻片段中提取RGB圖像和光流圖像,送入雙流時空殘差網絡,經過一個7×7的卷積層和四個殘差層提取深層次特征,每個殘差層分別包含3、4、23、3個殘差結構。最終將每個視頻片段的結果加權融合得到行為類別。改進后的TSN模型沿用原TSN模型的建模方式,如公式(2)、(3)所示:

圖3 雙流時空殘差卷積網絡Fig.3 Two-stream spatio-temporal residual convolutional networks

其中,(T1,T2,…,TK)代表視頻片段,從視頻中隨機采樣得到;F(TK;W)代表每個視頻片段T在參數為W的神經網絡上進行訓練,最終返回每一個片段的得分;通過段共識函數G結合多個片段的得分推算出類別假設的共識結果,結合交叉熵損失(cross-entropy loss)得到最終的損失函數L。C為總類別數,yi代表第i類的真實值。
對于時間段網絡,本文利用多個片段使用反向傳播算法優化參數W,W關于損失值L的梯度推導如公式(4)所示:

其中,K表示TSN使用的視頻片段數。多段視頻一起通過反向傳播算法優化參數,確保TSN模型是從整個視頻中獲取參數信息而不是其中一個視頻片段,這種方式的好處是網絡的參數可以結合整個視頻進行參數優化。
2.2.1 時空注意力機制
許多動作使用單針圖像就能判別類別,但是有一些動作是依賴于時序信息的,僅從空間單一維度建模難以準確地識別動作類別。傳統的二維卷積只在空間上完成卷積和池化,其卷積結果是一張二維的特征圖,多通道的信息被壓縮,時間信息完全丟失。類似的,許多融合模型在時間流網絡將多幀圖像作為輸入,但是通過一個卷積層后同樣丟失時間信息。三維卷積已經被證實具有良好的時空信息提取效果,由于3D卷積和3D池化操作,卷積后輸出依舊是3D的特征圖,不僅攜帶外觀特征而且還有運動信息,也就是說二維卷積僅針對單一維度建模對視頻進行操作的方式,只是對視頻的每一幀圖像分別利用CNN來進行識別,通過這種方式得到的識別結果并沒有考慮到時間維度的幀間運動信息,而使用3D CNN能夠逐漸集中空間維度和時間維度的信息,更好地捕獲視頻中的時間和空間的特征信息。但是傳統的三維網絡將二維卷積擴展到三維卷積,無一不受參數量倍增問題的困擾。為了避免參數量暴漲等問題,本文引入少量三維卷積設計了時空注意力機制,同時提取時間、空間維度特征。
時空注意力結構如圖4所示。首先對輸入信息進行池化操作得到全局通道特征F,然后改變F的維度并將其送入三維卷積層中提取時空信息,如公式(5)所示,F*是F經過3D卷積層提取后的時空特征。

圖4 時空注意力模塊Fig.4 Temporal and spatial attention module

特征F*包含了時空信息,經過激活函數Sigmoid函數計算得到包含時空信息的特征向量L。如公式(6)所示:

最后通過與原始輸入特征逐點相乘的方式為每個像素點分配權重。如公式(7)所示:

每一個輸入X都能通過向量L感知到時空信息的重要程度。相比傳統的三維卷積,本文方法的計算效率更高。
2.2.2 通道注意力機制
SE注意力機制是典型的通道注意力機制。SENet主要關注通道之間的關系,通過對通道的壓縮和激活學習不同通道特征的重要程度,抑制不重要的信息。
本文的通道提取機制是基于SENet的思想設計。不同于圖像中的目標識別任務,對于視頻中的人類行為來說,視頻的時序信息非常重要,所以本文增加了1D卷積加強時間上的關聯度,得到更好效果的通道特征。通道注意力結構如圖5所示,具體來說先將輸入圖像進行空間平均池化得到全局空間信息的特征F,如公式(8)所示:

圖5 通道注意力模塊Fig.5 Channel attention module

特征F通過3個卷積層提取特征,如公式(9)所示,其中A是大小為1×1的二維卷積核;A1是大小為3的一維卷積核,這里增加一維卷積的目的是增強通道在時間維度上的依賴。

將F3經過激活函數Sigmoid函數計算得到特征向量L,將原始輸入特征X點乘L得到包含通道特征的參數Y。如公式(10)、(11)所示:

隨著網絡層數的增加,網絡會出現退化的現象,淺層的網絡會比深層網絡取得更好的結果,并且難以有效地融合時間和空間信息。所以本文設計了時空殘差結構,如圖6所示,其中ST-CE模塊由上述時空注意力機制和通道注意力機制兩部分組成。兩部分獨立進行訓練,將訓練結果融合共同作用于網絡。如公式(12)所示:

圖6 時空殘差結構Fig.6 Spatio-temporal residual structure

其中,Y1和Y2為通過時空和通道機制得到的包含時空特征的參數,N表示初始網絡層。
傳統的殘差結構通過映射將底層的特征傳到高層,避免了信息的丟失,但是大量的信息冗余無法避免,而且這種直接映射關系更多的是傳遞空間信息,缺少時序信息,所以本文將ST-CE模塊嵌入殘差結構的第一層對上層信息進行篩選。通過計算過濾視頻幀間的冗余信息,將有效的時間、空間信息送入下一卷積層提取特征信息。改進后的殘差結構每一次傳遞的信息都是經過過濾后包含了時間、空間和通道三方面的信息,實驗證明時空殘差結構有效解決了二維CNN的局限性。
本文基于PyTorch實現TSN模型,在CUDA 10.1、單GPU下進行,本文使用小批量隨機梯度下降算法學習網絡工作參數,其中批量大小設置為256,動量設置為0.9。本文用ImageNet[15]的預訓練模型初始化網絡權值。實驗開始設置一個較小的學習速率。對于空間網絡,學習速率初始化為0.001,每2 000次迭代減少到1/10,整個訓練過程在4 500次迭代時停止。對于時間網絡,初始學習率為0.005,經過12 000次和18 000次迭代后學習率降至1/10。最大迭代次數設置為20 000次。在數據處理方面,使用了位置抖動、水平翻轉、角切和尺度抖動等技術。對于光流和扭曲的光流的提取,本文選擇了在OpenCV中使用Zach等人[16]提出的光流算法。
本文的實驗遵循原始的評估方案:訓練、測試和驗證分割并取其平均精度。實驗統一在UCF101數據集上進行驗證。UCF101是動作識別數據集,從YouTube收集而得,共包含101類動作。其中每類動作由25個人做動作,每人做4~7組,共13 320個視頻,分辨率為320×240,共6.5 GB。在動作的采集上具有非常大的多樣性,包括相機運行、外觀變化、姿態變化、物體比例變化、背景變化、光纖變化等。101類動作可以分為5類:人與物體互動、人體動作、人與人互動、樂器演奏、體育運動。
本文將模型在UCF101數據集上進行測試,訓練過程的準確率和損失結果的變換趨勢,如圖7、圖8所示;與現在主流行為識別模型的結果對比如表2所示。相比于傳統的二維、三維卷積網絡[2,8,10,16-17],本文方法分別提升了9.9、2.6、0.9、2.0和0.6個百分點。本文的雙流時空殘差網絡結合整段視頻,更好地發掘、利用視頻所包含的信息,得到了視頻級的預測結果。采用扭曲的光流場作為新的輸入模式抑制了背景運動,使網絡更專注于視頻中的人物。相比于傳統的二維卷積網絡,本文的時空殘差結構能夠對二維網絡中每層輸入的信息自適應地進行提純。通過時空注意力機制和通道注意力機制的結合使用,同時結合時間、空間和通道三個維度的信息對輸入的不同部分分配不同的權重,協助網絡捕捉重要信息。相比于其他三維卷積結構,僅在殘差結構中加入了少量3D卷積層,減少了由于3D卷積操作帶來的計算量問題。能夠靈活地嵌入到二維網絡結構中,并且實現端到端的訓練。加入ST-CE模塊前后可視化結果如圖9所示,紅色區域代表圖像中識別結果影響更大的區域。通過觀察可視化結果可以看出未加入ST-CE模塊前包含了過多的背景信息,加入后紅色區域集中在目標關鍵位置。由此可見通過ST-CE模塊有效抑制無用信息,使網絡專注于有效區域上。綜上,通過本文的雙流時空殘差網絡提升了網絡時空信息的融合能力,更適合解決視頻序列的識別問題。

圖7 在UCF101上的準確率變化曲線Fig.7 Accuracy curve on UCF101

圖8 在UCF101上的Loss變化曲線Fig.8 Loss curve on UCF101

表2 各模型在UCF101上的結果Table 2 Results of each model on UCF101

圖9 注意力機制可視化熱力圖Fig.9 Visualized heat maps of attention mechanisms
其次,本文將ST-CE模塊與SE和CBAM[19]注意力機制分別加入到網絡中進行對比,結果如表3所示。相比之下ST-CE模塊對于網絡整體效果的提升優于SE和CBAM模型,驗證了時空殘差模塊對于二維卷積網絡時空信息捕捉效果。主要原因是本文的模塊引入了3D卷積層。不同于SE等注意力機制僅對通道、空間等單一維度建模,3D卷積操作因其增加了時間維度,相比于2D卷積能夠更好地結合時序信息進行特征提取,能夠同時結合時間和空間信息,而包含了時序信息的特征對于基于視頻的動作識別任務有更好的契合度。

表3 不同注意力機制的對比Table 3 Contrast of different attention
為了驗證STE和CE模塊的提升效果,本文將時空注意力模塊和通道注意力模塊單獨加入到ResNet殘差塊中進行對比,如表4所示。其中FLOPs代表浮點計算量,在相同條件下,每個模塊都能在增加較少計算量下提高性能。除此之外,對網絡參數量進行了對比,相對于TSN網絡來說,STE和CE只引入了1.9×105和2.39×106的額外參數,對于整個網絡而言計算負擔并沒有增加太多,但是分別在UCF101數據集上提升了0.6和0.2個百分點的準確度。相比之下時空注意力模型對結果的提升更大,說明3D卷積對于網絡時空特征的提取效果更顯著。綜合上述分析,STE和CE均對網絡性能提升有所幫助,將STE和CE結合使用效果最佳。
本文提出了一種有效融合時空信息的雙流時空殘差網絡。主要為了解決二維CNN對于視頻中時空信息融合困難的問題。為此,本文提出了時空殘差模塊,通過引入三維卷積層和注意力機制融合時空信息,結合稀疏時間采樣策略保證對整個視頻的學習效率。該時空殘差模塊可以嵌入到二維卷積網絡中結合時間、空間和通道信息進行特征提取,方便靈活。在UCF101數據集上進行實驗,結果表明本文方法能夠顯著提升二維CNN的時空信息捕獲能力。在未來,人體行為識別的場景越來越多元化,復雜的場景將給識別任務帶來更大困難,Yuan等人[20]提出了一種特征遷移的方法給了本文以啟發,將會繼續研究基于時空信息的人體行為識別方法,以期實現在更復雜的環境下以更少的參數量達到更高的動作識別準確率。