孫琪翔,何 寧,張聰聰,劉圣杰
(1.北京聯合大學 北京市信息服務工程重點實驗室,北京 100101;2.北京聯合大學 智慧城市學院,北京 100101)
人體動作識別是計算機視覺領域的重要研究方向之一。基于RGB 的人體動作識別方法往往對計算量有較高要求,且魯棒性較差,易受環境因素影響,在實際應用中準確率和實時性不佳。基于骨架的動作識別可以明確地表現人體動作,僅依據骨架便可識別出大量動作[1]。與傳統的RGB 數據相比,骨架序列不包含顏色信息,對視角變換、光照、遮擋等因素具有魯棒性,因此,骨架序列引起研究人員的關注[2]并廣泛應用于智能醫療、視頻理解、人機交互等領域[3]。
早期基于骨架的人體動作識別方法將人體的關節點視為一組獨立的特征,并且通過手工設計來模擬時空關節相關性[4],如YANG 等[5]提出基于關節位置差異的新型特征EigenJoints,其包含靜態姿態、運動、偏移量等信息,進一步使用樸素貝葉斯最近鄰分類器(Na?ve-Bayes-Nearest-Neighbor,NBNN)進行動作識別。但是,這類方法很少探索身體關節點之間的關系,同時由于復雜度過高且準確率有限而逐漸被深度學習方法所替代。
目前,基于骨架進行動作識別的主流方法可以分為三類,即基于卷積神經網絡[6]的方法、基于循環神經網絡[7]的方法以及基于圖卷積網絡(Graph Convolutional Network,GCN)[8]的方法。LIU 等[9]將關節點映射到3D 坐標空間,分別對空間和時間信息進行編碼,接著利用3D 卷積神經網絡分別從時空信息流中提取深層特征,從而得到最終的動作識別結果。該方法的優勢是可以在不同的時間區間提取到多尺度的特征,但其參數量過于龐大。DU 等[10]提出端到端的級聯循環神經網絡,其根據人體物理結構將人體骨架分為5 個部分,并分別輸入到5 個子網絡中,接著逐層進行信息融合,并在最后一層完成動作分類。該方法可以有效地學習時序特征,但其缺點是網絡參數量過高,較難優化。結合人體關鍵點的空間特性,空間圖卷積網絡可以更好地學習人體動作特征,同時,結合人體關鍵點位置的時間序列,能對動作的上下文信息進行學習。
為了提高動作識別的準確率,本文在WANG 等[11]所提出的非局部神經網絡的基礎上,設計基于圖卷積網絡的非局部網絡模塊,該模塊可以獲取全局特征信息從而提高網絡識別準確率。此外,本文利用多流數據融合算法,對4 種特征數據流進行融合,只需一次訓練就可以得到最優結果,從而降低網絡參數量。在此基礎上,結合Ghost 網絡[12]思想設計空間Ghost 圖卷積模塊和時間Ghost 圖卷積模塊,在網絡結構層面進一步降低網絡參數量。
通過人體姿態估計算法或高精度的深度攝像頭可以獲取人體關節點特征,而由關鍵點連接的人體骨架能夠形成圖結構。YAN 等[13]提出將圖卷積網絡擴展到時空模型上的時空圖卷積網絡(Spatial Temporal Graph Convolutional Networks,ST-GCN),其基礎是時空圖結構,可以從輸入的關鍵點中建立一個時空圖,該方式保留了骨架關鍵點的空間信息,并使得關鍵點的運動軌跡以時序邊的形式得到展現,提高了網絡的特征表現能力和魯棒性。SHI等[14]在ST-GCN 的基礎上,提出2s-AGCN(Two-streamAdaptive Graph Convolutional Networks),其有自學習的鄰接矩陣策略,提高了網絡對空間特性的抽取能力。LI等[15]提出動作結構圖卷積網絡(Actional-Structural Graph Convolutional Networks,AS-GCN),該網絡創新性地從原始坐標信息中提取Action-Link 和Structural-Link 進行加權以作為GCN 的輸入,提升了網絡的準確率。SI 等[16]提出將圖卷積與LSTM 融合的新型網絡(Attention Enhanced Graph Convolutional LSTM Network,AGC-LSTM),該網絡使用注意力機制增強關鍵點的特征,同時利用LSTM 提高學習高層次時空語義特征的能力。SHI 等[17]提出使用有向無環圖構建人體骨架結構的新型模型(Directed Graph Neural Networks,DGNN),該模型為了更好地適應動作識別任務,構建可以根據訓練過程自適應改變圖的拓撲結構,同時利用骨架序列的運動信息和空間信息進一步提高雙流框架的性能。YANG 等[18]提出CGCN(Centrality Graph Convolutional Networks),其利用被忽視的圖拓撲信息區分關節點、骨骼和身體部分。相較基于循環神經網絡和卷積神經網絡的方法,上述基于圖卷積網絡的方法對非歐氏數據(Non-Euclidean data)具有有效性[19]。
SHI等[20]提出一種新型解耦時空注意網絡(Decoupled Spatial-Temporal Attention Network,DSTA-Net),其可以根據注意力網絡發現骨骼數據的關聯性,無需利用結構相關的卷積神經網絡、循環神經網絡或圖卷積神經網絡,體現了注意力機制的優越性。
當前眾多學者致力于輕量級網絡研究[21],目的是在減少網絡參數量的同時保持較好的特征提取能力。網絡輕量化方法主要分為3 類,即網絡參數輕量化、網絡裁剪以及直接設計輕量化網絡。網絡參數輕量化指降低表征網絡的參數量,VANHΟUCKE 等[22]提出一種利用8 位整數定點消除冗余參數的方法,GΟNG等[23]提出針對密集權重矩陣進行量化編碼來實現壓縮的方法。此外,Binary Connect[24]、Binarized Neural Networks[25]和Xnor-net[26]方 法雖然對 網絡壓 縮的程度較高,但是也會對網絡的準確率造成較大損失。網絡剪裁通常應用于壓縮網絡模型,HANSΟN 等[27]提出基于偏置參數衰減的網絡裁剪方式。和常規網絡相比,輕量級網絡結構所需的網絡參數量和浮點運算量(Floating-point Οperations Per second,FLΟPs)更小。因此,輕量級的網絡結構更適合在嵌入式設備和移動終端上應用。IANDΟLA等[28]在卷積神經網絡結構層面,利用瓶頸結構設計具有更少參數量的卷積神經網絡,根據該思路,其設計了一種精度與AlexNet 相當的輕量級網絡結構,該網絡參數量的大小只有AlexNet 的1/50。HΟWARD 等[29]利用深度可分離卷積建立輕量級深度神經網絡,結合2 個超參數乘法器和分辨率乘法器設計MobileNets 網絡結構,其網絡參數量大小只有標準卷積方法的1/9。張洋等[30]提出改進的EfficientDet 網絡并結合注意力機制,在保證網絡參數量的前提下提高了網絡準確率。
為了同時實現較低的網絡參數量以及較高的網絡準確率,本文主要進行如下研究:
1)針對預先定義圖拓撲結構所導致的準確率降低的問題,提出一種基于圖卷積網絡結構的非局部網絡模塊,直接關注所有關節點并判斷其是否存在連接,從而提高網絡的準確率。
2)為了減少網絡訓練的次數,提出多流數據融合算法,將關節點信息流、骨長信息流、關節點運動信息流、骨長運動信息流進行融合,使得網絡通過一次訓練即可得到最優結果,從而降低網絡參數量。
3)結合Ghost 卷積的思想,分別設計空間圖卷積網絡和時間圖卷積網絡,從主干網絡的層面降低網絡參數量。
4)設計新的時空圖卷積基礎模塊和時空圖卷積網絡,并在NTU60 RGB+D[31]和NTU120 RGB+D[32]數據集上進行驗證。
在ST-GCN 的基礎上,本文利用GhostNet 網絡中的Ghost卷積結構來降低網絡參數量,其中,用Ghost卷積替換空間圖卷積,命名為GSCN(Ghost Spatial Convolutional Network)模 塊,連接一個BN(Batch Normalization)層和一個ReLU層,以加快訓練;用Ghost卷積替換時間卷積,命名為GTCN(Ghost Temporal Convolutional Network)模塊,連接一個BN 層和一個ReLU 層,以加快訓練。如圖1 所示,一個基礎Ghost圖模塊(Ghost Graph Convolution Networks,GGCN)由一個GSCN、一個dropout 層和一個GTCN 組成,其中,dropout參數設置為0.5,同時,為了穩定訓練,網絡中增加了殘差連接。

