李昊璇,李旭濤
(山西大學 物理電子工程學院,山西 太原 030006)
人工智能(Artificial Intelligence)已被我國政府提升為國家戰(zhàn)略,推動 AI 技術(shù)進步是我國搶占科技競爭主動權(quán)的重要舉措。人類動作識別是人工智能中重要的分支之一,基于深度學習的骨架動作識別方法主要分為:基于循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)、基于卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)和基于圖卷積網(wǎng)絡(Graph Convolutional Network,GCN)3類。早期基于深度學習的研究方法主要使用RNN和CNN來提取關(guān)節(jié)之間的顯式特征。如Du等[1]使用RNN并逐層融合特征來識別骨架動作,但相近的動作卻難以識別準確;Fan等[2]設計了3階段的CNN網(wǎng)絡,通過特征提取、通道融合、多任務集成學習進行動作分類,但這些方法過多地關(guān)注了周圍物體及無關(guān)背景,或是使用龐大的網(wǎng)絡,同時學習到很多無關(guān)的特征,準確率不能滿足使用的需求。
近年來,基于骨架數(shù)據(jù)的圖結(jié)構(gòu)研究多了起來,原因在于圖對骨架數(shù)據(jù)的優(yōu)質(zhì)表達,只關(guān)注對人體動作識別有效的人體姿勢,通過對不同關(guān)節(jié)運動變化的學習,準確地學習每一動作的特征,使其在骨架動作識別方面大放光彩?;趫D的結(jié)構(gòu),Yan等[3]在2018年首先提出時空圖卷積網(wǎng)絡(Spatial Temporal Graph Convolutional Network,ST-GCN)利用圖卷積網(wǎng)絡來識別骨架動作。之后,在圖卷積領(lǐng)域的研究愈發(fā)多了起來,如基于GCN進行了更加充分的研究,更多的基線網(wǎng)絡被提出[4-6]。
基于圖卷積的研究大多以ST-GCN為基線網(wǎng)絡,如多流圖卷積網(wǎng)絡(Multi-Stream Adaptive Graph Convolutional Network,MS-AAGCN)[7],通道拓撲優(yōu)化(Channel-wise Topology Refinement Graph Convolution Network,CTR-GCN)[8],使用10層時間空間交替的卷積來提取特征,這無疑會增加網(wǎng)絡訓練的難度和復雜度。其中部分網(wǎng)絡,如JB-AAGCN以關(guān)節(jié)、骨骼及其各自的運動流分別訓練網(wǎng)絡,然后探索不同的融合方式將其融合,增加了無形的訓練時間,加大了訓練難度。雙流圖卷積網(wǎng)絡(Two-Stream Adaptive Graph Convolutional Network,2s-AGCN)上的每次訓練需要用4個GPU訓練一天,這使得在大規(guī)模數(shù)據(jù)集上的參數(shù)調(diào)整異常艱難。
Zhang等[9]利用一階關(guān)節(jié)信息作為輸入,無法將相互聯(lián)系的關(guān)鍵點建模綜合考慮?;诖?,本文提出B-V模塊(Bone Velocity)在數(shù)據(jù)的預處理部分利用關(guān)節(jié)信息得到二階骨骼信息,并利用骨骼信息得到骨骼的運動信息,有利于識別肢體協(xié)同的動作,增強數(shù)據(jù)的表達能力。
先前的網(wǎng)絡幾乎都是靜態(tài)非拓撲的網(wǎng)絡結(jié)構(gòu),靜態(tài)即表示關(guān)節(jié)中的參數(shù)α是不可學習的,非拓撲即沒有矩陣來學習關(guān)節(jié)之間的特征。本文提出拓撲細化圖卷積特征融合模塊(Channel-eise Topology Feature Combination Graph Convolution,CTFC-GCN),極大地提高了本文所提出網(wǎng)絡在空間特征上的表達。
在長時間跨度的骨架視頻動作識別上,時間流之間的聯(lián)系至關(guān)重要,雖然Zhang等[9]將空間最大池化和時間最大池化用于聚合時間流的特征,但時間流的特征聚合在池化之前是重要的,本文提出時間尺度上的時空特征注意力模塊(ST-Joint Attention,ST-ATT),增強前后幀時間維度上的表達能力,能有效提高識別的準確率。
針對上述問題,本文提出了以SGN(Semantics-Guided Neural Network)為骨干網(wǎng)絡模型的骨架動作識別網(wǎng)絡(Attention and topology-A with Semantics-Guided Neural Networks,AA-GCN),在保證模型性能的前提下,對現(xiàn)有網(wǎng)絡進行研究,主要貢獻如下:① 對數(shù)據(jù)流的輸入進行了研究,提出二階的骨骼信息和運動信息同時作為輸入,高效利用數(shù)據(jù)信息; ② 將動態(tài)非拓撲的網(wǎng)絡結(jié)構(gòu)變?yōu)榭蓪W習的動態(tài)拓撲結(jié)構(gòu)網(wǎng)絡,提出CTFC-GCN模塊; ③ 為增強時間維度的信息利用,探索注意力機制在圖卷積網(wǎng)絡的應用,提出ST-ATT模塊。實驗表明,本文所提AA-GCN能有效識別骨架動作。
本文以SGN為baseline網(wǎng)絡,提出一種結(jié)合二階骨骼信息及運動信息,注意力機制和通道拓撲細化模塊的骨架動作識別網(wǎng)絡AA-SGN,網(wǎng)絡結(jié)構(gòu)如圖1 所示,分別為B-V模塊,拓撲細化圖卷積特征融合模塊CTFC-GCN,時空特征增強注意力模塊ST-ATT和時間流模塊。
圖1 AA-GCN網(wǎng)絡結(jié)構(gòu)
2-V模塊為數(shù)據(jù)處理模塊,將原始的關(guān)節(jié)信息處理成二階的骨骼信息(Bone)和運動流信息(Velocity),利用兩層卷積網(wǎng)絡,把3通道的骨骼信息和運動流信息轉(zhuǎn)換成64通道,將其相加融合后的特征與對原始關(guān)節(jié)編碼后的高級特征進行cat操作,送入3層通道拓撲細化圖卷積CTR-GC中進行通道的學習,并在每一個CTR-GC后加入1X1和1X3的卷積聚合通道的特征,組成CTFC-GCN模塊,在空間流模塊后加入ST-ATT注意力機制來關(guān)聯(lián)圖卷積學習到的位置及時間特征,強化對關(guān)節(jié)點特征的通道表述,為時間流模塊的特征學習提取更多信息。
在時間流模塊融入時序特征的編碼,利用全局最大池化進行全局時間特征的提取,只剩余時間特征,送入兩層卷積網(wǎng)絡進行時間特征的學習,然后,再次進行全局最大池化,利用全連接層對學習到的通道特征進行人體動作的識別。以下對每一模塊進行細化分析。
基于先前的研究,輸入網(wǎng)絡的數(shù)據(jù)預處理是十分重要的,一階關(guān)節(jié)信息(Joint)作為輸入,網(wǎng)絡提取到的特征有限,這極大地限制了模型的表達。二階信息為一階關(guān)節(jié)信息處理后的信息,如骨骼信息(Bone),不僅包含了關(guān)節(jié)點信息,更是包含了關(guān)節(jié)之間的連接關(guān)系以及長度,二階運動信息(Velocity)包含了輸入的每一幀運動信息,其中第一幀的運動信息為0,將每一關(guān)節(jié)點的細微變化建模,輸入網(wǎng)絡,使網(wǎng)絡學習到細微的關(guān)節(jié)運動特征,本文將二階特征進行通道的特征轉(zhuǎn)換,經(jīng)過兩層CNN,提取為高級特征,再將其相加融合。
假定輸入網(wǎng)絡的初始關(guān)節(jié)坐標X= {x∈Rn,c,t,v},其中N,C,T,V分別代表輸入批次的大小batch_size、輸入的通道數(shù)、輸入的幀數(shù)以及輸入的三維關(guān)節(jié)點的數(shù)目,通過式(1)、式(2)分別得到骨架數(shù)據(jù)的二階骨骼信息和二階運動信息。
Bi1=x[:,:,i1,:]-x[:,:,i2,:],
(1)
i1,i2分別代表相連接的關(guān)鍵點
V=x[:,:,:,1:]-x[:,:,:,0:-1].
(2)
由于最后一個維度為關(guān)節(jié)點維度,運動信息的獲取主要是從第二幀到最后一幀,減去第一幀到最后一幀的關(guān)節(jié)點位置,所以在式(2)之后需要在第一幀處補0(即第一幀運動信息為0),得到完整的運動信息。
通道拓撲圖卷積(Channel-wise Topology Refinement Graph Convolution,CTR-GC)如圖2 所示,主要分為通道細化拓撲模型、特征轉(zhuǎn)換以及通道細化聚合模塊3部分。通道拓撲細化模型中首先對輸入的特征進行轉(zhuǎn)換,使用Φ和Ψ函數(shù)進行通道維度的轉(zhuǎn)換,M表示對兩個函數(shù)轉(zhuǎn)換后的特征進行激活(本文使用的激活函數(shù)為tanh函數(shù)),使其成為N×N的矩陣,隱式的建模學習關(guān)節(jié)之間的相關(guān)性。本文構(gòu)建3個拓撲非共享的A矩陣,分別為每一關(guān)節(jié)不同幀的自我連接、同一幀不同關(guān)節(jié)與中心關(guān)節(jié)的連接、同一幀相連接的關(guān)節(jié)。R矩陣由式(3)得到,其中α設定為可訓練的參數(shù)。
圖2 CTR-GC
R=A+αQ.
(3)
特征轉(zhuǎn)換部分通過二維卷積,將輸入的特征轉(zhuǎn)換成高級特征。在通道聚合部分,每一個通道的R矩陣與通道轉(zhuǎn)換后的特征使用enisum函數(shù)即愛因斯坦求和運算,得到最終的輸出。
CTFC-GCN由上述3個拓撲結(jié)構(gòu)的CTR-GC及1×1和3×3的特征聚合卷積模塊組成,并加入殘差連接使網(wǎng)絡的訓練更加穩(wěn)定,如圖3 所示。
圖3 CTFC-GCN
先前基于骨架的注意力模塊主要有SENet中的SE注意力機制,Channel注意力,Joint注意力以及Song等[6]提出的Part注意力,許多論文的研究充分證明了注意力機制在骨架動作識別的有效性。本文的ST-Joint Attention將關(guān)節(jié)維度及時間維度分別用二維卷積來提取特征,為各通道獲得不同的權(quán)重,如式(4),式(5)所示。
x_t_att=W2(relu(BN(W1V1+b1)))+b2,
(4)
x_v_att=W2(relu(BN(W1V2+b1)))+b2,
(5)
式中:V1,V2分別為壓縮關(guān)節(jié)維度和時間維度得到的N×C×T和N×C×V的矩陣。
x_att=x_t_att×x_v_att.
(6)
通過式(6)得到ST-Joint Attention的注意力權(quán)重,注意力機制ST-ATT模塊如圖4 所示。
圖4 ST-ATT
NTU RGB+D Dataset[10](NTU60)是一個大規(guī)模的骨架動作數(shù)據(jù)集,該數(shù)據(jù)集是由Kinect攝像機收集,包含56 880個3D骨架序列動作,共有60個類。此數(shù)據(jù)集的數(shù)據(jù)劃分方式主要有兩種。一種為Cross Subject(CS)設定,按演員的不同,其中20個演員的動作用來訓練網(wǎng)絡,剩余的用來測試;另一種為Cross-View(CV)設定,該數(shù)據(jù)集有3個攝像機拍攝,把2,3號攝像機的數(shù)據(jù)集用來訓練,1號的數(shù)據(jù)集用來測試。
NTU120 RGB+D Dataset[11](NTU120)在NTU60的基礎上,作者進行了數(shù)據(jù)的擴充,增加到120個動作類,增加57 600個視頻動作,共114 480個視頻,為了減小演員的干擾,把人數(shù)增加到106人。對于Cross Subject(CSub)設定,一半人數(shù)的視頻用來訓練,其余人的視頻用于測試;對于Cross Setup(CSet)設定,把一半拍攝的數(shù)據(jù)用來訓練,其余用于測試。
網(wǎng)絡設定:B-V模塊通道時C1設定為64;把時間和空間的語義信息分別編碼成256和64通道;3層圖卷積的通道時分別設定為128,128,256;時間模塊的兩層卷積通道設定256和512。本文選取的激活函數(shù)均為Relu。
訓練設定:本文實驗基于python3.6,pytorch1.3,CUDA10.2,GPU2080Ti,優(yōu)化器選擇Adam,初始的學習率設定為0.001,訓練策略為共90epoch,分別在第60,80epoch學習率減半,權(quán)重衰減為0.0001,bitch size大小設定為64。
數(shù)據(jù)處理:將每一個完整的視頻數(shù)據(jù)處理成20個片段,每次訓練隨機選取一幀組成20幀的序列,使網(wǎng)絡的魯棒性更強,較其他網(wǎng)絡的數(shù)據(jù)處理方式,此方法極大降低了網(wǎng)絡訓練的難度,并且使用更少的圖卷積就可使網(wǎng)絡達到很好的效果,在訓練時間上優(yōu)于目前所提出的基線網(wǎng)絡。
本文在3D骨架數(shù)據(jù)集NTU60數(shù)據(jù)集上的CS設定上進行消融實驗,其中A表示B-V模塊,B表示拓撲細化圖卷積特征融合模塊CTFC-GCN,C表示本文的時間維度和空間維度注意力機制ST-ATT模塊。
由表1 可以看出,通道細化級的圖卷積網(wǎng)絡對網(wǎng)絡的提升較為明顯,合適的數(shù)據(jù)處理方式能夠在原網(wǎng)絡上有所提升,注意力機制的使用使本文所提網(wǎng)絡對動作的識別分類有很好的聚合作用。對每一模塊的缺失比較如表2 所示。
表1 各模塊的實驗對比
表2 移除各模塊的實驗對比
表2 表示每一模塊缺失對本文模型的影響。其中w/o A表示移除了B-V模塊;w/o B表示移除了拓撲細化圖卷積特征融合模塊;w/o C表示移除了本文的注意力機制模塊。由表1 和表2 綜合比較可得,每一模塊的改動均對網(wǎng)絡有一定的影響,其中+B+C會有0.4%的提升,+A會有0.1%的提升,但3個綜合也即本文的模型會有1%的提升,每個模塊的綜合價值會更高。
本文在NTU60,NTU120兩個大數(shù)據(jù)集上進行實驗,與近年來提出的網(wǎng)絡進行對比,從而證明本文所提模型的有效性,如圖5、表3、表4 所示。
圖5 NTU60數(shù)據(jù)集的可視化結(jié)果
表3 NTU60數(shù)據(jù)集的實驗精度對比
表4 NTU120數(shù)據(jù)集的實驗精度對比
在這些方法中,文獻[3]提出時空圖卷積網(wǎng)絡用于骨架動作識別;文獻[6]提出使用多流的數(shù)據(jù)來提升網(wǎng)絡的準確率;文獻[11]提出動作結(jié)構(gòu)圖卷積網(wǎng)絡(Actional-Structural Graph Convolutional Network,AS-GCN); 文獻[12]提出自適應網(wǎng)絡(View Adaptive Neural Network, VA-NN)探索了角度對動作識別結(jié)果的影響,對視頻視角進行調(diào)整;文獻[13]提出預測編碼圖卷積網(wǎng)絡(Predictively Encoded Graph Convolutional Network,PE-GCN)噪聲的大小對網(wǎng)絡的影響,作者人為地引入不同等級的噪聲,旨在訓練魯棒性更強的模型;文獻[14]首次使用提取視頻中的某些幀來進行一次的訓練,多個epoch能使網(wǎng)絡獲得較為滿意的性能,且網(wǎng)絡易于訓練;文獻[15]提出高效圖卷積(Efficient Graph Convolutional Network,EFFICIENTGCN)探索了多種注意力機制在時空圖卷積網(wǎng)絡上的應用,提出更加輕量穩(wěn)定的基線網(wǎng)絡;文獻[17]提出擴展的分層時態(tài)卷積網(wǎng)絡(Dilated Hierarchical Temporal Convolutional Network,DH-TCN)對時許和骨骼點編碼,提取短期和長期依賴關(guān)系。
表3 展示了本文提出的AA-GCN網(wǎng)絡與SGN網(wǎng)絡的預測結(jié)果對比,4種不同的動作可視化包括(a)手指對方、(b)擁抱、(c)給別人東西和(d)吃飯,圖5 中(1),(2)分別為SGN和AA-GCN的預測結(jié)果,本文模型對這4類易錯的動作識別有較好的準確度,可以看出(d)吃飯與摘眼睛由于手臂的細微動作,兩種模型均不能有較好的結(jié)果,在(a)手指對方、(c)給別人東西兩種動作上,本文效果更好,證明本文模型準確度高于SGN網(wǎng)絡模型。
由表3 可以看出,對準確率影響最高的是拓撲細化圖卷積特征融合模塊,這也是本文主要的圖卷積特征學習模塊,充分表現(xiàn)了其有效性。
通過表3 和 表4 的實驗結(jié)果可知,二階特征的提出使模型獲得了更加豐富的信息,通道化拓撲卷積使模型在多類動作識別上表現(xiàn)優(yōu)異,在NTU120數(shù)據(jù)集上提升效果更加明顯,與目前先進的基線如EFFICIENT相比,其準確率更高,并且訓練難度大大降低,訓練時間更短。
本文以語義引導圖網(wǎng)絡SGN為基線,對原始關(guān)節(jié)信息的特征信息進行多流的處理,得到骨骼數(shù)據(jù)流和運動信息流,有效地利用了數(shù)據(jù)。針對網(wǎng)絡特征學習的不足,對SGN的自注意圖卷積模塊進行改進,提出通道細化圖卷積特征融合模塊,使網(wǎng)絡可以針對動作類的不同,動態(tài)地學習與其相符的拓撲矩陣,在多類動作數(shù)據(jù)集上提升較為明顯,在NTU120數(shù)據(jù)集的CSub,CSet上達到了84.9%和86.1%的準確率,提升了5.7%和4.6%的準確率。在真實場景下,動作的遮掩和動作的復雜性,使得到準確的關(guān)節(jié)點數(shù)據(jù)往往依賴于高效的姿態(tài)估計模型或姿態(tài)采集設備。對姿態(tài)估計算法有較為深入的研究,并將其與該模型結(jié)合,才能更好地發(fā)揮本文模型的作用,實現(xiàn)其應用價值。