劉曦澤
(1.中國標(biāo)準(zhǔn)化研究院理論戰(zhàn)略研究所, 北京 100191; 2. 清華大學(xué)機(jī)械工程學(xué)院, 北京 100084)
隨著科技的進(jìn)步,基于計算機(jī)視覺的動作識別成為人類行為數(shù)據(jù)的重要來源之一,也為基于人因的設(shè)計決策提供了依據(jù)。由于人體結(jié)構(gòu)以及運動的復(fù)雜性,加之客觀環(huán)境的多樣性,對動作識別的研究很難排除背景等外部因素的干擾。為了提升人體動作捕捉識別的準(zhǔn)確率和效率,學(xué)者主要從兩個方向展開了研究。
一是通過建立人體姿態(tài)的三通道彩色RGB圖像進(jìn)行人體輪廓分析與識別,董楠[1]和Chen等[2]提出了一種基于深度學(xué)習(xí)的靜態(tài)輪廓圖像提取方法,以增加準(zhǔn)確度;Russel等[3]在靜態(tài)輪廓圖的基礎(chǔ)上結(jié)合并行卷積神經(jīng)網(wǎng)絡(luò)對步態(tài)能量圖像(gait energy image,GEI)進(jìn)行識別,用以尋找失物主人或犯罪分子;Liu[4]利用Gabor小波提取主動能量圖(active energy image,AEI)的幅度譜,研究如何提升動作幅度特征的識別能力;李銳等[5]以幀差能量圖(frame difference energy image,F(xiàn)DEI)的行質(zhì)量向量作為步態(tài)特征的識別方法,提升了特征的提取效率和識別速度,具有較高實用性。隨著深度圖像傳感器成本的降低與智能算法的不斷優(yōu)化,基于RGB-D圖像的動作識別技術(shù)逐漸嶄露頭角。即便如此,該類方法仍存在成本較高、計算時間較長的問題。
二是基于關(guān)節(jié)點數(shù)據(jù)的人體動作識別方法,該方法又細(xì)分為兩類。一類是通過概率統(tǒng)計對識別結(jié)果進(jìn)行動態(tài)分類,董寧等[6]利用混合貝葉斯網(wǎng)絡(luò)模型提升人體動作識別的效率和準(zhǔn)確率,但該方法的算法實現(xiàn)較為復(fù)雜;楊世強(qiáng)等[7]利用隱馬爾可夫模型和深度置信網(wǎng)絡(luò)對連續(xù)動作識別展開研究,通過復(fù)合算法提升連續(xù)動作的識別效果,但該方法識別響應(yīng)速度較慢;張恒鑫等[8]采用級聯(lián)支持向量機(jī)(support vector machine,SVM)快速檢測人體區(qū)域,并開展關(guān)節(jié)點時空特征分析以提高識別精度。另一類是通過建立分類特征數(shù)據(jù)庫進(jìn)行模板匹配的方法,該方法的典型代表是動態(tài)時間規(guī)整算法(dynamic time warping,DTW)[9],丁重陽等[10]對DTW進(jìn)行了改進(jìn),并采用SVM對關(guān)節(jié)點模型的行為特征進(jìn)行分類,提升了識別的準(zhǔn)確率,但因為算法較為復(fù)雜,效率方面缺乏優(yōu)勢。設(shè)備使用方面,Kinect由于能夠自動生成關(guān)節(jié)點模型,成為動作識別研究的主流設(shè)備。胡欣榮等[11]采用多特征融合識別算法對Kinect關(guān)節(jié)點模型進(jìn)行分析實現(xiàn)三維動作識別,但該研究未解決二維坐標(biāo)與三維坐標(biāo)的轉(zhuǎn)換問題,也未提供標(biāo)準(zhǔn)動作庫的建立方法;郭小煥等[12]針對手部關(guān)節(jié)的識別精度問題,利用閾值分割和正向運動學(xué)等方法對Kinect獲取的關(guān)節(jié)信息進(jìn)行計算,推算關(guān)節(jié)實時位置;李琪等[13]構(gòu)建了雙Kinect系統(tǒng),用以跟蹤三維人體姿態(tài)以及運動生物力學(xué)的性能評估,但結(jié)果準(zhǔn)確度上仍需要進(jìn)一步提升。近年來,深度學(xué)習(xí)方法也被引入動作識別領(lǐng)域,能夠提供較好的識別結(jié)果[2, 14]。
以上研究均從算法角度提升動作識別效率,但較少綜合討論關(guān)節(jié)點數(shù)量以及整體位移等關(guān)鍵因素對識別結(jié)果的影響以及識別規(guī)則的構(gòu)建方法[15-16]。因此,現(xiàn)提出一種綜合關(guān)節(jié)點模型簡化、坐標(biāo)系轉(zhuǎn)換、判別函數(shù)與判別規(guī)則數(shù)據(jù)庫構(gòu)建、規(guī)則比對判別的身體動作快速識別方法,以期減少關(guān)節(jié)點數(shù)量和整體位移因素對識別結(jié)果的負(fù)面影響,為低精度要求場景下的身體動作快速識別提供理論基礎(chǔ)。
提出了一種基于規(guī)則的身體動作快速識別方法,如圖1所示,主要包括三個階段。首先,基于實驗與人因標(biāo)準(zhǔn)建立關(guān)節(jié)點簡化模型,定義判別參數(shù)與人體中心投影坐標(biāo)系;然后設(shè)計判別函數(shù),并通過實驗獲取關(guān)節(jié)夾角和中心參數(shù)的參照值,代入函數(shù)建立動作分類庫與判別規(guī)則庫;最后,將設(shè)備采集的實時參數(shù)數(shù)據(jù)帶入判別函數(shù),與規(guī)則進(jìn)行匹配輸出動作識別結(jié)果,若匹配失敗,則擴(kuò)展關(guān)鍵幀范圍再次匹配。
Fi為綜合判定指標(biāo)圖1 基于規(guī)則的身體動作快速識別流程Fig.1 Fast recognition process of body action based on rules
基于人體模型的動作識別方法本質(zhì)上就是將人體的姿態(tài)參數(shù)化,通過對參數(shù)的判斷達(dá)到識別的目的。關(guān)節(jié)點的數(shù)量決定了識別計算的復(fù)雜程度,較多的關(guān)節(jié)點會導(dǎo)致計算周期較長,無法及時給出動作判定結(jié)果。因此出于簡化計算的考慮對Kinect V2生成的關(guān)節(jié)點模型進(jìn)行簡化處理,使關(guān)節(jié)點模型只包含快速判別所需的若干關(guān)鍵參數(shù)。
首先,基于GB/T10000—1988《中國成年人人體尺寸》[17]以及人因工程學(xué)的部分研究[18-19]對Kinect V2獲取的25個關(guān)節(jié)點進(jìn)行層次分類,如表1所示。
第一層:身體軀干關(guān)節(jié)點。人體的軀干相關(guān)關(guān)節(jié)點,是某些動作所需的特征信息的部分來源。
第二層:四肢關(guān)節(jié)點。人體的大多數(shù)動作都主要依靠人體的四肢來表達(dá),它們包含了大量的人體運動或姿態(tài)的特征信息。
第三層:手、腳關(guān)節(jié)點。手和腳在本研究的動作中能夠提供的信息非常少,是對局部動作(手勢識別、腳部運動等)進(jìn)行精細(xì)動作捕捉的信息來源。
針對以上層次分類,現(xiàn)對體育鍛煉、醫(yī)療康復(fù)等場景中的行走、奔跑、蹲下起立、跳躍等身體主要動作,各進(jìn)行了100組實驗,探索關(guān)節(jié)點坐標(biāo)-關(guān)節(jié)夾角-動作分類之間的關(guān)系。第一層關(guān)節(jié)點中,有96%的實驗數(shù)據(jù)證明頭、頸部、脊肩交點、左肩、右肩、脊柱中心、髖關(guān)節(jié)中心、左髖、右髖在運動中相對位置基本固定不變,不影響身體動作的判定;第二層關(guān)節(jié)點中,有94%的數(shù)據(jù)證明省略左腕、右腕、左踝、右踝不影響動作分類;第三層關(guān)節(jié)點中,100%的數(shù)據(jù)顯示手腳的細(xì)節(jié)對身體整體動作識別無影響,但對手勢識別造成關(guān)鍵影響。
基于上述分析,對部分相鄰且對身體動作識別影響不大的關(guān)節(jié)點進(jìn)行融合,對手腳的細(xì)節(jié)關(guān)節(jié)點進(jìn)行了精簡,得到如圖2和表1所示的精簡模型。該精簡模型包括11個關(guān)鍵的骨骼關(guān)節(jié)點,為頭、脊肩交點、左肘、右肘、左手、右手、髖關(guān)節(jié)中心、左膝、右膝、左腳、右腳。
表1 合并前后關(guān)節(jié)點分層表Table 1 Joint points before and after the merger
φ1為左臂與身體軀干夾角;φ2為右臂與軀干夾角;φ3為左右腿夾角;φ4為右肘關(guān)節(jié)夾角;φ5為左肘關(guān)節(jié)夾角;φ6為右膝關(guān)節(jié) 夾角;φ7為左膝關(guān)節(jié)夾角;H為頭部與腳部坐標(biāo)均值差的絕對值;h為髖關(guān)節(jié)中心與腳部坐標(biāo)均值差的絕對值圖2 簡化的人體關(guān)節(jié)點模型Fig.2 Simplified human joint points model
以圖2為基礎(chǔ),重新對11個關(guān)鍵關(guān)節(jié)點進(jìn)行層次的分類處理(表1):軀干關(guān)節(jié)點與頭為第一層關(guān)節(jié)點,四肢中間節(jié)點為第二層關(guān)節(jié)點,肢端合并為第三層關(guān)節(jié)點,分層的目的在于定義識別過程中的優(yōu)先順序,級別越高的關(guān)節(jié)點越先進(jìn)行定義與識別。
一般的人體動作識別建立在圖像坐標(biāo)系的基礎(chǔ)上,所獲取的數(shù)據(jù)反映了人體各部分的相對運動以及整體的位移,在身體動作識別過程中,整體位移僅對移動方向的識別提供幫助,屬于無效參數(shù)。建立人體中心投影坐標(biāo)系能夠剝離位移對識別的干擾,使識別過程專注于身體動作,提升識別準(zhǔn)確度與速度。將髖關(guān)節(jié)中心定義為空間坐標(biāo)的原點中心,垂直水平面向上為Y軸的正向,視頻采集設(shè)備指向髖關(guān)節(jié)中心的方向為Z軸正向,垂直于YOZ平面的方向為X軸方向,如圖3所示。后續(xù)人體關(guān)節(jié)點坐標(biāo)、中心等參數(shù)的獲取均為該坐標(biāo)系在XOY平面內(nèi)的投影。
通過對上述簡化模型的分析,對坐標(biāo)系中XOY投影平面中的7個與人體動作識別有較大影響的夾角參數(shù)進(jìn)行定義,如圖2所示。
在動作識別過程中,夾角φ可以通過關(guān)節(jié)向量的三角余弦公式計算得到[20]。基于人因工程,上述的7個關(guān)鍵關(guān)節(jié)角度存在一定的范圍要求[21]。取同一角度在行走、奔跑、跳躍、下蹲等運動過程中的角度最大值為上限,定義角度參數(shù)范圍,如表2所示。
除上述角度參數(shù)外,還需要定義人體中心參數(shù)。為避免中心的高度(Y坐標(biāo)值)隨著人與設(shè)備之間的距離變化的影響,在簡化模型的基礎(chǔ)上,將髖關(guān)節(jié)中心與頭部距離地面的高度比作為中心參數(shù),如式(1)所示。
圖3 中心投影坐標(biāo)系定義Fig.3 Definition of central projection coordinate system
表2 關(guān)節(jié)夾角參數(shù)極限值及其范圍Table 2 Limit value and range of joint angle parameters
其具體算法如下。
(1)獲取頭部的y值和腳部坐標(biāo)的y腳均值(取兩只腳y值的平均值)差的絕對值,記為H,H=y頭-y腳均值。
(2)獲取髖關(guān)節(jié)中心和腳部坐標(biāo)的y均值差的絕對值,記為h,h=y中心-y腳均值。
(3)計算中心參數(shù)η。
(1)
通過實驗發(fā)現(xiàn)[22],在奔跑或行走過程中,中心參數(shù)的變化不顯著,夾角參數(shù)變化明顯;在下蹲和跳躍過程中,夾角參數(shù)難于識別,但中心參數(shù)變化顯著。因此,可以在區(qū)分水平、垂直等大類運動的基礎(chǔ)上,再根據(jù)關(guān)節(jié)夾角變化的幅度綜合值來識別具體運動。
2.4.1 參數(shù)的無量綱化處理
(1)夾角參數(shù)的無量綱化。利用表2中每個夾角參數(shù)的范圍,可分別對大類運動夾角和具體運動夾角進(jìn)行無量綱化處理,即
(2)
(3)
式中:φi為實測的夾角值;φ參為通過測量實驗建立的參照值;φn為人體自然站立時各關(guān)節(jié)夾角;φmax和φmin為人體運動時各關(guān)節(jié)夾角的理論極限值。
(2)中心參數(shù)按照定義無需進(jìn)行處理。
2.4.2 判別函數(shù)的建立
當(dāng)人靜止站立時,中心參數(shù)η≈1/2,考慮到η在行走或奔跑時的變化不大,而在跳躍或蹲下起立時變化顯著,在建立判別函數(shù)時,進(jìn)行兩項細(xì)節(jié)處理:①將判別過程分為兩階段,首先區(qū)分水平或垂直運動大類,再識別具體動作;②將中心參數(shù)的兩倍作為分母以增強(qiáng)識別顯著性?;谏鲜龇治?,動作的判別函數(shù)建立,即
(4)
(5)
式中:wj為參數(shù)權(quán)重,可采用層次分析法計算得到;εj、μj為無量綱化后的夾角數(shù)值;η為中心參數(shù);F1為大類動作綜合判定指標(biāo);F2為具體動作綜合判定指標(biāo)。式(4)用以判別中心參數(shù)是否顯著變化,即行走、奔跑之類的水平運動或跳躍、下蹲之類的垂直運動;式(5)用以判別具體動作。
2.4.3 建立動作的判別規(guī)則
在建立判別函數(shù)的基礎(chǔ)上進(jìn)一步建立判別規(guī)則,分為以下兩步。
(1)建立動作判別規(guī)則。進(jìn)行參照數(shù)據(jù)集實驗,將實驗數(shù)據(jù)代入判別函數(shù),歸納判別規(guī)則庫(表3)。
(2)動作識別。進(jìn)行動作識別時,判斷實時測量數(shù)據(jù)的F1、F2是否與規(guī)則庫中的規(guī)則相匹配,如圖1所示,若符合,則顯示識別結(jié)果。通過與表3中的規(guī)則進(jìn)行對比可直接輸出大部分的身體動作識別結(jié)果,但由表3可知,F(xiàn)2并不是一個連續(xù)的范圍值,在跳躍動作與蹲起動作之間存在重合的判定范圍區(qū)域,需要做進(jìn)一步判定。借助特殊關(guān)節(jié)點坐標(biāo)進(jìn)行二次判定,如跳躍時,手腕關(guān)節(jié)點一般會高于頭部,在蹲下起立的過程中則往往不會發(fā)生,因此可以通過計算手腕關(guān)節(jié)的y坐標(biāo)是否高于頭部進(jìn)一步判定是跳躍或是蹲下。
表3 動作判別規(guī)則Table 3 Action discrimination rules
針對關(guān)節(jié)點模型的簡化以及相關(guān)夾角、中心參數(shù)的定義,需要通過實驗驗證模型、參數(shù)的合理性和可行性,并獲取判別函數(shù)中參數(shù)的參照值,作為動作判別依據(jù)。
實驗環(huán)境為Intel Core i5-3317U,CPU@1.7 GHz,4 GB內(nèi)存,Windos10操作系統(tǒng)。影像獲取設(shè)備為像素1 000 W的攝像機(jī),拍攝點距地面0.88 m,拍攝距離2.5 m。地點選取統(tǒng)一背景,墻壁為白色。實驗的背景與光照的組合隨機(jī)。實驗過程中,要求實驗者穿著簡單易分辨,如穿著黑、紅等與墻壁顏色反差較大的衣物,無干擾物,如背包等。在可靠度為95%的前提下取樣本比例估計P=0.9,精度百分比E=3%,通過統(tǒng)計樣本量計算得到樣本數(shù)n=400組,即每個動作做100組實驗。一共6人參與,3男3女,每個動作重復(fù)6次。
針對實驗過程中可能發(fā)生的影響,做出如下條件假設(shè)。
(1)實驗時,始終采用人的側(cè)面進(jìn)行拍攝,如行走或奔跑時的運動方向與攝像機(jī)鏡頭的方向成90°視角,跳躍等動作時人的正面朝向與攝像機(jī)鏡頭成90°視角。
(2)假設(shè)實驗的動作是絕大部分人的自然動作,符合人體運動的人因?qū)W原理,如跳躍時踝關(guān)節(jié)點不會高于膝蓋等。
(3)每次實驗的環(huán)境保持一致。
以行走、奔跑、跳躍以及蹲下起立為例,驗證關(guān)節(jié)點簡化模型與中心參數(shù)的合理性,并獲取各參數(shù)的參照值。每組動作根據(jù)速度再細(xì)分,如行走可以分為快走,慢走和正常速度,奔跑也可以類似的再分。通過錄像的方式錄取動作視頻作為原始動作資料,具體如表4所示。
使用Total_Video_Converter-影音轉(zhuǎn)換V 3.11軟件將拍攝好的實驗視頻轉(zhuǎn)化成jpg格式的靜態(tài)圖片幀。根據(jù)每個動作一個循環(huán)的時間位標(biāo)準(zhǔn),進(jìn)行視頻分段,將每段視頻包含的一個完整循環(huán)動作以每幀若干秒為間隔分幀處理。每個動作的一個完整循環(huán)時間如表4所示。對視頻進(jìn)行分幀處理后的效果如圖4所示。
圖4 視頻分幀示意圖Fig.4 Schematic diagram of video framing
基于分幀后的靜態(tài)圖像進(jìn)行動作判別,是某一時刻的狀態(tài)量而不是過程量,所以關(guān)鍵幀圖像的選取十分重要。在建立參考數(shù)據(jù)集時,以一個完整的循環(huán)動作為基礎(chǔ),選取每個角度達(dá)到最大值或最小時(即一個循環(huán)過程中的前半個循環(huán)和后半個循環(huán)的轉(zhuǎn)折點)的幀圖像作為關(guān)鍵幀數(shù)據(jù),并以關(guān)鍵幀的夾角參數(shù)和中心參數(shù)作為參照值。以奔跑中的φ1和φ4為例,圖5為奔跑過程中φ1和φ4的角度循環(huán)變化。各動作參數(shù)數(shù)據(jù)圖如圖6所示。
豎直虛線標(biāo)注出的為關(guān)鍵幀數(shù)據(jù);φ1為由小變大的數(shù)據(jù);取每個 循環(huán)的最大值;φ4為由大變小的數(shù)據(jù),取每個循環(huán)的最小值圖5 奔跑中φ1和φ4角度的變化(部分)Fig.5 Changes of φ1and φ4in running (part)
表4 實驗內(nèi)容及安排Table 4 Experimental content and arrangement
圖6 各動作參數(shù)數(shù)據(jù)圖Fig.6 Data diagram of each action parameter
由圖6可知,奔跑過程中各夾角最大值存在較小波動,總體平穩(wěn),中心參數(shù)η的變化也不明顯,說明數(shù)據(jù)有較好的聚集性。通過實驗其他動作也具有類似結(jié)論。因此,關(guān)節(jié)點簡化模型與中心坐標(biāo)系的建立均能有效識別身體動作,可以基于該模型及參數(shù)建立參照規(guī)則庫。通過實驗,將測量數(shù)據(jù)的平均值作為動作識別時的參照值,如表5所示。將實驗獲取的關(guān)鍵幀數(shù)據(jù)(圖5)與表5中的參照數(shù)據(jù)代入式(2)~式(5),得到F1和F2的范圍,建立如表3所示的規(guī)則庫。
表5 各動作各夾角識別參照值Table 5 Identification reference value of each action angle
通過影像分析建立規(guī)則庫后,再利用Kinect V2獲得關(guān)節(jié)模型對人體進(jìn)行實時關(guān)節(jié)點跟蹤,利用軟件MATLAB(R2010b)讀取關(guān)節(jié)點的空間坐標(biāo),并將獲取的夾角和中心坐標(biāo)帶入判別函數(shù),將計算值與所建立的規(guī)則庫進(jìn)行匹配,達(dá)到實時識別動作的效果。隨機(jī)選取約4/5的實驗樣本作為參照實驗數(shù)據(jù),用于代入判別函數(shù)歸納得到判別規(guī)則,1/5的實驗樣本作為測試樣本,驗證關(guān)節(jié)點簡化模型、中心坐標(biāo)系、關(guān)鍵參數(shù)以及判別函數(shù)的有效性。
同時,為了驗證本文方法的先進(jìn)性和有效性,與其他類型方法進(jìn)行了比較。表6列出了本文方法與3種主要識別方法在2個不同公開數(shù)據(jù)集上的識別率和平均耗時。經(jīng)過比較,在保證識別率的基礎(chǔ)上,本文方法只需通過實驗數(shù)據(jù)構(gòu)建判別函數(shù)參照值,將測量數(shù)值與參照值進(jìn)行多次比對即可,不需要大量的數(shù)據(jù)作為數(shù)據(jù)庫進(jìn)行一維或者二維的匹配,判別簡單,計算量?。慌c基于時序增強(qiáng)的判別方法比較,不需要獲得連續(xù)的視頻或幀圖像,計算速度較快。本文方法在保證識別率的基礎(chǔ)上有效簡化了識別過程,提升了識別速度,識別時間穩(wěn)定。
表6 實驗測試結(jié)果及與其他方法的比較Table 6 Test results and comparison with other methods
針對體育鍛煉、醫(yī)療康復(fù)等場景對身體動作識別效率的需求,提出了一種基于規(guī)則的身體動作快速識別方法。根據(jù)人因原理及實驗驗證對Kinect設(shè)備采集的25個關(guān)節(jié)點進(jìn)行了融合,建立了關(guān)節(jié)點簡化模型與中心投影坐標(biāo)系,并且定義了身體動作相關(guān)的關(guān)鍵夾角參數(shù)和中心參數(shù),設(shè)計了動作判別函數(shù)。通過實驗,獲取參數(shù)的參照數(shù)據(jù),建立了動作識別的規(guī)則庫,通過與規(guī)則庫進(jìn)行對比,達(dá)到快速識別身體動作的目的。最后,利用公開數(shù)據(jù)集將本文方法與若干其他方法進(jìn)行了比較,證明了本文方法在識別效率上有明顯優(yōu)勢。在今后的研究中,將考慮利用多設(shè)備從多方向獲取數(shù)據(jù),開展多數(shù)據(jù)源的協(xié)同身體動作識別,并進(jìn)一步探索降低無關(guān)因素干擾的方法。