劉鎖蘭,顧嘉暉,王洪元,張云鵬
常州大學,信息科學與工程學院,江蘇 常州213164
人體行為識別(human action recognition)是計算機視覺及機器學習方面的熱門研究領域。它在對視頻中的人類行為進行運動分析、行為識別乃至延伸至人機交互領域都有著非常廣泛的應用。研究初期,人體行為識別主要是以基于靜態圖像為研究對象。通過提取靜態圖像中的人體動作特征并對動作進行分類。然而僅基于靜態圖像來進行識別人體行為的局限性在于人體行為是連續、動態的,單憑一張靜態圖像無法進行判斷識別。而基于視頻為研究對象,可以將視頻看作連續靜態圖像的時間序列。近兩年,很多基于視頻為對象的人體行為識別取得了不錯的成果,例如,Gao等人[1]以多視角的視頻為基礎開發出了一種自適應融合和類別級詞典學習模型。除此之外,Akula等人[2]以紅外圖像為對象提出了一種用于人類動作識別的深度學習方法。因此本文選用基于視頻為研究對象。
在通常情況下,人體行為識別有著例如外觀、光流、身體骨骼和深度等多種模態[3-7],人們可以通過這些模態建模并傳達重要信息進而實現人體行為識別。近幾年,比較熱門的深度領域有著很多的成果,Kamel 等人[8]利用使用卷積神經網絡從深度圖和姿勢數據中進行人體行為識別。Ji等人[9]利用深度圖來將骨骼信息嵌入從而達到對人體進行分區的目的,以及Zhao等人[10]提出了一種貝葉斯分層動態模型用于人類動作識別也取得了不錯的效果。而在這些模態當中,人類身體骨骼通常能與其他模態相輔相成并傳達重要信息。同時也因為骨骼信息的清晰直觀且不易受到人體外觀等其他因素的影響,具有良好的魯棒性。目前,通過系統研究開發具有原則性且有效的方法模擬身體骨骼并提取骨骼信息來實現基于視頻的人體行為識別,成為了該領域的熱門課題。
通過人體關節位置的時間序列,身體骨骼模態一般以2D 或者3D 坐標的形式來表示,進而分析動作模式,并識別人體行為。早期基于骨骼信息進行人體行為識別僅僅是使用坐標標記關節信息,例如Wang 等[11]和Fernando等人[12]將骨骼信息作為一組坐標點,利用關節之間多種基于位置的特征來形成特征向量,然后進行時序分析達到對人體行為的識別。但是這些方法并不能明確利用人類關節的空間關系,因此識別能力有限,這也對人們理解人體行為造成了很大的阻礙。近些年來一些研究表明,Shahroudy 等人[13]通過關節間的自然連接的行為識別方法,Pham 等人[14]通過利用深度殘差網絡有效地學習RGB 圖像中攜帶的時空動態信息,以及Song 等人[15]通過基于時空注意力的LSTM 網絡將其用于3D動作識別檢測都證明了關于人類關節之間的空間關系的重要性。雖然一些模型作為特定的應用設計有著不錯的效果,但難以推廣到普遍的任務中來,主要原因在于這些方法在分析空間模式時過多依賴手工標注或人為設定的規則。
通常情況下,人體可以看作是由剛性骨骼和鉸鏈關節所組成的鉸接系統[16]。軀干和四肢則由骨骼和鉸鏈關節進一步的組合而成。人體行為是由這些軀干和肢體的運動組成。因此,需要一種新的方法用以加強關節之間的空間關系。同時,該方法能夠自動捕獲并嵌入關節空間配置及其動態模式。基于此,本文在近年熱門的時空模型(ST-GCN)[17]基礎上提出了一種新型的分區策略。本文的主要貢獻如下:首先,提出的分區策略,在基于時空模型基礎上相比于傳統的ST-GCN方法加強了身體部分的相對位置之間的聯系,有利于提高骨架關節點信息在時間和空間上的識別精度;其次,分析了學習率對該模型識別效果的影響。通過設置每輪迭代的學習率達到在一定程度上提升識別精度的目的。
近些年來,一些基于深度學習的人體行為識別方法在計算機視覺領域有著非常不錯的成績。一個新興課題就是將神經網絡推廣到具有圖形結構的數據中,其中神經網絡主要包括遞歸神經網絡[18-20]和卷積神經網絡[21-23],以及對圖像卷積網絡(CNN)或圖卷積網絡(GCN)的泛化。構造GCN 的原理一般分為兩種:(1)光譜視角,例如Duvenaud 等人[21]使用光譜分析的形式考慮圖卷積的局部性;(2)空間視角,Niepert等人[24]將卷積濾波器直接應用于圖節點及其相鄰節點。提出的時空圖卷積網絡(ST-GCN)模型遵循第二種精神,通過將每個卷積核的應用限制在每個節點的相鄰距離為1的位置上,然后將CNN 卷積核構造在空間域上,從而完成在圖形結構上構造圖卷積神經網絡(GCN)的工作。
如文獻所述,基于骨架的人體行為識別方法因對復雜場景具有較強的魯棒性,因此近些年涌現很多基于骨架的動作識別方法[25]。一般分為兩種方法:(1)基于人工特征選擇的方法,通過人工設定的特性來捕捉關節運動動態。例如關節的相對位置[26]、關節軌跡的協方差矩陣[27]或是身體部分之間的平移旋轉[28]等特性。(2)深度學習方法,基于深度學習進行骨架建模,端到端的動作識別模型通過使用遞歸神經網絡[7,13,29-30]和臨時CNNs[31-33]來學習。ST-GCN不同于這些方法,雖然強調了人體關節建模的重要性,但這些部分一般使用領域知識明確分配指定。ST-GCN 將GCN 應用于基于骨架的人體行為識別系統中,在此基礎上加入了對識別人體行為非常重要的關節之間的空間關系這一因素,以人體關節為節點,同時連接關節之間的自然聯系和相同關節的跨連續時間聯系,然后以此為基礎構造多個時空圖卷積層,沿時空維度進行集成信息。人類對事物的感知取決于先前的記憶活動,而不是從零開始的。例如,當一個人在讀一本書的時候,他總是借助記憶中的前一幀內容來理解當前幀內容。換言之,人類思維的過程是連續的。而ST-GCN通過跨連續時間連接空間相同關節的臨時邊緣使得前后幀關節信息管理具有連續性。因此,ST-GCN相比于傳統的骨架建模具有更大的表現能力和更強的泛化能力。圖1 所示為在序列骨架圖的基礎上建立的ST-GCN 示意圖。圖中每個節點對應于人體的一個關節,主要分為與關節的自然連接相聯系的空間邊緣,以及連續幀間連接相同關節的臨時邊緣。