圖1 非局部網絡模塊和單個GGCN 網絡模塊Fig.1 Non-local network module and single GGCN network module
對于傳統的圖卷積,人體的物理結構是設計圖拓撲結構的基礎,但是這樣的設計對于動作識別并非有效,例如,在由NTU-RGB+D 數據集提供的拓撲圖中,頭和手之間沒有聯系,但是在“wiping face(擦臉)”和“touching head(摸頭)”等動作中,頭和手之間的關系就是很重要的信息,因此,連接關系不應局限在相鄰節點中。隨著信息在不同網絡層間的傳遞,不同網絡層的語義信息將不同,因此,圖網絡結構也應該隨著信息的傳遞而更新。
針對上述問題,結合WANG 等[11]提出的非局部神經網絡,本文提出一種非局部網絡模塊,該模塊可直接關注所有的關節點,繼而判斷所有關節點間是否存在連接。在訓練過程中,以端到端方式對不同層和樣本分別學習圖結構。與原始非局部神經網絡不同,本文所提非局部網絡模塊包括3個部分,如圖1所示:第1部分Ai是物理結構圖,和ST-GCN[13]中的物理結構圖保持一致;第2 部分Bi是可以共享的圖結構,對于不同樣本而言這個部分是相同的,其可以表示關節點之間連接的一般模式;第3 部分Ci可為不同樣本學習獨一無二的圖結構,其為個性化的圖結構,針對任意一個樣本捕捉到獨特的特征圖。具體地,針對第3 部分Ci,本文采用歸一化嵌入式高斯函數計算2 個關鍵點之間的相似性,如式(1)所示:

