黃劉松,儲岳中,張學(xué)鋒,張 飛
(1.馬鞍山師范高等專科學(xué)校 軟件學(xué)院,安徽 馬鞍山 243041;2.安徽工業(yè)大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,安徽 馬鞍山 243032)
作為人機交互的一種重要技術(shù),動作識別一直是模式識別領(lǐng)域的研究熱點之一。在動作識別研究中主要有兩個方向:基于視覺傳感器的動作識別[1]和基于可穿戴傳感器的動作識別[2-5]。
目前,針對乒乓球擊球動作的識別研究大多集中在圖像處理和計算機視覺領(lǐng)域。然而計算機視覺的研究方法對實驗環(huán)境要求較為嚴(yán)格,對于圖像的處理以及運動的建模較為復(fù)雜,而加速度具有能耗低、體積小、成本低、數(shù)據(jù)處理簡單、對運動場景背景要求低的特點。因此,文中將加速度傳感器應(yīng)用于乒乓球擊球動作的識別中。其動作識別過程主要分為特征提取、特征選擇和識別算法3個步驟。特征提取主要從信號的物理特征和人體運動特征兩個方面分析。在物理特征方面,主要使用小波變換、快速傅里葉變換[6]等方法提取頻率、能量信息;在運動特征方面,提取平均值、熵、信號矢量幅值(signal vector magnitude)等特征值。特征選擇主要使用蟻群算法[7]。識別算法使用動態(tài)時間規(guī)整[8-9]、KNN[10]、決策樹模型[11-12]、基于徑向基核函數(shù)的支持向量機[13]、基于CNN和LSTM融合算法[14]、基于特征增強和決策融合的識別算法[15]。
筆者基于三維加速度傳感器設(shè)計了擊球動作識別系統(tǒng),通過對加速度數(shù)據(jù)的采集、處理、分析,得到基于三維加速度傳感器的手部擊球動作,具有對擊球類型高識別率、對擊球類型分類細(xì)致等特點。
該實驗的硬件裝置主要分為兩個部分:數(shù)據(jù)的采集模塊和數(shù)據(jù)接收處理模塊。其中數(shù)據(jù)采集模塊由三維加速度傳感器(MMA7455數(shù)字加速度傳感器模塊)和無線數(shù)據(jù)傳輸裝置構(gòu)成:數(shù)據(jù)接收處理模塊由數(shù)據(jù)接收裝置和PC機組成。為了全面準(zhǔn)確的獲取人在乒乓球擊球運動中的加速度信息,實驗將數(shù)據(jù)采集模塊固定于手腕上,用于采集手勢動作加速度信號,其數(shù)據(jù)采集模塊如圖1所示(采樣頻率為10-100 Hz可調(diào)節(jié),采樣頻率高,采集的特征點維數(shù)高,能有效提高動作的識別率,降低誤判率,但相應(yīng)的識別時間會增加。根據(jù)乒乓球運動單次擊球動作特點,文中采樣頻率設(shè)定為50 Hz)。當(dāng)加速度傳感器感知到手部的三維活動時,獲取的模擬加速度信號通過模/數(shù)轉(zhuǎn)換轉(zhuǎn)變?yōu)閿?shù)字信號,數(shù)據(jù)通過無線局域網(wǎng)絡(luò)傳送到數(shù)據(jù)接收裝置,PC機將從接收裝置讀取的數(shù)據(jù)保存到數(shù)據(jù)庫中。同時計算機將接收到的數(shù)據(jù)進行特征提取和手勢動作識別等分析工作。其原理圖如圖2所示。
圖1 加速度數(shù)據(jù)采集模塊
圖2 系統(tǒng)原理圖
2.1.1 濾波
由于該套系統(tǒng)所采用的加速度傳感器的靈敏度和精度遠(yuǎn)高于應(yīng)用的需求,雖然傳感器本身具有測量誤差,且存在外界干擾,但其影響并不十分明顯,因此無需進行自相關(guān)等復(fù)雜運算,僅僅需要去除重力加速度對于實驗數(shù)據(jù)的影響,因此,在實驗時只需對實驗數(shù)據(jù)進行簡單的低通濾波預(yù)處理。處理方法如下:
設(shè)重力加速度在X,Y,Z三個方向上的分量Gravity(k)=α*Gravity(k)+(1-α)*Value(k)(其中k=x,y,z),式中α為0-1之間常量,Value(x),Value(y),Value(z)是此時X,Y,Z三個方向上的三維加速度值,則此時X,Y,Z三個方向的加速度為Acc(k)=Value(k)-Gravity(k)(其中k=x,y,z)。
2.1.2 動作起始點和終止點判斷
通過傳感器獲取的加速度信號,經(jīng)過濾波處理,在判斷動作起始點和終止點時,通常采用過零率、固定閾值等方法,由于該套系統(tǒng)的采樣頻率比較低所以不宜用過零率來作為判斷依據(jù),文中通過設(shè)置門限閾值自動檢測擊球動作窗口[16]。當(dāng)沒有動作產(chǎn)生時,加速度是相對平穩(wěn)的,采集的加速度數(shù)據(jù)流可近似看作常量,當(dāng)作出擊球動作時,加速度數(shù)據(jù)變化劇烈。設(shè)A(t)=[ax(t),ay(t),az(t)]為t時刻采樣的三維加速度數(shù)據(jù),threshold為設(shè)置的門限閾值(由經(jīng)驗數(shù)據(jù)threshold值取5),A(t+m)與A(t)比較計算歐氏距離,若:||A(t+m)-A(t)||≥threshold(其中m=1,2,3,4,5;L2范數(shù)),即連續(xù)5個點的能量大于給定閾值,則t時刻的采樣點A(t)可判斷為非靜止的數(shù)據(jù)起始點。||A(t+m)-A(t)||≤threshold(其中m=1,2,3,4,5)即連續(xù)5個能量值小于給定閾值,則t時刻的采樣點A(t)可判斷為動作結(jié)束點。
動作的特征選擇恰當(dāng)與否直接關(guān)系到分類的識別算法的實時性和識別的正確率,通過對樣本數(shù)據(jù)的分析,文中選擇了X軸,Y軸,Z軸所有的數(shù)據(jù),該設(shè)計對一個動態(tài)手勢提取特征,是獲取其X軸,Y軸,Z軸的所有特征點的原始時間序列{T1,T2,…,Tn}和加速度幅值序列{Acck1,Acck2,Acck3}(其中k=x,y,z)。由于手勢執(zhí)行時間長度不等,因此,在進行模板匹配計算測試模板和參考模板的相似性時,文中使用動態(tài)時間規(guī)整算法。
2.3.1 動態(tài)時間規(guī)整算法(DTW)
在時間序列中,需要比較相似性的兩段時間序列的長度可能并不相等,在語音識別領(lǐng)域表現(xiàn)為不同個體的語速不同;在動作識別領(lǐng)域表現(xiàn)為不同人在以同樣方式做同一類型動作時,其持續(xù)時間長度會隨機改變。因此在這些復(fù)雜情況下,直接使用特征矢量序列,通過傳統(tǒng)的歐幾里得距離來進行相似性比較,無法真正有效求得兩個時間序列之間的距離(或者相似性)。通過實驗發(fā)現(xiàn)不同個體在做同一動作時其時間序列可能僅僅存在時間軸上的位移,亦即在還原位移的情況下,兩個時間序列是一致的。DTW算法就是通過把時間序列進行延伸和縮短對特征參數(shù)序列模式重新進行時間的對準(zhǔn),然后再來計算兩個時間序列性之間的相似性,從而找到最佳匹配結(jié)果。
設(shè)測試模板T的N個特征矢量表示為T=[t1,t2,…,tx,…,tn],其中x為時序標(biāo)號,tx為第x時刻的特征矢量,表達式為tx={axx,ayx,azx}。參考模版R的M個特征矢量表示為R=[r1,r2,…,ry,…,rm],其中y為時序標(biāo)號,ry為第y時刻的特征矢量,表達式為ry={axy,ayy,azy}。此時可借用歐氏距離來求解特征矢量tx與特征矢量ry的失真度,定義此失真度為
用測試模版T的N個特征矢量與參考模版R的M個特征矢量,依據(jù)時間序列依次標(biāo)注為坐標(biāo)軸的橫軸和縱軸上的點,通過這些點之間的關(guān)系形成一個網(wǎng)格,網(wǎng)格中的交叉點(x,y)就表示為測試模版T(x)和參考模版R(y)的相交,使用上文定義的失真度計算方法便可以計算出每一個交叉點的失真度Dis[tx,ry],這些失真度可以構(gòu)成一個測試模版T(n)和參考模版R(m)的失真度(距離)矩陣D,其表達式如下
DTW算法就是希望找一條通過各交叉點從起點Dis(t1,r1)到終點Dis(tn,rm)的最佳路徑,從而使得所有交叉點的失真度總和達到最小。尋找最短路徑的過程并不是任意的,必須滿足以下條件:
(1)邊界條件:路徑必然從起點Dis(t1,r1)開始到終點Dis(tn,rm)結(jié)束。
(2)單調(diào)性:各部分先后順序不能顛倒,即從左往右,從上往下的搜索順序不能改變。
因此,尋找最優(yōu)路徑的迭代公式可以寫為
由此遞推公式便可以得出從起點到終點的最優(yōu)匹配路徑。
2.3.2 改進的動態(tài)時間規(guī)整算法
動態(tài)時間規(guī)整算法的本質(zhì)是一個動態(tài)規(guī)劃(DP)的求解過程,由于同一類別中(擊球類型)的參考模版可能不止一個,而是多個。因此每個測試模板需要和該類別中的每一種參考模版做DTW匹配,從這些匹配結(jié)果中找到一條該類別的最短路徑(最優(yōu)匹配),作為該類別與參考模版的最優(yōu)匹配。通過該方法完成余下類別的匹配,然后從所有類別的匹配結(jié)果中找到一條最短路徑作為該參考模版的所屬類別。
通過實驗發(fā)現(xiàn)在進行搓球、攻球、推擋判別時,由于X,Y,Z三個方向加速度的信號特征的極大值、極小值、特征均值存在明顯差別,為了簡化此匹配過程,文中在做DTW算法匹配前,先分別提取測試模版和搓球、攻球、推擋各參考模版的信號極大值信號極小值,信號分布特征均值其中k=x,y,z。并通過這9維特征使用歐氏距離求解出測試樣本和搓球、攻球、推擋這三個大的類別的最優(yōu)匹配。然后使用DTW進行最終結(jié)果的求解驗證。算法流程圖如圖3所示。
圖3 算法流程圖
如圖4所示為一次擊球動作產(chǎn)生的加速度信號經(jīng)過信號預(yù)處理后的加速度幅值波形,其中橫軸為時間,縱軸為加速度幅值,圖中實線為加速度傳感器X軸方向的幅值變化,點線為Y軸方向的幅值變化,間隔線為Z軸方向的幅值變化。通過DTW算法計算出測試模版與各類別參考模版之間失真距離的最小值,再從這些最小值中找到最佳匹配路徑,即為該測試模版的所屬類別。
圖4 一次動作的三維加速度信號示意圖
在乒乓球訓(xùn)練過程中,采集某運動員5種動作各100組數(shù)據(jù)共計500組,每個動作的100組數(shù)據(jù)隨機選擇其中50組訓(xùn)練分類器,50組用來檢驗分類結(jié)果。
對實驗數(shù)據(jù)分析處理的機器環(huán)境:雙核2.4 GHz AMD炫龍II M520處理器,2 GB內(nèi)存,Windows 7(32位)平臺Java語言編程。識別率為在線識別統(tǒng)計,而最終測試結(jié)果的算法用時是在對保存在數(shù)據(jù)庫中的離線動作數(shù)據(jù)連續(xù)讀取時做的統(tǒng)計。實驗結(jié)果表明,先使用x,y,z三個方向上信號的極大值、極小值和特征均值共9維特征對動作進行預(yù)判,再做最終的動態(tài)時間規(guī)整匹配相對于傳統(tǒng)的DTW算法,在對動作識別率影響不大的情況下在算法效率上有明顯改善。見表1。
表1 DTW改進前后識別率與用時對比
為了進一步說明改進后的DTW算法相比較于其他算法有更好的識別率和準(zhǔn)確性,實驗中同時采用了KNN算法和決策樹算法對這5組動作進行了分類識別,識別結(jié)果見表2。
表2 KNN與決策樹識別率對比
對比表1和表2可以發(fā)現(xiàn)DTW識別算法對5種手勢的識別率都高于KNN識別算法和決策樹識別算法,且算法的平均識別率也明顯高于這2種算法。究其原因在于KNN和決策樹經(jīng)過特征提取均丟失了原有采集數(shù)據(jù)的時間序列維度特征。
針對乒乓球運動中基于三維加速度傳感器的動作識別做了探討,通過固定在手腕上的加速度傳感器得到加速度數(shù)據(jù),改進的動態(tài)時間規(guī)整算法相對于傳統(tǒng)的DTW算法,對擊球動作的分類識別,具有高識別率、動作分類細(xì)致等特點。仍有兩點不足:第一,由于DTW算法所選取的特征較多,這在一定程度上對于算法的執(zhí)行效率會有影響,而且特征過多可能存在冗余特征,可考慮做特征選擇;第二,固定閾值法對于動作誤判有一定改善,然而當(dāng)擊球人的手部干擾動作過于明顯或者迅速跑動對識別精度影響較大,考慮做誤動作去除。這將是下一步研究工作。