高 猛,丁英強,辛華磊,陳恩慶
(鄭州大學 信息工程學院,鄭州 450001)
近年來,隨著人機交互、體感游戲、智能監(jiān)控和機器人應用技術的飛速發(fā)展,為了能幫助機器更好的識別人類的行為,人體動作識別已經成為計算機視覺領域一個重要的研究方向.多數(shù)的人體動作識別研究是基于RGB圖像、光流、深度圖像和骨骼特征圖等模態(tài)下進行的行為識別,在這些模態(tài)中,多數(shù)模態(tài)僅僅關注于人體動作輪廓,很少研究節(jié)點之間的聯(lián)系.從人體行為動態(tài)變化來看,骨骼建模[1]對動態(tài)復雜環(huán)境的適應性更強,更具有表達能力,因此得到越來越多的研究和應用進展.
隨著深度學習的發(fā)展,在基于深度學習骨骼數(shù)據點人體動作識別中,一般有3類方法,基于RNN[2]的方法,基于CNN[3,4]的方法,以及基于GCN[5]的方法.其中在基于RNN的方法中,為了充分利用骨骼特征信息,將骨骼點進行修剪分割后得到的局部骨骼坐標或偽圖像信息傳入RNNs中,經過深層次網絡的感受野模擬人體動作姿態(tài)的變化來分析骨骼序列.但這些方法往往過度強調動作時間信息,無法利用到動作空間上的特征信息,引起特征利用不充分的問題.為了更好利用骨骼的時間和空間信息,將動作的時間和空間信息相結合,Liu等人[6]使用三維卷積神經網絡提取高維特征間的相關性,提出一種基于3D-CNN的網絡模型,模型首先將每個動作骨骼序列轉換映射到三維坐標空間,從而消除視圖變化的影響.同時為了提高三維CNN模型的魯棒性,提出了對空間信息和時間信息進行編碼的策略.但此類方法忽略了人體骨骼點自然連接關系,利用骨骼信息的RGB圖像特征信息和深度圖像特征信息,同時對圖像數(shù)據特征信息數(shù)量要求過高,導致該方法的網絡模型參數(shù)過多,模型訓練和應用的復雜度較大.針對該問題,近年來研究者提出對人體骨骼點進行動作建模的方法,充分利用人體骨骼點之間的自然連接關系,通過預先對人體骨骼手工標注方法,將人體骨骼標注為18個骨骼點(Kinetics數(shù)據集)或者25個骨骼點(NTU-RGB+D數(shù)據集),并將標注的人體骨骼點作為圖結構對圖建模分析.
圖卷積神經網絡(GCN)[7]是一種在CNN的基礎上提出的利用深度學習方法對圖數(shù)據進行端到端學習的新型網絡模型.它把圖結構數(shù)據直接作為輸入,通過對圖上的節(jié)點逐層進行特征提取,進而分析處理.近年來,GCN已成功應用于圖像分類、文本分類、語音識別等眾多機器學習領域.在2D或3D的坐標形式下,人體骨骼動態(tài)變化可以直接由人體關節(jié)位置的時間序列表示,通過坐標位置的相對變化和關節(jié)之間的自然聯(lián)系分析人類的行為動作.Yan等人[8]提出的在時空圖上的卷積神經網絡(ST-GCN)把骨骼點之間的距離關系通過非歐式距離表示,利用骨骼關節(jié)間的自然連接,有效地捕捉在空間幀和時間幀上的特征信息,分別在空間上和時間對動作進行建模.
然而由于時空圖模型(ST-GCN)圖卷積模型中的骨骼點空間圖子集劃分是按照根節(jié)點和相鄰節(jié)點預先手工設定的,只包含了和動作密切相關的骨骼點的局部信息,因此對于相似性動作經常會發(fā)生誤判.例如,對于識別“閱讀”和“鼓掌”兩個相似動作,它們都是主要由手部及相鄰骨骼關節(jié)點參與的動作,但對于“鼓掌”動作來說有時肩部關節(jié)點也有變化.如果僅關注手部關節(jié)部位之間的變化信息將無法準確判斷屬于哪個動作,只有通過引入骨骼點全局信息才能實現(xiàn)準確區(qū)分.
針對以上問題,為了能更好地準確區(qū)分相同局部骨骼點參與的相似動作,更加充分利用骨骼圖上的各節(jié)點之間相互連接的全局信息,本文提出了一種改進的時空多殘差圖卷積神經網絡.我們將時空圖模型中所有骨骼點數(shù)據信息視為全局特征信息,通過在原始空圖模型中引入殘差卷積網絡將人體骨骼點全局特征和圖卷積網絡獲取的直接參與動作的骨骼點所包含的動作局部特征相融合,從而實現(xiàn)對骨骼點數(shù)據中的信息更充分的挖掘,達到更好的動作識別效果.我們在國際公認的大型骨骼點動作識別數(shù)據集RGB-D以及Kinetics上進行了大量實驗,驗證了本文所提出改進網絡模型的有效性.
近年來由于圖卷積神經網絡的廣泛適用性,引起了越來越多研究者的關注,且已成功被用于其他領域中,如圖像分類、文檔分類和半監(jiān)督學習等.后來的研究者們在圖卷積神經網絡人體動作識別領域的應用[9-11]中也取得巨大進展和突破.
圖卷積網絡從人體的空間結構出發(fā),利用深度學習的骨骼建模方法,建立空間卷積濾波器,局部骨骼點相對變化較大的部分特征信息.骨骼序列通常是由每幀中每個關節(jié)的二維或三維坐標來表示,在以往的骨骼點動作識別當中僅利用時間上每幀中形成的某一個單一的特征向量,從而忽略了各關節(jié)點之間的聯(lián)系的重要性.在圖卷積網絡中,研究者們利用手工設定好的特征信息,捕獲關節(jié)的動作軌跡,構建節(jié)點子集矩陣進行骨骼建模.從某一幀上的骨骼點、骨骼邊在二維圖像或特征圖上的卷積運算定義來看,它們都可以被視為二維網絡作為輸入.假設給定一個卷積核為K*K的卷積操作,通道個數(shù)為C,輸入為fin,輸出為fout.骨骼點信息在圖卷積神經網絡(GCN)中輸入傳播公式為:
(1)
公式(1)中是p采樣函數(shù),即節(jié)點的相鄰子集集合,W為權值矩陣.因此從公式可看出輸入圖上的所有權重是共享的,進而模型輸出經過ReLU激活函數(shù)、softmax分類器實現(xiàn)圖卷積過程.
在早期,基于骨骼點的動作識別研究大多數(shù)依賴于手工制作的特征,利用局部關節(jié)之間的相對運動進行識別分析.近年來,深度學習的發(fā)展使得基于深度學習的骨架建模方法劇增.基于深度學習的研究方法是對時間和空間上[12]的同步信息進行端到端分析[13],早期的實驗研究表明,基于骨骼點的人體動作識別在實際的實驗測試中準確率和有效性都展現(xiàn)出了最高性能.
隨著圖卷積網絡(GCN)[7]成功應用于其他領域,Yan等人[8]首次將圖卷積神經網絡(GCN)應用到了利用骨骼建模的人體動作識別當中,提出了時空圖卷積神經網絡(ST-GCN),該網絡通過構建一個以關節(jié)為點、以骨骼為邊的圖,并將時間幀上的關節(jié)運動作為一個附加邊信息進行骨骼數(shù)據建模.由于該過程的骨骼信息是預先手工定義的,因此對于語義信息的靈活性表達較差.Shi等人[14]提出了一種雙流的自適應圖卷積神經網絡(2S-AGCN)[15],引入非局部的方法,把骨骼的長度和方向作為輸入骨骼圖數(shù)據的另一個分支,顯著提高了模型的精度.然而,這種方法大量增加了模型的參數(shù),計算成本相對較高.為了降低運算復雜度,提高模型的識別準確率.本文提出的時空殘差圖卷積網絡模型,以ST-GCN為基礎網絡進行更深層次的研究探索,通過增加豐富的特征信息,進而提高識別準確率.
隨著深度學習和圖卷積神經網絡的應用和發(fā)展,Yan等人[8]首次將圖卷積神經網絡運用到骨骼點的動作識別當中并提出了時空圖卷積網絡(ST-GCN),利用人體動作的視圖不變性特點,對圖結構上局部動作關節(jié)點空間變化和時間幀上所包含的動態(tài)特征信息進行分析建模.
時空圖卷積網絡的時空圖建模過程可分兩個部分,即空間建模和時間建模.在空間建模部分,模型根據人體結構的連通性,通過自然定義的設置連接方法,將時空圖中的每一幀的相鄰點連接成邊,形成空間邊集合Es={vtivtj|(i,j)∈H},同時將每一幀上的骨骼坐標點集合V={vti|t=1,…,T,i=1,…,N}作為節(jié)點集合,H為人體自然連接的關節(jié)點集合.在時間建模部分,模型是在時間域上將相鄰兩幀的同一節(jié)點進行連接成邊形成幀間邊集合Ef={vtivt(i+1)}.分別整合空間和時間上的信息,對骨骼關鍵點特征信息進行時空建模,模型如圖1所示.在時空圖模型結構中,將人體骨骼序列通過每一幀的二維或三維坐標表示,構建一個無向骨架空間圖G(V,E),其中集合E由空間邊集合Es和幀間邊集合Ef兩部分組成,并將所有的骨骼序列的坐標向量串聯(lián)在一起得到的圖節(jié)點聯(lián)合坐標向量作為網絡模型輸入.
圖1 骨骼時空圖模型結構圖
從空間圖卷積上來看,對上述圖卷積網絡中的采樣函數(shù)和權重函數(shù)進行細化處理.將采樣函數(shù)p(vti,vtj)定義為節(jié)點vti相近的集合B(vti)={vtj|d(vtj,vti)≤D},d(vtj,vti)為節(jié)點vtj到vti的最小距離.且權重函數(shù)W(vti,vtj)通過時空建模中圖子集的劃分規(guī)則將一個輸入的聯(lián)合節(jié)點的相鄰節(jié)點集劃分為固定數(shù)量的K個子集,并將節(jié)點映射到其子集矩陣中重新定義.由此空間圖卷積公式可表示為:
(2)
其中公式(2)中Zti(vtj)=|{vtk|lti(vtk)=lti(vti)}|為相應子集的基數(shù).
基于圖結構數(shù)據建模的有效性很大程度依賴于圖的分割方式,通過優(yōu)化圖節(jié)點的分區(qū)策略構造合理的卷積核濾波器,并應用于模型中用于提高識別準確率.鑒于空間和時間圖卷積的高層次表達方式,ST-GCN探索了以下幾種在單個人體框架中的劃分策略:a)輸入骨骼的示例幀,黑色點為人體關節(jié)節(jié)點,經過D=1的空間濾波器后的感受野如圖2(a)所示;b)統(tǒng)一標簽:整個鄰近節(jié)點集本身.該策略利用每個相鄰節(jié)點的特征向量,對其具有的相同權重進行向量內積處理,但該策略可能會丟失局部關節(jié)點的差異化信息;c)距離劃分:根據節(jié)點和根節(jié)點之間的距離進行劃分,劃分為根節(jié)點集和距離為1的其他相鄰節(jié)點集,利用兩個子集不同的權重向量之間的屬性關系解決了圖2(b)圖中丟失的差異化信息;d)空間分割:利用空間特性分割,找到骨骼結構的重心位置,根據每個關節(jié)點到重心位置的距離長短進行分區(qū).這4種圖的分區(qū)策略也可以自然擴展到時空域中.圖的分區(qū)策略如圖2所示.
圖2 圖的分區(qū)方式
在空間分割策略中,由于身體骨骼是基于空間定位的,Yan等人[8]利用這種特定的空間定位信息,將相鄰節(jié)點集分成3個子集:a)根節(jié)點本身;b)向心群:相對于根節(jié)點更靠近骨骼重心的相鄰結點;c)離心群.該劃分方式將所有關節(jié)點的平均坐標作為人體骨骼圖的重心,公式可以表示為:
(3)
其中ri表示為所有幀上點從重心到關節(jié)i的平均距離.
3種分割方式如圖2所示,在本文的實驗測試中對上述3種分割方式得到的標簽圖分別進行了驗證.預估更合理完善的分割方式在實驗模型中將會有更好的動作建模能力和識別能力.
近年來的研究表明殘差網絡結構對于多數(shù)卷積神經網絡具有一定的性能優(yōu)化作用.例如,為了進一步提高圖卷積網絡的網絡性能,He等人[16]提出了一種精細化的殘差網絡模塊,在神經網絡模型中加入額外的連接層并通過這些連接層為信息和梯度的傳輸提供額外的連接通道,從而有效地解決了信息在傳輸?shù)倪^程中丟失的問題.
受此啟發(fā),本文提出在原有時空圖的空間圖卷積模塊中引入殘差卷積網絡模塊,通過在空間域中經過空間卷積得到的局部特征信息,與殘差卷積網絡得到的全局信息相融合的方式,使網絡模型提取的特征信息更加完善.改善了隨著網絡模型的不斷加深引起的特征退化、信息丟失和梯度爆炸等問題.
在時空圖卷積神經網絡模型中,對骨骼圖提取特征信息的過程中,更多關注局部信息,而忽略了骨骼點全局信息,造成特征信息利用不充分的問題,導致在判斷相似動作時容易產生誤判,本文提出一種基于時空多殘差圖卷積的網絡模型,在時空圖卷積神經網絡中的圖卷積模塊中同步增加殘差卷積網絡模塊,通過模型輸入的骨骼序列與鄰接矩陣的子集進行信息融合,獲取到動作骨骼點的局部特征信息.通過增加殘差圖卷積模型,在利用局部特征信息的基礎上加入全局特征信息進行融合,進而分類輸出,從而提高特征信息的利用率,得到更加完備的特征信息,達到最大化利用圖結構的特征信息,同時增加了該網絡模型的泛化能力.該模型改變原有通道數(shù)為64、64、64、128、128、128、128、128、256,降低模型計算成本.最終實驗表明本文提出的時空殘差圖卷積神經網絡可以提取到更加完備的特征信息,優(yōu)化網絡模型,使得識別準確率也有了進一步提升.模型結構如圖3所示.
圖3 基于時空多殘差圖卷積網絡骨骼點的動作識別模型結構圖
模型結構中每一層的ST-RESGCN模塊由注意力機制模塊、圖卷積模塊、殘差卷積模塊和時間卷積模塊組成.模型結構如圖4所示,在每層時空圖中空間圖卷積網絡模塊中,加入殘差卷積網絡模塊,將在圖卷積模塊中與特征子集融合處理后捕捉到局部特征,與動作骨架圖結構的全局特征信息融合后傳入時間卷積模塊,以此提取空間域和時間域上的特征信息,使特征信息利用更加全面、模型的魯棒性更加穩(wěn)定.
其中每一層的殘差圖卷積神經網絡ST-RESGCN的模型結構如圖4所示.在每一層的圖卷積神經網絡中同步加入殘差卷積模塊,其中每層圖卷積網絡輸出結果為:
圖4 ST-RESGCN模塊結構圖
fi(x)=σ(G(x,A)+R(x))
(4)
公式(4)中G(x,A)為骨骼序列經過圖卷積神經網絡(GCN)與手工設定好的特征節(jié)點A融合后的特征信息,R(x)為骨骼序列經過每層殘差卷積模塊的序列信息,fi(x)是每層TCN的輸入序列信息.進而通過最后一層模型網絡后傳遞給后續(xù)全連接層識別分類.
本文提出的時空多殘差圖卷積網絡模型,在原模型利用上下文語義信息的基礎上,在空間圖卷積網絡模塊中同步引入殘差卷積網絡作為空間層的另一個分支,同時將殘差卷積網絡獲取到的人體骨骼點的全局特征信息與圖卷積網絡獲得的局部特征信息融合作為時間域卷積模塊的輸入,使網絡模型獲得語義信息更加全面.例如,在區(qū)分“揮動羽毛球拍”動作和“揮手”動作時,如圖4所示的模塊結構不但考慮手部和上臂關節(jié)點的動作變化,還將考慮腿部和腰部等全身骨骼關節(jié)點的細微動態(tài)變化,這樣模型獲得的動作信息更加細致和全面,從而增強了相似動作的區(qū)分性.
為了進一步優(yōu)化網絡模型,解決由于超參數(shù)過多導致的模型運算復雜度較大的問題.在經過最后一層的ST-RESGCN模塊后,全連接層之前,加入自適應平均池化層,在已知輸出維度大小的前提下,自動選擇合適的超參數(shù)進行平均池化操作,減少網絡模型的參數(shù)使用量.增強網絡模型的泛化能力,提高模型結構的魯棒性,得到分類辨識度較高的特征,一定程度上達到降低網絡模型的運算復雜度、優(yōu)化網絡模型的效果,提高了識別精度.
本文提出模型首先在ST-GCN網絡的基礎上進行訓練,通過預訓練得到的模型作為初始化權重模型,采用SGD梯度算法進行網絡的訓練.本文實驗中使用4塊2080TI顯卡進行實驗訓練,初始輸入通道為3,訓練網絡的num_epoch設置為80,訓練的batch size設置為64,測試網絡中的batch size設置為64.
同時本文將初始基礎學習率設為0.1,在step為10和50時將學習率衰減為原來的1/10.同時為了防止過擬合問題,本文將dropout設置為0.5,alpha設置為0.2.此外,本文采用自適應平均池化層進行池化,使得該網絡模型更加穩(wěn)定、運算成本進一步降低.
5.1.1 NTU-RGB+D數(shù)據集
NTU-RGB+D[17]動作識別數(shù)據集是由56880個動作樣本組成,是目前最大的具有關節(jié)標注的用于人體動作識別的數(shù)據集,其中每個樣本中包含RGB視頻,深度圖序列,3D骨架數(shù)據和紅外數(shù)據.此數(shù)據集是由3個Microsoft Kinect v.2相機同時獲取,3D骨骼數(shù)據包括每幀25個主要身體關節(jié)的三維位置,每個樣本的幀數(shù)為300幀,對于小于300幀的樣本,重復序列使其達到300幀.該數(shù)據集含有兩種分割方式,X-Sub(跨表演人)和X-View(跨視角).為了評估模型,其中訓練集和測試集分別有37920和18960個樣本.
5.1.2 Kinetics數(shù)據集
Kinetics[18]數(shù)據集來源于YouTube,是一個用于動作識別的大型數(shù)據集,共有600個類別,覆蓋了從日?;顒印⑦\動場景到復雜的交互動作.每個類別至少有600個視頻,共具有30萬個視頻片段.由于只提供了RGB視頻,我們需要通過OpenPose工具箱獲取特定像素上的骨架數(shù)據.該數(shù)據集包含的動作覆蓋范圍廣,每個骨骼包括18個身體節(jié)點,每個身體節(jié)點由3D向量(x,y,c)表示,每個樣本固定有300個幀.訓練集和測試集分別包含240000和20000樣本骨架序列.
本文提出的時空多殘差圖卷積神經網絡,是以時空圖卷積神經網絡(ST-GCN)為基準進一步研究探索,同時為了使實驗結果更加準確,在不修改網絡層數(shù)的情況下進行多次實驗.分別在NTU-RGB-D、Kinetics兩個大型人體行為識別數(shù)據集上進行驗證,并以Top-1和Top-5的準確率作為試驗標準與以往的多個先進網絡模型進行實驗對比,實驗表明增加殘差網絡后的時空圖卷積神經網絡在模型結構復雜度增加的情況下,該模型運算復雜度并未增加,且模型的識別準確率得到進一步的提升.實驗結果分別如表1、表2、表3所示.
表1 在C-Sub上的實驗結果
表2 在C-View上的實驗結果
表3 在Kinetics上的實驗結果
從對比實驗中實驗結果可得出,本文提出的時空多殘差圖卷積神經網絡(ST-RESGCN)相比于現(xiàn)有的ST-GCN等網絡模型在多個大型數(shù)據集上的識別效果有了進一步的改善和提升.并與當前網絡模型相比,加入殘差卷積網絡后的網絡模型在C-Sub上Top-1的提升率約為1.21%,在C-View上Top-1的提升率約為0.90%.在Kinects上Top-1的提升率約為1.08%,在Top-5上的提升率約為1.66%.
本文提出一種基于時空殘差圖卷積的3D骨骼點人體動作識別,在原來的時空圖卷積神經網絡(ST-GCN)的基礎上,引入多殘差圖卷積神經網絡,充分利用骨骼數(shù)據中的三維骨骼信息和相同關節(jié)在不同幀之間的特征信息,更加準確地區(qū)分相似動作,提高模型的魯棒性.并采用自適應池化的方式,減少了網絡模型超參數(shù)的使用,使特征信息得到最大化的利用,增強了網絡模型的泛化能力,在提高識別準確率的同時改善了過擬合的問題.最終實驗結果表明本文提出的ST-RESGCN網絡模型優(yōu)于目前先進的時空圖卷積神經網絡(ST-GCN)模型,為基于3D骨骼點的動作識別研究提供了新的思路和方法.