圖1 ST-GCN示意圖
然而,圖1模型在劃分骨架關節節點提取節點信息方面僅僅是將相鄰節點信息進行聚合。在人身體部分之間的聯系方面主要使用了三種分區策略:單標簽、距離分區和空間配置分區。這三種分區策略僅僅考慮到了相鄰節點之間的聯系,并不能充分考慮到人體身體部分之間相對位置的聯系對行為識別所起到的重要作用。為了充分發揮ST-GCN 模型在時空域上對骨架關節點信息的重要作用,在原有ST-GCN時空模型的基礎上提出了一種新的骨架關節點分區策略,以進一步提高識別的準確率。此外,根據小批量梯度下降思想,本文在訓練數據集過程中通過設置不同的迭代學習率,可以有效改善識別準確度且不會增加訓練時間。
ST-GCN是基于圖卷積神經網絡基礎上加強了時空聯系的一類模型。相關研究表明局部區域內的關節軌跡的建模會受到整個骨架的限制而形成骨架序列的層次表示,使得這些人體行為識別方法得到了極大的改進。層次表示和局部化在圖像對象識別等任務中一般通過卷積神經網絡的固有特性來實現。這也是STGCN 模型將CNNs 引入到基于骨架的人體行為識別中的重要原因。它所提出的跨連續時間內對相同關節點進行連接和信息集成,極大地增強了運動連續性信息的關聯。
如圖2 為本文所提模型結構圖。其中輸入視頻利用OpenPose 提取骨架關節點,在骨架序列中構造時空圖,利用新的分區策略和跨連續時間連接空間的方式,提取骨架信息生成更高層次的特征圖,然后通過標準的SoftMax 分類器進行動作分類識別。可以從運動捕捉設備或視頻的姿態估計算法(OpenPose)中得到基于身體骨骼的數據。通常情況下數據是一系列的幀,每一幀都有一組聯合坐標。如圖2 所示,根據給定的2D 或3D坐標系下的身體關節序列構造一個時空圖。人體關節對應圖的節點,而人體身體結構的連通性及時間上的連通性對應圖的兩類邊。因此,圖節點的聯合坐標向量即為該模型的輸入。下面將以ST-GCN模型為基礎,介紹應用新型分區策略所做的工作。

