黨宏社,侯金良,強 華,張夢騰
(陜西科技大學電氣與信息工程學院,西安 710021)
基于Kinect的人體動作識別算法研究*
黨宏社*,侯金良,強 華,張夢騰
(陜西科技大學電氣與信息工程學院,西安 710021)
針對現有的復雜背景下人體動作識別中存在識別準確率不高和實時性不強等問題,提出基于Kinect骨骼數據的改進動作識別算法。通過Kinect獲取骨骼數據,提取出人體關節的特征向量,然后用模板匹配的方法對人體動作進行識別。通過搭建機器人體感控制系統驗證了算法的可行性。在相同實驗條件下測得算法的平均識別率為95.2%,平均識別時間為32.5 ms。與其他動作識別算法比較,證明了算法的識別率較高、實時性較好。
模式識別;Kinect;骨骼數據;特征提取;模板匹配;
隨著科技進步,特別是傳感器技術和芯片制造技術的進步,工程師們正在不停的探索新的人機交互體驗。已知的人機交互體驗包括聲音交互、腦電波交互、人體肢體姿態交互、手勢交互等[1]。人體動作識別的研究在計算機視覺、人工智能等領域都具有重要意義,而人體動作識別面臨的主要問題是動作的多變性和時空的復雜性。隨著動作數量的增加,誤識別問題也會凸顯。目前,可通過穿戴式傳感器如陀螺儀、加速度傳感器等,采集人體運動參數對人體動作進行識別,這種方法準確性、實時性高,但附著傳感器使穿戴者舒適感降低。在基于計算機視覺的方法中,當前的研究主要是基于2D視覺的動作識別,而系統受到計算機圖像處理能力的極大制約,特別是實時圖像處理,會受到光照、遮蔽、陰影等因素的制約,對最終的識別結果造成影響[2]。
現有的基于Kinect的人體動作識別算法,基于圖像處理和特征匹配的識別算法,例如王艷等人[3]對Kinect的深度圖像進行雙閾值分割,獲取手部圖像,再對手部圖像進行形態學處理,可實時對手勢進行識別。戰蔭偉[4]等人首先對Kinect的深度圖像進行局部梯度特征提取,再結合條件隨機場(CRF)模型,提出一種新的人體行為分析方法實現了人體行為的識別。以上算法雖然準確性良好,但其算法過于復雜,模板匹配運算量太大需要大量設備進行并行處理,需要比較高端的處理器。基于濾波預測和輪廓匹配的算法,例如瞿暢等人[5]利用Kinect深度圖像技術獲取人體深度圖像前景圖,建立前景圖三維包圍盒,通過計算三維包圍盒的長、寬、高數值以及數值的變化速度,判斷人體跌倒是否發生。陳翰雄等人[6]利用Kinect所獲取的彩色和深度圖像,建立人體骨骼圖來定位人體各個關節的位置,根據關節位置對人體動作進行識別。以上算法雖然消除了數據抖動,但其算法的魯棒性不好,人物發生變化對識別效果有較大影響。
基于以上問題本文提出一種改進的Kinect動作識別算法,利用Kinect的骨骼追蹤技術來獲取操作者關鍵點三維坐標,提取出人體的關節向量進行模板匹配。此算法比基于圖像處理和特征匹配的識別算法運算簡單、實時性更好。比基于濾波預測和輪廓匹配的算法,魯棒性更好,可對不同光照、不同人物的動作進行識別。
Kinect是微軟公司于2011年推出了的一款體感外設[7],如圖1所示它主要由紅外發射器、RGB攝像頭、紅外深度攝像頭組成,它具有實時的全身骨骼跟蹤、運動捕捉以及麥克風輸入的功能。并能夠通過深度圖像來獲得人的三維坐標,圖像深度信息的獲取通過紅外線發射器和紅外線CMOS攝像機共同來完成。紅外線發射器發出紅外光覆蓋整個待檢測區域,同時CMOS攝像機接收反射光線得到深度圖像,得到的圖像是一個“深度場”,其中每一個像素的顏色代表了那一點物體到攝像頭的距離。深度采集范圍為0.8 m~4.0 m,輸出圖像幀率為30,深度圖分辨率為640×480。

圖1 Kinect相機示意圖
Kinect骨架追蹤技術的原理:利用紅外線傳感器通過黑白光譜的方式來識別環境內容,黑與白分別對應著無窮遠和無窮近,中間的灰色地帶是表示著距離。Kinect利用分割策略將人從環境中分離出來,對于正在運動中的物體進行像素的分析,即在每個圖像中建立起一個分割遮罩,將沒用的物體去除,僅留下有用的圖像。
2.1 骨骼數據獲取
利用Kinect骨架追蹤技術,在輸出之前會追蹤人體的20個關節點來形成一副人體骨架系統,拿每個像素中的關節點與其相比較,這個方式可以準確的確定人體的關節部位。圖2為Kinect實時追蹤的人體的20個關鍵點的示意圖。由圖2可知,這20個關節點覆蓋了整個人體,比基于圖像處理的人體識別更快、更準確。而基于圖像處理和特征匹配的識別算法一般要進行大量的圖像處理運算才能得到人體關節點的坐標,運算復雜且誤差較大。

