文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.173038
中文引用格式: 胡青松,張亮. 人體行為序列化識別算法研究[J].電子技術應用,2018,44(4):122-125,129.
英文引用格式: Hu Qingsong,Zhang Liang. Research on human behavior serialization recognition based on skeleton graph[J]. Application of Electronic Technique,2018,44(4):122-125,129.
隨著科學技術的發(fā)展,計算機的運算能力大大提升,針對大數據的處理漸漸得以實現。在此基礎上發(fā)展而來的人體行為姿態(tài)識別[1]為人機交互、視頻監(jiān)控和智能家居等方面的應用提供了基礎。近些年,研究人員已經在人體行為識別方面做了大量的研究工作,取得了許多重要的成果,但是對于復雜人體行為的識別準確率較低,仍然有待于提高。
基于視覺的人體行為識別方法[2]可以分為兩類,一類基于模板匹配[3],一類基于機器學習[4]?;谀0迤ヅ涞姆椒ㄍㄟ^計算當前動作與模板庫里的模板之間的相似度,把當前模板判定為最相似動作的過程。IBANEZ R和SORIA A等人通過提取人體肢體行為軌跡,分別用動態(tài)時間規(guī)整(DTW)和隱馬爾科夫(HMM)算法,基于模板匹配進行人體行為識別[5]?;跈C器學習的方法通過提取樣本特征對樣本訓練,得到一個分類器,此分類器具有預測未知樣本的能力。TRIGUEIROS P和RIBEIRO F等人就對比了幾種機器學習算法在手勢識別上的應用[6]。但是,這些算法都是為某一具體行為動作所設計,當需要檢測額外的行為動作時,又需要重新設計方案,拓展性較差。
本文使用從Kinect[7]采集的骨骼圖數據(由MSRC-12 Gesture Dataset數據庫[8]提供),Kinect提取的骨骼圖像能夠克服光線強弱等外界因素帶來的干擾,具有較強的魯棒性;提取骨骼特征,并采用機器學習的算法對靜態(tài)動作分類,最終形成序列;從序列中找出需要識別的動作序列的過程即可表示動態(tài)動作識別過程,此過程具有很好的實時性和拓展性。
1 基于骨骼圖的特征提取
選取既能夠充分表示人體某一動作,又不包含過多的冗余信息的人體特征特征提取對行為識別的研究很有價值。根據人體機械學理論,本文通過提取4個關節(jié)點向量、5個關節(jié)點角度和4個關節(jié)點距離系數表示人體行為姿態(tài)。
1.1 關節(jié)點向量提取
如圖1所示,4個關節(jié)點向量分別是左上臂(VSL-EL)、右上臂(VSR-ER)、左大腿(VHL-KL)和右大腿(VHR-KR)。現以左上臂為例,計算左上臂向量。已知左肩膀(ShoulderLeft)關節(jié)點坐標為SL(Sx,Sy,Sz),左手肘(ElbowLeft)關節(jié)點坐標為EL(Ex,Ey,Ez),則左上臂關節(jié)點向量計算方法如式(1)所示。其他關節(jié)點向量以此類推。
1.2 關節(jié)點角度提取
在原有向量的基礎上提取4個關節(jié)點角度。聯合關節(jié)點向量,可以描述人體左小臂、右小臂、左小腿和右小腿的活動狀態(tài)。圖1中θEL、θER、θKL和θKR分別表示左肘關節(jié)點角度、右肘關節(jié)點角度、左膝關節(jié)點角度和右膝關節(jié)點角度。θHC表示臀部中心到頭部的向量與豎直方向向量之間的夾角,可以表示人體姿態(tài)的彎腰程度,描述整體軀干的活動狀態(tài)。夾角可以通過式(2)計算獲得。
其中V1、V2分別表示兩個關節(jié)點向量,θ表示這兩個關節(jié)點向量的夾角。
1.3 關節(jié)點距離系數提取
為了能夠讓選取特征對上肢手部活動更加敏感,本文加入4個關節(jié)點距離系數。圖1中,a為臀部中心到頭部的關節(jié)向量,b為頭部到右手的關節(jié)向量,c為頭部到左手的關節(jié)向量,d為臀部中心到右手的關節(jié)向量,e為臀部中心到左手的關節(jié)向量。通過式(3)可以獲得頭部到左右手的相對距離系數d1、d2和臀部中心到左右手的相對距離系數d3、d4。
至此,基于骨骼圖的特征可以表示為式(4)所示的特征矩陣,共計4×3+5+4=21維。
2 基于SVM的識別算法流程
2.1 靜態(tài)動作的SVM識別
支持向量機[9](Support Vector Machines,SVM)是一種用于分類的算法,它能夠在多維空間找出完美劃分事物的超平面。本文使用SVM進行動作分類,以二分類支持向量機為例,已知訓練樣本集T:
使用多個二分類器形成多分類器,用豐富的樣本訓練并識別人體靜態(tài)姿勢。
2.2 動態(tài)動作的序列化識別
設定某一采樣頻率,所提取到每一幀骨骼圖都以靜態(tài)的方式呈現。對每一幀骨骼圖進行靜態(tài)動作識別,可以得到一串長序列。在長序列中尋找待識別序列即為動態(tài)動作識別。如圖2所示,一組抬起雙手舉高(Start system)的動作可以分解為G1、G2、G3 3個靜態(tài)動作,因此只要在長序列中檢測到連續(xù)的G1、G2、G3 3個靜態(tài)動作即可判定出現“抬起雙手舉高”的動態(tài)動作。
2.3 分類的糾錯過程
為了減小靜態(tài)姿勢識別錯誤對動態(tài)動作識別準確率的影響,本文提出一種基于前后信息的姿態(tài)糾正算法。一般情況下,相鄰兩幀或者多幀的數據描述的都是同一動作。算法流程圖如圖3所示,其中predict是分類器預測的結果,sequence是最終形成的長序列。首先判斷當前預測結果是否與長序列隊尾數據相同,如果相同,說明當前動作與上一幀動作相同,把預測結果加入長序列隊尾;如果不相同,需要驗證當前預測結果是否出錯。此算法判斷當前動作之后的n(本文選取15)幀預測結果中出現最多的數據是否等于當前動作預測結果,并且其所占比是否大于某一閾值(本文選取0.5),如果是,將當前動作的預測結果加入長序列隊尾;如果否,說明當前動作預測結果出錯,長序列隊尾數據保持不變。
3 實驗驗證
3.1 訓練靜態(tài)動作
MSRC-12 Gesture Dataset是微軟提供的數據庫,共包括12組動作。本文選擇其中3組動作,分別為Start system、Duck和Push right,如圖2、圖4和圖5所示。
顯然,大多數志愿者保持某一靜態(tài)動作的時間并不一致。為了合理利用資源和方便處理,把姿勢劃分為進行態(tài)和保持態(tài)兩種狀態(tài):
(1)進行態(tài)是一組動作的中間狀態(tài),即兩種靜態(tài)姿態(tài)的過度,可包含運動過程中較大范圍的運動姿態(tài),圖2(b)的G2和圖5(b)中的G5即是進行態(tài)。因為進行態(tài)不能對決策結果起決定性作用,所以進行態(tài)并不需要非常高的識別精確度。
(2)保持態(tài)是一組動作中保持時間較長的狀態(tài),能夠對姿勢的識別起決定性作用,因此需要很高的識別準確率。圖2(a)中的G1、圖2(c)中的G3、圖4(b)中的G4以及圖5(c)中的G6都屬于保持態(tài)。實驗中,從10人中選取600幀G1姿勢,5人中選取550幀G2、G3、G4、G5和G6姿勢,共3 350幀數據,用于訓練分類器,SVM識別結果見表1。
3.2 靜態(tài)動作結果分析
采用十折交叉驗證法檢驗分類器的性能,最終得到的平均識別準確度為93.12%。表1為單個姿態(tài)的識別準確度。從表1可以看出,位于保持態(tài)的姿態(tài)識別準確率普遍在90%以上,達到較高的準確率。進行態(tài)姿態(tài)識別準確率比保持態(tài)稍低,但是從前文可知,這對最終的判定結果影響不大。
3.3 序列糾錯
采用2.3節(jié)所述的方法進行姿態(tài)序列糾錯。不失一般性,從實驗的3 350幀數據中隨機選取150幀數據(原序列)為例,見圖6(a)。在原序列第30幀左右,姿勢2(G2)向姿勢3(G3)過度階段出現了較多錯分類現象。圖6(b)是采用2.3節(jié)方法糾錯后序列,可以看出,整個序列變得光滑得多,上述的分類錯誤得到了抑制,大大方便了后續(xù)動作識別。
3.4 態(tài)動作識別驗證
為便利于分析,將經過糾錯處理的數據中連續(xù)的n個“1”用一個“1”表示,其他姿態(tài)以此類推。以Start system為例,當檢測到連續(xù)的1,2,3或者1,3則可以判定出現一組Start system動作,當檢測到連續(xù)的1,2,3,2,1、1,2,3,1、1,3,2,1、1,3,1則判定完成Start system動作并回到站姿(G1)。用MSRC-12 Gesture Dataset數據測試,測試結果見表2。為了對比算法的優(yōu)劣,表2中同時列出了文獻[10]的隨機森林算法的識別情況。
由表2明顯可以看出,與文獻[10]的算法相比,本文提出的算法的識別準確率更高。通過實驗得知,Start system、Duck和Push right 3種動作具體的識別準確率分別是71.82%、80%和76.36%。
4 總結
本文算法可以實現實時提取骨骼數據,計算骨骼特征,分類識別并形成序列,具有很好的實時性。序列化的動態(tài)動作識別方法可以滿足各種動作的任意組合,具有很好的拓展性。實驗表明,本文算法具有較高的識別準確率。但是,對采集到的每一幀骨骼圖進行分類無疑會增加算法復度。因此,如何降低冗余的分類識別,是下一步研究需要解決的問題。
參考文獻
[1] 李瑞峰,王亮亮,王珂.人體動作行為識別研究綜述[J].模式識別與人工智能,2014,27(1):35-48.
[2] 胡瓊,秦磊,黃慶明.基于視覺的人體動作識別綜述[J].計算機學報,2013,36(12):2512-2524.
[3] NIEBLES J C,WANG H,LI F F.Unsupervised learning of human action categories using spatial-temporal words[J].International Journal of Computer Vision,2008,79(3):299-318.
[4] JAGER M,KNOLL C,HAMPRECHT F A.Weakly supervised learning of a classifier for unusual event detection[J].IEEE Transactions on Image Processing A Publication of the IEEE Signal Processing Society,2008,17(9):1700-1708.
[5] IBABEZ R,SORIA A,TEYSEYRE A,et al.Easy gesture recognition for Kinect[J].Advances in Engineering Software,2014,76:171-180.
[6] TRIGUEIROS P,RIBEIRO F,REIS L P.A comparison of machine learning algorithms applied to hand gesture recognition[J].Information Systems & Technologies,2012,52(11):41-46.
[7] ZHANG Z.Microsoft Kinect sensor and its effect[M].IEEE Computer Society Press,2012:4-10.
[8] 刁俊方.基于Kinect的人體動作識別技術研究[D].重慶:重慶大學,2015.
[9] SOTIRIS V A,TSE P W,PECHT M G.Anomaly detection through a Bayesian support vector machine[J].IEEE Transactions on Reliability,2010,59(2):277-286.
[10] FOTHERGILL S,MENTIS H,KOHLI P,et al.Instructing people for training gestural interactive systems[C].Sigchi Conference on Human Factors in Computing Systems,ACM,2012:1737-1746.
作者信息:
胡青松1,2,張 亮1,2
(1.中國礦業(yè)大學 物聯網(感知礦山)研究中心,江蘇 徐州221008;
2.中國礦業(yè)大學 信息與控制工程學院,江蘇 徐州221008)