圖2 本文模型結構圖
基于圖的卷積的實現不同于2D 或3D 卷積。從傳統的2D 自然圖像或特征圖上的卷積運算的定義來看,它們可被視為二維網格。卷積操作輸出的特征圖也是一個2D 網格。設一個大小為K×K的卷積核,輸入圖像為fin,通道數為c。則單個通道在空間位置x的輸出值可以寫為:

其中,采樣函數p表示位置x及其鄰域。權重函數w表示權重ω提供c維空間中的權向量,用于計算具有維度c的采樣輸入特征向量的內積。根據上述公式的卷積操作將其應用到空間圖Vt的特征圖中,然后下一步是重新定義采樣函數p和權重函數w。在圖像上,中心像素x的鄰域像素為采樣函數p(h,ω)。而在圖上,定義節點vti鄰域集的采樣函數B(vti)={vtj|d(vtj,vti)≤D}。其中d(vtj,vti)為vti到vtj的最小路徑。因此改進后的采樣函數p寫作(在這項工作中,選擇D=2 來表示所有的根節點的相鄰節點集合):

圖中的順序通常是由根節點周圍鄰域圖中的圖標記過程定義的[24]。每個根節點的鄰居節點都不會擁有獨有的標簽,而是通過將一個關節節點vti的鄰居集B=(vti)劃分為固定數量的K個子集來簡化這個過程,其中每個子集都有一個數字標簽。因此,可以建立一個映射lti:B(vti)→{0,1,…,K-1},將鄰域中的節點映射到其子集標簽上。構造的權重函數w(vti,vtj)表示為:

將改進的采樣函數(2)和權重函數(3)用來表達圖卷積公式,得到:

為了充分利用ST-GCN 在時空鄰域關節信息集成的優勢,本文在設計分區策略中使用了新的分區策略。該分區策略首先在單個幀中使用再擴展至空間-時間域。根據節點到根節點之間的距離來劃分鄰域集。如圖3所示,在該項工作中將D設置為2,并將鄰域集分成3 個子集:(1)根節點本身;(2)距離根節點d=1 的鄰居節點位于d=1 子集中;(3)剩余距離根節點d=2 的節點位于d=2 子集中。提出的分區策略主要考慮到人體在進行活動時關節的移動形式是以局部小組為單位,及上文所提到的人體身體部分的運動組成。將D設置為2,擴大了整個鄰域集,通過關聯根節點與更遠節點之間的聯系從而加強身體各部分信息的關聯,使得模型對身體局部信息的感知更具敏感性,從而進一步提升識別精度。

圖3 本文分區策略
圖3 為本文所提用于構造卷積運算的分區策略。其中,圖3(a)為輸入框架示例:身體的關節用藍點表示。D=1 的過濾器的接受域用紅色虛線圈表示;圖3(b)為所提出的分區策略:這3 個子集分別表示距離為0 的根節點本身(紅色),距離為1 的相鄰節點(藍色),以及距離為2的其余相鄰節點(黃色)。
為實現基于ST-GCN骨架的動作識別,采用類似于圖卷積的表達形式[34]。單幀內關節的自連接由單位矩陣I和表示體內連接的相鄰矩陣A表示,在單幀情況下,所提出的分區策略的ST-GCN 可以使用以下公式實現:

對于具有多個子集的分區策略,其中鄰接矩陣被拆分成幾個矩陣Aj,即在該策略分區中,A0=I和A1+A2=A。
在訓練過程中,文獻[17]采取了隨機梯度下降學習模型,即每次迭代僅使用一個樣本來對參數進行更新以加快訓練速度,但存在準確度下降以及僅收斂到局部最優等明顯缺陷。基于此,根據小批量梯度下降的思想,通過重復實驗對比得到每輪迭代所相適應的學習率,在改善收斂性問題的同時并不會增加訓練時間,且得到了更高的識別準確度。
通過實驗評估了ST-GCN 采用新型劃分策略之后的識別性能。實驗采用了兩個不同性質的大規模動作識別數據集:NTU-RGB+D 和Kinetics。由于ST-GCN本身在不同節點上共享權重,所以還需要在不同關節上保持輸入數據規模的一致性。首先,在實驗中需要將輸入骨架提供給批量標準化層以標準化數據。ST-GCN模型主要由9 層空間-時間圖卷積算子(ST-GCN 單元)組成。其中前3 層有64 個輸出通道,中間3 層128 個輸出通道,最后3 層有256 個輸出通道。這些層具有9 個臨時內核大小。Resnet機制適用于每個ST-GCN單元。并且在每個ST-GCN單元之后以0.5的概率隨機丟棄特征以避免過度擬合。其中第4和第7時間卷積層的步幅被設置為2作為匯集層。然后,在重新生成的張量上執行全局池,用來獲得每個序列的256 維特征向量。最后,將其提供給SoftMax 分類器。而為了驗證相適應的學習率對識別精度提升的有效性,嘗試通過人工設置每輪迭代的學習率,并將結果與原始模型中隨機梯度下降法的識別結果進行比對。所有實驗均在使用1 個1060 6 GB GPU的PyTorch深度學習框架上進行。
NTU-RGB+D:NTU-RGB+D數據集[13]包含了56 880個視頻,分為60 個動作類,包括40 種日常動作,9 種運動動作,以及11 種人際互動動作。這些動作由40 名志愿者在實驗室環境中采用3 個攝像機同時記錄。通過Kinect深度傳感器檢測并提供注釋,在攝像機坐標系中給出3D 關節位置(X,Y,Z),主要包含了人體25 個關節點。
該數據集的作者提供了兩種評價方式:(1)基于不同行為主體的評價(X-Sub)。將40 名受試者分為兩組。第一組有40 320 個視頻用于訓練樣本,第二組有16 560 個視頻作為測試樣本。(2)基于不同拍攝視角的評價(X-View)。視頻由3 個不同角度的攝像機記錄。該設置中的訓練片段則是來源于攝像機視圖2 和3,共計37 920 個視頻。攝像機視圖1 提供全部測試樣本共計18 960 個視頻。根據該設置進行了相關實驗并報告兩個基準測試的top-1識別準確率。
Kinetics:Deepmind Kinetics 數據集[35]的數據相對豐富,包含了從YouTube 檢索到的大約300 000 個視頻剪輯。這些視頻涵蓋了多達400個人類行為,從日常活動及運動場景再到復雜的互動行為,每個動作片段持續約10 s。Kinetics數據集僅提供沒有骨架數據的原始視頻剪輯。而在這項工作中專注于基于骨架關節的動作識別,所以選擇放棄原始RGB 幀而使用像素坐標系中的估計關節位置來作為輸入。首先將所有視頻的分辨率調整為340×256,同時將幀速率轉換為30 frame/s。然后使用OpenPose[25]工具箱來估計剪輯的每個幀上18個關節的位置。根據18個關節點的置信度分數C和像素坐標系中的2D坐標(X,Y),用(X,Y,C)元組來表示每個關節,同時骨架框架被記錄為18 個元組的數組。對于多人情況,每個片段中選擇平均關節置信度最高的。通過這種方式,一個具有T幀的剪輯被轉換為這些元組的骨架序列。關于在實踐中表示剪輯,使用(3,T,18,2)維度的張量。
本文主要提出了一種新的分區策略:將骨架關節點分為3個子集,分別為隨機根節點集合,距離根節點為1的關節點集合,以及距離根節點為2的關節點集合。將原始模型中的3種分區策略與本文所提出的分區策略用于Kinetics 數據集和NTU-RGB+D 數據集上,進行對比實驗。同時,對新的分區策略通過設置不同的學習率和隨機梯度下降學習兩種條件下的實驗結果進行了比較。
(1)NTU-RGB+D(X-View)實驗結果與分析
表1 為基于骨架的NTU-RGC+D 數據集的動作識別性能。采用基于不同拍攝視角(X-View)的實驗方法對比了幾種分區策略的準確性,其中,*號表示人工設置每輪迭代的學習率參數下新的分區策略的識別率。
從表1的對比結果可以看出,本文所提分區策略得到的識別率相較于原分區策略中的uniform 和distance均有明顯提升。僅在第3 種spatial 分區迭代訓練至40時比本文的分區策略在top-1高了2.39個百分點。這證明在相同的實驗條件下,本文所提分區策略在一定程度上要優于原始分區方法。而在對每輪進行相適應的學習率設置之后,ours*呈現的最優實驗結果比ours 結果分別提高3.38個百分點和1.01個百分點。同時,相比于之前的3 種分區方法,無論top-1 還是top-5 的精度均有較大提升,最高由原來的83.42%提升至86.89%,以及98.20%提升至99.11%。