圖2 人體關鍵點示意圖
通過Kinect的骨骼追蹤技術獲取的坐標為深度圖像坐標,而人體動作識別要在世界坐標中進行,所以首先要將圖像坐標換算為實際坐標。(ximage,yimage,zimage)到世界坐標(xworld,yworld,zworld)的變換公式:
(1)
式中:H=3.5×10-4rad,K=12.36 cm,L=1.18 rad,O=3.7 cm,D′=-10,F=0.002 1,那么現在利用以上公式就得到了人體20個關鍵點的世界三維坐標[7],是特征提取和模板匹配的基礎。
2.2 特征提取
在Kinect不標定的情況下識別人體動作,而且操作者和操作者所在位置都可能隨時發生變化。基于以上要求,本文算法提取的特征是骨骼關節點坐標的相對位置,即提取關節點坐標向量所成的角度特征,并將人體20個關鍵點坐標分為上下半身。
由于Kinect每秒鐘獲取30幀圖像,也就是關鍵點的坐標每秒刷新30次,再加上人身體的抖動,所以Kinect骨骼追蹤技術采集到的關節點坐標會有波動。所以首先采用加權遞推平均濾波算法對坐標進行濾波,去除坐標的波動,在滿足快速性的基礎上可使提取的特征更穩定。把連續取N個采樣值看成一個隊列,隊列的長度固定為N每次采樣到新的數據放入隊尾,并扔掉原來隊首的一次數據(先進先出原則)。然后針對不同時刻采用不同的權值,最后把隊列中的N個數據進行算術平均運算,就可獲得新的濾波結果。公式如下:
(2)

在濾波基礎上計算角度特征,先由三維坐標計算出關鍵點之間的向量。將上下半身的向量分開計算,上半身需要計算9個向量,分別是:頭部到頸部、頸部到脊柱、左肩到頸部、左肘到左肩、左腕到左肘、左手到左腕的向量,右臂同理。下半身需要計算6個向量,分別是:臀部到左膝部、左膝部到左腳踝、左腳踝到左腳的向量,右腿部同理。利用這些人體關節向量來提取角度特征,例如我們利用肩部坐標與肘部坐標相減得到向量Vi,用肘部坐標減去腕部坐標得到向量Vj,然后根據三維向量角度計算公式,計算角度特征。Vi與Vj之間的夾角θi-j可以表示為:

(3)
(4)
那么角度θi-j就是當前人體肘部的角度特征。根據以上公式,對整個人體的角度進行提取,上半身提取7個角度特征,下半身提取6個角度特征。抽取出的角度特征是一個相對的特征魯棒性好,只與關鍵點相對位置有關,與光照、背景變化、操作者以及操作者的位置無關。
2.3 模板匹配
根據上述提取角度特征的方法,制作標準的人體動作模板。通過Kinect來采集標準動作下人體的關節點三維坐標,經過特征提取來得到標準動作的角度特征。利用角度特征來定義標準動作,并采用不同操作者對數據進行調整,將角度特征分為上半身和下半身。每一個人體標準動作對應上半身七維向量和下半身六維向量。本次設計Kinect采用Processing進行開發,采用Java語言編程,將計算好的動作模板輸入到TXT文本中。
首先提取出當前動作的特征向量,分為上半身和下半身。判斷上半身特征是否變化,如果變化就匹配上半身模板。然后判斷下半身特征是否變化,如果變化就匹配下半身模板。最終將兩個結果結合,得到識別結果。如果兩個特征都沒有變化,則確定動作是站立。模板匹配采用相似度函數來度量兩個特征向量的相似度,得到匹配的百分比,其公式如下:

(5)
式中:S%代表相似度,Xi代表標準模板特征向量,Yi代表當前采樣的特征向量。通過大量試驗,最終將S%的閾值設定為10%,即若S%大于或等于10%則認為當前動作不是標準動作,只有當S%小于10%時才能匹配成功認為當前動作為標準動作。
3.1 可行性驗證
為了驗證算法的可行性,搭建了基于Kinect的體感機器人控制系統,由Kinect動作識別算法的結果實時體感控制機器人。機器人由樹莓派作為主控制器,PC通過WIFI通信與樹莓派相連。機器人采用舵機結構,由兩片Arduino完成8路舵機的PWM控制。樹莓派通過USB接口向Arduino發送控制舵機的信號。本次設計Kinect采用Processing進行開發,動作模板保存在TXT文本中。在線測試時,Kinect將被測者的動作數據通過USB傳入電腦,然后在Processing軟件中對上述算法進行實現,實現的結果輸出控制機器人動作。在不同背景和光照的情況下,識別不同的操作者的動作。經測試利用本文算法可對人體動作進行識別,并可實時體感控制機器人,如圖3所示。
3.2 識別率驗證
招募10名同學(5男5女),進行實驗測試。Kinect設備水平放置,距離地面48 cm。背景是一面白墻,測試者面對著Kinect設備,全身處在視野范圍內,距離其240 cm的位置,按順序做完10種動作。對測試者每個動作進行采集,然后進行濾波和特征提取,最后進行模板匹配得到動作識別結果。

