冉憲宇
(陜西國防工業(yè)職業(yè)技術(shù)學(xué)院, 計算機與軟件學(xué)院, 陜西, 西安 710300)
人體行為識別主要是利用模式識別理論中的方法對人體的運動信息進行處理,實現(xiàn)行為類別的劃分,在醫(yī)療保健、體感游戲、智能家居、影視創(chuàng)作、人工智能等多個領(lǐng)域有廣泛應(yīng)用。但人體動作復(fù)雜多變,具有多樣性以及柔韌性且存在個體差異,精準識別非常困難,受惠于MEMS微機電系統(tǒng)在技術(shù)上的快速發(fā)展,傳感器在價格、尺寸、能耗、質(zhì)量等多個方面得以改進,穿戴式設(shè)備為人體行為識別的數(shù)據(jù)采集提供了便捷可靠的技術(shù)手段。因此,基于傳感器技術(shù)設(shè)計人體行為識別系統(tǒng),利用分類算法提升識別準確率,為其在各個領(lǐng)域的應(yīng)用提供技術(shù)保障。
目前人體行為識別大體上包括基于計算機視覺、基于傳感器兩類方法,基于計算機視覺的方法在過去十幾年取得了很多成就,但要求存儲的信息量大,監(jiān)測區(qū)域受限,且成像設(shè)備不利于攜帶。早期階段傳感器也存在類似問題,研究成果并不理想,隨著MEMS技術(shù)的發(fā)展,傳感器的限制越來越少,推廣范圍逐步增大,因此也成為熱門研究方向。
計算機視覺方法的智能設(shè)備成本較高,不利于推廣,且受光照、遮擋、陰影等環(huán)境因素影響較大,而且無法進行大范圍的監(jiān)測、成像設(shè)備體積大、不便攜帶。相較于基于計算機視覺的識別方法,基于慣性傳感器的方法具有更多優(yōu)勢:首先,采集設(shè)備集成度高且價格低,利于推廣;其次,不受光照、障礙物等因素影響,監(jiān)測范圍廣,可實現(xiàn)大范圍監(jiān)測;再次,采集設(shè)備質(zhì)量輕、體積小,便于攜帶,更容易集成到各類電子產(chǎn)品之中;最后,傳感器續(xù)航能力高,靈敏度高且功耗低,可實現(xiàn)長期監(jiān)測[1]。
為了提升識別精度,傳感器數(shù)量非常關(guān)鍵,過多不利于佩戴,舒適度降低,而且信息量增加也會導(dǎo)致運算復(fù)雜度提高,單個傳感器又存在信息太少影響識別精度問題。因此引出對信號處理環(huán)節(jié)的研究,進行特征提取、關(guān)鍵特征選擇,從算法上提升識別性能。設(shè)計系統(tǒng)的整體識別流程如圖1所示。
圖1 基于慣性傳感器進行人體行為識別整體流程
人體動作由一系列的肢體行為構(gòu)成,包括運動信息,因此采集傳感器在選型時綜合考慮數(shù)據(jù)整合量、體積、成本等因素后選擇mpu9250作為慣性傳感器,采集過程如圖2所示。將傳感器節(jié)點與人體關(guān)節(jié)進行綁定實現(xiàn)數(shù)據(jù)采集,為了提升傳感器采集數(shù)據(jù)的準確性,采用多點佩戴方式,選擇人體運動涉及的主要關(guān)節(jié),通過增加傳感器數(shù)量確保數(shù)據(jù)不會出現(xiàn)過大的偏差。采集模塊包括九軸慣性傳感器(三軸加速度計、三軸陀螺儀、三軸磁力計)、微處理器[2]。數(shù)據(jù)通過ZigBee無線傳輸網(wǎng)絡(luò)發(fā)送至信息接收模塊。
圖2 慣性傳感器采集流程
信息接收模塊主要實現(xiàn)慣性傳感器與計算服務(wù)器之間的數(shù)據(jù)通信,利用USB接口連接計算機,將數(shù)據(jù)采集模塊發(fā)送的信息通過串口傳輸至計算機處理。主要包括USB轉(zhuǎn)串口及ZigBee無線網(wǎng)絡(luò)構(gòu)成。由于行為動作捕捉過程中慣性傳感器屬于自給系統(tǒng),缺少參考點,沒辦法獲得空間位移信息,因此采用精度高、性能好的超寬帶定位技術(shù)通過納秒級窄脈沖實現(xiàn)人體位移信息采集。
根據(jù)人體行為識別系統(tǒng)的需求,為了方便處理模塊調(diào)用采集到的行為數(shù)據(jù),存儲過程中應(yīng)注重結(jié)構(gòu)簡單、占用空間較小,因此利用BVH格式文件進行存儲以便于數(shù)據(jù)的讀取。由于人體行為存在個體差異,利用BVH文件中關(guān)節(jié)的相對位置可調(diào)整人體比例。將根節(jié)點作為Hips節(jié)點,改變其參數(shù)實現(xiàn)三維空間的位移。
將每個完整的人體行為存儲為一個BVH文件,利用文件名進行區(qū)分,文件名采用“行為編號_人員編號_實驗次序編號.bvh”格式[3]。
人體的關(guān)節(jié)構(gòu)成可采用樹狀層次結(jié)構(gòu)進行表示,由一個根節(jié)點及多個葉子節(jié)點組成。主要關(guān)節(jié)模型如圖3所示。
圖3 人體主要關(guān)節(jié)模型
形體的每一次運動過程都可以看做是相對于父節(jié)點的關(guān)節(jié)的運動,由于髖關(guān)節(jié)活動范圍有限,因此將髖關(guān)節(jié)作為根節(jié)點,將慣性傳感器節(jié)點固定在人體關(guān)節(jié),即可捕捉行為數(shù)據(jù)。慣性傳感器獲取人體行為動作傳輸至計算機之后,根據(jù)行為數(shù)據(jù)構(gòu)建三維人體模型進行行為重現(xiàn),實現(xiàn)可視化行為展示。
利用Unity3D實現(xiàn)人體模型的三維實時展示,將原始數(shù)據(jù)經(jīng)過處理后生成姿態(tài)的四元數(shù),采用米作為統(tǒng)一度量單位,站立位置作為初始原點,初始姿態(tài)為T字形,人體模型的中心作為軸心,對綁定了慣性傳感器的關(guān)節(jié)進行設(shè)置,實時反饋電量、綁定狀態(tài)等信息,實現(xiàn)人體行為的實時捕捉與展示[4]。
對BVH文件中存儲的人體行為信息進行數(shù)據(jù)預(yù)處理以及特征提取,提取出影響較大的特征矢量,采用分類算法實現(xiàn)人體行為分類實現(xiàn)行為識別。
SVM(支持向量機)算法的學(xué)習(xí)策略為間隔最大化,將線性數(shù)據(jù)分割后利用一條直線將數(shù)據(jù)分開,在三維數(shù)據(jù)集時,則是利用一個平面進行分割。SVM算法需要找出最接近分割之后超平面的點,以此計算最大支持向量與分割面之間的距離[5]。設(shè)訓(xùn)練數(shù)據(jù)集為T={(x1,y1),(x2,y2),(xN,yN)},利用懲罰參數(shù)C>0構(gòu)造并求解凸二次規(guī)劃問題:
(1)
ω*·x+b*=0
(2)
式(4)中w為向量,b為常數(shù),則決策函數(shù)可記作:
f(x)=sign(ω*·x+b*)
(3)
為了驗證系統(tǒng)的識別效果,采用8個人員進行測試與識別。在受測人員的10個主要關(guān)節(jié)綁定慣性傳感器:頭、腰、左/右肩、左/右肘、左/右髖、左/右膝。通過這些核心關(guān)節(jié)的運行狀態(tài)判斷人體行為。設(shè)計包括上肢、軀干、下肢在內(nèi)的16種行為動作如表1所示,每人每個動作做4次,每個動作要求在10 s內(nèi)完成。
表1 行為定義
由于受測試人員存在動作幅度、骨骼比例等差異,因此采用BVH文件進行信息存儲,在BVH文件中可以修改關(guān)節(jié)點的相對位置,設(shè)定人體模型的身體比例,利用歐拉角對骨骼與肢體關(guān)節(jié)旋轉(zhuǎn)數(shù)據(jù)進行描述,通過調(diào)整根關(guān)節(jié)的參數(shù)實現(xiàn)人體模型的位移變化,以此減少不同測試人員之間數(shù)據(jù)采集的誤差。
4.2.1 數(shù)據(jù)預(yù)處理
采集到的數(shù)據(jù)可能存在異常情況導(dǎo)致最終分類結(jié)果不準確,因此需要對原始數(shù)據(jù)進行預(yù)處理,剔除異常數(shù)據(jù)。經(jīng)過綜合考慮采用四分位距法統(tǒng)計數(shù)據(jù)的離散程度,剔除異常值。將采集到的人體行為數(shù)據(jù)從小到大排序后利用三個點Q1、Q2、Q3分割為四等份,三個點分別是第一、第二、第三四分位數(shù),利用箱型圖篩選異常值,如圖4所示[6]。
圖4 四分位距箱型圖
其中,U為上界,D為下界,則:
U=Q1-k(Q3-Q1)
(4)
D=Q3+k(Q3-Q1)
(5)
式中,k=1.5為中度異常,k=3為極其異常,本文取k=1.5,以此計算得到的離群點即為異常數(shù)據(jù),對每個動作的原始數(shù)據(jù)進行預(yù)處理,使數(shù)據(jù)更加平穩(wěn),沒有跳躍點。
4.2.2 特征提取
為了方便后續(xù)處理,將BVH文件的數(shù)據(jù)記作數(shù)組形式data[k][e][n],k代表慣性傳感器數(shù)量,e為傳感器節(jié)點的歐拉角,n為數(shù)據(jù)幀數(shù)。由于本次實驗中采用10個慣性傳感器,因此k=10,每個傳感器節(jié)點選擇3個歐拉角,因此e=3,選擇均值、最大值、最小值、標準差、方差、中值、極差、斜率絕對值、能量9個特征代表人體行為特征,因此n=9。最終BVH文件提取的一組行為數(shù)據(jù)的數(shù)組可記作data[10][3][9]。提取后共產(chǎn)生270個特征。
4.2.3 特征降維
由于特征過多數(shù)據(jù)訓(xùn)練時間會非常長,計算過于復(fù)雜。因此需要利用主成分分析法選取其中關(guān)鍵特征,步驟如下:
(1) 選擇矩陣的一行記作一個特征,求每個特征的均值,利用“原始數(shù)據(jù)-均值”作為新的中心化后的值。
(3) 根據(jù)矩陣S求解特征值、特征向量。
(5) 利用投影矩陣求得降維之后的特征。
經(jīng)過多次試驗,當損失率取0.08時,可提取60個主成分,滿足實驗要求。因此將特征向量的維度從270維降至60維。
4.2.4 歸一化處理
由于本文識別的人體行為動作包括16類,因此利用系統(tǒng)中基于SVM算法的人體行為識別模塊構(gòu)建16類分類器,實驗采集8個人員的動作信息,開啟軟件相應(yīng)串口后連接慣性傳感器,受測試人員保持T字型靜止,打開慣性傳感器進行自動校準后捕捉人體行為,每個測試人員每個動作重復(fù)4次,則每個動作均會產(chǎn)生32個樣本數(shù)據(jù),將其中70%作為訓(xùn)練數(shù)據(jù),30%作為測試數(shù)據(jù),代入系統(tǒng)的人體行為識別模塊,經(jīng)過數(shù)據(jù)預(yù)處理、特征提取、特征降維以及歸一化處理后,根據(jù)SVM分類算法,采用高斯徑向基函數(shù)為SVM的核函數(shù),懲罰因子C=1,利用Python語言編程實現(xiàn)人體行為數(shù)據(jù)識別,識別率=(識別正確數(shù)/實驗總數(shù))*100%,識別結(jié)果如表2所示。
表2 行為識別結(jié)果
根據(jù)得到的識別率可以看出,系統(tǒng)設(shè)計的分類器對16種人體行為的平均識別準確率可達到86.72%,其中對揮手、交叉、走路等行為識別效果最好,達到100%,對畫圓和畫X識別效果最差,僅為62.5%。由此可以看出,對于動作幅度較大且與其他行為區(qū)別比較明顯的行為識別準確率較高,對于畫圓、畫X這種相似行為的動作則識別率會有所降低。
人體行為識別系統(tǒng)在硬件部分包括慣性傳感器采集數(shù)據(jù)、USB串口接收數(shù)據(jù)、超寬帶定位模塊,并通過SVM算法進行行為分類,利用UNITY3D技術(shù)實現(xiàn)動作的可視化重現(xiàn),經(jīng)過實際測試驗證整體識別效果較好。但對于幅度不明顯且存在相似動作的行為識別率會有所降低,且不同年齡段、不同身高、不同體重人員會存在個體差異,后續(xù)將在特征值提取方面進一步優(yōu)化,提升系統(tǒng)識別的準確率。