文 鵬,袁小艷,王一丹,王莉洪
(1.四川文理學院體育學院,四川達州 635000;2.四川文理學院智能制造學院,四川達州 635000;3.四川文理學院財經管理學院,四川達州 635000)
隨著人工智能發展第三次頂峰的到來,在深度學習與神經網絡上發展的計算機視覺技術成為了熱門的研究領域。基于計算機視覺的智慧體育訓練系統已經在運動員訓練[1]和指導初學者動作[2]方面得到應用,但在健身方面應用較少。傳統的健身需要到健身房等專業場所,在教練的指導下完成動作。此種方法效果雖好,但費用高昂、耗時較多,導致大量工作忙碌的人群無法投入到健身活動中去。隨著智能手機的普及,移動健身APP 投入使用,此類APP 有專業動作演示,可以讓人們隨時隨地進行健身。但此類APP 無法判斷健身者的動作是否標準,健身者在不知道自己動作是否標準的情況下進行鍛煉,難以達到高質量的健身效果,甚至可能因為動作錯誤造成肌肉損傷[3]。筆者針對此類情況設計出一種可以實時指導健身者動作的健身指導系統,可以讓健身愛好者利用碎片時間鍛煉的過程中得到較為專業的動作指導,同時節省去健身房的時間和請私教的費用。
當前人工智能技術在健身領域的研究已經取得較好的進展。動作特征的提取技術分為可穿戴設備[4]與視覺技術[5],但可穿戴設備因為價格與使用條件的限制,較難應用在現實場景中,而視覺技術無此限制,因此大多研究者使用視覺技術進行動作特征提取。對動作的識別方式主要有深度學習與機器學習,由于機器學習中的特征工程需要人工進行標記,需要消耗大量的人力,所以深度學習是目前使用較多的動作識別方式。
該系統首先收集大量的專業健身教練的動作,提取人體動作的骨骼系列信息,建立標準動作數據集;采用改良的3D-ResNet 神經網絡模型對健身者的動作進行識別,并與專業數據集內相應動作進行匹配;最后將健身者的動作與標準動作對比,反饋動作的糾正意見。
數據的來源為專業健身指導教練的動作演示視頻與圖片數據,并由筆者所在單位的健身指導老師對動作進行篩選,從而得到最為標準的動作數據。將篩選出的標準動作數據構建數據集,數據集包含10 種常見健身動作的100 張圖片以及20 個視頻。
骨骼序列的提取是對視頻或圖片數據中人體的各個關節點及其空間位置坐標進行獲取,該文使用開源計算機視覺庫OpenCV 來提取人體骨骼關節點。坐標位置提取方法采用以髖關節為中點的人體中心投影法,該方法可以消除視頻動作中人體整體位移和動作執行時間差異[6-7]。建立中心投影的矩陣方程表達式如式(1)所示:
OpenCV 是以在圖1(a)所示的坐標系為基礎提取人體關節點坐標,通過式(1)的矩陣變換后得到圖1(b)所示的髖關節中點坐標系。

圖1 人體骨架坐標
其中(xij,yij)與(uij,vij)為視頻第i幀中的第j個關節點的坐標,(w,h)為髖關節的坐標。將各個關節提取出來,構建標準動作骨架信息數據集如圖2 所示。

圖2 圖像骨架提取
卷積神經網絡CNN(Convolutional Neural Networks)是一種前饋神經網絡,CNN 模型主要由卷積層、池化層、全連接層組成,在圖像識別方面用十分廣泛[8]。基于CNN 模型將多層卷積與多層池化相結合的方式產生出了多種新的網絡模型,其中殘差神經網絡模型(Residual Neural Network Model,ResNet)[9]在CNN 的基礎上加入殘差模塊,即在參數傳遞過程中加入直連通道,使輸入數據傳遞到網絡輸出處,從而網絡只需要學習輸入和輸出有差別的部分,這將簡化學習的難度與模型的參數量,提高模型性能,殘差模塊如圖3 所示。

圖3 殘差模塊示意圖
CNN 模型的應用不僅僅是在圖像識別上,在目標跟蹤、姿態估計、視覺顯著性檢測、動作識別等任務中也表現出了出色的性能[10-15]。3D-CNN 在原有的2D 卷積的基礎上增加一個時間維度的3D 卷積,用來提取連續幀之間的關聯信息[16-17]。3D-CNN的模型架構如圖4所示,該架構包含一個hardwired 層、3個卷積層、2 個下采樣層以及一個全連接層。利用3D-CNN 模型可以更好地捕獲視頻內的運動信息,從而實現準確率更高的視頻分類與人體動作識別。3D 卷積神經網絡的數學表達式如式(2)所示:

圖4 3D-CNN模型架構
ResNet 模型雖然在處理圖像上有著強大的處理能力,但在處理視頻上卻能力有限。而3D-CNN 雖有較強視頻數據處理能力,但其參數量非常龐大,所需的數據量也非常大,這也導致模型容易過擬合[18]。于是提出了一種新的模型3D-ResNet[19],該模型采用一種全新的(2+1)D 結構,是建立在2D-ResNet基礎上的3D 卷積神經網絡,模型結構如圖5 所示,由4 個卷積層、3 個下采樣層、1 個平均池化層和1 個全連接層構成。該模型的參數量不僅比3D-CNN模型的參數量少而且準確率還有所提升。該文采用3D-ResNet模型對視頻人體動作進行識別并分類。

