王 婧,谷 林
(西安工程大學(xué) 計算機(jī)科學(xué)學(xué)院,陜西 西安 710048)
計算機(jī)圖像處理技術(shù)的發(fā)展對動作識別的精度提出了更高要求。動作識別技術(shù)已廣泛應(yīng)用在康復(fù)訓(xùn)練、智能家居和體感游戲等多個方面。隨著計算機(jī)視覺的高速發(fā)展,越來越多的學(xué)者致力于人體動作識別的相關(guān)研究[1-7]。對于動作識別,人體動作特征的提取和表示是前提和關(guān)鍵,也是難點和重點。
基于人體骨骼位置信息的動作特征是較為成熟的動作特征表示方法之一[8-10], 相較于傳統(tǒng)的提取視頻圖像特征的方法[11], 基于人體骨骼位置信息的動作特征表示方法,具有更好地觀測角度無關(guān)性和復(fù)雜背景無關(guān)性。 基于人體骨骼位置信息的動作特征包括人體動作特征算子、 統(tǒng)計直方圖算子[12]、協(xié)方差算子[13]、旋轉(zhuǎn)矩陣、特征矩陣、特征向量、三維坐標(biāo)矩陣均值、協(xié)方差矩陣和骨骼點運(yùn)動軌跡等。在此基礎(chǔ)上,冉憲宇等[14]采用剛體間的相對位置矩陣作為動作特征描述人體姿態(tài)。Peter Blank 采用特征點的運(yùn)動軌跡作為動作特征,以運(yùn)動軌跡的順序和類型為依據(jù),將動作劃分為不同類型。該方法受測試者身高等因素的影響較大,識別精度不高。 劉沿等[15]采用3D骨架片段中的坐標(biāo)均值和協(xié)方差矩陣作為動作特征,進(jìn)行動作識別。 該動作識別方法受動作類之間相似性的干擾較大,導(dǎo)致動作的識別效果較差。
針對上述問題,本文在Kinect獲取的人體骨骼點三維位置信息基礎(chǔ)上[16],提出將動作整體特征與動作局部特征表示方法融合,采用傳統(tǒng)人體姿態(tài)矩陣[17-19],作為動作整體特征的表示[20],并結(jié)合人體骨骼點的旋轉(zhuǎn)量,作為動作局部特征的表示。由于人體結(jié)構(gòu)的特殊性,各肢體的自由度不同,本方法僅采用部分人體骨骼點的旋轉(zhuǎn)量,作為動作局部特征的表示,此方法能夠較為有效地避免動作類之間相似度的干擾,達(dá)到提高動作識別準(zhǔn)確度的目的。
本文通過神經(jīng)網(wǎng)絡(luò)具有的非線性逼近函數(shù)和存儲記憶能力,對運(yùn)動特征集合進(jìn)行學(xué)習(xí)訓(xùn)練,得到穩(wěn)定收斂的網(wǎng)絡(luò)模型。并針對BP神經(jīng)網(wǎng)絡(luò),采用5種不同的訓(xùn)練函數(shù)對網(wǎng)絡(luò)進(jìn)行優(yōu)化,通過分析對比網(wǎng)絡(luò)的訓(xùn)練效果,選取一種訓(xùn)練函數(shù)優(yōu)化網(wǎng)絡(luò)模型。依據(jù)網(wǎng)絡(luò)模型輸出的動作符合度,實現(xiàn)對動作姿態(tài)的評測。
考慮到系統(tǒng)的準(zhǔn)確性,提取的動作特征必須能夠表示運(yùn)動動作的本質(zhì)特征。人體關(guān)節(jié)的坐標(biāo)、關(guān)節(jié)的瞬時三維矢量速度等運(yùn)動參數(shù)對無關(guān)因素比較敏感,會導(dǎo)致網(wǎng)絡(luò)模型振蕩收斂甚至無法收斂,不能表示動作的本質(zhì)特征,因此不適合作為動作特征的表示,因此本文采用傳統(tǒng)的人體姿態(tài)矩陣表示動作的整體特征。定義一個骨骼有M個節(jié)點,人體姿勢可以表示為
RF=(Ri,j)M×M
(1)
式中:Ri,j表示的是第i個骨骼點到第j個骨骼點的相對位置關(guān)系,可以通過計算第i個骨骼點指向第j個骨骼點的單位向量得到兩骨骼點間的相對位置關(guān)系;矩陣RF表示在第F幀時,一個動作之間的所有骨骼點的相對位置關(guān)系組成的矩陣。
Kinect的人體骨骼信息不僅包含人體的身體參數(shù)特征,還包含了人體結(jié)構(gòu)的拓?fù)湫畔?如圖1所示。
(a) 人體骨骼點分布圖
(b) 人體骨骼點拓?fù)潢P(guān)系圖圖1 人體拓?fù)湫畔DFig.1 Topological information of body
Kinect采集到的人體骨骼信息,包含人體25個骨骼點在的三維空間位置信息和以SpineBase為根節(jié)點的拓?fù)浣Y(jié)構(gòu)信息。三維空間位置信息如圖2(a)所示,坐標(biāo)的數(shù)據(jù)格式為(floatx, floaty,floatz),四元數(shù)的數(shù)據(jù)格式為(floatx, floaty, floatz,floatw),其中x,y,z為骨骼點的橫坐標(biāo)、縱坐標(biāo)和豎坐標(biāo),w為骨骼點的歐拉角。
為更好地描述動作中肢體的自旋轉(zhuǎn)情況,本文在傳統(tǒng)人體姿態(tài)矩陣作為特征表示的基礎(chǔ)上,提出結(jié)合骨骼點的旋轉(zhuǎn)量作為動作局部特征的表示,此動作特征表示方法能夠更加詳細(xì)地描述動作的本質(zhì)特征,減少動作類間相似性對識別精度的干擾。本文通過計算父骨骼和子骨骼上的笛卡爾坐標(biāo)系的旋轉(zhuǎn)量表示肢體的自旋轉(zhuǎn)情況,骨骼點的笛卡爾坐標(biāo)系旋轉(zhuǎn)如圖2所示。
除末端骨骼點無法計算旋轉(zhuǎn)量之外,其余20個骨骼點均可計算旋轉(zhuǎn)量。圖2(a)表示骨骼坐標(biāo)的初始坐標(biāo)系分布,圖2(b)表示左肘骨骼點逆時針旋轉(zhuǎn)180°后的坐標(biāo)系分布。通過計算左肘骨骼點相對于其父骨骼點(左肩骨骼點)坐標(biāo)系的旋轉(zhuǎn)角度,記為左肘骨骼點的旋轉(zhuǎn)量。
以SpineBase作為原點,以豎直向上為Y軸,Z軸指向傳感器,X軸位于人左手方向,三維空間中優(yōu)化的人體動作姿態(tài)可被參數(shù)化為
SF=[RF,GiF]
(2)
式中:RF表示各個關(guān)節(jié)點之間的相對位置關(guān)系構(gòu)成的矩陣;GiF表示第i個骨骼點在第F幀時的旋轉(zhuǎn)量。
(a) 肘關(guān)節(jié)初始位置 (b)肘關(guān)節(jié)點旋轉(zhuǎn)180°圖2 肘關(guān)節(jié)笛卡爾坐標(biāo)系的旋轉(zhuǎn)Fig.2 Rotation of cartesian product coordinates of elbow
本文采用BP神經(jīng)網(wǎng)絡(luò)建立網(wǎng)絡(luò)模型輸出的動作符合度,實現(xiàn)對動作姿態(tài)的評測,BP神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)如圖3所示。BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程主要包括正向傳播訓(xùn)練數(shù)據(jù)和逆向傳播進(jìn)行網(wǎng)絡(luò)參數(shù)的修正2個過程。BP神經(jīng)網(wǎng)絡(luò)通過多次訓(xùn)練,對網(wǎng)絡(luò)參數(shù)中的權(quán)值和閾值進(jìn)行更新校正。通過訓(xùn)練集數(shù)據(jù),正向傳播逐層訓(xùn)練權(quán)值和閾值得到評測輸出。若輸出的誤差超出預(yù)設(shè)誤差,則通過反向傳播的方式逐層對權(quán)值和閾值進(jìn)行更新。重復(fù)上述過程,直至輸出的誤差達(dá)到預(yù)設(shè)誤差,神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練結(jié)束。
圖3 BP神經(jīng)網(wǎng)絡(luò)模型Fig.3 BP neural network model
通過實驗不斷改變網(wǎng)絡(luò)參數(shù),包括權(quán)值級別、步長系數(shù)、穩(wěn)定系數(shù)、誤差閾值、最大迭代次數(shù)和隱藏層節(jié)點數(shù)等,以提高網(wǎng)絡(luò)的收斂性能,達(dá)到最佳的學(xué)習(xí)訓(xùn)練效果。
本文在提出的優(yōu)化的動作特征表示方法基礎(chǔ)上,利用神經(jīng)網(wǎng)絡(luò)具有的非線性逼近函數(shù)和存儲記憶能力,對運(yùn)動特征集合在Matlab中進(jìn)行學(xué)習(xí)訓(xùn)練[21],得到穩(wěn)定收斂的網(wǎng)絡(luò)模型,對動作特征集合進(jìn)行處理,實現(xiàn)計算動作的符合度,以評測動作姿態(tài)的功能。
實驗采用GAMING DATASETS-G3D數(shù)據(jù)集[22]進(jìn)行測試,該游戲動作數(shù)據(jù)集包含10個測試者的20個動作。實驗分別以矩陣RF和SF的特征向量作為神經(jīng)網(wǎng)絡(luò)的輸入,神經(jīng)網(wǎng)絡(luò)N1的輸入為RF的特征向量,神經(jīng)網(wǎng)絡(luò)N2的輸入為SF的特征向量。神經(jīng)網(wǎng)絡(luò)N1和N2的輸出為動作符合度,建立網(wǎng)絡(luò)模型,對比分析2個網(wǎng)絡(luò)模型的準(zhǔn)確率。
對輸入的樣本數(shù)據(jù)進(jìn)行歸一化處理。采用的歸一化算法為
(3)
式中:輸入量為x,xmin是輸入數(shù)據(jù)中的最小值,xmax是輸入數(shù)據(jù)中的最大值。ymin=0,對應(yīng)歸一化前x的最小值xmin,ymax=1對應(yīng)歸一化前x的最大值xmax。歸一化后的值域為[0,1],將結(jié)果進(jìn)行反歸一化處理,還原數(shù)據(jù)的初始值。
在網(wǎng)絡(luò)訓(xùn)練過程中,通過反復(fù)實驗確定BP神經(jīng)網(wǎng)絡(luò)最佳的網(wǎng)絡(luò)參數(shù)。當(dāng)采取動態(tài)改變學(xué)習(xí)率的策略,設(shè)定網(wǎng)絡(luò)模型的學(xué)習(xí)效率0.01,學(xué)習(xí)率增長比1.05,學(xué)習(xí)率下降比0.65,初始權(quán)值變化為0.07,權(quán)值變化增加量1.2,權(quán)值變化最小量0.5,權(quán)值變化最大值為50,動量因子0.945時網(wǎng)絡(luò)的性能達(dá)到最佳。設(shè)置最大迭代次數(shù)為5,當(dāng)訓(xùn)練過程中的迭代次數(shù)超過5次則認(rèn)為網(wǎng)絡(luò)學(xué)習(xí)失敗,停止學(xué)習(xí)。設(shè)置誤差閾值為0.000 1,訓(xùn)練結(jié)果的均方誤差低于0.000 1時結(jié)束學(xué)習(xí)。隱藏層的節(jié)點數(shù)為
(4)
式中:n為隱藏層節(jié)點數(shù);ni為輸入節(jié)點數(shù);n0為輸出節(jié)點數(shù),a為1~10的常數(shù)。
選擇訓(xùn)練函數(shù)和傳輸函數(shù),通過學(xué)習(xí)函數(shù)確定網(wǎng)絡(luò)中各層權(quán)值和閾值的梯度,訓(xùn)練過程中通過訓(xùn)練函數(shù)更新校正權(quán)值和閾值。傳輸函數(shù)采用S型函數(shù),函數(shù)的值域為[0,1]。通過反復(fù)實驗測試不同訓(xùn)練函數(shù)對網(wǎng)絡(luò)模型的精度影響,實驗結(jié)果如表1和表2所示。
表1 不同訓(xùn)練函數(shù)對網(wǎng)絡(luò)模型N1精度的影響Table 1 The effect of different training functions on the accuracy of N1
表2 不同訓(xùn)練函數(shù)對網(wǎng)絡(luò)模型N2精度的影響Table 2 The effect of different training functions on the accuracy of N2
從實驗結(jié)果看出,LM算法在訓(xùn)練誤差和訓(xùn)練時間方面具有較好的性能,且優(yōu)化后收斂性能較好。因此選取LM算法作為N1和N2的優(yōu)化函數(shù)進(jìn)行訓(xùn)練學(xué)習(xí)。
本實驗的準(zhǔn)確性能指標(biāo)是神經(jīng)網(wǎng)絡(luò)模型預(yù)測的準(zhǔn)確率。圖4是N1和N2網(wǎng)絡(luò)性能的對比情況。
(a) N1的網(wǎng)絡(luò)性能參數(shù)
(b) N2的網(wǎng)絡(luò)性能參數(shù)圖4 網(wǎng)絡(luò)模型N1和N2網(wǎng)絡(luò)性能的對比Fig.4 Comparison of network performance between N1 and N2
圖5是網(wǎng)絡(luò)模型N1和N2準(zhǔn)確率的對比情況。從實驗結(jié)果可知,運(yùn)行時間均為4 s,說明2種動作特征表示方法對效率的優(yōu)化不明顯。網(wǎng)絡(luò)模型N1的準(zhǔn)確率為90.981%,網(wǎng)絡(luò)模型N2的準(zhǔn)確率為95.624%,網(wǎng)絡(luò)模型N2輸出的動作符合度準(zhǔn)確率更高。說明本文提出優(yōu)化的動作特征表示方法能夠使網(wǎng)絡(luò)快速穩(wěn)定收斂,并得到較為準(zhǔn)確的輸出結(jié)果。因此采用優(yōu)化動作表示方法的網(wǎng)絡(luò)模型輸出動作符合度,評測動作姿態(tài)的方法準(zhǔn)確率更高。
(a) N1的準(zhǔn)確率
(b) N2的準(zhǔn)確率圖5 網(wǎng)絡(luò)模型N1和N2準(zhǔn)確率對比Fig.5 Comparison of network precision between N1 and N2
傳統(tǒng)動作特征表示方法,在很大程度上限制了對動作局部特征的描述,降低了動作識別準(zhǔn)確率。本文給出一種采用將動作整體特征表示方法與動作局部特征表示方法融合優(yōu)化的動作特征表示方法,用于動作符合度的預(yù)測。通過實驗表明,相較于傳統(tǒng)的動作特征表示方法在識別精度上提高了4.643%,能夠有效提高動作識別的精度,從而證明此動作特征表示在動作姿態(tài)評測的有效性和可行性。此方法可以應(yīng)用到動作訓(xùn)練輔助,如乒乓球削球動作的識別,也可以應(yīng)用到動作預(yù)測等領(lǐng)域。此動作表示方法詳細(xì)描述了動作的局部特征,有利于對動作細(xì)節(jié)的識別。