圖3 在復雜背景下不同光照、不同操作者體感控制機器人示意圖
將實驗結果,與Jiang H等提出的基于一致性最大覆蓋的單幀圖像姿態估計方法以及文獻[8]提出的基于Kinect骨骼數據的歸一化匹配算法,在識別率方面進行了比較,結果如表1所示。實驗表明本文算法的魯棒性較好,對動作的識別率較高。

表1 識別率比較
3.3 實時性驗證
將本文算法與文獻[9]中Lin T Y等提出的基于Kinect骨架的姿勢識別算法進行比較。在相同實驗條件下,依次對8個動作進行多次識別,計算出每個動作的平均識別時間,實驗結果如表2所示。

表2 實時性比較 單位:ms
由表2的實驗數據可知,本文算法與LIN T Y等的識別算法相比較,平均識別時間都較短。后者對每種動作的平均識別時間為41.63 ms,而本文算法32.5 ms,證明本文算法的實時性較好。
針對現有復雜背景下動作識別算法實時性不好、識別率不高等問題,本文提出一種改進的Kinect動作識別算法。通過Kinect的骨骼追蹤技術獲得被測者的關節點三維坐標,首先進行平均值濾波,然后提取角度特征作為模板匹配的依據,通過相似度函數來確定識別結果。通過搭建體感控制機器人系統驗證了算法的可行性和穩定性。與Jiang H等提出的識別方法以及李紅波等人提出的識別算法進行比較,證明本文算法對人體動作的識別率較高。與LIN T Y等的識別算法進行比較,證明本文算法實時性較好。
[1] 辛義忠,邢志飛. 基于Kinect的人體動作識別方法[J]. 計算機工程與設計,2016,37(4):1056-1061.
[2] 吳曉雨,楊成,馮琦. 基于Kinect的手勢識別算法研究及應用[J]. 計算機應用與軟件,2015,32(7):173-176.
[3] 王艷,張奇志. 基于Kinect深度信息的手勢識別[J]. 北京信息科技大學學報,2013,28(1):22-26.
[4] 戰蔭偉,張昊. 基于Kinect傳感器的人體行為分析算法[J]. 傳感器與微系統,2015,34(1):142-144.
[5] 瞿暢,孫杰,王君澤,等. 基于Kinect體感傳感器的老年人跌倒自動檢測[J]. 傳感技術學報,2016,29(3):378-383.
[6] 陳翰雄,黃雅云,劉宇,等. 基于Kinect的空中手勢跟蹤識別的研究與實現[J]. 電視技術,2015,39(1):91-94.
[7] 王君澤,朱小龍,瞿暢. 基于Kinect骨骼追蹤的人體摔倒自動檢測[J]. 上海交通大學學報,2015,49(9):1359-1365.
[8] 李紅波,李雙生,孫舶源. 基于骨骼數據的人體動作姿勢識別方法[J]. 計算機工程與設計,2016,37(4):969-975.
[9] Lin T Y,Hsieh C H,Lee J D. A Kinect-Based System for Physical Rehabilitation:Utilizing Tai Chi Exercises to Improve Movement Disorders in Patients with Balance Ability[C]//Proceedings of the 7th Asia Modelling Symposium. IEEE Computer Society,2013:149-153.
StudyonMotionRecognitionAlgorithmBasedonKinect*
DANGHongshe*,HOUJinliang,QIANGHua,ZHANGMengteng
(College of Electrical and Information Engineering,Shaanxi University of Science and Technology,Xi’an 710021,China)
Under the complex background,with the problem of low accuracy and real-time of the motion recognition algorithm,an improved algorithm was proposed based on Kinect skeleton data. Getting skeleton data through the Kinect,feature vector of human joints was extracted and then motions were recognized by using the method of template matching. The feasibility of the algorithm was verified by building the robot gesture control system. Under the same experimental conditions,the average recognition rate of the algorithm is 95.2% and the average recognition time is 32.5 ms. Compared with other motion recognition algorithm,higher recognition rate and better real-time property of the algorithm were proved.
pattern recognition;Kinect;skeleton data;feature extraction;template matching
10.3969/j.issn.1005-9490.2017.05.049
項目來源:陜西省社會發展科技攻關項目(2015SF275)
2016-11-09修改日期2017-01-15
TP242.6
A
1005-9490(2017)05-1309-05

黨宏社(1962-),男,漢族,陜西武功人,陜西科技大學,教授,博士生導師,主要研究方向為工業過程與優化、多源信息融合、圖像處理,hsdang@163.com;

候金良(1993-),男,漢族,內蒙古包頭市人,陜西科技大學,碩士研究生,主要研究方向為機器視覺與機器人,1012063453@qq.com。