何磊,趙柏山,周凱
(沈陽工業大學信息科學與工程學院,沈陽 110870)
近年來體育運動可穿戴設備發展迅速,體育項目中的人體運動狀態識別成為研究熱點之一。通過佩戴在運動員身上的微傳感器,收集運動時的人體不同節點慣性信息,如加速度、角速度等,再結合運動項目特征,使用合理的算法辨識技術動作[1],可在輔助運動員訓練的同時,還能評估運動員的表現。目前國內外研究面向不同體育運動及識別方法展開研究并取得了豐富的成果。張學鋒等人使用集成學習分類器對乒乓球揮拍動作進行辨識,平均識別準確率為94.5%[2],但特征篩選需要專業背景知識。雷玉超等建立了隱馬爾可夫模型,通過分析固定在羽毛球拍上的加速度信息,對常見的八種擊球動作辨識度到達了94%[3],但對一些非擊球動作存在誤判。郝振東等通過皮劃艇運動員佩戴加速度等傳感器,使用支持向量機來對皮劃艇動作進行技術分析,區分劃水相位[4],識別率可達94.5%,但信息為離線采集,無法實時分析。
針對上述研究中的問題,在此以散打運動的招式動作為實例,采用多傳感器數據融合的方式,利用卷積神經網絡(CNN)和長短期記憶網絡(LSTM)進行時序特征的提取,由慣性傳感器節點傳回的慣性數據進行建模,實現散打運動的實時識別。
數據采集平臺以慣性傳感器為基礎,面向散打運動動作捕捉系統,主要由一系列無線數據采集節點和一個無線收發主機組成,上位機軟件通過USB線纜與主機實時通信。動作捕捉系統如圖1所示。
各傳感節點佩戴在軀干、左臂、右臂等關鍵部位,如圖2所示。采集運動員在一段時間內做出左右勾拳、左右擺拳、左右直拳動作,共6種運動模式,傳感器以100Hz的采樣頻率采集x、y、z軸的數據,并實時傳輸到PC機進行保存、識別。

圖2 傳感器佩戴示意圖
2.2.1 小波去噪
使用小波去噪對原始數據進行去噪處理。小波變換是一種空間和頻率的局部變換,將信號分解為低頻信號(主要特征)和高頻信號(噪聲和干擾)[5-6]。小波濾波過程如圖3所示。

圖3 多尺度小波分解
對原始信號S進行分解,得到低頻信號A、高頻信號D。以同樣步驟可繼續對低頻信號進行多尺度細分分解得到要求效果。最終信號S可以表示為S=An+D1+D2+K+Dn。其中n表示分解層數。
2.2.2 數據標準化
數據標準化是為了限定數據的幅值范圍,便于不同單位或量級指標之間進行比較,能起到提升模型收斂速度和識別精度的作用。以下三式分別為x、y、z軸加速度數據的標準化表達式:

式中,下標“norm”表示相應坐標軸值已標準化;μ表示平均值;σ為方差。
傳感器時序序列首先要經過CNN處理,再接入LSTM層。CNN為輸入信號的不同分類器采用不同的特征學習方法,相當于消除異常值、清洗數據的過濾器[7],這樣便可以有效地實現對傳感器數據的特征提取。每個卷積層輸出為一組特征映射,對其結果加上偏差使用ReLU函數激活,如下式所示:

在本模型中,采用一維卷積核對傳感器的一維原始數據進行卷積運算[8],輸入數據連續接入兩個卷積層,卷積核尺寸大小為3,對卷積輸出的特征向量進行池化處理。
LSTM主要的作用是針對網絡隱藏層對其前向及后向傳播進行網絡計算,通過門控制信息避免梯度爆炸問題[9]。LSTM神經元內部結構如圖4所示。

圖4 LSTM神經元內部結構圖
LSTM神經元由細胞狀態和“門”機制(遺忘門it、輸入門ft、輸出門ot)組成。圖中ct表示細胞狀態,代表長期記憶,通過門結構在t上增加或刪除狀態信息,控制將修改后的狀態信息傳遞給下一時刻[10],各個LSTM單元激活情況由以下各式計算:

其中,Wx是輸入向量xt的連接權重矩陣;Wh是與短期狀態ht-1的連接權重;b為偏置項矩陣;σ表示sigmoid激活函數;σh表示為tanh激活函數。本文構建的模型中,CNN處理后的數據經過Dropout層后連接到有100個神經元的LSTM層。
本設計的CNN-LSTM模型內部結構如圖5所示。它包含輸入層、隱藏層、2個1D CNN層、1個LSTM層、Dropout層,此外還有池化層、全連接層和輸出層。各層詳情如下:

圖5 神經網絡結構示意圖
輸入層:經過預處理后的數據,以128個時間步長為子序列供CNN模型處理,輸入的是每個9軸慣性傳感器x、y、z軸的所有數據,特征個數是27。CNN輸入數據格式為[樣本數,時間步數,輸入特征個數],此處具體為[4296,128,27]。
第一層CNN層:對數據進行特征提取,其核心參數特征圖(filters)是對事物的描述次數,卷積核(kernel)大小則為每次處理的時間長度。
第二層CNN層:來自第一層CNN的結果將被饋送到第二CNN層,在第一層卷積的特征圖上執行相同的操作,繼續進行特征提取。
池化層:保持有效特征不變,減小數據大小、參數數量,以此達到降低計算量的目的。
LSTM層:對傳入的信息選擇性忘記,LSTM內部神經元數為100。分類任務無需每個時間步長都輸出,將最后一個步長的輸出作為全連接層的輸入。
Dropout層:每個批次的訓練隨機丟棄一些神經網絡層的輸入,避免過擬合,最后得到融合的模型預測平均概率[11]。
全連接層:神經元數量100,選擇Relu激活函數。
輸出層:采用softmax分類器,輸出為判斷六類散打動作的概率值。如下式:

式中:i為散打動作類別,yt、yi為散打動作的概率集合,選擇概率最大的類別作為輸出。
將9軸慣性傳感器x軸、y軸、z軸的全部數據作為散打動作的特征輸入到CNN-LSTM神經網絡中,將左右勾拳、左右擺拳、左右直拳6個散打類別作為輸出,以損失函數來估量預測值對真實值的偏差,選擇最小化損失函數,如下式:

實驗環境為Windows10系統,CPU型號為Intel Core i5-8500H,8GB內存。GPU為NVIDIA MX150圖形處理器。數據采集軟件基于Qt開發,算法基于TensorFlow后端的Keras框架實現,使用Pycharm集成開發環境。
首先對數據進行降噪和標準化處理,經過反復比對,最終選擇Coif5小波基函數對數據進行5層多尺度分解。x軸加速度數據小波去噪比對曲線如圖6所示。

圖6 傳感器x軸加速度去噪
標準化數據如圖7所示,可以看出處理后的數據保持了原有的特征,同時減小了幅度。

圖7 標準化數據與原始數據曲線對比
滑動窗口將數據分割成固定長度,加上標簽后成為一個樣本。根據散打運動的技法特點和傳感器采樣頻率,經對照實驗,最終選取窗口寬度為128,每64個樣本點滑動一次,即50%重疊率,如圖8所示。其中S代表滑動步長64。

圖8 滑動窗口對數據切片處理
經過數據處理和滑動窗口分割,最終得到樣本集如表1。使用80%數量用做訓練,20%用做測試。

表1 6種散打動作樣本數
為了減小隨機性,對模型驗證進行15次實驗后取平均值。對模型的超參選擇,通過對CNN-LSTM模型進行不同參數的對比分析,記錄測試數據和訓練數據的準確率和損失值,然后選出最佳參數。
4.2.1 窗口分割長度對模型性能的影響
根據散打運動的擊打節奏,選取了3種滑動窗口分割方法的分類識別結果進行對比,具體方法為:
①窗口長度為64個采樣點,相鄰窗口無重疊。
②窗口長度為128個采樣點,相鄰窗口無重疊。
③窗口長度為128個采樣點,相鄰窗口有50%的重疊數據。
采用上述三種窗口分割方法,后續進行相同的處理和參數配置,識別結果如圖9所示。

圖9 不同窗口分割方法識別結果對比
可以看出,由于64窗口長度由于無法包含完整的散打動作數據區間,識別率最低,而128窗長度無重疊時,對動作信息包含不全面,識別率低于重疊窗口分割方法。所以選取長度為128,相鄰窗口數據有50%重疊的分割窗口。
4.2.2 神經元參數對模型性能的影響
神經元參數直接影響神經網絡模型的精度,對比了filter分別為8、16、32、64、128時的模型準確率,結果如圖10所示。可以看出,filters=64時,分類精度最佳。此外隨著參數的增長,模型的訓練參數和訓練時間激增。綜合考慮識別率和訓練時間,選擇神經元的個數為64。

圖10 不同filters參數分類精度
Kernel的大小是神經網絡另一個的重要參數。使用相同的實驗設置并測試一組不同的kernels值:[2,3,5,7,11],進行訓練。最終的訓練結果如圖11所示。結果表明,當kernel大小為3時,擁有較好的性能和穩定性,故選擇kernel大小為3作為模型的kernel參數。

圖11 不同kernel大小分類精度
4.2.3 模型評估
在確定好模型的相關參數后(時間步長n=128,Dropout參數 為0.4,filters個數為64,kernel大小為3),進行訓練,得到訓練過程曲線如圖12所示。可以看出,隨著迭代不斷進行,模型識別準確率不斷提升,模型收斂快速;迭代第10次時趨于穩定,每次epoch的平均訓練時間為1.49s,對于測試集的識別時間為0.0056s,準確率達到98.5%。

圖12 模型訓練過程曲線
混淆矩陣是評價分類效果的可視化方法,它提供了模型總體分類率[13]。在方差范圍內,此處選取與平均值最接近的一次實驗結果繪制的混淆矩陣,如圖13所示,以此可觀察模型對不同類別的散打動作分類的準確性。圖中對角線中表示判斷正確的樣本數,可以看出模型對6類散打動作均能很好識別,但對左擺拳和左勾拳這兩個動作模式存在辨識錯誤,二者的錯誤分類主要是因為運動員做出了個別慣性信息相似性較高的動作,導致識別錯誤。

圖13 模型的混淆矩陣
研究面向散打運動,研制了一套散打動作捕捉系統,構建了一個用于驗證算法的散打上肢技法動作數據庫,設計了一種基于CNN神經網絡和LSTM循環神經網絡的散打技法識別方法,實驗結果獲得98.5%的準確率。在下一步工作中,將繼續研究基于慣性信息的散打運動技法的分析方法,用于幫助散打運動的輔助訓練和數據分析,最終目的是設計一套完善的散打運動輔助訓練系統,不但可以準確識別散打的技術動作、用于運動員訓練輔助還可評估運動表現和預防運動損傷,具備較好的應用前景。