陳澤嘉,曾培峰
(東華大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,上海 201620)
隨著人工智能技術(shù)的不斷發(fā)展,軍隊(duì)和警察訓(xùn)練通常用“導(dǎo)控?zé)o人化”取代傳統(tǒng)的完全基于人工的訓(xùn)練模式。在士兵拳擊訓(xùn)練中,擊打?qū)ο笸ǔJ侨诵伟?,為了檢測士兵訓(xùn)練指標(biāo),需要在人形靶配置多個(gè)相關(guān)傳感器,以全方位采集訓(xùn)練數(shù)據(jù),并根據(jù)這些數(shù)據(jù)自動(dòng)完成士兵格斗水準(zhǔn)的評(píng)判。
士兵格斗水準(zhǔn)評(píng)判包括數(shù)據(jù)提取和預(yù)測,涉及行為識(shí)別領(lǐng)域。SONG S K[1]在低頻的設(shè)備環(huán)境下,以秒為單位分隔樣本的時(shí)間序列,結(jié)合傳感器數(shù)據(jù)相鄰時(shí)間間隔的特征進(jìn)行SVM訓(xùn)練,以樣本重用彌補(bǔ)設(shè)備性能,然而數(shù)據(jù)維度高,容易產(chǎn)生無用的干擾數(shù)據(jù)影響預(yù)測結(jié)果。BAO N[2]提出階段化的波形分析方法,對(duì)不同運(yùn)動(dòng)事件做出特征分析,其后兩個(gè)階段包含對(duì)一次振動(dòng)余波的判斷,下一步觀測需要等待設(shè)備穩(wěn)定后進(jìn)行,不太適合數(shù)據(jù)采集頻率較高的場合。文獻(xiàn)[3]提出的支持向量機(jī)多分類方法,基于新特征的運(yùn)動(dòng)識(shí)別,結(jié)合時(shí)域、頻域特征,對(duì)一個(gè)時(shí)間段內(nèi)的樣本的特征進(jìn)行綜合。利用交叉驗(yàn)證對(duì)核函數(shù)進(jìn)行,選取得到了優(yōu)于BP網(wǎng)絡(luò)的時(shí)間性能。DOUKAS C[4]等人從三軸加速度計(jì)收集數(shù)據(jù),保留了三個(gè)維度的加速度值并加入加速度信號(hào)幅值特征,同時(shí)通過驗(yàn)證對(duì)核函數(shù)和懲罰因子進(jìn)行選擇,其SVM模型在徑向基核函數(shù)下達(dá)到最佳分類效果。
簡單投票策略是支持向量機(jī)一對(duì)一分類模式常用的預(yù)測方法,而其缺陷在于不同二元分類器之間的競爭性關(guān)系弱,許多研究對(duì)此進(jìn)行改進(jìn),如文獻(xiàn)[5]提出的改進(jìn)的投票策略通過計(jì)算新樣本到各類別k近鄰平均距離及中心距離,得到不同類別的競爭權(quán)重,其只是簡單計(jì)算樣本間的歐氏距離。而本平臺(tái)中拳擊力量不固定,樣本值尺度跨度大,新樣本和訓(xùn)練集各類樣本的距離值很大程度相關(guān)于擊打力量,會(huì)影響分類判別準(zhǔn)確性。同時(shí),投票過程以概率預(yù)測[6]代替類別標(biāo)簽的預(yù)測,可以更精確描述待測樣本對(duì)某一類別的隸屬程度。
文獻(xiàn)[7]和[8]通過合成加速度的計(jì)算,消除各維度加速度分量的隨機(jī)性問題和誤差,獲得穩(wěn)定的數(shù)據(jù)樣本。文獻(xiàn)[9]和[10]使用有限狀態(tài)機(jī),對(duì)活動(dòng)的過程進(jìn)行模擬,提出以加速度差分表示加速度的變化,設(shè)置轉(zhuǎn)移閾值以控制狀態(tài)轉(zhuǎn)移。文獻(xiàn)[11]利用重力分解出加速度向量在水平和垂直方向上的分量,以垂直加速度向量描述設(shè)備的上下振動(dòng),以合成加速度的標(biāo)量形式表示水平分量。
士兵格斗水準(zhǔn)的評(píng)判涉及擊打部位、力量和方向三個(gè)要素的特征提取。綜合考慮以上因素,本文提取加速度水平分量,以差分合成加速度作為新特征。在擊打預(yù)測方面,分析一對(duì)一策略的支持向量機(jī)的多分類方法對(duì)擊打事件的判斷準(zhǔn)確度;并利用支持向量機(jī)概率模型,在相對(duì)競爭權(quán)重的投票策略基礎(chǔ)上,使用一種新的樣本距離計(jì)算方法,來獲得樣本對(duì)于類別隸屬程度的一個(gè)較好的描述。最后利用交叉驗(yàn)證對(duì)模型的核函數(shù)和超參進(jìn)行優(yōu)化。
為了采集拳擊數(shù)據(jù),設(shè)計(jì)的人形靶模型如圖1所示。圖中標(biāo)號(hào)1~9的位置配備了9個(gè)ST公司的三軸加速度計(jì)LIS3DH,分別設(shè)置在頭部、胸部等關(guān)鍵部位。人形靶的內(nèi)部安放有一塊以ARM Cortex為核心的主控板,通過I2C接口獲取傳感器的三維加速度數(shù)據(jù),通過UDP協(xié)議將數(shù)據(jù)包發(fā)送給PC。作為上位機(jī)的PC完成數(shù)據(jù)處理。數(shù)據(jù)處理包含數(shù)據(jù)濾波、特征提取、模型訓(xùn)練、驗(yàn)證、預(yù)測等過程。平臺(tái)以開源庫LibSVM[12]為基礎(chǔ),封裝支持向量機(jī)多分類器。
圖1 加速度傳感器布置示意圖
2.1.1特征提取
為了對(duì)格斗訓(xùn)練的拳擊部位、力量等指標(biāo)進(jìn)行有效評(píng)估,需要從原始特征中提取出更具表達(dá)能力的新特征。加速度傳感器的三維加速度數(shù)據(jù)由x、y、z三個(gè)方向上的數(shù)值構(gòu)成:
(1)
傳感器測量的數(shù)據(jù)表示系統(tǒng)整體受力情況。式(1)的數(shù)值無法直接表示受擊打力的情況,可以用加速度差分來表示,即:
Δa={ax(t1)-ax(t0),ay(t1)-ay(t0),az(t1)-az(t0)}
(2)
格斗訓(xùn)練的擊打多以水平出擊為主,力的垂直分量會(huì)對(duì)評(píng)判結(jié)果產(chǎn)生干擾,需要去除這部分分量。通過系統(tǒng)靜止?fàn)顟B(tài)下采集到的加速度數(shù)據(jù),記錄為傳感器重力讀數(shù),作為垂直方向的加速度向量標(biāo)定,用公式(3)表示。由(4)式求加速度Δa在重力向量g下的水平分量Δah。
(3)
(4)
水平分量ah仍然只是一個(gè)三維加速度向量,不能用以描述擊打力量。合成加速度方法不僅可以作為描述力量大小的特征,且對(duì)擊打測試中不同維度數(shù)據(jù)隨機(jī)產(chǎn)生的噪聲也有很好的抑制效果:
(5)
綜上,作為每個(gè)傳感器的特征數(shù)據(jù)包含一個(gè)水平分量化的加速度差分向量Δah和一個(gè)合成加速度標(biāo)量aC。
2.1.2數(shù)據(jù)濾波
擊打會(huì)使加速度傳感器產(chǎn)生的抖動(dòng)以數(shù)據(jù)噪聲的形式表現(xiàn)出來。圖2顯示了一次擊打過程的波形圖,其中橫軸代表時(shí)間,縱軸代表加速度,其單位和重力加速度g在數(shù)值上比例約為1 600:1。在波峰中,z軸分量產(chǎn)生一個(gè)波形毛刺,會(huì)對(duì)峰值檢測產(chǎn)生干擾,文中使用窗口大小為5的高斯濾波對(duì)數(shù)據(jù)進(jìn)行濾波處理。
圖2 未處理的加速度波形
圖3為高斯濾波后加速度波形的示意圖。可以看出,處理后的波形比較平滑,便于進(jìn)行峰值檢測及特征提取。
圖3 經(jīng)過高斯濾波的加速度波形
2.1.3基于時(shí)間段的采樣策略
傳感器檢測到的擊打會(huì)在波形上會(huì)產(chǎn)生一個(gè)較高的波峰(或波谷),因此將峰值時(shí)刻的數(shù)據(jù)作為樣本。為了處理不同傳感器對(duì)擊打的響應(yīng)存在時(shí)間差,使用基于時(shí)間段的采樣策略:設(shè)置一個(gè)時(shí)間區(qū)域,以第一個(gè)峰值到達(dá)時(shí)間為起點(diǎn),在這個(gè)時(shí)間區(qū)域內(nèi)監(jiān)控每一幀數(shù)據(jù),判斷其他傳感器是否檢測到新的峰值,將符合要求的值放入同一樣本中。對(duì)于未檢測到峰值的傳感器,取時(shí)間段內(nèi)最大沖擊值。對(duì)于一個(gè)N幀長的時(shí)間段,新樣本計(jì)算方法如下:
(6)
式中,ai(t)表示t時(shí)間上樣本的第i個(gè)數(shù)據(jù),而aC(t)表示t時(shí)間上樣本的合成加速度,tpeak表示峰值時(shí)刻。對(duì)于沒檢測到峰值的情況,需要取最大沖擊值的樣本,這里用合成加速度aC(t)來描述沖擊值,即所選擇的tm時(shí)刻的樣本具有時(shí)間段內(nèi)最大的aC(t)值。經(jīng)反復(fù)實(shí)驗(yàn)測試,120 ms的時(shí)間段對(duì)于絕大部分擊打效果較好。
為了清晰地解析訓(xùn)練過程運(yùn)行規(guī)律,采用有限狀態(tài)機(jī)進(jìn)行狀態(tài)分析及擊打檢測。整個(gè)過程分為以下三個(gè)狀態(tài):
狀態(tài)1:穩(wěn)定狀態(tài)。設(shè)備處于靜止?fàn)顟B(tài)下,三個(gè)維度的加速度基本保持不變。
狀態(tài)2:擊打狀態(tài)。當(dāng)一個(gè)沖擊產(chǎn)生,使相鄰兩幀之間讀數(shù)差大于一定值時(shí),則可判定為受到擊打。這個(gè)狀態(tài)會(huì)持續(xù)一定時(shí)間,直到到達(dá)波峰,同時(shí)產(chǎn)生一個(gè)峰值事件。
狀態(tài)3:恢復(fù)狀態(tài)。擊打狀態(tài)結(jié)束后,波形振幅小于先前波峰幅值并且逐漸減小,持續(xù)一段時(shí)間后,如果其變化小于一定程度,則恢復(fù)到穩(wěn)定狀態(tài)。
圖4 擊打事件的狀態(tài)分析
圖4表示一個(gè)擊打過程,編號(hào)1~3分別對(duì)應(yīng)擊打過程3個(gè)狀態(tài)時(shí)間軸的范圍,三種狀態(tài)按順序切換,完成一次循環(huán)。為了識(shí)別每一個(gè)擊打波峰,采用峰值檢測法。在擊打狀態(tài)中,由于沖擊的到來已經(jīng)產(chǎn)生波形的波動(dòng),這個(gè)波動(dòng)具有一定方向,峰值出現(xiàn)需要滿足的條件是波動(dòng)方向改變。在檢測到擊打的那一刻,記錄下相鄰兩幀的合成加速度aC(t0)和aC(t1),如果存在之后的某一幀合成加速度aC(tn)滿足條件:
(aC(tn)-aC(tn-1))*(aC(t1)-aC(t0))<0
(7)
表示當(dāng)前波動(dòng)方向相對(duì)于初始波動(dòng)方向相反,即判定t(n-1)為波峰時(shí)刻。
在圖4中顯示了鄰近的兩個(gè)傳感器對(duì)同一次擊打的判定??梢姰?dāng)擊打到來時(shí),波形在穩(wěn)定狀態(tài)結(jié)束的后一幀即檢測到擊打,以頂端一長垂線段表示;在下一幀,該擊打達(dá)到波形峰值,以頂端一短垂線段表示。
對(duì)擊打部位預(yù)測是系統(tǒng)主要功能。在一對(duì)一策略的支持向量機(jī)多分類方法中,m類分類問題被轉(zhuǎn)化為m(m-1)/2個(gè)二元分類問題。每個(gè)二元分類器需解決如下等價(jià)的最優(yōu)化問題:
(8)
其中i、j分別表示構(gòu)成每個(gè)二元分類器的兩類別序號(hào);C是懲罰因子,決定對(duì)離群點(diǎn)損失的重視程度;φ(xt)表示所選用的核函數(shù),由于樣本數(shù)據(jù)維度不高,線性核可能不易對(duì)樣本進(jìn)行有效分類,因此采用高斯核,如式(9)所示,它屬于徑向基核函數(shù)的一種。
(9)
式(9)中除變量x外的系數(shù)被提取出以單一參數(shù)γ表示,代表核函數(shù)的徑向作用范圍,提取后的核函數(shù)如(10)式表示。γ和懲罰因子C共同組成影響模型分類效果的超參。
(10)
本平臺(tái)共使用9個(gè)傳感器,每個(gè)傳感器設(shè)置為一個(gè)類別,組成36個(gè)二元分類器。對(duì)于每個(gè)具有類別標(biāo)簽y的樣本,其訓(xùn)練過程涉及所有包含類別y和y′的二元分類器,其中y≠y′,樣本向量如式(11)所示:
(11)
對(duì)于二元分類器,使用支持向量機(jī)概率輸出代替類別標(biāo)簽輸出:
(12)
其中,Cij是區(qū)分第i和第j類的分類器,產(chǎn)生一個(gè)介于0和1之間的值表示樣本對(duì)類別i的隸屬程度預(yù)測,同時(shí),對(duì)類別j隸屬程度為pji=1-pij。
上述過程完成后,需要在計(jì)算不同二元分類器的競爭權(quán)重:計(jì)算樣本到各類別距離,來修正隸屬程度。使用新的樣本距離計(jì)算方法。在這里,首先定義樣本中各類別的分量,令TN={a1N,a2N,…,a4N}表示待測樣本,TiS={ai1S,ai2S,…,ai4S}i∈[1,k]表示類別i的訓(xùn)練樣本。TN與TiS之間距離公式如下:
(13)
其中
bias=a4N/ai4S
(14)
式(13)中新的距離計(jì)算方式,通過選取兩樣本中合成加速度作為各類別尺度大小的表示,使用尺度比值對(duì)另一樣本進(jìn)行同一化,可以得到兩樣本向量在模擬相同合成加速度的情況下的距離,消除了待測樣本與訓(xùn)練樣本的不確定偏差。相同尺度下的距離,表示了樣本間各類別方向的差異性,同時(shí)該距離結(jié)果保留了待測樣本的尺度,可以進(jìn)一步表示樣本間各類別尺度的差異性。接著計(jì)算待測樣本與各類別訓(xùn)練樣本中k近鄰的平均距離:
(15)
最后,得到更新后的競爭權(quán)重值:
(16)
預(yù)測階段,一個(gè)不包含類別標(biāo)簽的新樣本被帶入每個(gè)二元分類器進(jìn)行運(yùn)算。維護(hù)一個(gè)各類別競爭計(jì)數(shù)數(shù)列Vi(1≤i≤9),其對(duì)對(duì)應(yīng)的競爭權(quán)重值wij進(jìn)行累計(jì)累加,最終選取累加值最高的為結(jié)果類別,判定依據(jù)為:
(17)
在對(duì)系統(tǒng)多分類模型進(jìn)行訓(xùn)練時(shí),對(duì)每個(gè)傳感器各進(jìn)行100次擊打模擬,9個(gè)類別一共900組樣本。
另外,核函數(shù)的選擇及相關(guān)超參的設(shè)置對(duì)SVM分類的結(jié)果有所影響。為了驗(yàn)證不同核函數(shù)和超參的效果,采取LOO Cross Validation的驗(yàn)證方法,使用先前用于訓(xùn)練的樣本,每條樣本單獨(dú)作為驗(yàn)證集,其余樣本作為訓(xùn)練集,重復(fù)該步驟直到每條樣本都已驗(yàn)證。
表1中給出的是不同核函數(shù)及使其取得最高準(zhǔn)確率的超參。線性核函數(shù)與徑向基核函數(shù)驗(yàn)證結(jié)果相近,而后者優(yōu)勢(shì)較大,其對(duì)低維樣本能實(shí)現(xiàn)更好的分類結(jié)果,所以本文選擇徑向基核函數(shù)。
表1 不同核函數(shù)準(zhǔn)確率的驗(yàn)證結(jié)果
核函數(shù)和超參的優(yōu)化后,對(duì)平臺(tái)的9個(gè)傳感器擊打部位進(jìn)行預(yù)測,得到表2所示的混淆矩陣。表中每一列代表預(yù)測類別,每一行代表了樣本數(shù)據(jù)的期望類別,對(duì)每類進(jìn)行100次測試,預(yù)測結(jié)果列于相應(yīng)行中。
表2 一對(duì)一策略SVM多分類器預(yù)測的混淆矩陣
文獻(xiàn)[12]中指出LibSVM同樣使用一對(duì)一策略進(jìn)行多分類,為了進(jìn)一步驗(yàn)證算法的性能,使用LibSVM已封裝的多分類模型進(jìn)行對(duì)照。將同一組樣本集帶入LibSVM的多分類模型中,算出的混淆矩陣如表3所示,可以看到LibSVM預(yù)測準(zhǔn)確率為87.9%,本文提出的多分類封裝準(zhǔn)確率為93.1%,另外,不使用新的距離計(jì)算方式的權(quán)重投票多分類預(yù)測準(zhǔn)確率為92.5%。
在運(yùn)行時(shí)間方面,通過增加樣本規(guī)模進(jìn)行測試得出,1 000組以內(nèi)的樣本所需要的訓(xùn)練時(shí)間均小于800 ms。另外,對(duì)一次擊打的預(yù)測時(shí)間不超過600 ms。
表3 LibSVM多分類器預(yù)測的混淆矩陣
本文以基于時(shí)間段的加速度值特征構(gòu)成樣本,采用一對(duì)一策略的支持向量機(jī)多分類模型,實(shí)現(xiàn)高效率的擊打方位預(yù)測。通過算法驗(yàn)證可以看出,本文使用一對(duì)一多分類,基于權(quán)重投票預(yù)測策略及新的距離計(jì)算方式,表現(xiàn)出相對(duì)LibSVM封裝更高的預(yù)測準(zhǔn)確率。最后通過交叉驗(yàn)證對(duì)核函數(shù)和超參進(jìn)行優(yōu)化,得到一個(gè)較為可觀的模型。