吳 茵 王柏利
河南理工大學體育學院,河南 焦作 454000
太極拳作為我國一項民族傳統體育項目,具有獨特的運動形式,在大眾健身方面有著廣泛的參與度。目前,傳統的太極拳教學實踐中,太極拳動作的識別大都以教師的主觀判斷為主,缺乏客觀的評價標準,且因人而異。
伴隨著現代信息技術快速發展,機器學習是人工智能中最具智能特征,最前沿的研究領域之一,能夠模擬人類的思維方式,經過訓練的學習模型后擁有人類的認知,自動快速做出判斷和預測,[1]機器學習在圖像圖片識別、語音信號識別、手勢識別等領域逐漸推廣,成為廣大學者關注的熱點。王鳳芹等[2]將機器學習應用于飛行領域,設計了基于特征參數CART 決策樹的飛行動作識別算法,并給出了該動作識別算法的Python 語言實現。
侯賢沐等[3]利用KNN 和SVM 的機器學習算法,篩選出適用于碳酸鹽巖油藏的測井孔隙度與滲透率預測方法。武玉多等[4]對傳統機器學習在心臟超聲領域傳統的應用現狀及發展方向進行闡述。胡璇等[5]針對風力機齒輪箱振動信號非線性和非平穩性的特征,提出基于模糊熵和灰狼算法優化的支持向量機的故障診斷方法,達到較高的識別率。丁雪[6]分析了6 種人體姿態的分類識別,特征的提取采用Adaboost 自適應的方法。Liu 等[7]將SVM 應用于辦公室物體和博物館雕塑的識別,并證明了其優于基于圖像、基于場景和其他基于視頻的物體識別。
目前,在太極拳教學中,已經有了一些現代化信息研究。張振[8]借助VR 設備以情境代入學習方式達到多方位視覺觀察和獲得沉浸式學習體驗,但僅限于學者興趣體驗方面的研究。文獻[9]采用慣性運動捕捉系統采集人體運動姿態數據,并與標準姿態進行對比,根據相似度進行評分。于濤等[10]采集人體動作的軀干數據和手部數據進行動作識別,其缺點是采用非同時的手勢和軀干部位數據進行合并,會造成同步誤差。由此可見,人工智能和機器學習的快速發展為太極拳的動作識別提供了技術支持。本研究提出一種利用SVM 機器的學習算法,對太極拳動作姿態進行識別。通過提取12 種關鍵動作創建樣本集,再經過去噪、歸一化、特征提取、訓練和預測完成太極拳的姿態識別。
太極拳動作分類識別分為6 個過程(見圖1),首先創建太極拳動作數據集,我們依次選取太極拳老架一路的前五式起式、金剛搗碓、懶扎衣、六封四閉和單鞭中的12 種關鍵動作,分別采集照片,每種動作采集圖片105~120 張,共計1336 幅圖片,然后給每幅加上標簽,標簽為['1','2','3','4','5','6','7','8','9','10','11','12'],并按照8:2 的比例劃分為訓練集合和測試集。樣本集創建后,進行數據預處理,把圖片轉換成相同的分辨率,輸出為歸一化的矩陣形式,此時數據集的圖片統一分辨率為120×150,轉成灰度圖像,取值范圍在[0-255],(見圖2)。為了降低圖片中的冗余特征及提高SVM的處理速度,對數據預處理后的數據進行了PCA 降維,降維后的特征數量為100。為了能夠獲得優異的分類模型,采用分類交叉驗證的方式對樣本集進行分割訓練,得到最好分類器的核函數及相關具體參數。確定SVM模型參數后,用訓練集對其訓練之后,通過SVM 在測試集上預測結果。最后通過混淆矩陣和準確率表格完成可視化輸出。

圖1 太極拳動作分類識別流程

