朱聯祥,牛文煜,仝文東,邵浩杰
(西安石油大學 計算機學院,陜西 西安 710065)
隨著數字技術的發展和視頻設備的普及,互聯網上的視頻信息在飛速增長,視頻已成為重要的信息載體。為應對視頻信息爆發性的增長,理解和分析視頻以從中挖掘出所需要的信息就變得愈來愈重要。識別和理解視頻中人物的行為和意圖是人機交互、機器人技術、視頻監控、視頻檢索等領域的重要內容,近年來已發展成為計算機視覺領域的一個重要研究方向。視頻人體動作識別作為其中的一個重要課題,研究的是如何通過預先分割好的時域序列進行時空信息建模,從而學習到視頻中所包含的人體動作與動作類別之間的映射關系[1]。在過去的幾十年,研究人員已提出大量的視頻人體動作識別方法,在較大程度上解決了不同層次的問題。
目前人體動作識別的方法主要分為兩類[2-3]:第一類是手工表示法,即首先使用手工方法設計并提取特征,再采用傳統的機器學習方法對其進行分類,如基于方向梯度直方圖(Histogram of Oriented Gradient,HOG)、光流梯度方向直方圖(Histogram of Optical Flow,HOF)、運動邊界直方圖(Motion of Boundary History,MBH)等特征描述符的方法;第二類則是基于深度學習的方法,即使用神經網絡進行特征的提取與識別。
動作識別本身的研究始于20世紀80年代的基于整體特征表示法[4],如輪廓特征和光流特征等。自從2003年以來,局部表示法開始應用于動作識別,如改進密集軌跡(Improved Dense Trajectory,IDT),其在手工表示法中取得了非常好的效果。
從2012年以來,AlexNet[5]在圖像分類上的成功掀起了人們對深度學習研究的高潮,隨后卷積神經網絡被廣泛應用于圖像領域的各類任務,其在圖像分類、圖像識別、場景分割等任務中都有很好的性能。卷積神經網絡在圖像處理領域的成功激起了基于卷積神經網絡的方法在視頻領域的研究。2014年Simonyan等人[6]提出了雙流卷積網絡結構,該網絡通過將動作識別任務分為空間和時間兩個流,其中空間流從視頻幀中提取空間信息,時間流從密集光流中提取運動信息,最后通過雙流特征的融合來進行動作的分類與識別。該網絡使得二維卷積神經網絡能夠用于視頻動作識別任務,但卻需要研究者提前從視頻幀中提取出光流信息。2015年Du Tran等人[7]構建的C3D卷積神經網絡模型是一種簡單高效的時空特征學習方法,可以直接從視頻幀中提取空間和時間特征。但三維卷積與二維卷積類似,只能在局部鄰域進行操作,因此在空間中不能提取到全局特征,在時間維度也不能提取到長時序特征,從而無法充分利用視頻幀中的空間和時間信息。此外,以往的研究一般都只是通過增加網絡深度來近似達到全局特征提取的目的,但這些方法會帶來很多問題,如容易產生過擬合現象、梯度傳播困難,以及網絡參數量增加顯著等。
針對上述存在的問題,該文提出一種基于C3D卷積神經網絡的改進模型,通過在原C3D網絡中引入注意力機制,并對其注意力機制添加全局上下文建模操作,使得改進后的網絡能夠利用到全局特征,從而建立起三維特征中每個位置與其他位置之間的關系,而不是僅僅局限于局部的鄰域,實現了網絡性能的提升。
近年來,隨著深度學習的蓬勃發展,許多研究學者將基于深度學習的方法應用于視頻人體動作的識別任務,其中應用卷積神經網絡進行動作識別更是取得了長足進步。Ji等人[8]通過將二維卷積擴展到三維卷積,使得卷積能夠從相鄰的視頻幀中提取空間和時間兩個維度的信息,從而擁有了時空和空域的綜合建模能力,更加有助于視頻特征的學習。Du Tran等人[7]提出的C3D卷積神經網絡則是一種簡單高效的時空特征學習方法,可以直接從視頻數據中提取時域和空域特征。呂淑平等人[9]在C3D基礎上引入時空分離卷積和BN層,使得網絡更具表示復雜性的功能,并且解決了網絡結構加深使梯度消失的問題。Joao Carreira[10]提出將在ImageNet中預訓練的權重擴展到視頻動作的識別,并在視頻動作數據集上進行微調的思路,據此設計了一種將二維卷積網絡擴展到三維的I3D模型。由于視頻三維信息高度的復雜性,Sun Lin等人[11]提出了分解時空卷積神經網絡,將原有的三維卷積分解為在空間層進行二維空間卷積,在時間層進行一維時間卷積,減少了網絡的參數量。進一步,Yang Hao等人[12]將三維卷積核分解為非對稱單向三維卷積來逼近傳統的三維卷積,通過引入多尺度三維卷積分支,構建了局部三維卷積網絡。
卷積神經網絡定義了一個非常強大的特征提取模型,卷積計算通過融合局部區域中的空間和通道信息來構建特征。為了提高卷積神經網絡的性能,目前的研究主要從深度、寬度和基數三個方面來提升卷積神經網絡的表征能力。從LeNet網絡開始到深度殘差網絡[13],網絡的深度逐漸加深,通過增加網絡的深度增強網絡對于特征的表征能力是一種直觀簡單的擴展方法。GoogleNet[14]則是通過在模型的每一層采用不同大小的卷積核,以增加模型寬度的方式來增強模型的表征能力。Chollet F[15]和Xie Saining[16]采用分組卷積的思想,卷積層的每一組卷積操作都可看作是一個“基數”,通過將每一層的卷積操作組數(基數)增加的方式對網絡性能進行提升。
然而除了深度、寬度和基數這三個因素以外,還可以使用注意力機制來增加網絡的表征能力,以使其更加關注重要的特征,而抑制掉不必要特征。注意力機制源于人類視覺系統。當人類在觀察外部環境時,不同的事物會對人們的認知產生不同程度的影響,而人類則可以通過僅關注所需要注意的事物來獲取對外界的認知。在計算機視覺領域,不同的任務使得圖像的不同區域對最終任務產生不同的影響。注意力機制正是通過網絡學習權重系數,并以加權的方法對圖像的不同區域進行不同程度的強調,同時抑制不相關區域的一種方法。
目前計算機視覺領域的注意力機制可以分為三類,即通道注意力、空間注意力和自注意力。2017年,Jie Hu等人[17]提出的SE-Net(Squeeze-and-Excitation)網絡,是通過構造“Squeeze-and-Excitation”(SE)模塊來建模通道間的相關性。但該方法只是通過對輸入特征進行空間上的全局最大池化操作來壓縮其空間維度,因而不能建立起特征在空間維度上每個位置與其他位置的遠距離依賴關系。2015年,Max Jaderberg等人[18]提出的空間變換網絡(Spatial Transformer)則可在保留關鍵輸入信息的同時,將信息輸入變換到另一個空間,以定位圖片的關鍵信息及其位置,實現了對圖像空間通道信息的提取。CBAM[19]注意力機制則是在SE-Net上的進一步擴展,增加了空間注意力模塊,使得網絡能夠對空間域的信息進行強調。王飛等人[20]通過將二維的CBAM注意力機制進行膨脹,擴展為三維注意力機制,并采用shortcut結構的方式融合到三維卷積神經網絡中,加強神經網絡對視頻的通道和空間特征提取。此外,由于卷積運算只能用于處理局部的依賴關系,Wang Xiaolong等人[21]構造的非局部Non-Local網絡可用來捕獲遠程的依賴關系。對于擁有時序的數據,如語言、視頻、語音等,遠程依賴關系是其建模的關鍵。
卷積運算在空間和時間上都只是處理局部的鄰域,只在局部區域內建立起像素間的關聯,因而只有通過網絡深度的增加,重復地使用卷積操作,才能建立起對圖像全局的理解。這無疑增加了計算的開銷,效率低下且很難優化。而通過使用Non-Local操作,則可以在不增加網絡深度的前提下提取到遠程的依賴關系。然而由于其實際上建立起的是特征中每一位置與其他所有位置間的關系,因而計算量會很大。而Huang Zilong等人[22]提出的criss-cross操作,則只計算特征中每個位置與其同行同列位置間的關系,通過兩次的criss-cross操作,便可間接計算出每對位置間的關系,從而使得網絡參數量大大減少。Cao Yue等人[23]通過將Non Local和SE-Net結合起來,構建了一種全局上下文模塊,使得SE-Net通道注意力機制具有了全局上下文建模的能力。
在以上研究進展的基礎上,該文提出的模型將C3D與注意力機制相結合,通過在通道注意力機制和空間注意力機制中使用全局操作,使得網絡具有了全局建模的能力,對視頻的三維特征可以在時域和空域均可建立其遠程的依賴關系,提高網絡的表征能力。
圖1所示為基于混合注意力機制融合C3D網絡視頻人體動作識別模型的整體結構。由于三維卷積神經網絡可直接作用于視頻幀序列,從而從多個相鄰幀中提取出時空特征,因此采用C3D卷積神經網絡作為其特征提取網絡。首先,對視頻數據按照間隔N(如文中的取值為4)進行抽取以實現預處理,然后輸入到C3D網絡進行空域和時域特征的提取。對于提取到的特征,分別通過空間和通道注意力機制建立其空間和通道信息通路,進而通過兩種特征的融合處理來實現動作目標的識別與分類。

