于海港,何 寧,劉圣杰,韓文靜
北京聯(lián)合大學 北京市信息服務工程重點實驗室,北京 100101
人體行為識別的應用場景越來越多元化,如在視頻監(jiān)控、人機交互等領域已廣泛應用。但視頻中的人體行為識別研究仍面臨著時序信息捕獲困難、參數(shù)量過大等問題。3D卷積和注意力機制方法的提出不僅能夠提高提取網(wǎng)絡高層語義等特征的能力,還能結(jié)合視頻中的時序信息,為視頻中行為識別問題提供有效的解決方法。
目前行為識別方法主要分為傳統(tǒng)方法和基于深度學習的方法。傳統(tǒng)的行為識別方法都是通過手動建立的基于時空興趣點計算的運動描述,以時空關鍵點、密集軌跡方法等為代表。傳統(tǒng)方法對于簡單的圖像分類是有效的,但是依賴于人工分析圖像特征,面對復雜的場景難以解決識別問題。相比于傳統(tǒng)方法,深度學習方法可以識別復雜結(jié)構(gòu),具有良好的特征提取能力和泛化能力。基于深度學習的行為識別方法可以分為三維CNN和二維CNN的結(jié)構(gòu)。2014年Simonyan等人[1]提出的雙流網(wǎng)絡是二維卷積神經(jīng)網(wǎng)絡中的典型代表,該方法提出了將時間和空間信息單獨提取再融合的思想,顯著提高了識別的精度,但是相對獨立的兩個網(wǎng)絡也阻礙了信息的交流,難以有效結(jié)合各個維度的信息。Tran等人[2]提出C3D網(wǎng)絡,證明了三維卷積網(wǎng)絡對于時空特征提取的有效性,通過增加一個時間維度的方式幫助捕捉時間信息。Feichtenhofer等人[3]提出X3D網(wǎng)絡,之前的三維網(wǎng)絡基本上都是在二維網(wǎng)絡上對時間維度進行擴展,但時間尺度的擴展不一定是最佳的選擇,X3D從輸入的幀長度、幀率和網(wǎng)絡的寬度等方面逐一進行擴張,得到最好的擴張模型。然而三維網(wǎng)絡隨著維數(shù)的增加,參數(shù)量也暴漲,導致計算速度緩慢。
近年來,注意力模型被廣泛應用在時序動作識別,Roy等人[4]提出了SE注意力機制,通過壓縮空間,針對通道進行建模的方式把重要的特征進行強化以達到提升準確率的效果。Ying等人[5]針對現(xiàn)有通道注意力機制對各通道信息直接全局平均池化而忽略其局部空間信息的問題,提出了矩陣操作的時空交互和深度可分離卷積模塊。Cho等人[6]引入自注意力機制使網(wǎng)絡具備提取高階長期語義信息的能力。Wang等人[7]設計了運動模塊提取視頻中的動態(tài)信息。受上述方法的啟發(fā),為了解決網(wǎng)絡對于時空信息捕獲和參數(shù)量問題,本文首先設計了一種混合注意力機制,不同于SE等注意力機制僅對空間和通道等單一維度建模,引入三維卷積層同時對時間和空間進行建模,結(jié)合獨立的通道注意力機制,每次計算都能夠同時從時間、空間和通道三個維度進行信息的篩選。其次結(jié)合殘差思想提出了一種時空殘差卷積模塊,在殘差結(jié)構(gòu)第一層嵌入上述混合注意力模型,減少冗余信息進入下層網(wǎng)絡,時空殘差結(jié)構(gòu)通過本文的混合注意力機制引入少量的三維卷積層,有效捕捉時空信息,避免了傳統(tǒng)三維卷積網(wǎng)絡中參數(shù)量的暴增問題,能夠靈活地嵌入到二維網(wǎng)絡中。
CNN是現(xiàn)在基于視頻中行為識別的一種先進的方法。然而,視頻中的人類行為分析包括視頻幀中時序關系的理解,把CNN用于捕捉這些關系還比較困難。雙流網(wǎng)絡增加一組獨立的深度卷積神經(jīng)網(wǎng)絡捕捉時序信息,兩組獨立的深度卷積網(wǎng)絡同時工作,即空間流(spatial stream ConvNets)和時間流(temporal stream ConvNets),可以在關聯(lián)幀中捕捉動作信息。雙流網(wǎng)絡的網(wǎng)絡結(jié)構(gòu)如圖1所示。時間流網(wǎng)絡從相鄰的幾幀圖片中提取光流信息,經(jīng)過卷積操作提取高層特征,最終應用softmax函數(shù)計算時間流預測分數(shù)??臻g流網(wǎng)絡采用單幀的圖像作為輸入,計算空間流的預測分數(shù)。兩個網(wǎng)絡單獨訓練,最后將兩個網(wǎng)絡的結(jié)果進行融合得到最終的預測結(jié)果。
圖1 TSN網(wǎng)絡Fig.1 Temporal segment network
雙流網(wǎng)絡使用幀之間密集光流信息有效結(jié)合時空信息,提高了網(wǎng)絡的性能。2016年Feichtenhofer等人[8]對雙流網(wǎng)絡做出了改進,提出了網(wǎng)絡的最佳融合位置。Liu等人[9]提出將運動歷史圖(motion history image,MHI)和RGB圖像作為輸入信息,分別送入不同的基礎網(wǎng)絡進行訓練、融合,根據(jù)融合結(jié)果計算出最終的預測分數(shù)?,F(xiàn)在雙流網(wǎng)絡已經(jīng)成為行為識別的主流方法之一,被廣泛應用于行為識別任務。但是,上述雙流網(wǎng)絡通過相鄰幀間的光流信息來提取時序信息,無論是空間流還是時間流都只是對視頻中的某一幀或者某幾幀操作,對于視頻中的上下文聯(lián)系是有限的。因此傳統(tǒng)的雙流網(wǎng)絡難以處理時間跨度比較長的視頻序列。2016年Wang等人[10]提出TSN(temporal segment networks)網(wǎng)絡結(jié)構(gòu),有效解決長范圍時間段的視頻行為識別問題。
TSN的網(wǎng)絡結(jié)構(gòu)如圖1所示,將整個視頻分成K個小片段,對這些小片段進行隨機采樣,每個小片段中包含一幀RGB圖像和兩個光流特征圖,這就是文中提出的稀疏和全局時間采樣策略。將采樣結(jié)果分別送入雙流網(wǎng)絡中進行訓練,將兩組訓練結(jié)果輸入到融合函數(shù)(文中用的均值函數(shù))中得到預測結(jié)果。TSN建模方法如公式(1)所示:
其中,(T1,T2,…,TK)代表視頻片段,從視頻中隨機采樣得到;F(TK;W)代表參數(shù)為W的神經(jīng)網(wǎng)絡,通過函數(shù)F返回每一個片段的得分;G表示共識函數(shù),結(jié)合多個片段的得分推算出類別假設的共識結(jié)果,H使用softmax函數(shù),通過共識結(jié)果預測視頻中的行為類別。
ResNet是由He等人[11]提出的一種高性能的神經(jīng)網(wǎng)絡。ResNet主要利用殘差的思想,殘差結(jié)構(gòu)如圖2所示。傳統(tǒng)網(wǎng)絡大都存在傳遞信息丟失、耗能,以及梯度消失、爆炸的情況。這會導致很深的網(wǎng)絡無法進行有效訓練。ResNet網(wǎng)絡的提出在一定程度上解決了這些問題,它將信息繞過部分卷積結(jié)構(gòu)直接傳入到輸出(原論文中提出的殘差塊結(jié)構(gòu)),減少了信息的丟失,整個網(wǎng)絡只需要學習差別的部分。目前常見的有ResNet18、ResNet34、ResNet50、ResNet101和ResNet152五種ResNet網(wǎng)絡結(jié)構(gòu),這幾種網(wǎng)絡結(jié)構(gòu)的主要區(qū)別在于使用的殘差塊及其數(shù)量不同。如表1所示是ReNet101網(wǎng)絡結(jié)構(gòu)。
表1 ResNet101網(wǎng)絡結(jié)構(gòu)Table 1 Resnet101 network architecture
圖2 殘差結(jié)構(gòu)Fig.2 Residual structure
2017年Xie等人[12]提出了ResNet的改進版之一:ResNext網(wǎng)絡,它是ResNet和Inception網(wǎng)絡[13]的結(jié)合版,其核心就是殘差結(jié)構(gòu)和分組卷積的結(jié)合。眾所周知,想要提升模型的表現(xiàn),最簡單也是最直接的方法就是增加模型的深度和寬度,但是會帶來訓練困難和模型復雜度增加的問題,所以Xie等人考量模型的另一個維度:基數(shù)(cardinality),在不增加模型復雜度的情況下,提高了模型的學習能力。Gao等人[14]提出Res2Net殘差結(jié)構(gòu),將原ResNet結(jié)構(gòu)的單個3×3卷積替換為多組3×3卷積并且在最后加入了SE結(jié)構(gòu)。在不增加計算負載的情況下,增加了特征提取能力。但是SE結(jié)構(gòu)只考慮了通道維度,所以本文結(jié)合時間、空間和通道信息設計了一種時空殘差結(jié)構(gòu)。
本文采用TSN模型結(jié)構(gòu),以ResNet代替原TSN模型的基礎網(wǎng)絡。ResNet的殘差結(jié)構(gòu)能夠很好地抑制較深的網(wǎng)絡在反向傳播時的梯度彌散情況,更適合用于視頻的特征提取,為此本文提出了時空殘差模塊。視頻相比圖像來說含有更加豐富的信息,但是視頻序列中的冗余信息量非常大。為此在時空殘差模塊中嵌入時空注意力機制和通道注意力機制,每次信息輸入殘差結(jié)構(gòu)前先對信息進行篩選,通過權(quán)重分配抑制重復、無效信息。具體來說,在空間維上不同的空間信息被分配不同的分數(shù),分數(shù)的大小決定了信息的重要程度。在通道上保證特征通道數(shù)不變,將空間維度進行壓縮,評估每一個通道的重要程度,通過評估結(jié)果為每個通道生成權(quán)重,將該權(quán)重應用于原來的每個特征通道,學習每個通道的重要性,其本質(zhì)在于建模各個特征的之間的重要性,進行權(quán)重分配。通過權(quán)重分配使模型能夠自適應地將更多的注意力集中在重要區(qū)域,為后續(xù)進一步的特征提取提供了保障。將篩選后的信息輸入殘差結(jié)構(gòu)進一步提取高層特征,提高網(wǎng)絡的特征提取效率。網(wǎng)絡總體架構(gòu)如圖3所示。首先從視頻片段中提取RGB圖像和光流圖像,送入雙流時空殘差網(wǎng)絡,經(jīng)過一個7×7的卷積層和四個殘差層提取深層次特征,每個殘差層分別包含3、4、23、3個殘差結(jié)構(gòu)。最終將每個視頻片段的結(jié)果加權(quán)融合得到行為類別。改進后的TSN模型沿用原TSN模型的建模方式,如公式(2)、(3)所示:
圖3 雙流時空殘差卷積網(wǎng)絡Fig.3 Two-stream spatio-temporal residual convolutional networks
其中,(T1,T2,…,TK)代表視頻片段,從視頻中隨機采樣得到;F(TK;W)代表每個視頻片段T在參數(shù)為W的神經(jīng)網(wǎng)絡上進行訓練,最終返回每一個片段的得分;通過段共識函數(shù)G結(jié)合多個片段的得分推算出類別假設的共識結(jié)果,結(jié)合交叉熵損失(cross-entropy loss)得到最終的損失函數(shù)L。C為總類別數(shù),yi代表第i類的真實值。
對于時間段網(wǎng)絡,本文利用多個片段使用反向傳播算法優(yōu)化參數(shù)W,W關于損失值L的梯度推導如公式(4)所示:
其中,K表示TSN使用的視頻片段數(shù)。多段視頻一起通過反向傳播算法優(yōu)化參數(shù),確保TSN模型是從整個視頻中獲取參數(shù)信息而不是其中一個視頻片段,這種方式的好處是網(wǎng)絡的參數(shù)可以結(jié)合整個視頻進行參數(shù)優(yōu)化。
2.2.1 時空注意力機制
許多動作使用單針圖像就能判別類別,但是有一些動作是依賴于時序信息的,僅從空間單一維度建模難以準確地識別動作類別。傳統(tǒng)的二維卷積只在空間上完成卷積和池化,其卷積結(jié)果是一張二維的特征圖,多通道的信息被壓縮,時間信息完全丟失。類似的,許多融合模型在時間流網(wǎng)絡將多幀圖像作為輸入,但是通過一個卷積層后同樣丟失時間信息。三維卷積已經(jīng)被證實具有良好的時空信息提取效果,由于3D卷積和3D池化操作,卷積后輸出依舊是3D的特征圖,不僅攜帶外觀特征而且還有運動信息,也就是說二維卷積僅針對單一維度建模對視頻進行操作的方式,只是對視頻的每一幀圖像分別利用CNN來進行識別,通過這種方式得到的識別結(jié)果并沒有考慮到時間維度的幀間運動信息,而使用3D CNN能夠逐漸集中空間維度和時間維度的信息,更好地捕獲視頻中的時間和空間的特征信息。但是傳統(tǒng)的三維網(wǎng)絡將二維卷積擴展到三維卷積,無一不受參數(shù)量倍增問題的困擾。為了避免參數(shù)量暴漲等問題,本文引入少量三維卷積設計了時空注意力機制,同時提取時間、空間維度特征。
時空注意力結(jié)構(gòu)如圖4所示。首先對輸入信息進行池化操作得到全局通道特征F,然后改變F的維度并將其送入三維卷積層中提取時空信息,如公式(5)所示,F(xiàn)*是F經(jīng)過3D卷積層提取后的時空特征。
圖4 時空注意力模塊Fig.4 Temporal and spatial attention module
特征F*包含了時空信息,經(jīng)過激活函數(shù)Sigmoid函數(shù)計算得到包含時空信息的特征向量L。如公式(6)所示:
最后通過與原始輸入特征逐點相乘的方式為每個像素點分配權(quán)重。如公式(7)所示:
每一個輸入X都能通過向量L感知到時空信息的重要程度。相比傳統(tǒng)的三維卷積,本文方法的計算效率更高。
2.2.2 通道注意力機制
SE注意力機制是典型的通道注意力機制。SENet主要關注通道之間的關系,通過對通道的壓縮和激活學習不同通道特征的重要程度,抑制不重要的信息。
本文的通道提取機制是基于SENet的思想設計。不同于圖像中的目標識別任務,對于視頻中的人類行為來說,視頻的時序信息非常重要,所以本文增加了1D卷積加強時間上的關聯(lián)度,得到更好效果的通道特征。通道注意力結(jié)構(gòu)如圖5所示,具體來說先將輸入圖像進行空間平均池化得到全局空間信息的特征F,如公式(8)所示:
圖5 通道注意力模塊Fig.5 Channel attention module
特征F通過3個卷積層提取特征,如公式(9)所示,其中A是大小為1×1的二維卷積核;A1是大小為3的一維卷積核,這里增加一維卷積的目的是增強通道在時間維度上的依賴。
將F3經(jīng)過激活函數(shù)Sigmoid函數(shù)計算得到特征向量L,將原始輸入特征X點乘L得到包含通道特征的參數(shù)Y。如公式(10)、(11)所示:
隨著網(wǎng)絡層數(shù)的增加,網(wǎng)絡會出現(xiàn)退化的現(xiàn)象,淺層的網(wǎng)絡會比深層網(wǎng)絡取得更好的結(jié)果,并且難以有效地融合時間和空間信息。所以本文設計了時空殘差結(jié)構(gòu),如圖6所示,其中ST-CE模塊由上述時空注意力機制和通道注意力機制兩部分組成。兩部分獨立進行訓練,將訓練結(jié)果融合共同作用于網(wǎng)絡。如公式(12)所示:
圖6 時空殘差結(jié)構(gòu)Fig.6 Spatio-temporal residual structure
其中,Y1和Y2為通過時空和通道機制得到的包含時空特征的參數(shù),N表示初始網(wǎng)絡層。
傳統(tǒng)的殘差結(jié)構(gòu)通過映射將底層的特征傳到高層,避免了信息的丟失,但是大量的信息冗余無法避免,而且這種直接映射關系更多的是傳遞空間信息,缺少時序信息,所以本文將ST-CE模塊嵌入殘差結(jié)構(gòu)的第一層對上層信息進行篩選。通過計算過濾視頻幀間的冗余信息,將有效的時間、空間信息送入下一卷積層提取特征信息。改進后的殘差結(jié)構(gòu)每一次傳遞的信息都是經(jīng)過過濾后包含了時間、空間和通道三方面的信息,實驗證明時空殘差結(jié)構(gòu)有效解決了二維CNN的局限性。
本文基于PyTorch實現(xiàn)TSN模型,在CUDA 10.1、單GPU下進行,本文使用小批量隨機梯度下降算法學習網(wǎng)絡工作參數(shù),其中批量大小設置為256,動量設置為0.9。本文用ImageNet[15]的預訓練模型初始化網(wǎng)絡權(quán)值。實驗開始設置一個較小的學習速率。對于空間網(wǎng)絡,學習速率初始化為0.001,每2 000次迭代減少到1/10,整個訓練過程在4 500次迭代時停止。對于時間網(wǎng)絡,初始學習率為0.005,經(jīng)過12 000次和18 000次迭代后學習率降至1/10。最大迭代次數(shù)設置為20 000次。在數(shù)據(jù)處理方面,使用了位置抖動、水平翻轉(zhuǎn)、角切和尺度抖動等技術(shù)。對于光流和扭曲的光流的提取,本文選擇了在OpenCV中使用Zach等人[16]提出的光流算法。
本文的實驗遵循原始的評估方案:訓練、測試和驗證分割并取其平均精度。實驗統(tǒng)一在UCF101數(shù)據(jù)集上進行驗證。UCF101是動作識別數(shù)據(jù)集,從YouTube收集而得,共包含101類動作。其中每類動作由25個人做動作,每人做4~7組,共13 320個視頻,分辨率為320×240,共6.5 GB。在動作的采集上具有非常大的多樣性,包括相機運行、外觀變化、姿態(tài)變化、物體比例變化、背景變化、光纖變化等。101類動作可以分為5類:人與物體互動、人體動作、人與人互動、樂器演奏、體育運動。
本文將模型在UCF101數(shù)據(jù)集上進行測試,訓練過程的準確率和損失結(jié)果的變換趨勢,如圖7、圖8所示;與現(xiàn)在主流行為識別模型的結(jié)果對比如表2所示。相比于傳統(tǒng)的二維、三維卷積網(wǎng)絡[2,8,10,16-17],本文方法分別提升了9.9、2.6、0.9、2.0和0.6個百分點。本文的雙流時空殘差網(wǎng)絡結(jié)合整段視頻,更好地發(fā)掘、利用視頻所包含的信息,得到了視頻級的預測結(jié)果。采用扭曲的光流場作為新的輸入模式抑制了背景運動,使網(wǎng)絡更專注于視頻中的人物。相比于傳統(tǒng)的二維卷積網(wǎng)絡,本文的時空殘差結(jié)構(gòu)能夠?qū)ΧS網(wǎng)絡中每層輸入的信息自適應地進行提純。通過時空注意力機制和通道注意力機制的結(jié)合使用,同時結(jié)合時間、空間和通道三個維度的信息對輸入的不同部分分配不同的權(quán)重,協(xié)助網(wǎng)絡捕捉重要信息。相比于其他三維卷積結(jié)構(gòu),僅在殘差結(jié)構(gòu)中加入了少量3D卷積層,減少了由于3D卷積操作帶來的計算量問題。能夠靈活地嵌入到二維網(wǎng)絡結(jié)構(gòu)中,并且實現(xiàn)端到端的訓練。加入ST-CE模塊前后可視化結(jié)果如圖9所示,紅色區(qū)域代表圖像中識別結(jié)果影響更大的區(qū)域。通過觀察可視化結(jié)果可以看出未加入ST-CE模塊前包含了過多的背景信息,加入后紅色區(qū)域集中在目標關鍵位置。由此可見通過ST-CE模塊有效抑制無用信息,使網(wǎng)絡專注于有效區(qū)域上。綜上,通過本文的雙流時空殘差網(wǎng)絡提升了網(wǎng)絡時空信息的融合能力,更適合解決視頻序列的識別問題。
圖7 在UCF101上的準確率變化曲線Fig.7 Accuracy curve on UCF101
圖8 在UCF101上的Loss變化曲線Fig.8 Loss curve on UCF101
表2 各模型在UCF101上的結(jié)果Table 2 Results of each model on UCF101
圖9 注意力機制可視化熱力圖Fig.9 Visualized heat maps of attention mechanisms
其次,本文將ST-CE模塊與SE和CBAM[19]注意力機制分別加入到網(wǎng)絡中進行對比,結(jié)果如表3所示。相比之下ST-CE模塊對于網(wǎng)絡整體效果的提升優(yōu)于SE和CBAM模型,驗證了時空殘差模塊對于二維卷積網(wǎng)絡時空信息捕捉效果。主要原因是本文的模塊引入了3D卷積層。不同于SE等注意力機制僅對通道、空間等單一維度建模,3D卷積操作因其增加了時間維度,相比于2D卷積能夠更好地結(jié)合時序信息進行特征提取,能夠同時結(jié)合時間和空間信息,而包含了時序信息的特征對于基于視頻的動作識別任務有更好的契合度。
表3 不同注意力機制的對比Table 3 Contrast of different attention
為了驗證STE和CE模塊的提升效果,本文將時空注意力模塊和通道注意力模塊單獨加入到ResNet殘差塊中進行對比,如表4所示。其中FLOPs代表浮點計算量,在相同條件下,每個模塊都能在增加較少計算量下提高性能。除此之外,對網(wǎng)絡參數(shù)量進行了對比,相對于TSN網(wǎng)絡來說,STE和CE只引入了1.9×105和2.39×106的額外參數(shù),對于整個網(wǎng)絡而言計算負擔并沒有增加太多,但是分別在UCF101數(shù)據(jù)集上提升了0.6和0.2個百分點的準確度。相比之下時空注意力模型對結(jié)果的提升更大,說明3D卷積對于網(wǎng)絡時空特征的提取效果更顯著。綜合上述分析,STE和CE均對網(wǎng)絡性能提升有所幫助,將STE和CE結(jié)合使用效果最佳。
本文提出了一種有效融合時空信息的雙流時空殘差網(wǎng)絡。主要為了解決二維CNN對于視頻中時空信息融合困難的問題。為此,本文提出了時空殘差模塊,通過引入三維卷積層和注意力機制融合時空信息,結(jié)合稀疏時間采樣策略保證對整個視頻的學習效率。該時空殘差模塊可以嵌入到二維卷積網(wǎng)絡中結(jié)合時間、空間和通道信息進行特征提取,方便靈活。在UCF101數(shù)據(jù)集上進行實驗,結(jié)果表明本文方法能夠顯著提升二維CNN的時空信息捕獲能力。在未來,人體行為識別的場景越來越多元化,復雜的場景將給識別任務帶來更大困難,Yuan等人[20]提出了一種特征遷移的方法給了本文以啟發(fā),將會繼續(xù)研究基于時空信息的人體行為識別方法,以期實現(xiàn)在更復雜的環(huán)境下以更少的參數(shù)量達到更高的動作識別準確率。