圖2 數據預處理后數據集圖片顯示
太極拳動作進行SVM 分類識別首先需要進行樣本集創建。為了能夠體現數據集的完整性,對15 名不同水平太極拳參與者進行采樣,選用太極拳老架一路的前五式的12 種動作姿態,其中起式中選取2 種,金剛搗碓3 種,懶扎衣3 種,六封四閉2 種和單鞭2 種,作為太極拳動作的采集樣本集。
Torchvision 類導入數據集格式的12 種太極拳動作樣本格式不統一,需要進行格式轉化,采用PIL 中的Image 類將樣本集圖片轉化為120*150 的分辨率,再進一步轉換成矩陣的形式,并為每張圖片加上標簽,標簽為['1','2',…,'12']。用Matplotlib 類顯示隨機輸入轉化后的圖片(見圖2)。再利用Sklearn 的庫函數完成訓練集和測試集的分割,分割的比例為8:2。
實際采集的圖片經過圖片預處理后,像素變為120×150,特征值為18000。對于用模型訓練的其他數據集(比如預測房價、人臉識別等)都會有較多的特征。這些特征都參與機器學習模型的訓練和測試。將會導致學習模型運算時長和過擬合現象的出現。為此,太極拳動作數據集選用主成分分析(Principal Components Analysis,PCA)選出對分類識別貢獻最大的特征,從18000 個特征種選擇100 個主要特征,這些特征盡可能包括了原來圖片的特征。實驗結果表明,降維后的圖片集分類識別率高于降維前的精確率3.5%,同時,訓練時間縮短了0.012 秒。
SVM 用來提升維度的核函數主要包含有線性核、高斯核和多項式核函數。對于不同的樣本集,不同的核函數會導致不同的識別效果。K-交叉驗證隨機打亂數據集,并分組成多個部分(K),其中,每一個部分都要當成測試集,而剩下的K -1 份將會用作訓練集,這樣依次循環,就可以找到最佳的分類識別模型。K-交叉驗證最大的優點是盡量避免SVM 模型的欠擬合和過擬合現象發生。因此,對于太極拳動作數據集合,采用K-交叉驗證的方法,從線性核、高斯核和多項式核中選出分類識別最佳的核函數,找到最優的參數組合。仿真實驗中最佳分類器的參數為:高斯核,參數C(懲罰系數)為10,gamma=0.005。
太極拳的12 種動作姿態訓練集總共有1068 張圖片,測試集的數量為268 張圖片。太極拳動作測試集的SVM 模型預測混淆矩陣(見圖3)。分析混淆矩陣可知,SVM 的分類錯誤出現比較少,主要集中在動作8 和動作10,有較大的相似度,并且由于采集的圖片中較大部分背景相同,可以通過對圖片裁剪掉多余的背景和增加樣本集的方法增加準確度。

圖3 太極拳動作測試集SVM 預測的混淆矩陣
為了探索基于太極拳動作數據集的機器學習算法性能優劣,在具有相同的太極拳數據樣本空間下,比較了SVM、KNN 及決策樹算法的性能(見表1),三種算法的精確度指標中,SVM 的分類效果領先決策樹和KNN 的精確度為17%,此外,訓練用時和測試用時相差不大。

表1 SVM、KNN 及決策樹算法分類效果
提出了自采太極拳動作作為樣本集的SVM 分類識別算法,對于太極拳老架一路套路的12 種關鍵動作,通過圖片格式轉換和添加標簽完成數據預處理,PCA降維可以在不損失主要特征的條件下提升訓練速度,交叉驗證選取最優化的SVM 核函數及相關參數。預測后結果通過混淆矩陣和分類評估報告進行可視化展示。實驗證明,SVM 預測模型遠高于KNN 和決策樹方法,該方案對硬件設備的要求較低、處理速度快,并且所需的樣本數少、訓練時間短,識別效果優異,有效改善了太極拳動作識別的效率,能夠為太極拳遠程教學和指導提供支持,提升太極拳教學科研的信息化水平。