圖1 基于混合注意力機制的三維卷積神經網絡模型
C3D的模型結構如圖2所示,一共由8個卷積層,5個最大池化層,2個全連接層和1個Softmax輸出層組成。輸入數據大小為3×16×112×112,其中3為通道數,分別代表R、G、B視頻幀,16為每次輸入的視頻幀數,這些視頻幀是按照間隔N=4對視頻片段進行抽取得到。112×112是對抽取的視頻幀進行隨機的crop之后得到的輸入視頻幀大小。所有卷積層采用的都是3×3×3大小的卷積核,步長為1×1×1。除了Pool1層池化核大小為1×2×2,步長為2×2×2之外,其余池化核大小均為2×2×2,步長為1×2×2。在完成最后一次池化操作后,將輸出的三維特征進行Reshape操作展開為一維,然后將其送入到全連接層,每個全連接層都有4 096個輸出單元,激活函數采用ReLu函數。最終的特征分類使用Softmax。

圖2 C3D網絡結構
C3D采用三維卷積和三維池化,對視頻幀序列提取得到的是三維特征,該文在網絡最后池化層Pool5后插入注意力模塊,將輸出的三維特征送入注意力網絡中得到特征的注意力圖,然后將帶有注意力的特征圖與原輸入特征相加得到最終的帶有注意力的特征,最后將該特征輸入到全連接網絡進行動作的最終分類與識別。
CBAM注意力機制是在SE-Net上的進一步擴展,并且增加了空間注意力模塊。筆者發現,將通道注意力模塊和空間注意力模塊以先后順序排列比并行排列有更好的效果。因此,在網絡中先后使用通道注意力機制和空間注意力機制構建混合注意力機制模塊。與二維卷積神經網絡相比,因為采用C3D三維卷積神經網絡對視頻動作進行識別增加了一個時間維度,所以在設計其注意力機制時需要考慮到維度的變化。由于原通道注意力機制是用于二維圖像數據,采用的是二維卷積,但視頻數據是三維數據需要考慮時間維度,所以需要對其進行三維化擴展,將原注意力機制的卷積和池化操作替換為三維卷積,使之能夠適用于三維卷積神經網絡。具體注意力機制在模型中的使用方式如圖3所示。

