文 鵬,袁小艷,王一丹,王莉洪
(1.四川文理學(xué)院體育學(xué)院,四川達(dá)州 635000;2.四川文理學(xué)院智能制造學(xué)院,四川達(dá)州 635000;3.四川文理學(xué)院財(cái)經(jīng)管理學(xué)院,四川達(dá)州 635000)
隨著人工智能發(fā)展第三次頂峰的到來(lái),在深度學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)上發(fā)展的計(jì)算機(jī)視覺(jué)技術(shù)成為了熱門的研究領(lǐng)域?;谟?jì)算機(jī)視覺(jué)的智慧體育訓(xùn)練系統(tǒng)已經(jīng)在運(yùn)動(dòng)員訓(xùn)練[1]和指導(dǎo)初學(xué)者動(dòng)作[2]方面得到應(yīng)用,但在健身方面應(yīng)用較少。傳統(tǒng)的健身需要到健身房等專業(yè)場(chǎng)所,在教練的指導(dǎo)下完成動(dòng)作。此種方法效果雖好,但費(fèi)用高昂、耗時(shí)較多,導(dǎo)致大量工作忙碌的人群無(wú)法投入到健身活動(dòng)中去。隨著智能手機(jī)的普及,移動(dòng)健身APP 投入使用,此類APP 有專業(yè)動(dòng)作演示,可以讓人們隨時(shí)隨地進(jìn)行健身。但此類APP 無(wú)法判斷健身者的動(dòng)作是否標(biāo)準(zhǔn),健身者在不知道自己動(dòng)作是否標(biāo)準(zhǔn)的情況下進(jìn)行鍛煉,難以達(dá)到高質(zhì)量的健身效果,甚至可能因?yàn)閯?dòng)作錯(cuò)誤造成肌肉損傷[3]。筆者針對(duì)此類情況設(shè)計(jì)出一種可以實(shí)時(shí)指導(dǎo)健身者動(dòng)作的健身指導(dǎo)系統(tǒng),可以讓健身愛好者利用碎片時(shí)間鍛煉的過(guò)程中得到較為專業(yè)的動(dòng)作指導(dǎo),同時(shí)節(jié)省去健身房的時(shí)間和請(qǐng)私教的費(fèi)用。
當(dāng)前人工智能技術(shù)在健身領(lǐng)域的研究已經(jīng)取得較好的進(jìn)展。動(dòng)作特征的提取技術(shù)分為可穿戴設(shè)備[4]與視覺(jué)技術(shù)[5],但可穿戴設(shè)備因?yàn)閮r(jià)格與使用條件的限制,較難應(yīng)用在現(xiàn)實(shí)場(chǎng)景中,而視覺(jué)技術(shù)無(wú)此限制,因此大多研究者使用視覺(jué)技術(shù)進(jìn)行動(dòng)作特征提取。對(duì)動(dòng)作的識(shí)別方式主要有深度學(xué)習(xí)與機(jī)器學(xué)習(xí),由于機(jī)器學(xué)習(xí)中的特征工程需要人工進(jìn)行標(biāo)記,需要消耗大量的人力,所以深度學(xué)習(xí)是目前使用較多的動(dòng)作識(shí)別方式。
該系統(tǒng)首先收集大量的專業(yè)健身教練的動(dòng)作,提取人體動(dòng)作的骨骼系列信息,建立標(biāo)準(zhǔn)動(dòng)作數(shù)據(jù)集;采用改良的3D-ResNet 神經(jīng)網(wǎng)絡(luò)模型對(duì)健身者的動(dòng)作進(jìn)行識(shí)別,并與專業(yè)數(shù)據(jù)集內(nèi)相應(yīng)動(dòng)作進(jìn)行匹配;最后將健身者的動(dòng)作與標(biāo)準(zhǔn)動(dòng)作對(duì)比,反饋動(dòng)作的糾正意見。
數(shù)據(jù)的來(lái)源為專業(yè)健身指導(dǎo)教練的動(dòng)作演示視頻與圖片數(shù)據(jù),并由筆者所在單位的健身指導(dǎo)老師對(duì)動(dòng)作進(jìn)行篩選,從而得到最為標(biāo)準(zhǔn)的動(dòng)作數(shù)據(jù)。將篩選出的標(biāo)準(zhǔn)動(dòng)作數(shù)據(jù)構(gòu)建數(shù)據(jù)集,數(shù)據(jù)集包含10 種常見健身動(dòng)作的100 張圖片以及20 個(gè)視頻。
骨骼序列的提取是對(duì)視頻或圖片數(shù)據(jù)中人體的各個(gè)關(guān)節(jié)點(diǎn)及其空間位置坐標(biāo)進(jìn)行獲取,該文使用開源計(jì)算機(jī)視覺(jué)庫(kù)OpenCV 來(lái)提取人體骨骼關(guān)節(jié)點(diǎn)。坐標(biāo)位置提取方法采用以髖關(guān)節(jié)為中點(diǎn)的人體中心投影法,該方法可以消除視頻動(dòng)作中人體整體位移和動(dòng)作執(zhí)行時(shí)間差異[6-7]。建立中心投影的矩陣方程表達(dá)式如式(1)所示:
OpenCV 是以在圖1(a)所示的坐標(biāo)系為基礎(chǔ)提取人體關(guān)節(jié)點(diǎn)坐標(biāo),通過(guò)式(1)的矩陣變換后得到圖1(b)所示的髖關(guān)節(jié)中點(diǎn)坐標(biāo)系。
圖1 人體骨架坐標(biāo)
其中(xij,yij)與(uij,vij)為視頻第i幀中的第j個(gè)關(guān)節(jié)點(diǎn)的坐標(biāo),(w,h)為髖關(guān)節(jié)的坐標(biāo)。將各個(gè)關(guān)節(jié)提取出來(lái),構(gòu)建標(biāo)準(zhǔn)動(dòng)作骨架信息數(shù)據(jù)集如圖2 所示。
圖2 圖像骨架提取
卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Networks)是一種前饋神經(jīng)網(wǎng)絡(luò),CNN 模型主要由卷積層、池化層、全連接層組成,在圖像識(shí)別方面用十分廣泛[8]?;贑NN 模型將多層卷積與多層池化相結(jié)合的方式產(chǎn)生出了多種新的網(wǎng)絡(luò)模型,其中殘差神經(jīng)網(wǎng)絡(luò)模型(Residual Neural Network Model,ResNet)[9]在CNN 的基礎(chǔ)上加入殘差模塊,即在參數(shù)傳遞過(guò)程中加入直連通道,使輸入數(shù)據(jù)傳遞到網(wǎng)絡(luò)輸出處,從而網(wǎng)絡(luò)只需要學(xué)習(xí)輸入和輸出有差別的部分,這將簡(jiǎn)化學(xué)習(xí)的難度與模型的參數(shù)量,提高模型性能,殘差模塊如圖3 所示。
圖3 殘差模塊示意圖
CNN 模型的應(yīng)用不僅僅是在圖像識(shí)別上,在目標(biāo)跟蹤、姿態(tài)估計(jì)、視覺(jué)顯著性檢測(cè)、動(dòng)作識(shí)別等任務(wù)中也表現(xiàn)出了出色的性能[10-15]。3D-CNN 在原有的2D 卷積的基礎(chǔ)上增加一個(gè)時(shí)間維度的3D 卷積,用來(lái)提取連續(xù)幀之間的關(guān)聯(lián)信息[16-17]。3D-CNN的模型架構(gòu)如圖4所示,該架構(gòu)包含一個(gè)hardwired 層、3個(gè)卷積層、2 個(gè)下采樣層以及一個(gè)全連接層。利用3D-CNN 模型可以更好地捕獲視頻內(nèi)的運(yùn)動(dòng)信息,從而實(shí)現(xiàn)準(zhǔn)確率更高的視頻分類與人體動(dòng)作識(shí)別。3D 卷積神經(jīng)網(wǎng)絡(luò)的數(shù)學(xué)表達(dá)式如式(2)所示:
圖4 3D-CNN模型架構(gòu)
ResNet 模型雖然在處理圖像上有著強(qiáng)大的處理能力,但在處理視頻上卻能力有限。而3D-CNN 雖有較強(qiáng)視頻數(shù)據(jù)處理能力,但其參數(shù)量非常龐大,所需的數(shù)據(jù)量也非常大,這也導(dǎo)致模型容易過(guò)擬合[18]。于是提出了一種新的模型3D-ResNet[19],該模型采用一種全新的(2+1)D 結(jié)構(gòu),是建立在2D-ResNet基礎(chǔ)上的3D 卷積神經(jīng)網(wǎng)絡(luò),模型結(jié)構(gòu)如圖5 所示,由4 個(gè)卷積層、3 個(gè)下采樣層、1 個(gè)平均池化層和1 個(gè)全連接層構(gòu)成。該模型的參數(shù)量不僅比3D-CNN模型的參數(shù)量少而且準(zhǔn)確率還有所提升。該文采用3D-ResNet模型對(duì)視頻人體動(dòng)作進(jìn)行識(shí)別并分類。
圖5 3D-ResNet模型結(jié)構(gòu)
健身動(dòng)作是將一個(gè)簡(jiǎn)單的動(dòng)作進(jìn)行重復(fù)練習(xí)來(lái)達(dá)到鍛煉的效果。一個(gè)健身動(dòng)作往往是有針對(duì)性的鍛煉一塊或者幾塊目標(biāo)肌肉,所以健身動(dòng)作對(duì)比時(shí),可以重點(diǎn)關(guān)注該動(dòng)作鍛煉的部位與肌肉,如此就減少了對(duì)比的數(shù)據(jù)量,提升了實(shí)時(shí)反饋的速度。通過(guò)鍛煉來(lái)增長(zhǎng)肌肉的生理學(xué)原理為肌肉中的橫橋細(xì)胞牽引肌絲纖維運(yùn)動(dòng)使得肌肉收縮[20],肌肉收縮程度可以通過(guò)骨骼關(guān)節(jié)的角度大小來(lái)進(jìn)行判斷。角度過(guò)小,肌肉的收縮程度不夠,不能達(dá)到鍛煉的效果;角度過(guò)大,肌肉的收縮程度過(guò)大,可能導(dǎo)致肌肉出現(xiàn)拉傷。合適的關(guān)節(jié)角度方可達(dá)到最佳的鍛煉效果。
通過(guò)OpenCV 可以準(zhǔn)確得到各個(gè)關(guān)節(jié)點(diǎn)的位置信息與坐標(biāo)ID,通過(guò)余弦定理即可計(jì)算出關(guān)節(jié)角度如式(3)所示:
其中,θi是ID 為i的關(guān)節(jié)角度,lij為i到j(luò)關(guān)節(jié)的坐標(biāo)點(diǎn)距離。由于人體動(dòng)作較難用一個(gè)數(shù)值來(lái)規(guī)范,因此在計(jì)算出關(guān)節(jié)角度后需設(shè)置誤差區(qū)間,誤差區(qū)間的上下限為標(biāo)準(zhǔn)數(shù)據(jù)集中動(dòng)作關(guān)節(jié)角度的最值。將獲取到的人體動(dòng)作關(guān)節(jié)角度與專業(yè)動(dòng)作的進(jìn)行對(duì)比,根據(jù)誤差區(qū)間反饋動(dòng)作糾正意見。糾正意見的組成為“關(guān)節(jié)部位+調(diào)整動(dòng)作”,調(diào)整動(dòng)作分為“down”、“up”、“save”三個(gè)指示。
為了收集足夠的數(shù)據(jù)訓(xùn)練模型,筆者從網(wǎng)絡(luò)視頻、專業(yè)動(dòng)作與非專業(yè)動(dòng)作等三個(gè)渠道獲取到常見的10 個(gè)與標(biāo)準(zhǔn)數(shù)據(jù)集相同的健身動(dòng)作,其中視頻數(shù)據(jù)701 個(gè),總時(shí)長(zhǎng)175.25 min,并將其命名為Fitness10-ST,如表1 所示。網(wǎng)絡(luò)視頻主要來(lái)源于Bilibili、抖音,專業(yè)動(dòng)作由體育學(xué)院社會(huì)體育指導(dǎo)與管理專業(yè)學(xué)生在專業(yè)老師指導(dǎo)下拍攝,非專業(yè)動(dòng)作由隨機(jī)選取的非體育專業(yè)學(xué)生在沒(méi)有任何指導(dǎo)的條件下拍攝。
表1 Fitness10-ST數(shù)據(jù)集
HMDB51 數(shù)據(jù)集是一個(gè)非常經(jīng)典的用于判斷視頻分類模型準(zhǔn)確率的數(shù)據(jù)集,其數(shù)據(jù)來(lái)源為電影、YouTube、Google videos 等網(wǎng)絡(luò)資源。數(shù)據(jù)集包含51 個(gè)類別動(dòng)作、6 766 個(gè)短視頻,每個(gè)類別至少包含101 個(gè)視頻,每個(gè)標(biāo)注至少有兩個(gè)人工驗(yàn)證,以確保一致性[21]。
1)數(shù)據(jù)預(yù)處理:將每個(gè)視頻切分為30 幀,將切分后的圖片集與對(duì)應(yīng)的label 劃分成60%的訓(xùn)練集、20%的驗(yàn)證集和20%的測(cè)試集。
2)自定義數(shù)據(jù)加載器:Batch-size 的值表示一次訓(xùn)練抓取數(shù)據(jù)樣本的數(shù)量,該值將影響模型的優(yōu)化與訓(xùn)練速度。
3)訓(xùn)練模型:模型的優(yōu)異程度離不開對(duì)超參數(shù)的調(diào)節(jié)。優(yōu)化器的選擇、學(xué)習(xí)率(Learning Rate)的初始化[22-24]與更新、epoch 次數(shù)等超參數(shù)決定了模型優(yōu)異程度。該文模型的超參數(shù)值如表2 所示。
表2 模型超參數(shù)值
3D-ResNet 對(duì)自定義數(shù)據(jù)集Fitness10-ST 的識(shí)別準(zhǔn)確率epoch 次數(shù)為68 時(shí)達(dá)到最佳值92.59%,如圖6(a)所示。同時(shí)將模型在HMDB51 數(shù)據(jù)集上進(jìn)行測(cè)試,準(zhǔn)確率也達(dá)到了90.28%,如圖6(b)所示。
圖6 數(shù)據(jù)集上模型準(zhǔn)確率
將該模型在Fitness10-ST 數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),得到數(shù)據(jù)集內(nèi)10 個(gè)健身動(dòng)作各自的準(zhǔn)確率。其中直立劃船和站姿杠鈴彎舉動(dòng)作的識(shí)別準(zhǔn)確率達(dá)到了100%,除肩上推舉動(dòng)作外其余動(dòng)作的識(shí)別率都在90%以上,如表3 所示。通過(guò)分析發(fā)現(xiàn),肩上推舉動(dòng)作的特征行為是肘關(guān)節(jié)在頭部上方進(jìn)行手臂彎曲,該動(dòng)作與引體向上為類似運(yùn)動(dòng),所以導(dǎo)致肩上推舉動(dòng)作識(shí)別率偏低,將部分動(dòng)作識(shí)別為引體向上。
表3 Fitness10-ST 數(shù)據(jù)集上各動(dòng)作識(shí)別的準(zhǔn)確率(%)
通過(guò)3D-ResNet 模型將健身者正在進(jìn)行的運(yùn)動(dòng)項(xiàng)目返回給后臺(tái)的標(biāo)準(zhǔn)數(shù)據(jù)集,并通過(guò)OpenCV 實(shí)時(shí)讀取健身者骨骼信息與標(biāo)準(zhǔn)動(dòng)作骨骼信息進(jìn)行對(duì)比。通過(guò)計(jì)算健身者的重點(diǎn)關(guān)節(jié)角度,相對(duì)身體位置來(lái)判斷動(dòng)作是否標(biāo)準(zhǔn),給予健身者實(shí)時(shí)的動(dòng)作糾正指導(dǎo)信息如圖7 所示。
圖7 動(dòng)作糾正意見
該文為幫助健身愛好者利用在碎片時(shí)間進(jìn)行鍛煉時(shí)可以得到較為專業(yè)的動(dòng)作指導(dǎo)而提出了一種基于計(jì)算機(jī)視覺(jué)的健身指導(dǎo)系統(tǒng)。首先是構(gòu)建了標(biāo)準(zhǔn)動(dòng)作數(shù)據(jù)集,其目的是將識(shí)別出的動(dòng)作與之作對(duì)比再將差異之處反饋給使用者。其次介紹了殘差神經(jīng)網(wǎng)絡(luò)模型與3D 卷積神經(jīng)網(wǎng)絡(luò)模型,分析了這兩種模型在視頻分類任務(wù)上的利弊,并在此基礎(chǔ)上引進(jìn)了更為優(yōu)秀的3D-ResNet 模型。該模型在自建數(shù)據(jù)集與公開數(shù)據(jù)集上都取得了較為優(yōu)異的識(shí)別效果。然后介紹了動(dòng)作對(duì)比的原則與方法,完成了從動(dòng)作識(shí)別到動(dòng)作對(duì)比再到反饋動(dòng)作糾正意見的整個(gè)過(guò)程。該系統(tǒng)的設(shè)計(jì),為幫助人們健身、提升健身運(yùn)動(dòng)的普及性、迎合AI+體育趨勢(shì)的發(fā)展等方面都有較好的現(xiàn)實(shí)意義。在下一步研究中,將不斷改進(jìn)與優(yōu)化系統(tǒng),并創(chuàng)建評(píng)分機(jī)制,使該系統(tǒng)部署在移動(dòng)手機(jī)、家用電視等終端上,讓人們可以在家即可進(jìn)行健身運(yùn)動(dòng)。