張冰冰,趙柏山
(沈陽工業(yè)大學(xué)信息科學(xué)與工程學(xué)院,沈陽 110870)
人工智能的快速發(fā)展促進(jìn)了人體動(dòng)作識(shí)別技術(shù)的研究,該技術(shù)在智能家居、智能安防、運(yùn)動(dòng)分析等領(lǐng)域中得到廣泛應(yīng)用。在運(yùn)動(dòng)分析領(lǐng)域,將人體動(dòng)作識(shí)別技術(shù)與散打動(dòng)作結(jié)合,可以實(shí)現(xiàn)散打動(dòng)作識(shí)別,再通過比較相似度,可以實(shí)現(xiàn)輔助打分效果。目前有兩種主要的人體動(dòng)作識(shí)別方法,一種是使用可穿戴設(shè)備獲取人體運(yùn)動(dòng)參數(shù)識(shí)別人體動(dòng)作[1],此方法依賴硬件設(shè)備,而且成本較高;另一種是通過雙流法[2]或三維卷積法[3]識(shí)別人體動(dòng)作,但識(shí)別效果容易受到環(huán)境影響。為了解決現(xiàn)有研究中存在的問題,從骨骼信息的角度出發(fā),使用改進(jìn)YOLOv5s-CBAM 目標(biāo)檢測模型進(jìn)行人體目標(biāo)檢測,在此基礎(chǔ)上使用改進(jìn)的HRNet-DSC-CBAM 人體姿態(tài)估計(jì)模型提取人體骨骼關(guān)鍵點(diǎn)坐標(biāo),可以減少背景干擾,然后將骨骼信息構(gòu)造成骨架時(shí)空圖輸入ST-GCN 動(dòng)作識(shí)別算法進(jìn)行散打動(dòng)作識(shí)別[4],將骨骼關(guān)鍵點(diǎn)坐標(biāo)轉(zhuǎn)換為關(guān)節(jié)角度特征,通過DTW 動(dòng)態(tài)時(shí)間規(guī)整算法[5]進(jìn)行動(dòng)作評(píng)價(jià)。
實(shí)驗(yàn)使用自制散打數(shù)據(jù)集,選取散打中的10 式動(dòng)作進(jìn)行視頻拍攝,分別是前直拳、后直拳、前擺拳、后擺拳、前正蹬腿、后正蹬腿、前鞭腿、后鞭腿、前側(cè)踹踢、后側(cè)踹踢。為提高網(wǎng)絡(luò)的識(shí)別效率及精度,采用基于視頻聚類的方法進(jìn)行關(guān)鍵幀提取與雙邊濾波的方法進(jìn)行圖像去噪。
CBAM 卷積注意力機(jī)制模塊[6]可以從特征圖中提取或?qū)W習(xí)出特征的權(quán)重,再將權(quán)重進(jìn)行重新分配以抑制無效特征增強(qiáng)有效特征。CBAM 模塊包括通道注意力模塊和空間注意力模塊,如圖1 所示。
將通道注意力模塊所得的通道關(guān)注度與輸入特征圖F 相乘,可以將通道權(quán)重進(jìn)行再分配,得到新的通道特征圖F'。將空間注意力模塊所得的空間關(guān)注度與輸入特征圖F'相乘,得到最終生成的特征圖F''。
在目標(biāo)檢測任務(wù)中,為了對目標(biāo)進(jìn)行更加精準(zhǔn)的檢測,需要對目標(biāo)的關(guān)鍵特征信息進(jìn)行重點(diǎn)關(guān)注,因此此處將CBAM 模塊添加到目標(biāo)檢測算法YOLOv5s 的網(wǎng)絡(luò)結(jié)構(gòu)中,將更多注意力資源置于目標(biāo)的關(guān)鍵區(qū)域[7]。在YOLOv5s 網(wǎng)絡(luò)模型中,共有三個(gè)尺度的輸出,針對目標(biāo)尺寸差異可以生成不同尺度預(yù)測框。為了不使模型參數(shù)量大幅度增加,并且不使網(wǎng)絡(luò)推理速度變慢,CBAM 模塊不可放置過多;同時(shí)由于淺層提取不到充分的特征信息,無法對關(guān)鍵位置和通道信息進(jìn)行關(guān)注,因此CBAM 模塊不可以放置在網(wǎng)絡(luò)淺層部分。綜上考慮,將CBAM 模塊加在YOLOv5s 每個(gè)檢測尺度前,不僅可以幫助模型更充分地提取特征,提高檢測準(zhǔn)確性,而且由于添加數(shù)量較少,網(wǎng)絡(luò)推理速度也不會(huì)受到較大影響。改進(jìn)后的YOLOv5s-CBAM 網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。
圖2 YOLOv5s-CBAM 網(wǎng)絡(luò)結(jié)構(gòu)
將改進(jìn)后的YOLOv5s-CBAM 網(wǎng)絡(luò)與其他網(wǎng)絡(luò)進(jìn)行性能對比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表1 所示。
可以看出,YOLOv5s-CBAM 網(wǎng)絡(luò)模型的MAP值比YOLOv5s、SSD 模型分別提高了1.1%、6.5%,模型權(quán)重比YOLOv5s 模型增加了1.75 MB,比SSD 模型減少了19.15MB。
這表明,YOLOv5s-CBAM 網(wǎng)絡(luò)模型在小幅度增加模型權(quán)重的情況下優(yōu)化了對于目標(biāo)物體的搜索能力,帶來較大幅度的MAP 值增加,可以更準(zhǔn)確地對散打人員進(jìn)行目標(biāo)檢測。
DSC 深度可分離卷積[8]將標(biāo)準(zhǔn)卷積拆分成深度卷積與點(diǎn)卷積。DSC 卷積與標(biāo)準(zhǔn)卷積的參數(shù)量與計(jì)算量比值分別如下式所示:
由于DSC 卷積的卷積核通常為3×3,且輸出通道數(shù)N 很大,DSC 卷積的參數(shù)量與計(jì)算量約為標(biāo)準(zhǔn)卷積的1/9,因此利用DSC 卷積可提高模型訓(xùn)練和運(yùn)行的速度。
在骨骼關(guān)鍵點(diǎn)檢測任務(wù)中,人體姿態(tài)估計(jì)算法HRNet[9]的殘差模塊使用標(biāo)準(zhǔn)卷積,存在參數(shù)量與計(jì)算量較大的問題,在網(wǎng)絡(luò)層數(shù)較深時(shí)效果不佳。因此,此處以DSC 卷積和CBAM 模塊構(gòu)成的輕型殘差模塊替換原網(wǎng)絡(luò)殘差模塊,兼顧檢測準(zhǔn)確率的同時(shí)大幅度降低參數(shù)量與計(jì)算量。改進(jìn)后的輕型殘差模塊如圖3 所示。
圖3 改進(jìn)后的輕型殘差模塊
同樣,將改進(jìn)后的輕型殘差模塊與其他模塊進(jìn)行性能對比實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表2 所示。
表2 LCD 屏幕位置顯示實(shí)例
由表2 可以看出,HRNet-DSC-CBAM 網(wǎng)絡(luò)模型的AP 值相較于HRNet、AlphaPose 模型分別提高了0.8%、4.3%,參數(shù)量分別降低了9.0M、8.3M,計(jì)算量分別降低了8.4、16.1。這表明,HRNet-DSC-CBAM網(wǎng)絡(luò)模型的輕型殘差模塊能夠在大幅度減少網(wǎng)絡(luò)參數(shù)量與計(jì)算量的同時(shí)保持骨骼關(guān)鍵點(diǎn)檢測準(zhǔn)確性不會(huì)下降,從而能夠更準(zhǔn)確更快速地檢測散打人員的骨骼關(guān)鍵點(diǎn)信息。
將由上述改進(jìn)網(wǎng)絡(luò)處理過的骨骼數(shù)據(jù)構(gòu)造成骨架時(shí)空圖,輸入ST-GCN 網(wǎng)絡(luò)模型以實(shí)現(xiàn)散打動(dòng)作識(shí)別。首先對輸入數(shù)據(jù)進(jìn)行批量規(guī)范化處理,然后經(jīng)過9 個(gè)ST-GCN 單元,每個(gè)單元都進(jìn)行特征殘差融合,使得模型的學(xué)習(xí)能力有所增強(qiáng),最后經(jīng)過池化層、全連接層把數(shù)據(jù)轉(zhuǎn)化為256 維向量,將其送入softmax 分類器進(jìn)行分類。
在自制散打數(shù)據(jù)集上分別對C3D、LSTM 和ST-GCN 算法進(jìn)行網(wǎng)絡(luò)訓(xùn)練測試,實(shí)驗(yàn)結(jié)果如表3所示。
表3 動(dòng)作識(shí)別網(wǎng)絡(luò)模型性能比較
可以看出,ST-GCN 算法的準(zhǔn)確率相比LSTM、C3D 算法分別提升了4.6%、22.1%,表明了ST-GCN算法的高效性,在散打動(dòng)作識(shí)別分類任務(wù)上有著優(yōu)異的效果。散打動(dòng)作識(shí)別結(jié)果如圖4 所示,圖中所顯示的字母a 代表前擺拳。
圖4 散打動(dòng)作識(shí)別結(jié)果
首先將骨骼坐標(biāo)轉(zhuǎn)換成關(guān)節(jié)角度信息,選取左肩、左肘、右肩、右肘、左膝、左胯、右膝、右胯8 個(gè)關(guān)節(jié)點(diǎn),利用余弦定理進(jìn)行關(guān)節(jié)角度計(jì)算,如下式:
其次,由DTW 計(jì)算待測樣本和模板樣本8 個(gè)關(guān)節(jié)角度的DTW 距離。假設(shè)有測試序列B=(B1,B2,…,Bi,…,Bm),模板序列D=(D1,D2,…,Dj,…,Dn),其中Bi代表第i 幀的特征向量;Dj代表第j 幀的特征向量。若m 與n 相等,直接對兩個(gè)動(dòng)作序列計(jì)算累加距離。當(dāng)m 與n 不等,則采用DTW 算法使兩個(gè)動(dòng)作序列對齊,具體做法是將兩個(gè)序列構(gòu)造成m×n的矩陣,矩陣中的元素(i,j)表示兩個(gè)動(dòng)作序列對應(yīng)點(diǎn)Bi與Dj間的距離d(Bi,Dj),如下式:
式中,Biw與Djw分別表示動(dòng)作序列B 和D 的第i 幀和第j 幀的特征值;N 表示動(dòng)作序列維度。
兩個(gè)序列間的最佳匹配路徑定義為規(guī)整路徑,用W 表示,如圖5 所示。
圖5 規(guī)整路徑示意圖
它有3 個(gè)約束條件,條件滿足后每個(gè)格點(diǎn)路徑剩下3 個(gè)方向,如果路徑通過了格點(diǎn)(i,j),則下一步通過的格點(diǎn)只能是(i+1,j)、(i,j+1)、(i+1,j+1)其中之一。為得到最佳規(guī)整路徑,定義累加距離,如下式:
選擇數(shù)據(jù)集中的前擺拳作為評(píng)價(jià)對象,選取20個(gè)樣本作為測試序列,采用DTW 算法計(jì)算測試序列與標(biāo)準(zhǔn)序列的DTW 距離,作為相似性評(píng)估的指標(biāo)。實(shí)驗(yàn)部分結(jié)果如圖6 所示。
圖6 左肩關(guān)節(jié)角度的DTW 距離分布
從圖6 中可以看出,左肩關(guān)節(jié)角度的DTW 距離大部分分布在630°到1200°之間,少部分分布在1200°到1300°之間。舍棄少部分值,對8 個(gè)關(guān)節(jié)點(diǎn)的實(shí)驗(yàn)數(shù)據(jù)進(jìn)行分析,定義前擺拳評(píng)價(jià)方法,如下式:
式中,ea是單個(gè)角度特征的得分;ec是單個(gè)角度分配的分?jǐn)?shù),共有8 個(gè)關(guān)節(jié)角度,因此令ec取值為12.5,使得滿分達(dá)到100 分;d1是DTW 距離值;dmin是DTW 距離有效區(qū)間內(nèi)的最小值;fc是損失參數(shù)。
最后,即可用E 代表8 個(gè)關(guān)節(jié)角度得分的總和:
本研究通過YOLOv5s-CBAM 進(jìn)行人體目標(biāo)檢測,基于目標(biāo)檢測結(jié)果利用HRNet-DSC-CBAM 進(jìn)行人體骨骼關(guān)鍵點(diǎn)檢測,將得到的骨骼關(guān)鍵點(diǎn)坐標(biāo)構(gòu)造為骨架時(shí)空圖輸入ST-GCN 網(wǎng)絡(luò)實(shí)現(xiàn)散打動(dòng)作識(shí)別。其對自制數(shù)據(jù)集識(shí)別率達(dá)到92.8%。利用關(guān)節(jié)角度的DTW 距離也實(shí)現(xiàn)了對動(dòng)作評(píng)價(jià)公式的定義。實(shí)驗(yàn)結(jié)果表明方法具有有效性,對于輔助打分這一專業(yè)領(lǐng)域具有一定的實(shí)用價(jià)值。