圖3 注意力機制結構
視頻數據相比于圖像數據多了一個時間維度,在使用三維卷積網絡對其進行特征提取后的輸出特征會多出一個時間維度T。對于一個三維卷積的特征圖F∈RC×T×H×W,這里的C、T、H、W分別為C3D網絡最后一層池化輸出的三維特征的大小。注意力機制會先計算出通道注意力特征圖MC∈RC×1×1×1,然后將特征圖MC對輸入特征F進行加權得到特征F'∈RC×T×H×W,再將特征F'輸入到空間注意力模塊,生成空間注意力特征圖Ms∈R1×T×H×W。由于這里是直接將空間注意力模塊由二維直接擴展到三維,所以Ms在計算過程中包含有時間維度的信息,即時域和空域兩個維度的信息,最后將Ms對F'進行加權得到最終的注意力圖F'∈RC×T×H×W。整個過程可以表示為:
F'=MC(F)?F
F''=MC(F')?F'
(1)
式中,?表示元素乘法,F''是最終得到的注意力圖,每個注意力模塊的具體細節在下文會進行具體介紹。
2.3.1 通道注意力模塊
通道注意力機制利用通道之間的關系來生成通道注意力圖,通過加權來強調不同通道的重要性。在SE-Net中只使用了最大池化來壓縮空間維度,然后計算各通道的權重。CBAM注意力機制在其基礎上又增加了平均池化來壓縮空間維度,但也造成了很多信息損失。在GCNet中,筆者通過將Non-Local網絡和SE-Net網絡相結合,構建了全局上下文模塊,使得網絡能夠建立長距離的依賴關系。網絡首先對輸入數據在空間維度上進行上下文建模,然后計算各個通道的權重,充分結合了Non-Local全局上下文建模和SE-Net輕量的優點。原注意力機制是二維注意力機制,只需要考慮空間上H、W兩個維度信息。所以在應用于視頻數據時需要對其進行三維化擴展,首先需要將其中的二維卷積替換為三維卷積,在進行Reshape操作時,需要考慮到時間維度,T、H、W將作為包含時空信息三個最基礎的維度。對于輸入的三維視頻數據F∈RC×T×H×W,首先使用一個卷積核大小為1×1×1卷積操作,將輸入特征F合并為一個通道,然后對其使用Reshape操作置為大小為THW×1的張量,另外將輸入特征Reshape為C×THW后通過Softmax函數得到一個特征張量,然后將兩者做內積運算后輸入到一個MPL中獲取通道之間的依賴關系,使用Sigmoid激活得到通道注意力特征圖MC(F),用公式表示為:
Mc=σ(MLP(R1(F)?R2(conv(F))))
(2)
式中,σ表示Sigmoid函數,conv表示1×1×1卷積操作,R1表示將維度為C×T×H×W的輸入特征置為C×THW的Reshape操作,R2表示將經過1×1×1卷積操作后的維度為1×T×H×W的特征置為THW×1的Reshape操作。該通道注意力模塊增加了上下文建模操作,首先通過Reshape操作將輸入特征按照不同通道進行展開,然后再將輸入特征經過1×1×1卷積進行通道壓縮后,再按照通道進行Reshape操作展開,將兩者進行內積運算可以獲得不同通道特征元素之間的關系,即不同通道元素之間的遠程關系。最后將其輸入一個MLP中通過學習調整不同通道的權重。該網絡采用自注意力機制的思想對特征建模特征中元素間的關系,能夠對每一個通道建立該通道上所有元素之間的依賴關系,使得網絡相比于卷積操作更能建立起遠程依賴關系。
3D Global Context通道注意力模塊如圖4所示。

圖4 3D Global Context通道注意力模塊
空間注意力機制結構如圖5所示。首先,將經過通道注意力機制加權后的特征圖F'∈RC×T×H×W分別經過兩個1×1×1卷積核的卷積層,分別生成兩個特征Q和K,其中{Q,K}∈RC'×T×H×W,這里C'表示經過卷積后的{Q,K}的通道數,文中C'取C/8,再將二者經過Affinity操作生成特征圖A∈R(T+H+W-2)×T×H×W。對于特征Q的每一個位置u,包含三個坐標值(t,x,y),在特征K中提取和位置u處于同行同列的特征向量,即特征K中以u為中心在T、H、W方向的特征向量的集合Ωu。設Ωi,u∈RC'是Ωu中的第i個元素,Affinity操作的定義如下:

圖5 3D Criss-Cross空間注意力模塊
(3)
其中,di,u∈D,D∈R(T+H+W-2)×T×H×W,表示特征Qu和Ωi,u,i={1,…,(T+H+W-2)}的相關度。對經過Affinity操作后的特征使用Softmax函數計算得到特征圖A。然后,在F'∈RC×T×H×W上又使用一個1×1×1的卷積操作生成一個特征V∈RC×T×H×W。對與Vu∈Rc中的每一個位置u,可得到Φu∈R(T+H+W-2)×c,表示特征V中以u為中心在T、H、W方向特征向量的集合。Aggregation操作如下:
(4)

3.1.1 數據集
為驗證改進模型的有效性,在UCF-101和HMDB-51兩個大型視頻數據集上進行了對比實驗。UCF-101數據集包含101種人體動作類別,歸屬于五種類型:人與物體交互、僅身體運動、人與人交互、樂器演奏、運動等。一共有13 320個視頻片段,累計時長超過27小時。視頻從YouTube下載,所有視頻片段都有25 FPS的固定幀率和320×240的分辨率。數據集中的視頻片段具有背景雜亂、光照條件差,以及很多低質量幀等特點。
HMDB-51包含51個動作類別,每個類別至少包含101個視頻片段,一共包含了從數字化電影到YouTube等各種來源提取的6 766個含有手動注釋的視頻片段。這些動作可以分為五種類型:一般面部動作、面部動作配合物體操作、一般身體動作、與物體互動身體動作、人類互動肢體動作。視頻幀率均為25 FPS,分辨率為320×240。該數據集由于視頻片段來源復雜,視頻幀中包含噪聲信息較多,加上攝像機運動,不同拍攝角度等因素,其動作識別與分類相較于UCF-101更加具有挑戰性,一般來說在分類上的效果相較于UCF-101也更低。
3.1.2 評價指標
實驗將視頻數據集劃分為訓練集、驗證集、測試集三個部分,占比分別為60%、20%、20%。每完成1次訓練就對模型進行1次驗證,每完成5次訓練對模型進行1次測試。實驗一共進行100次訓練,最終通過Softmax函數對特征進行分類。將最后的識別準確率Acc作為評價指標,公式如下:
第三,要想在高等院校“C語言程序設計”課程上機實驗教學環節過程中獲得良好教學效果,應結合實際教學工作中的學習需求、涉及的教學內容,為學生編寫和呈現內容新穎且專業的實驗指導書文本,使學生在獲得專業化和系統化理論知識指導的條件下,達到“C語言程序設計”課程上機實驗教學環節的最佳學習效果。
(5)
其中,TP(True Positive)表示實例是正例被判定成正例的個數;FN(False Negative)表示將正例判定為負例的個數;FP(False Positive)表示負例被判定為正例的個數;TN(True Negative)表示負例被判定成負例的個數。
由于三維卷積神經網絡不能直接處理視頻信息,必須將視頻中的幀抽取出來,將部分幀作為網絡的輸入。實驗中采用間隔抽幀的方式,對于每一個視頻片段,每隔4幀抽取1幀,一共抽取16幀作為網絡輸入。如果視頻時長較短,以4幀間隔不能抽取到16幀,則可將抽取間隔縮小直至可以抽取到16幀為止。原數據集視頻分辨率為320×240,在抽取的同時需要將每一幀大小調整為128×171,在將數據輸入到網絡之前還需要對每一幀進行大小為112×112的隨機crop操作。
在Linux操作系統的PyTorch環境下進行實驗,所有數據集的訓練輪數均為50。考慮到訓練所用GPU顯存的限制,benchsize設為6。采用隨機梯度下降法進行優化,學習率為0.001,損失函數采用交叉熵損失。為避免模型過擬合,在全連接層采用值為0.5的dropout。模型使用在Sport1M數據集上預訓練的權重進行訓練,該數據集包含了100萬個YouTube視頻,一共有487個類別,每個類別有1 000到3 000個視頻片段,這是比UCF-101和HMDB-51更大的視頻動作數據集,通過在Sport1M數據集上進行預訓練然后在UCF-101和HMDB-51數據集上進行參數調整,可以獲得更快的收斂速度和較高的準確率。
3.3.1 混合注意力機制使用的對比
為了證明該文混合注意力機制在融合模型中的有效性,分別對C3D網絡使用3D-CBAM、單獨使用通道注意力機制、單獨使用空間注意力機制和使用混合注意力機制進行對比。表1展示了使用不同注意力機制對融合模型的動作識別準確率的結果。由表1可以看出,注意力機制的添加使得C3D網絡對動作識別的準確率得到了明顯的提升。與3D-CBAM注意力機制相比,構建的混合注意力機制對網絡識別準確率的提升更高。混合注意力機制與單獨使用通道或空間注意力相比,識別準確率更高。實驗表明該文構建的混合注意力機制對融合模型識別精度提高是有效的。

表1 不同注意力機制的對比 %
3.3.2 不同模型對比
分別對C3D網絡和文中改進模型以及當前比較典型的方法進行實驗對比,結果如表2所示。其中I3D和C3D是基于三維卷積網絡的方法,Aymmetric 3D-CNN和文獻[9]是基于時空分離(2+1)D卷積,文獻[20]和文中方法是基于三維卷積網絡融合注意力機制的方法。可以看出,文中方法相較于三維卷積和時空分離(2+1)D卷積具有更高的準確率。與文獻[20]的3D-CBAM注意力相比,該文的混合注意力機制對于網絡識別準確率的提升更高。

表2 不同方法的對比 %
但是對于HMDB-51的識別,相比于Aymmetric 3D-CNN方法,文中方法的分類準確率較低,因為在該網絡中采用的是(2+1)D卷積方式,它將三維卷積分解為時間的一維和空間的二維。在文獻[9]中作者經過實驗說明這種采用時空分離(2+1)D卷積的網絡結構更易于優化器尋優。而且該網絡在訓練中使用了光流圖作為輸入特征,該特征包含運動信息,對識別效果有一定的提升。
3.3.3 UCF-101實驗可視化及結果分析
圖6展示了文中方法和原C3D方法在UCF-101數據集上的準確率變化曲線。可以看出,在使用注意力機制后,文中方法識別準確率更慢收斂。在20輪后原C3D方法已基本收斂,而文中方法的識別準確率仍繼續上升,直到25次左右才基本處于收斂狀態。自始至終文中方法的識別準確率都高于原C3D方法。

圖6 UCF-101準確率變化曲線
與準確率曲線相互印證,圖7展示了使用原C3D網絡和文中方法的損失變化曲線。文中方法的損失函數值更低,也是在迭代25次左右才達到收斂狀態。然而原C3D網絡的參數總量為78.41×106,文中模型的參數總量為92.60×106,二者相比文中方法的參數量有明顯增加,相應地也就需要更多的訓練時間。

圖7 UCF-101損失變化曲線
3.3.4 HMDB-51實驗可視化及結果分析
在HMDB-51數據集上進行了同樣的訓練,圖8展示了文中方法和原C3D方法的準確率變化曲線。可以看出,在使用注意力機制后,迭代進行到30次左右基本上達到收斂,準確率也有了明顯提升。圖9是損失變化曲線的對比,可以看出文中方法的損失值更低。表明注意力機制的引入對于HMDB-51數據集同樣有效。此外由于HMDB-51數據集有更多的相機位移、視點變化等,因此分類效果相對更低。

圖8 HMDB-51準確率變化曲線

圖9 HMDB-51損失變化曲線
針對三維卷積神經網絡用于視頻動作識別的優缺點,提出了基于C3D卷積神經網絡的模型改進:在原網絡中引入注意力機制,分別通過通道注意力機制和空間注意力機制對特征的通道和空間相對重要位置進行加權。實驗在UCF-101和HMDB-51大型視頻數據集上進行,結果表明,引入的通道注意力模塊和空間注意力模塊對最終的識別效果均有明顯提升。但所提模型需要在其他大型數據集上進行預訓練才會取得較好的結果,且注意力機制的引入帶來了計算量的增加,網絡的參數總量從78.41×106增加到92.60×106。如何在提升識別效果的同時縮減網絡的計算量將是未來研究需要解決的問題。