許 誠(chéng), 金慶紅
(安徽工程大學(xué)體育學(xué)院,安徽蕪湖241000)
人體姿勢(shì)識(shí)別是幫助學(xué)習(xí)并理解人體動(dòng)作與行為的主要方式,通過(guò)人體姿勢(shì)識(shí)別可實(shí)現(xiàn)對(duì)人體運(yùn)動(dòng)分析和動(dòng)作信息的保存.如在舞蹈動(dòng)作教學(xué)過(guò)程中,學(xué)生或教練可通過(guò)人體姿勢(shì)識(shí)別結(jié)果對(duì)動(dòng)作進(jìn)行規(guī)范;對(duì)于少數(shù)民族舞蹈,人體姿勢(shì)識(shí)別還可獲取舞蹈動(dòng)作的關(guān)鍵信息并進(jìn)行保存,降低舞蹈在傳承過(guò)程中消失的風(fēng)險(xiǎn).目前,人體姿勢(shì)識(shí)別主要流程包括數(shù)據(jù)獲取及預(yù)處理、人體特征提取與構(gòu)造、動(dòng)作識(shí)別三個(gè)步驟.其中,人體特征的提取構(gòu)造是決定人體姿勢(shì)識(shí)別的關(guān)鍵,但目前的特征提取和構(gòu)造方法通常存在精度低的問(wèn)題,包括基于底層特征跟蹤方法和基于語(yǔ)義的方法等.如石艷嬌[1]、蔣峰嶺[2]基于底層特征跟蹤方法通過(guò)對(duì)復(fù)合運(yùn)動(dòng)特征進(jìn)行分析,有效檢測(cè)并預(yù)測(cè)到視頻中的異常事件;朱江[3]、王麗萍[4]等基于語(yǔ)義特征,通過(guò)對(duì)有限樣本條件下欠規(guī)范手語(yǔ)識(shí)別容錯(cuò)特征擴(kuò)充,一定程度上提高了人體姿勢(shì)識(shí)別的正確性,但仍存在識(shí)別準(zhǔn)確率不高的問(wèn)題.為解決該問(wèn)題,需結(jié)合人體骨骼關(guān)鍵點(diǎn)信息,提出一種基于骨骼關(guān)鍵點(diǎn)與殘差網(wǎng)絡(luò)的姿勢(shì)識(shí)別舞蹈動(dòng)作的檢測(cè)方法.通過(guò)選取人體骨骼關(guān)鍵點(diǎn)特征并通過(guò)殘差塊自動(dòng)動(dòng)作檢測(cè)方法,實(shí)現(xiàn)了復(fù)雜舞蹈場(chǎng)景的舞蹈動(dòng)作檢測(cè).通過(guò)實(shí)驗(yàn)證明,該方法可有效提取人體舞蹈動(dòng)作特征信息,提高動(dòng)作識(shí)別的準(zhǔn)確率.
人體姿勢(shì)識(shí)別網(wǎng)絡(luò)是一種基于PAFs算法,可準(zhǔn)確識(shí)別圖像中人體骨骼關(guān)鍵點(diǎn)與動(dòng)作的識(shí)別算法[5].其主要流程是通過(guò)VGG19的前10層網(wǎng)絡(luò)進(jìn)行特征提取,并送入關(guān)鍵點(diǎn)熱力圖分支和肢體向量分支,實(shí)現(xiàn)對(duì)人體姿勢(shì)的識(shí)別.該網(wǎng)絡(luò)基本結(jié)構(gòu)如圖1所示,分支1即為關(guān)鍵點(diǎn)熱力圖分支,主要負(fù)責(zé)預(yù)測(cè)位置置信圖S1;分支2即為肢體向量分支,主要負(fù)責(zé)預(yù)測(cè)部件親和力場(chǎng)L1[6].
圖1 姿勢(shì)識(shí)別網(wǎng)絡(luò)結(jié)構(gòu)
采用姿勢(shì)識(shí)別網(wǎng)絡(luò)進(jìn)行迭代預(yù)測(cè),其預(yù)測(cè)的計(jì)算方法如式(1)(2)[7]:
式中,ρ,Φ分別表示對(duì)S和L分支對(duì)應(yīng)的卷積操作.為避免該網(wǎng)絡(luò)進(jìn)行訓(xùn)練時(shí)產(chǎn)生梯度消失問(wèn)題,通常在計(jì)算過(guò)程中加入loss損失函數(shù),如式(3)[8]:
本研究提出的基于姿勢(shì)識(shí)別的舞蹈動(dòng)作檢測(cè)算法分為姿勢(shì)識(shí)別、關(guān)鍵點(diǎn)特征處理、動(dòng)作分類(lèi)三部分.首先,將輸入圖像裁剪為368*368尺寸輸入姿勢(shì)識(shí)別網(wǎng)絡(luò)對(duì)人體關(guān)鍵點(diǎn)進(jìn)行識(shí)別.然后,根據(jù)人體關(guān)鍵點(diǎn)輪廓值利用殘差網(wǎng)絡(luò)檢測(cè)出人體區(qū)域.最后,通過(guò)融合關(guān)鍵點(diǎn)特征分類(lèi)和圖像分類(lèi),即可實(shí)現(xiàn)舞蹈動(dòng)作的分類(lèi).基于姿勢(shì)識(shí)別的舞蹈動(dòng)作檢測(cè)具體流程如圖2所示,其關(guān)節(jié)點(diǎn)分類(lèi)網(wǎng)絡(luò)由關(guān)鍵點(diǎn)特征提取、圖像分類(lèi)、融合三個(gè)分支構(gòu)成.
圖2 基于姿勢(shì)識(shí)別的舞蹈動(dòng)作檢測(cè)流程
針對(duì)關(guān)鍵點(diǎn)特征分類(lèi)分支,通過(guò)分析舞蹈動(dòng)作特征,將其全連接層設(shè)置為6層.第1層神經(jīng)元個(gè)數(shù)與姿勢(shì)識(shí)別輸出的關(guān)鍵點(diǎn)特征維數(shù)相同,為18個(gè);第2層神經(jīng)元個(gè)數(shù)為256;第3層至第六層的神經(jīng)元個(gè)數(shù)均為512.
針對(duì)殘差塊圖像分類(lèi)分支,本研究選用一個(gè)卷積層和batchnormalization層組成殘差單元,并將殘差單元進(jìn)行堆疊形成殘差網(wǎng)絡(luò)結(jié)構(gòu).該網(wǎng)絡(luò)結(jié)構(gòu)中,神經(jīng)網(wǎng)絡(luò)可學(xué)習(xí)到所有函數(shù).通過(guò)實(shí)驗(yàn)表明,直接學(xué)習(xí)殘差可降低模型難度.因此,選用resnet提供的殘差單元訓(xùn)練神經(jīng)網(wǎng)絡(luò),并在第3層和第4層之間增加了dropout層.首先將輸入圖像裁剪到368*368,heatmap和pafs大小設(shè)置為19*46*46.然后根據(jù)關(guān)鍵點(diǎn)輪廓值,裁剪出人體輪廓框進(jìn)行resnet50訓(xùn)練.
Resnet50包括4個(gè)殘差塊,預(yù)處理后的圖像尺寸為224*224,其具體訓(xùn)練過(guò)程如下:
步驟1:將預(yù)處理后的圖像輸入7*7*64大小、步長(zhǎng)為2的卷積層進(jìn)行卷積,得到112*112的特征圖;
步驟2:將特征圖先后通過(guò)3*3大小、步長(zhǎng)為2的池化窗口和三個(gè)block,每個(gè)block包括3層,第1層卷積核大小為1*1*64,第2層卷積核大小為3*3*64,第3層卷積核大小為1*1*256;
步驟3:待殘差單元經(jīng)過(guò)block后,經(jīng)過(guò)一個(gè)average pooling層;
步驟4:最后先后連接層數(shù)為2048和512的兩層全連接層.
針對(duì)融合動(dòng)作分類(lèi),將其設(shè)計(jì)為6層全連接層網(wǎng)絡(luò)結(jié)構(gòu).第1層神經(jīng)元個(gè)數(shù)由關(guān)鍵點(diǎn)特征分類(lèi)和殘差塊圖像分類(lèi)融合決定,為1024,第2層和第3層神經(jīng)元個(gè)數(shù)為512,第4層和第5層神經(jīng)元個(gè)數(shù)為256,第6層神經(jīng)元個(gè)數(shù)為6.最終,基于姿勢(shì)識(shí)別的舞蹈動(dòng)作檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)如圖3.
圖3 本算法網(wǎng)絡(luò)整體結(jié)構(gòu)
實(shí)驗(yàn)在pytorch開(kāi)源神經(jīng)網(wǎng)絡(luò)上對(duì)提出的算法進(jìn)行驗(yàn)證.該網(wǎng)絡(luò)框架包含一些常用的數(shù)據(jù)集,便于進(jìn)行遷移學(xué)習(xí),其torch.nn模塊封裝損失函數(shù),torch.optim模塊封裝優(yōu)化函數(shù).
實(shí)驗(yàn)數(shù)據(jù)集來(lái)自演唱會(huì)視頻和舞蹈視頻提取的圖像幀共3485張.數(shù)據(jù)集內(nèi)容包括國(guó)內(nèi)外歌手、舞蹈演員等,舞臺(tái)包括各類(lèi)大中小型演出平臺(tái)和白天場(chǎng)景、夜晚場(chǎng)景.首先通過(guò)姿勢(shì)識(shí)別獲取圖像關(guān)鍵點(diǎn),然后計(jì)算工作特征與圖像特征,得到人物動(dòng)作的單幀圖像和18維數(shù)據(jù)集.其中,人物6種動(dòng)作數(shù)據(jù),如圖4.
圖4 6種動(dòng)作數(shù)據(jù)展示
隨機(jī)選取數(shù)據(jù)集中3140張圖像作為訓(xùn)練集,剩余345張圖像作為測(cè)試集.訓(xùn)練集和測(cè)試集具體劃分情況如圖5所示.
圖5 數(shù)據(jù)集具體劃分情況
參數(shù)的選擇對(duì)算法檢測(cè)識(shí)別舞蹈動(dòng)作具有較大的影響.因此,為提高算法性能,需要通過(guò)多次實(shí)驗(yàn)確定算法的最佳網(wǎng)絡(luò)參數(shù),包括神經(jīng)元個(gè)數(shù)、批處理尺寸等.
首先,針對(duì)神經(jīng)元個(gè)數(shù)確定,采用transform.compose增強(qiáng)輸入圖像數(shù)據(jù),并裁剪為256*256尺寸大小的圖像.然后先后通過(guò)隨機(jī)旋轉(zhuǎn)和水平翻轉(zhuǎn),進(jìn)行中心裁剪為224*224尺寸大小的圖像.接著,進(jìn)行歸一化操作,并將融合后的人體骨骼點(diǎn)動(dòng)作和圖像信息特征輸入融合網(wǎng)絡(luò),通過(guò)姿勢(shì)識(shí)別網(wǎng)絡(luò)識(shí)別出人體區(qū)域和人體動(dòng)作信息.最后,將識(shí)別的信息輸入resnet和posenet,并將18維特征傳輸?shù)饺B接層.因此全連接層第1層神經(jīng)元個(gè)數(shù)為18.在每個(gè)線(xiàn)性函數(shù)后添加一個(gè)torch.relu()函數(shù),并以0.5的比例使神經(jīng)元隨機(jī)失效.
針對(duì)批處理尺寸設(shè)置,若其設(shè)置過(guò)大,會(huì)導(dǎo)致算法收斂速度過(guò)快;若其設(shè)置過(guò)小,則容易出現(xiàn)局部最優(yōu)解.本實(shí)驗(yàn)根據(jù)硬件環(huán)境和數(shù)據(jù)集大小,將批處理大小設(shè)置為64.
考慮到算法網(wǎng)絡(luò)的卷積層為relu函數(shù),因此本實(shí)驗(yàn)采用dropout降低全連接層參數(shù),選用隨機(jī)梯度下降SGD優(yōu)化器對(duì)網(wǎng)絡(luò)進(jìn)行優(yōu)化,epoch設(shè)置為30,學(xué)習(xí)率設(shè)置為0.001,每10個(gè)epoch后,學(xué)習(xí)率變?yōu)樵瓉?lái)的1/10.
3.4.1 特征選取
通過(guò)姿勢(shì)識(shí)別可得到人體骨骼的18個(gè)關(guān)鍵點(diǎn).為便于說(shuō)明,對(duì)關(guān)鍵點(diǎn)進(jìn)行編號(hào),如圖6.通過(guò)舞蹈動(dòng)作特點(diǎn),選取人體關(guān)節(jié)角度、關(guān)節(jié)點(diǎn)相對(duì)位置、關(guān)節(jié)點(diǎn)關(guān)節(jié)長(zhǎng)度比值作為本實(shí)驗(yàn)人體動(dòng)作.
圖6 人體骨骼關(guān)鍵點(diǎn)特征定義
3.4.2 特征融合
考慮到單一特征不能全面準(zhǔn)確表達(dá)舞蹈動(dòng)作,對(duì)選取的三種特征進(jìn)行融合.首先將關(guān)鍵點(diǎn)位置轉(zhuǎn)化為人體脖子位置的相對(duì)位置,然后計(jì)算肢體向量,最后對(duì)相對(duì)位置進(jìn)行歸一化處理,即實(shí)現(xiàn)特征的融合.
3.5.1 算法驗(yàn)證
為驗(yàn)證算法的有效性,將所有熱力圖進(jìn)行可視化,如圖7所示.左圖為輸入圖像,中間圖為歌手骨骼關(guān)鍵點(diǎn)熱力圖,右圖為將歌手熱力圖進(jìn)行計(jì)算后得到的最大概率關(guān)鍵點(diǎn)及關(guān)鍵點(diǎn)肢體區(qū)域.采用算法進(jìn)行訓(xùn)練與識(shí)別,算法在訓(xùn)練集和測(cè)試集上的準(zhǔn)確率如圖8,具體測(cè)試集上的識(shí)別準(zhǔn)確率如表1所示.
圖7 可視化熱力圖及骨骼關(guān)鍵點(diǎn)
圖8 訓(xùn)練集和測(cè)試集準(zhǔn)確率
表1 識(shí)別結(jié)果
由表1可知,本研究方法在測(cè)試集上的平均識(shí)別準(zhǔn)確率達(dá)到92%以上,整體識(shí)別準(zhǔn)確率較高,但手臂高舉和單手揮手的識(shí)別準(zhǔn)確率沒(méi)有達(dá)到85%.其原因是,手臂高舉和單手揮手動(dòng)作相較于其他四種動(dòng)作手臂的幅度較大,且單手揮手時(shí)另一只手狀態(tài)不確定,因此降低了算法識(shí)別的準(zhǔn)確率.此外,手臂高舉和單手揮手動(dòng)作會(huì)因人體與攝像機(jī)的距離遠(yuǎn)近和拍攝角度的不同,出現(xiàn)一定偏差,造成識(shí)別誤差.因此,這兩種動(dòng)作的識(shí)別準(zhǔn)確率較低.另外,數(shù)據(jù)集差異也是導(dǎo)致本算法對(duì)手臂高舉和單手揮手識(shí)別率低的原因.舞蹈動(dòng)作中,單臂張開(kāi)和手臂高舉動(dòng)作相較于其他動(dòng)作較少,故對(duì)算法識(shí)別準(zhǔn)確率造成一定影響.
為解決因數(shù)據(jù)集差異帶來(lái)的識(shí)別準(zhǔn)確率低的問(wèn)題,研究在進(jìn)行數(shù)據(jù)集處理時(shí),構(gòu)建了上述6種舞蹈動(dòng)作的混淆矩陣,如圖9,以確保每個(gè)動(dòng)作數(shù)據(jù)集的數(shù)量基本相同,然后采用本算法進(jìn)行識(shí)別.根據(jù)識(shí)別結(jié)果可知,6種舞蹈動(dòng)作的分類(lèi)準(zhǔn)確率均達(dá)到90%以上,說(shuō)明通過(guò)混淆矩陣增加手臂高舉和單手揮手動(dòng)作數(shù)據(jù)集數(shù)量,可有效減少人體差異對(duì)識(shí)別結(jié)果的影響,提高識(shí)別準(zhǔn)確率.
圖9 6種舞蹈動(dòng)作混淆矩陣
3.5.2 算法比較
為驗(yàn)證本算法的優(yōu)越性,采用本算法與傳統(tǒng)識(shí)別算法殘差網(wǎng)絡(luò)四通道算法[9]和計(jì)算Hu矩算法[10]在測(cè)試集上進(jìn)行識(shí)別測(cè)試,結(jié)果如表2所示.由表2可知,相較于對(duì)比算法,本算法準(zhǔn)確率更高,達(dá)到92%以上,說(shuō)明本算法對(duì)舞蹈動(dòng)作的識(shí)別效果較為理想,具有較高的準(zhǔn)確率.此外,經(jīng)實(shí)驗(yàn)時(shí)間可知,本算法在TeslaP4顯卡上的運(yùn)行速率為0.75幀/s,且可識(shí)別單張圖片中的多人動(dòng)作.
表2 不同算法識(shí)別準(zhǔn)確率對(duì)比
為進(jìn)一步驗(yàn)證本算法的識(shí)別效率,分別在0至多個(gè)人的場(chǎng)景下進(jìn)行測(cè)試,發(fā)現(xiàn)隨著圖像中的人數(shù)增加時(shí),本算法花費(fèi)的時(shí)間也逐漸增加,但只是小幅度上升.霍夫方向計(jì)算器算法(HOC)隨人數(shù)增加,運(yùn)行時(shí)間線(xiàn)性增長(zhǎng),如圖10.相較而言,本研究算法運(yùn)行時(shí)間基本沒(méi)有較大幅度的提升.由此說(shuō)明,本算法效率更高,算法性能更好.
圖10 HOC算法效率
綜上所述,本研究設(shè)計(jì)的基于姿勢(shì)識(shí)別的舞蹈動(dòng)作檢測(cè)方法,通過(guò)結(jié)合骨骼關(guān)鍵點(diǎn)信息和殘差網(wǎng)絡(luò)可對(duì)復(fù)雜場(chǎng)景下的舞蹈動(dòng)作自動(dòng)檢測(cè),識(shí)別準(zhǔn)確率達(dá)到92%以上,相較于傳統(tǒng)舞蹈動(dòng)作識(shí)別方法殘差網(wǎng)絡(luò)四通道算法和計(jì)算Hu矩算法,本算法的識(shí)別準(zhǔn)確率最高,且算法的識(shí)別效率幾乎不受圖像中人物多少的影響;相較于HOC算法,本算法的識(shí)別效率更快,可滿(mǎn)足實(shí)際舞蹈動(dòng)作檢測(cè)需求,具有一定借鑒意義.