圖5 3D-ResNet模型結構
健身動作是將一個簡單的動作進行重復練習來達到鍛煉的效果。一個健身動作往往是有針對性的鍛煉一塊或者幾塊目標肌肉,所以健身動作對比時,可以重點關注該動作鍛煉的部位與肌肉,如此就減少了對比的數據量,提升了實時反饋的速度。通過鍛煉來增長肌肉的生理學原理為肌肉中的橫橋細胞牽引肌絲纖維運動使得肌肉收縮[20],肌肉收縮程度可以通過骨骼關節的角度大小來進行判斷。角度過小,肌肉的收縮程度不夠,不能達到鍛煉的效果;角度過大,肌肉的收縮程度過大,可能導致肌肉出現拉傷。合適的關節角度方可達到最佳的鍛煉效果。
通過OpenCV 可以準確得到各個關節點的位置信息與坐標ID,通過余弦定理即可計算出關節角度如式(3)所示:
其中,θi是ID 為i的關節角度,lij為i到j關節的坐標點距離。由于人體動作較難用一個數值來規范,因此在計算出關節角度后需設置誤差區間,誤差區間的上下限為標準數據集中動作關節角度的最值。將獲取到的人體動作關節角度與專業動作的進行對比,根據誤差區間反饋動作糾正意見。糾正意見的組成為“關節部位+調整動作”,調整動作分為“down”、“up”、“save”三個指示。
為了收集足夠的數據訓練模型,筆者從網絡視頻、專業動作與非專業動作等三個渠道獲取到常見的10 個與標準數據集相同的健身動作,其中視頻數據701 個,總時長175.25 min,并將其命名為Fitness10-ST,如表1 所示。網絡視頻主要來源于Bilibili、抖音,專業動作由體育學院社會體育指導與管理專業學生在專業老師指導下拍攝,非專業動作由隨機選取的非體育專業學生在沒有任何指導的條件下拍攝。

表1 Fitness10-ST數據集
HMDB51 數據集是一個非常經典的用于判斷視頻分類模型準確率的數據集,其數據來源為電影、YouTube、Google videos 等網絡資源。數據集包含51 個類別動作、6 766 個短視頻,每個類別至少包含101 個視頻,每個標注至少有兩個人工驗證,以確保一致性[21]。
1)數據預處理:將每個視頻切分為30 幀,將切分后的圖片集與對應的label 劃分成60%的訓練集、20%的驗證集和20%的測試集。
2)自定義數據加載器:Batch-size 的值表示一次訓練抓取數據樣本的數量,該值將影響模型的優化與訓練速度。
3)訓練模型:模型的優異程度離不開對超參數的調節。優化器的選擇、學習率(Learning Rate)的初始化[22-24]與更新、epoch 次數等超參數決定了模型優異程度。該文模型的超參數值如表2 所示。

表2 模型超參數值
3D-ResNet 對自定義數據集Fitness10-ST 的識別準確率epoch 次數為68 時達到最佳值92.59%,如圖6(a)所示。同時將模型在HMDB51 數據集上進行測試,準確率也達到了90.28%,如圖6(b)所示。

圖6 數據集上模型準確率
將該模型在Fitness10-ST 數據集上進行實驗,得到數據集內10 個健身動作各自的準確率。其中直立劃船和站姿杠鈴彎舉動作的識別準確率達到了100%,除肩上推舉動作外其余動作的識別率都在90%以上,如表3 所示。通過分析發現,肩上推舉動作的特征行為是肘關節在頭部上方進行手臂彎曲,該動作與引體向上為類似運動,所以導致肩上推舉動作識別率偏低,將部分動作識別為引體向上。

表3 Fitness10-ST 數據集上各動作識別的準確率(%)
通過3D-ResNet 模型將健身者正在進行的運動項目返回給后臺的標準數據集,并通過OpenCV 實時讀取健身者骨骼信息與標準動作骨骼信息進行對比。通過計算健身者的重點關節角度,相對身體位置來判斷動作是否標準,給予健身者實時的動作糾正指導信息如圖7 所示。

圖7 動作糾正意見
該文為幫助健身愛好者利用在碎片時間進行鍛煉時可以得到較為專業的動作指導而提出了一種基于計算機視覺的健身指導系統。首先是構建了標準動作數據集,其目的是將識別出的動作與之作對比再將差異之處反饋給使用者。其次介紹了殘差神經網絡模型與3D 卷積神經網絡模型,分析了這兩種模型在視頻分類任務上的利弊,并在此基礎上引進了更為優秀的3D-ResNet 模型。該模型在自建數據集與公開數據集上都取得了較為優異的識別效果。然后介紹了動作對比的原則與方法,完成了從動作識別到動作對比再到反饋動作糾正意見的整個過程。該系統的設計,為幫助人們健身、提升健身運動的普及性、迎合AI+體育趨勢的發展等方面都有較好的現實意義。在下一步研究中,將不斷改進與優化系統,并創建評分機制,使該系統部署在移動手機、家用電視等終端上,讓人們可以在家即可進行健身運動。