李 琳,李大琳,林灝泓
(珠??萍紝W(xué)院,廣東 珠海 519041)
人工智能、大數(shù)據(jù)等新興計算機(jī)技術(shù)在各個領(lǐng)域的發(fā)展,為信息行業(yè)帶來歷史性變革,同時其影響力也深入滲透到各方各面。人體姿態(tài)估計技術(shù)在體育健身、動作采集、人機(jī)交互、輿情監(jiān)測等領(lǐng)域具有廣闊的應(yīng)用前景。其中,基于深度神經(jīng)網(wǎng)絡(luò)的人體姿態(tài)識別在體育領(lǐng)域熠熠生輝[1]。
傳統(tǒng)的民間舞獅被列入國家非物質(zhì)文化遺產(chǎn)名錄,在歷史傳承、文化自信、民族認(rèn)同、藝術(shù)和社會和諧方面具有重要價值[2]。舞獅活動不僅在中國廣為流傳,更在全球范圍內(nèi)廣泛流行,是逢年過節(jié)必不可少的慶祝活動。
舞獅活動是由官方機(jī)構(gòu)、民間組織聯(lián)合進(jìn)行的,但在綜合了環(huán)境與文化的基礎(chǔ)上,當(dāng)前發(fā)展?fàn)顩r尚有欠缺[2]。一方面,在以往傳統(tǒng)的教學(xué)模式上,傳統(tǒng)的老師一對多、面對面授課,學(xué)生模仿其所演示的動作,時常不明確自身的學(xué)習(xí)進(jìn)度,且需要注意的細(xì)節(jié)較多,往往動作不到位,學(xué)習(xí)效率低下;另一方面,在疫情期間需要公眾減少接觸的大環(huán)境下,學(xué)生跟隨視頻學(xué)習(xí)動作技巧,這種方式直觀性差、過程煩瑣,練習(xí)者很容易做錯動作或發(fā)力錯誤導(dǎo)致受傷。
針對上述問題,本文提出以O(shè)penPose算法為基礎(chǔ),設(shè)計一種基于深度學(xué)習(xí)算法模型的舞獅訓(xùn)練輔助系統(tǒng),對練習(xí)者的動作進(jìn)行分析,通過檢測人體骨骼的關(guān)鍵節(jié)點(diǎn)并組合成人體骨架,計算出關(guān)節(jié)間的向量角數(shù)據(jù),建立評估機(jī)制,幫助使用者明確動作的規(guī)范程度。該系統(tǒng)將人工智能技術(shù)與傳統(tǒng)舞獅教學(xué)練習(xí)相結(jié)合,從而實(shí)現(xiàn)動作的標(biāo)準(zhǔn)化比對,可以作為對傳統(tǒng)教學(xué)的智能化補(bǔ)充,提高訓(xùn)練舞獅動作和糾正細(xì)節(jié)錯誤的效率。
OpenPose人體姿態(tài)識別項(xiàng)目[3]是世界上首個基于深度學(xué)習(xí)的實(shí)時多人二維姿態(tài)估計應(yīng)用庫。該算法是由美國卡耐基梅隆大學(xué)(CMU)開發(fā)的。它在卷積神經(jīng)網(wǎng)絡(luò)和監(jiān)督學(xué)習(xí)的基礎(chǔ)上采用caffe作為框架,使用人體關(guān)鍵點(diǎn)親和域技術(shù)將人體骨骼關(guān)鍵點(diǎn)連接起來。OpenPose的主要優(yōu)勢是能夠?qū)ΧS的多個用戶目標(biāo)進(jìn)行準(zhǔn)確、快速的識別分析,并能實(shí)現(xiàn)對人體運(yùn)動、面部表情和手指動作等姿態(tài)的估計,該方法具有很好的魯棒性和快速的運(yùn)算能力
Openpose項(xiàng)目庫運(yùn)用流行的深度學(xué)習(xí)算法,能快速地識別圖像中單人及多人的二維姿態(tài),通過學(xué)習(xí)、檢測圖像中人物的關(guān)鍵點(diǎn)位置,從而不依賴圖像中的局部特征完成人物目標(biāo)檢測。它結(jié)合了目標(biāo)周圍的環(huán)境信息,即使在噪聲較大的圖像中也可以準(zhǔn)確地提取人物的關(guān)鍵點(diǎn),通過建模重構(gòu)的方式,從學(xué)習(xí)識別的人物關(guān)鍵點(diǎn)位置提取姿勢特征[4],其準(zhǔn)確性和連續(xù)性可以得到更好的保證。本文的研究主要是利用算法的精確性,提取標(biāo)準(zhǔn)動作的視頻關(guān)鍵幀或圖片,從標(biāo)準(zhǔn)動作中抽取出關(guān)鍵畫面,用于后續(xù)的檢測和比對。
OpenPose的主要思想是利用貪心算法自下而上的解析步驟,先檢測出關(guān)鍵點(diǎn),再去做姿態(tài)估計。首先識別圖像中所有檢測目標(biāo)的骨骼關(guān)節(jié)點(diǎn),并將檢測到的關(guān)鍵點(diǎn)分配給相應(yīng)人物。OpenPose模型的架構(gòu)如圖1所示。
圖1 OpenPose算法模型
OpenPose算法過程如下:
(1)輸入圖像,經(jīng)過10層VGG-19卷積神經(jīng)網(wǎng)絡(luò)提取出一組關(guān)鍵點(diǎn)特征圖F;
(2)將F分入兩個岔路(Branch),即兩個卷積網(wǎng)絡(luò)分別計算,提取出人體骨骼關(guān)鍵點(diǎn)的置信度和關(guān)聯(lián)度(也叫親和度);
(3)利用Bipartite Matching(二分匹配)求出Part Affinity Fields for Part Association(理解為關(guān)鍵點(diǎn)聚類),拼接起同一個人的骨骼關(guān)鍵點(diǎn),最終合并為同一個人的整體骨架信息。
通過Open Pose處理后,人體各部位的特征可以歸納為18個主要的骨骼關(guān)鍵點(diǎn)。由這些關(guān)鍵點(diǎn)還原組成的人體骨架能反映出身體的實(shí)時姿態(tài)。值得注意的是,人體的軀干骨架,一方面由于用戶的面部表情與動作行為的識別檢測無關(guān),面部特征識別的精度對計算結(jié)果影響不大;另一方面,特定關(guān)節(jié)之間的角度值不受體型、膚色或服裝等外部因素的影響,因此可以作為評估運(yùn)動動作準(zhǔn)確性的標(biāo)準(zhǔn)。本系統(tǒng)根據(jù)上述特性,實(shí)現(xiàn)了動作的比對。經(jīng)過OpenPose處理圖片后,可以得到人體18個骨骼關(guān)鍵點(diǎn),其對應(yīng)位置如圖2所示,測試運(yùn)行的骨架還原圖如圖3所示。
圖2 人體18個骨骼關(guān)鍵點(diǎn)
圖3 人體骨架還原圖
在圖片或者視頻幀中,人體的兩個肢體之間形成的夾角,稱為肢體夾角。當(dāng)訓(xùn)練者在做任何動作的時候,實(shí)體表現(xiàn)特征就是身體各個肢體的變化。人體各肢干之間夾角大小的變化,能夠充分包含當(dāng)前人的行為特征信息[5]。
本文使用這一方法對數(shù)據(jù)進(jìn)行處理,過程如下:
(1)設(shè)置標(biāo)準(zhǔn)動作,統(tǒng)計出各個骨骼關(guān)鍵點(diǎn)的坐標(biāo);
(3)輸入需要進(jìn)行評判的訓(xùn)練者動作,重復(fù)步驟(1)、步驟(2),同樣得出肢節(jié)向量角度值;
(4)將標(biāo)準(zhǔn)動作和訓(xùn)練者動作逐一對比分析并可視化,按照歐式距離計算出最簡單的評估,即可得出訓(xùn)練者動作是否標(biāo)準(zhǔn),達(dá)到評估動作規(guī)范程度的效果。
系統(tǒng)流程如圖4所示。
圖4 系統(tǒng)流程圖
實(shí)驗(yàn)環(huán)境配置如下:操作系統(tǒng)為Windows 11,CPU為i5-8300H,GPU為GTX 1060,運(yùn)行環(huán)境為Pycharm,Python版本為3.9.0,Tensorflow版本為2.0.0,OpenCV版本為4.6.0。
實(shí)驗(yàn)使用自制數(shù)據(jù)集,以舞獅基礎(chǔ)動作為標(biāo)準(zhǔn)數(shù)據(jù),分為11個類別,分別為四平馬、跪步、麒麟步、吊馬、探步、交叉步、開合步、前弓步、仆步、碎步以及躍步。截取每個動作的多個關(guān)鍵幀進(jìn)行處理,得出標(biāo)準(zhǔn)動作關(guān)節(jié)角度數(shù)據(jù)。
本系統(tǒng)使用Pycharm環(huán)境開發(fā),實(shí)現(xiàn)了圖像和視頻關(guān)鍵幀的讀取和上傳,主要使用Openpose算法對人體骨骼結(jié)構(gòu)的18個關(guān)鍵點(diǎn)進(jìn)行識別并恢復(fù)骨架,計算關(guān)節(jié)向量的角度值,并將預(yù)測結(jié)果可視化。
程序運(yùn)行后,系統(tǒng)初始界面如圖5所示。系統(tǒng)會自動對輸入的動作關(guān)鍵幀或圖片進(jìn)行處理,同時,會標(biāo)注出含有關(guān)鍵點(diǎn)的骨架結(jié)構(gòu),輸出顯示人體骨架結(jié)構(gòu),統(tǒng)計圖中包含的訓(xùn)練人數(shù),預(yù)測正在訓(xùn)練的動作類型,如圖6所示。將輸出的動作數(shù)據(jù)與已訓(xùn)練好的標(biāo)準(zhǔn)動作數(shù)據(jù)進(jìn)行對比,即可對練習(xí)者的訓(xùn)練動作作出大致評估。
圖5 初始化界面
圖6 運(yùn)行效果圖
實(shí)驗(yàn)采集了5位練習(xí)者的訓(xùn)練視頻,利用openpose算法模型進(jìn)行處理,計算訓(xùn)練者的動作姿態(tài),生成訓(xùn)練者關(guān)節(jié)角度的數(shù)據(jù),與標(biāo)準(zhǔn)動作數(shù)據(jù)進(jìn)行比對,將關(guān)節(jié)向量角偏差最小的行為(以最高分表示)作為對比結(jié)果,并進(jìn)行比較,成功率越高說明匹配度越高。比對結(jié)果如表1所示。
表1 比對結(jié)果分析表
從結(jié)果可以看出,系統(tǒng)對于以上11類基礎(chǔ)步法動作有著良好的匹配成功率,平均識別率在83%以上,部分動作的識別率超過90%,說明本文所述的動作識別方法是準(zhǔn)確有效的。
在實(shí)驗(yàn)過程中,雖然一部分動作視頻存在背景復(fù)雜、場景昏暗、人物衣物與場景相近等情況,但本系統(tǒng)均可識別出練習(xí)者的骨架動作,得出的關(guān)節(jié)角度數(shù)據(jù)的標(biāo)準(zhǔn)度不僅客觀真實(shí),而且與肉眼觀測的規(guī)范程度相符。由此可見,本實(shí)驗(yàn)提出的研究方法是規(guī)范可行的。
對比不同訓(xùn)練方式的比較如表2所示??梢钥闯?,雖然依靠肉眼觀測可以實(shí)時全面地提高舞獅動作的準(zhǔn)確性,但是需要依賴他人從旁協(xié)助、指導(dǎo)。在訓(xùn)練者獨(dú)自練習(xí)的過程中,僅靠錄像回放糾正姿勢,不僅耗費(fèi)時間較長,且所需練習(xí)次數(shù)較多,效率低下。而本文所提方法結(jié)合二者優(yōu)點(diǎn),通過實(shí)時識別并比對動作規(guī)范性,既可以提高訓(xùn)練者獨(dú)自練習(xí)的動作準(zhǔn)確率,又能夠縮短糾正動作的時間。因此,本文提出的研究方法可以提高訓(xùn)練效率,是有效的。
表2 不同訓(xùn)練方式的比較
然而,本次研究仍有一些缺陷之處:實(shí)驗(yàn)結(jié)果存在一定局限性,識別復(fù)雜的舞獅動作時出現(xiàn)識別率低下、標(biāo)注錯誤的問題。這是因?yàn)樵趯?shí)驗(yàn)中進(jìn)行了舞獅基本動作的對比研究,所以收集到的運(yùn)動數(shù)據(jù)基本上都很簡單。在未來的實(shí)驗(yàn)中,需要對數(shù)據(jù)集進(jìn)行擴(kuò)展,涵蓋更廣泛的舞獅類型和動作,比如禮儀動作、采青動作等,由此探究本系統(tǒng)對于復(fù)雜舞獅動作的普適性。另外,實(shí)驗(yàn)過程中出現(xiàn)無法識別手部動作的情況。個別情況下獅頭的神態(tài)變化,如眨眼或者張嘴時,手掌部分以及手指動作由于隱藏在獅頭下,導(dǎo)致無法檢測其中關(guān)鍵點(diǎn)、還原骨架失敗。針對算法在練習(xí)者手掌和腳步等細(xì)節(jié)方面的不足,在之后的研究中,可以將18個人體關(guān)鍵點(diǎn)增加至25個,通過OpenPose的改進(jìn)算法進(jìn)行動作識別,提高人體骨架的還原度和動作識別的準(zhǔn)確度。
針對目前舞獅運(yùn)動訓(xùn)練困難的情況,本文提出基于OpenPose算法的舞獅訓(xùn)練輔助系統(tǒng)研究,采用OpenPose算法模型,對標(biāo)準(zhǔn)和實(shí)際動作進(jìn)行處理,從而計算出人類骨骼關(guān)節(jié)的角度值,比對計算結(jié)果,并提供可視化分析,通過實(shí)驗(yàn)說明該方法的可行性及有效性,結(jié)果說明深度學(xué)習(xí)是解決舞獅訓(xùn)練輔助問題的可行方案。但本文尚有許多不足之處,如系統(tǒng)仍有一定的局限性,在部分情況下僅會識別出部分人體關(guān)鍵點(diǎn)和骨架。另外,如何在已有基礎(chǔ)上提高計算效率、如何規(guī)范評估舞獅動作的姿態(tài)標(biāo)準(zhǔn),也值得深入研究。在未來的研究工作中,將對系統(tǒng)的評分標(biāo)準(zhǔn)進(jìn)行統(tǒng)一,改進(jìn)系統(tǒng)的識別精度和算法運(yùn)行效率,對本文所述的系統(tǒng)的性能進(jìn)行升級優(yōu)化。