陳澤嘉,曾培峰
(東華大學 計算機科學與技術學院,上海 201620)
隨著人工智能技術的不斷發展,軍隊和警察訓練通常用“導控無人化”取代傳統的完全基于人工的訓練模式。在士兵拳擊訓練中,擊打對象通常是人形靶,為了檢測士兵訓練指標,需要在人形靶配置多個相關傳感器,以全方位采集訓練數據,并根據這些數據自動完成士兵格斗水準的評判。
士兵格斗水準評判包括數據提取和預測,涉及行為識別領域。SONG S K[1]在低頻的設備環境下,以秒為單位分隔樣本的時間序列,結合傳感器數據相鄰時間間隔的特征進行SVM訓練,以樣本重用彌補設備性能,然而數據維度高,容易產生無用的干擾數據影響預測結果。BAO N[2]提出階段化的波形分析方法,對不同運動事件做出特征分析,其后兩個階段包含對一次振動余波的判斷,下一步觀測需要等待設備穩定后進行,不太適合數據采集頻率較高的場合。文獻[3]提出的支持向量機多分類方法,基于新特征的運動識別,結合時域、頻域特征,對一個時間段內的樣本的特征進行綜合。利用交叉驗證對核函數進行,選取得到了優于BP網絡的時間性能。DOUKAS C[4]等人從三軸加速度計收集數據,保留了三個維度的加速度值并加入加速度信號幅值特征,同時通過驗證對核函數和懲罰因子進行選擇,其SVM模型在徑向基核函數下達到最佳分類效果。
簡單投票策略是支持向量機一對一分類模式常用的預測方法,而其缺陷在于不同二元分類器之間的競爭性關系弱,許多研究對此進行改進,如文獻[5]提出的改進的投票策略通過計算新樣本到各類別k近鄰平均距離及中心距離,得到不同類別的競爭權重,其只是簡單計算樣本間的歐氏距離。而本平臺中拳擊力量不固定,樣本值尺度跨度大,新樣本和訓練集各類樣本的距離值很大程度相關于擊打力量,會影響分類判別準確性。同時,投票過程以概率預測[6]代替類別標簽的預測,可以更精確描述待測樣本對某一類別的隸屬程度。
文獻[7]和[8]通過合成加速度的計算,消除各維度加速度分量的隨機性問題和誤差,獲得穩定的數據樣本。文獻[9]和[10]使用有限狀態機,對活動的過程進行模擬,提出以加速度差分表示加速度的變化,設置轉移閾值以控制狀態轉移。文獻[11]利用重力分解出加速度向量在水平和垂直方向上的分量,以垂直加速度向量描述設備的上下振動,以合成加速度的標量形式表示水平分量。
士兵格斗水準的評判涉及擊打部位、力量和方向三個要素的特征提取。綜合考慮以上因素,本文提取加速度水平分量,以差分合成加速度作為新特征。在擊打預測方面,分析一對一策略的支持向量機的多分類方法對擊打事件的判斷準確度;并利用支持向量機概率模型,在相對競爭權重的投票策略基礎上,使用一種新的樣本距離計算方法,來獲得樣本對于類別隸屬程度的一個較好的描述。最后利用交叉驗證對模型的核函數和超參進行優化。
為了采集拳擊數據,設計的人形靶模型如圖1所示。圖中標號1~9的位置配備了9個ST公司的三軸加速度計LIS3DH,分別設置在頭部、胸部等關鍵部位。人形靶的內部安放有一塊以ARM Cortex為核心的主控板,通過I2C接口獲取傳感器的三維加速度數據,通過UDP協議將數據包發送給PC。作為上位機的PC完成數據處理。數據處理包含數據濾波、特征提取、模型訓練、驗證、預測等過程。平臺以開源庫LibSVM[12]為基礎,封裝支持向量機多分類器。

圖1 加速度傳感器布置示意圖
2.1.1特征提取
為了對格斗訓練的拳擊部位、力量等指標進行有效評估,需要從原始特征中提取出更具表達能力的新特征。加速度傳感器的三維加速度數據由x、y、z三個方向上的數值構成:

(1)
傳感器測量的數據表示系統整體受力情況。式(1)的數值無法直接表示受擊打力的情況,可以用加速度差分來表示,即:
Δa={ax(t1)-ax(t0),ay(t1)-ay(t0),az(t1)-az(t0)}
(2)
格斗訓練的擊打多以水平出擊為主,力的垂直分量會對評判結果產生干擾,需要去除這部分分量。通過系統靜止狀態下采集到的加速度數據,記錄為傳感器重力讀數,作為垂直方向的加速度向量標定,用公式(3)表示。由(4)式求加速度Δa在重力向量g下的水平分量Δah。
(3)
(4)
水平分量ah仍然只是一個三維加速度向量,不能用以描述擊打力量。合成加速度方法不僅可以作為描述力量大小的特征,且對擊打測試中不同維度數據隨機產生的噪聲也有很好的抑制效果:
(5)
綜上,作為每個傳感器的特征數據包含一個水平分量化的加速度差分向量Δah和一個合成加速度標量aC。
2.1.2數據濾波
擊打會使加速度傳感器產生的抖動以數據噪聲的形式表現出來。圖2顯示了一次擊打過程的波形圖,其中橫軸代表時間,縱軸代表加速度,其單位和重力加速度g在數值上比例約為1 600:1。在波峰中,z軸分量產生一個波形毛刺,會對峰值檢測產生干擾,文中使用窗口大小為5的高斯濾波對數據進行濾波處理。

圖2 未處理的加速度波形
圖3為高斯濾波后加速度波形的示意圖。可以看出,處理后的波形比較平滑,便于進行峰值檢測及特征提取。

圖3 經過高斯濾波的加速度波形
2.1.3基于時間段的采樣策略
傳感器檢測到的擊打會在波形上會產生一個較高的波峰(或波谷),因此將峰值時刻的數據作為樣本。為了處理不同傳感器對擊打的響應存在時間差,使用基于時間段的采樣策略:設置一個時間區域,以第一個峰值到達時間為起點,在這個時間區域內監控每一幀數據,判斷其他傳感器是否檢測到新的峰值,將符合要求的值放入同一樣本中。對于未檢測到峰值的傳感器,取時間段內最大沖擊值。對于一個N幀長的時間段,新樣本計算方法如下:
(6)
式中,ai(t)表示t時間上樣本的第i個數據,而aC(t)表示t時間上樣本的合成加速度,tpeak表示峰值時刻。對于沒檢測到峰值的情況,需要取最大沖擊值的樣本,這里用合成加速度aC(t)來描述沖擊值,即所選擇的tm時刻的樣本具有時間段內最大的aC(t)值。經反復實驗測試,120 ms的時間段對于絕大部分擊打效果較好。
為了清晰地解析訓練過程運行規律,采用有限狀態機進行狀態分析及擊打檢測。整個過程分為以下三個狀態:
狀態1:穩定狀態。設備處于靜止狀態下,三個維度的加速度基本保持不變。
狀態2:擊打狀態。當一個沖擊產生,使相鄰兩幀之間讀數差大于一定值時,則可判定為受到擊打。這個狀態會持續一定時間,直到到達波峰,同時產生一個峰值事件。
狀態3:恢復狀態。擊打狀態結束后,波形振幅小于先前波峰幅值并且逐漸減小,持續一段時間后,如果其變化小于一定程度,則恢復到穩定狀態。

圖4 擊打事件的狀態分析
圖4表示一個擊打過程,編號1~3分別對應擊打過程3個狀態時間軸的范圍,三種狀態按順序切換,完成一次循環。為了識別每一個擊打波峰,采用峰值檢測法。在擊打狀態中,由于沖擊的到來已經產生波形的波動,這個波動具有一定方向,峰值出現需要滿足的條件是波動方向改變。在檢測到擊打的那一刻,記錄下相鄰兩幀的合成加速度aC(t0)和aC(t1),如果存在之后的某一幀合成加速度aC(tn)滿足條件:
(aC(tn)-aC(tn-1))*(aC(t1)-aC(t0))<0
(7)
表示當前波動方向相對于初始波動方向相反,即判定t(n-1)為波峰時刻。
在圖4中顯示了鄰近的兩個傳感器對同一次擊打的判定。可見當擊打到來時,波形在穩定狀態結束的后一幀即檢測到擊打,以頂端一長垂線段表示;在下一幀,該擊打達到波形峰值,以頂端一短垂線段表示。
對擊打部位預測是系統主要功能。在一對一策略的支持向量機多分類方法中,m類分類問題被轉化為m(m-1)/2個二元分類問題。每個二元分類器需解決如下等價的最優化問題:

(8)
其中i、j分別表示構成每個二元分類器的兩類別序號;C是懲罰因子,決定對離群點損失的重視程度;φ(xt)表示所選用的核函數,由于樣本數據維度不高,線性核可能不易對樣本進行有效分類,因此采用高斯核,如式(9)所示,它屬于徑向基核函數的一種。
(9)
式(9)中除變量x外的系數被提取出以單一參數γ表示,代表核函數的徑向作用范圍,提取后的核函數如(10)式表示。γ和懲罰因子C共同組成影響模型分類效果的超參。
(10)
本平臺共使用9個傳感器,每個傳感器設置為一個類別,組成36個二元分類器。對于每個具有類別標簽y的樣本,其訓練過程涉及所有包含類別y和y′的二元分類器,其中y≠y′,樣本向量如式(11)所示:
(11)
對于二元分類器,使用支持向量機概率輸出代替類別標簽輸出:

(12)
其中,Cij是區分第i和第j類的分類器,產生一個介于0和1之間的值表示樣本對類別i的隸屬程度預測,同時,對類別j隸屬程度為pji=1-pij。
上述過程完成后,需要在計算不同二元分類器的競爭權重:計算樣本到各類別距離,來修正隸屬程度。使用新的樣本距離計算方法。在這里,首先定義樣本中各類別的分量,令TN={a1N,a2N,…,a4N}表示待測樣本,TiS={ai1S,ai2S,…,ai4S}i∈[1,k]表示類別i的訓練樣本。TN與TiS之間距離公式如下:

(13)
其中
bias=a4N/ai4S
(14)
式(13)中新的距離計算方式,通過選取兩樣本中合成加速度作為各類別尺度大小的表示,使用尺度比值對另一樣本進行同一化,可以得到兩樣本向量在模擬相同合成加速度的情況下的距離,消除了待測樣本與訓練樣本的不確定偏差。相同尺度下的距離,表示了樣本間各類別方向的差異性,同時該距離結果保留了待測樣本的尺度,可以進一步表示樣本間各類別尺度的差異性。接著計算待測樣本與各類別訓練樣本中k近鄰的平均距離:
(15)
最后,得到更新后的競爭權重值:
(16)
預測階段,一個不包含類別標簽的新樣本被帶入每個二元分類器進行運算。維護一個各類別競爭計數數列Vi(1≤i≤9),其對對應的競爭權重值wij進行累計累加,最終選取累加值最高的為結果類別,判定依據為:
(17)
在對系統多分類模型進行訓練時,對每個傳感器各進行100次擊打模擬,9個類別一共900組樣本。
另外,核函數的選擇及相關超參的設置對SVM分類的結果有所影響。為了驗證不同核函數和超參的效果,采取LOO Cross Validation的驗證方法,使用先前用于訓練的樣本,每條樣本單獨作為驗證集,其余樣本作為訓練集,重復該步驟直到每條樣本都已驗證。
表1中給出的是不同核函數及使其取得最高準確率的超參。線性核函數與徑向基核函數驗證結果相近,而后者優勢較大,其對低維樣本能實現更好的分類結果,所以本文選擇徑向基核函數。

表1 不同核函數準確率的驗證結果
核函數和超參的優化后,對平臺的9個傳感器擊打部位進行預測,得到表2所示的混淆矩陣。表中每一列代表預測類別,每一行代表了樣本數據的期望類別,對每類進行100次測試,預測結果列于相應行中。

表2 一對一策略SVM多分類器預測的混淆矩陣
文獻[12]中指出LibSVM同樣使用一對一策略進行多分類,為了進一步驗證算法的性能,使用LibSVM已封裝的多分類模型進行對照。將同一組樣本集帶入LibSVM的多分類模型中,算出的混淆矩陣如表3所示,可以看到LibSVM預測準確率為87.9%,本文提出的多分類封裝準確率為93.1%,另外,不使用新的距離計算方式的權重投票多分類預測準確率為92.5%。
在運行時間方面,通過增加樣本規模進行測試得出,1 000組以內的樣本所需要的訓練時間均小于800 ms。另外,對一次擊打的預測時間不超過600 ms。

表3 LibSVM多分類器預測的混淆矩陣
本文以基于時間段的加速度值特征構成樣本,采用一對一策略的支持向量機多分類模型,實現高效率的擊打方位預測。通過算法驗證可以看出,本文使用一對一多分類,基于權重投票預測策略及新的距離計算方式,表現出相對LibSVM封裝更高的預測準確率。最后通過交叉驗證對核函數和超參進行優化,得到一個較為可觀的模型。