其中:N代表關節點的數目;T表示幀數;θ和?用來進行維度變換。通過點積計算可以得到所有關鍵點之間的相關性,進而得到非局部鄰接矩陣。
如圖1 所示,使用1×1 卷積表示嵌入函數,每個輸入特征圖的個性化圖的計算如式(2)所示:

其中:softmax 操作將結果歸一化在0~1 之間;W是1×1 卷積的參數,初始值為0,與共享圖相同,它也需要采用殘差連接。綜上,圖卷積的定義公式如下:

圖卷積網絡方法主要分為基于頻譜的方法(spectralbased)和基于空間的方法(spatial-based)?;陬l譜的圖卷積網絡中的圖卷積操作可以看成將原始的處于空間域的圖信號變換到頻域之后,對頻域屬性進行濾波,然后再恢復到原來的圖信號所在的空域中,從而完成特征提?。?3],該操作的缺點是靈活性低、普適性差、運行效率不高;基于空間的圖卷積讓圖中的節點在空間域中相連并達成層級結構,進而進行卷積,因此,其能降低復雜度,增強泛化能力,提高運行效率。空間域圖卷積方法是動作識別領域的主流方法。
將骨架數據表示為N個節點,T幀的時空圖為G=(V,Ε)。人體動作的骨架坐標可以表示為X∈RN×T×d,其中,d是關節點的維度?;趫D卷積的模型包含空間圖卷積和時間圖卷積2 個部分。
對于空間圖卷積,將節點的鄰域定義為鄰接矩陣A∈{0,1}N×N。為了更好地說明空間圖卷積,將鄰接矩陣劃分為向心點、本征點和離心點3 個部分。對于單幀,F∈RN×C代表輸入特征,F′∈RN×C′代表輸出特征,其中,C和C′分別代表輸入和輸出特征的維度。圖卷積計算如式(4)所示:

其中:P={本征點,向心點,離心點}代表空間分區是歸一化的鄰接矩陣,定義如式(5)所示。

根據文獻[34],時間卷積是通過連接連續幀的節點并在時間維度上進行1 維卷積來實現。卷積核的大小由kt表示,通常設置為9。
基于上述圖卷積的模型有2 個缺點:
1)需要大量的算力。例如,ST-GCN[13]識別一個動作樣例需要16.2GFLΟPs,其中,空間圖卷積消耗4.0GFLΟPs,時間圖 卷積消 耗12.2GFLΟPs。一 些ST-GCN 的相關算法甚至需要消耗100GFLΟPs[17]。
2)不論是時間圖結構還是空間圖結構,都是預先定義好的,盡管一些研究工作[14]采用了可學習的鄰接矩陣,但是其仍受常規圖卷積架構的限制。
受限于內存和算力,在嵌入式設備上部署神經網絡比較困難。例如,給定輸入數據X∈Rc×h×w,其中,c代表輸入數據的通道數,h和w分別是輸入數據的高和寬。用于產生n個特征映射的任意卷積層的操作如式(6)所示:

其中:*代表卷積操作;b代表偏置項;Y∈代表輸出的有n個通道的特征圖,h′和w′代表輸出數據的高和寬;f∈Rc×k×k×n代表這個層的卷積濾波器,k×k代表卷積濾波器f的卷積核大小。如圖2 所示,此時FLΟPs 可以由n·h′·w′·c·k·k計算,由于濾波器和通道數通常非常大(如256、512 等),因此FLΟPs 通常高達數十萬。

圖2 常規卷積操作Fig.2 Conventional convolution operation
HAN 等[12]提出的Ghost 模塊可以有效解決上述問題。一個訓練好的深度神經網絡通常包含很多冗余的特征圖,在這些特征圖中,有些是彼此近似的,因此,用大量的網絡參數和FLΟPs 逐個生成冗余特征圖沒有必要。假設有m個固有特征圖Y′∈由初始卷積生成,如式(7)所示:

其中:卷積濾波器為f′∈Rc×k×k×m,m≤n。其他超參數(卷積核、步長、空間大小等)與原始卷積保持一致。為了得到所需要的n個特征圖,可以利用一系列線性操作在固有特征圖Y′上生成s個Ghost 特征,如式(8)所示:


圖3 Ghost 卷積操作Fig.3 Ghost convolution operation
Ghost 模塊包含一個恒等映射和m·(s-1)=(n/s)·(s-1)個線性運算,理想情況下普通卷積與Ghost 模塊的參數量比如式(9)所示,即用Ghost 模塊代替普通卷積操作可以使參數量縮小s倍。

基于圖卷積的方法通常利用訓練多流數據集的方式提高精度。特征流數據是指針對同一對象來描述這些數據的不同視角。利用多流數據之間的互補性可以學到更好的特征表示。本文提出一種將多流數據融合到圖卷積中的方法,該方法對關節點信息流、骨長信息流、關節點運動信息流、骨長運動信息流進行融合。進行多流數據融合,一方面使得構建的鄰接矩陣具有全局特性,另一方面能夠減少運算次數,降低運算成本,實現網絡輕量化。針對圖卷積網絡參數量過大的問題,本文設計輕量化Ghost 圖卷積網絡,其包含空間Ghost圖卷積和時間Ghost 圖卷積。
對于一個給定的骨架序列,其關節點的定義如式(10)所示:

其中:T為序列中的總幀數;N為總關節點數;Vi,t表示t時刻的關節點i。為了完成多流數據融合,需要對骨架序列s進行多樣化預處理。本文分別給出骨長信息流、關節點運動信息流和骨長運動信息流的定義。
1)骨長信息流。通常定義靠近人體重心的點為源關節點,坐標為Vi,t=(xi,t,yi,t,zi,t),遠離人體重心的點為目標關節點,坐標為Vj,t=(xj,t,yj,t,zj,t)。通過源關節點與目標關節點的差值計算骨長信息流,即骨長信息流的定義如式(11)所示:

2)關節點運動信息流通過計算相鄰2 個幀中相同關節點之間的差值得到。定義在t幀上的關節點i,其坐標為Vi,t=(xi,t,yi,t,zi,t),在t+1 幀上的關節點i則定義為Vi,t+1=(xi,t+1,yi,t+1,zi,t+1)。在關節點Vi,t與關節點Vi,t+1之間的運動信息流如式(12)所示:

3)骨長運動信息流通過計算相鄰2 個幀中相同骨骼之間的差值得到。根據式(10),可以定義在t幀上的骨長信息流為Bi,j,t,在t+1 幀上的骨長信息流為Bi,j,t+1。因此,骨長信息流如式(13)所示:

如圖4 所示,根據關節點信息流、骨長信息流、關節點運動信息流、骨長運動信息流的定義,多流數據融合的計算如式(14)所示:


圖4 多流數據融合Fig.4 Multi-stream data fusion
如圖5 所示,非局部Ghost 圖卷積網絡(Non-Local Ghost Graph Convolutional Network,NL-GGCN)是由9個基礎模塊堆疊而成,每個塊的輸出通道數分別為64、64、64、128、128、128、256、256 和256。在網絡的開始階段增加數據BN 層,用來歸一化輸入數據,在網絡的最后增加一個全局平均池化層(Global Average Pooling,GAP),將所有不同的骨架樣本池化到相同的尺寸大小,最后通過softmax 分類獲得預測結果。

圖5 非局部Ghost 圖卷積網絡結構Fig.5 Non-local Ghost graph convolutional network structure
本文算法流程如算法1 所示。
算法1輕量級人體骨架動作識別算法

本文實驗環境設置為:64 位Ubuntu 18.04 操作系統,Intel?Xeon?CPU E5-2678v3@2.50 GHz,內存12 GB,顯卡RTX2080Ti、Cuda10.0.130、Cudnn7.5、PyTorch1.4和Python3.6軟件平臺。
本文實驗的人體骨架數據集包括NTU60 RGB+D數據集和NTU120 RGB+D 數據集,骨架樣例如圖6 所示,通過可視化代碼表現上述數據集中人體骨架在不同動作下的狀態。

圖6 NTU RGB+D 數據集中6 種動作的可視化效果Fig.6 Visualization of six actions in NTU RGB+D dataset
NTU60 RGB+D 數據集由南洋理工大學提出,由3 個Microsoft Kinectv2 相機同時捕獲完成,包括56 880 個動作片段,60 個動作分類,17 種相機擺放位置組合,有40 名演員參與到數據集的采集工作,具體的采樣點分布如圖7 所示,該數據采集的樣本關節點數目為25。

圖7 NTU60 RGB+D 數據集關節點標簽Fig.7 Joint point labels of NTU60 RGB+D dataset
本文采用該數據集中的2 種評判標準:
1)跨表演者(Cross-Sub),表示訓練集和驗證集中的動作來自不同的演員,其中,身份標示為1~38 的演員所演示的動作用于訓練,身份標示為39~40 的演員所演示的動作用于測試,訓練集樣本數為40 320,測試集樣本數為16 560。
2)跨視角(Cross-View),表示標號為2 和3 的攝像機拍攝的動作用作訓練,標號為1 的攝像機所拍攝的動作用作測試,訓練集樣本數為37 920,測試集樣本數為18 960。
NTU120 RGB+D 數據集是對NTU60 RGB+D 數據集的擴充,相機擺放位置組合為32 個,動作分類增加到120 類,演員人數增加到106 人,動作片段數增加到114 480,樣本關節點數保持25 個不變。
本文中的所有實驗都是在PyTorch 深度學習框架下進行[35]。實驗優化策略采用Nesterov momentum(0.9)的隨機梯度下降(Stochastic Gradient Descent,SGD)。批大?。˙atch size)為64,模型迭代次數(Epoch)設置為50,初始學習率為0.1,當迭代次數分別為30和40時,學習率除以10。
為了驗證本文算法的有效性,在NTU60 RGB+D和NTU120 RGB+D 這2 個數據集上進行實驗對比。
首先,驗證本文多流數據融合方案的性能和有效性,設計6 組數據流,測試不同數據流對實驗結果的影響,結果如表1 所示,最優結果加粗表示,下同。其中:J 代表關節點信息流;B 代表骨長信息流;JM 代表關節點運動信息流;BM 代表骨長運動信息流。從表1 可以看出,骨長信息流對實驗結果影響較大,實驗數據驗證了本文所提多流數據融合方案的有效性。