表1 NTU-RGB+D(X-View)實驗結果 %
(2)NTU-RGB+D(X-Sub)實驗結果與分析
表2 為基于骨架的NTU-RGC+D 數據集的動作識別性能。采用基于不同的行為主體(X-Sub)的實驗方法對比了幾種分區策略的準確性。可以看出本文的分區策略在NTU-RGB+D的評估下,最終訓練結果相比于原文中的3 種分區策略中最好的訓練結果在top-1 上有了0.13 個百分點的提升,而在top-5 上僅僅相差了0.05 個百分點。但是,在變化每輪迭代學習率參數之后,可以看出本文的分區策略在top-1 和top-5 的精度相比于采用固定的學習率分別具有0.67 個百分點和0.59 個百分點的提高。這也進一步證明了合適的學習率參數對訓練結果有著積極的影響。

表2 NTU-RGB+D(X-Sub)實驗結果 %
(3)Kinetics實驗結果與分析
表3 為基于骨架的Kinetics 數據集的動作識別性能。從表3可以看出,通過設置相適應的迭代學習率之后,本文的訓練結果在top-1和top-5上相比于原文中的distance分區策略識別精度提升最為顯著,分別達到4.26個百分點和3.76個百分點。但是,相比于NTU-RGB+D數據集,此處識別精度沒有達到預期的提升效果,這主要是由于NTU-RGB+D采集數據時攝像機是固定的,而Kinetics 數據集上視頻通常由手持設備拍攝,大鏡頭運動導致數據穩定性差,從而加大了對身體相對位置之間信息關聯的難度。

表3 Kinetics實驗結果 %
NTU-RGB+D 數據集為在實驗室環境中采集。因此,對數據集中的動作以正面和兩個側面視角的數據作為訓練集,而將左右45 度視角的數據作為測試集。實驗結果如表4所示。

表4 不同視角下的比較 %
通過表4中的數據比對,發現在相同的行為下對不同視角拍攝的數據進行行為識別時,top-1 和top-5 的精確度與訓練狀態下的最優識別率相當,最大差距約0.1個百分點。可以得出結論,新型分區策略在不同的視角下的行為識別仍具有較高的魯棒性。
為了驗證ST-GCN在無約束和約束環境下的性能,將本文所提新型分區策略下的識別方法與當前幾種研究熱門的識別技術進行識別精確度的對比實驗。
(1)在Kinetics 數據集上的對比。主要比較了基于骨架特征的3 種識別方法,即基于是特征編碼的方法Feature Enc.,以及基于深度學習的兩種方法Deep LSTM和Temporal ConvNet。比較了在top-1 和top-5 精度方面的識別性能,結果如表5所示。

表5 在Kinetics數據集上幾種識別技術的對比 %
通過表5 可以發現,新型分區策略下的ST-GCN 相比于其他3種方法中效果最好的Temporal ConvNet,在top-1和top-5的精確度分別提高了2.64個百分點和2.31個百分點。
(2)在NTU-RGB+D 數據集上的對比。與該數據集上,將ST-GCN模型與當前研究先進的幾種方法進行比較,包括Lie Group、Deep-LSTM、Temporal ConvNet 以及ClipsCNN+MTLN。分別采用了基于不同拍攝視角(X-View)和不同行為主體(X-Sub)的實驗方法來進行實驗。實驗結果如表6所示。

表6 NTU-RGB+D數據集上與最新技術的比較 %
通過表6 可以發現,新型分區策略下的ST-GCN 相比于其他幾種方法中效果最好的ClipsCNN+MTLN,在X-View 和X-Sub 兩種實驗方法下的識別精度仍分別提高了2.09個百分點和2.59個百分點。同時,對比幾種識別方法可以發現,在不同視角下的識別精度整體上均優于不同行為主體實驗下的識別精度,最高相差8.8%。這主要是由于不同行為人即便在完成相同動作時仍因行為習慣等因素,導致動作存在較大的差異,這對識別準確率會產生直接影響。
本文提出了一種基于ST-GCN 的新型分區策略。不同于ST-GCN原始的分區方法,本文更注重人體身體部分之間的聯系對行為的影響,加強了身體相對位置之間的信息關聯。在兩個具有挑戰性的大規模數據集上的測試效果皆呈現部分程度的提高。此外,通過對比實驗,證實了變化每輪迭代的學習率相比于隨機梯度下降學習法可以進一步提升識別精度。新型分區策略的思想也為今后的工作提供了思路,如何在進行人體行為識別的時候更加注重身體每個部分之間的關聯,成為了提升識別率的一個可以深入研究的課題。