表1 不同特征數據流對實驗結果的影響Table 1 Effects of different characteristic data streams on experimental results %
其次,為了驗證本文所提網絡的有效性,以融合的多流數據作為輸入,在NTU60 RGB+D 數據集上進行實驗,以Cross-View 作為評價標準,分別構建8 組實驗網絡,測試該網絡模塊對整個實驗結果的影響,結果如表2 所示,CV 表示Cross-View。

表2 不同網絡架構的準確率對比Table 2 Comparison of accuracy of different network architectures %
在表2 中,Non-local代表增加了非局部網絡模塊,wo-Non-local(without Non-local)代表沒有非局部網絡模塊,Convs 代表常規空間圖卷積,GhostConvs 代表Ghost 空間圖卷積,Convt 代表時間圖卷積,GhostConvt代表Ghost時間圖卷積。從表2 可以看出,非局部網絡模塊對準確率有較大的提升效果,Ghost結構對準確率提升效果有限。
從網絡參數量的角度,本文以融合的多流數據作為輸入,在NTU60 RGB+D 數據集上進行實驗,以Cross-View 作為評價標準,分別構建4 組實驗網絡,測試不同網絡結構對實驗結果的影響,結果如表3所示,其中,GFLΟPs 代表浮點運算量。從表3 可以看出,Ghost 架構在有效降低網絡參數量的同時保持了較高的準確率。

表3 不同網絡架構的網絡參數量對比Table 3 Comparison of network parameters of different network architectures
為了說明本文所提算法對網絡實時性的影響,以融合的多流數據作為輸入,在NTU60 RGB+D 數據集上進行實驗,以Cross-View 作為評價標準,分別構建4 組實驗網絡,測試不同網絡結構對網絡實時性的影響,結果如表4 所示,其中,Time 代表檢測單個動作樣本所需時間。從表4 可以看出,隨著Ghost架構的應用,網絡檢測單個動作樣本所需時間降低,Ghost 時間圖卷積網絡架構對網絡實時性影響較大。

表4 不同網絡架構的網絡實時性對比Table 4 Comparison of network real-time performance of different network architectures
在NTU60 RGB+D數據集上,本文將所提NL-GGCN與最先進的基于骨骼的動作識別方法在準確率和模型參數量上進行比較,實驗結果如表5 所示,CS 表示Cross-Sub。從表5 可以看出,本文NL-GGCN 的模型參數量遠小于其他方法,同時在準確率方面,以Cross-Sub作為評價標準,本文NL-GGCN 性能優勢明顯。

表5 NTU60 RGB+D 數據集上的實驗結果對比Table 5 Comparison of experimental results on NTU60 RGB+D dataset
為解決目前動作識別方法計算復雜度過高的問題,本文提出一種輕量級的人體骨架動作識別方法。針對人體骨架的特征,設計一種非局部網絡模塊,以提升網絡的動作識別準確率。在數據預處理階段,進行多流數據融合,通過一次訓練即可得到最優結果。在網絡結構上,分別將Ghost網絡結構應用在空間圖卷積和時間圖卷積上,進一步降低網絡參數量。動作識別數據集NTU60 RGB+D和NTU120 RGB+D上的實驗結果表明,該方法在實現較低網絡參數量的情況下能達到較高的識別準確率。在未來,人體動作識別將向著高實時性和高準確率的方向發展,以期廣泛應用于安防監控、陪護機器人等領域。后續將結合Transformer、heatmap stack、EfficientNet等新型網絡架構,進一步提升本文動作識別方法的魯棒性、準確率并降低網絡參數。