劉懿鋒 陳錦煌 陳釗淇
摘? 要:鑒于此前隨時(shí)可能發(fā)生的居家工作、學(xué)習(xí)等突發(fā)情況,采用基于深度學(xué)習(xí)的機(jī)器視覺技術(shù),設(shè)計(jì)一種可在體育鍛煉方面進(jìn)行人體動(dòng)作識(shí)別的應(yīng)用?;赑yTorch深度學(xué)習(xí)框架進(jìn)行搭建,同時(shí)采用OpenMMLab的MMPose人體姿勢(shì)估計(jì)算法庫(kù)進(jìn)行輔助開發(fā)。經(jīng)過無(wú)數(shù)次的調(diào)試和改進(jìn),該應(yīng)用可以實(shí)現(xiàn)檢測(cè)人體姿勢(shì)的功能,但采集的樣本數(shù)不足以及所用設(shè)備機(jī)能不足,導(dǎo)致無(wú)法準(zhǔn)確識(shí)別各種不同的動(dòng)作并給出相應(yīng)的建議。
關(guān)鍵詞:人工智能;人體姿勢(shì);圖像識(shí)別;深度學(xué)習(xí)
中圖分類號(hào):TP311? 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):2096-4706(2023)17-0092-04
Research and Application of Human Motion Recognition in Sports Events
LIU Yifeng, CHEN Jinhuang, CHEN Zhaoqi
(School of Information and Intelligent Engineering, Guangzhou Xinhua University, Dongguan? 523133, China)
Abstract: Considering the potential unexpected situations such as work and study at home that may occur at any time before, a machine vision technology based on deep learning is adopted to design an application for human motion recognition in physical exercise. Build based on the PyTorch deep learning framework, and use OpenMMLab's MMPose human posture estimation algorithm library for auxiliary development. After countless debugging and improvements, the application can achieve the function of detecting human posture, but the insufficient number of samples collected, and the insufficient functionality of the equipment used make it difficult to accurately identify various movements and provide corresponding suggestions.
Keywords: artificial intelligence; human posture; image recognition; deep learning
0? 引? 言
此前新冠疫情期間,人們隨時(shí)有可能被隔離在家或者其他地方,這些隔離場(chǎng)所通??臻g狹小,使隔離者沒有充足的運(yùn)動(dòng)空間?;诖?,提出此項(xiàng)目。在項(xiàng)目中利用當(dāng)前已有的較為成熟的人體姿勢(shì)感知算法來進(jìn)行二次開發(fā),并在此基礎(chǔ)上增加動(dòng)作類型識(shí)別和建議的功能。圖像識(shí)別是機(jī)器學(xué)習(xí)領(lǐng)域的一個(gè)應(yīng)用,也是計(jì)算機(jī)視覺方面的一個(gè)研究方向。本文探索人體關(guān)節(jié)識(shí)別技術(shù)在生活中的一種用途,研究其使用價(jià)值。
首先對(duì)該項(xiàng)目用到的工具和一些數(shù)學(xué)公式進(jìn)行簡(jiǎn)單的說明。
1? 工具介紹
1.1? OpenMMLab
OpenMMLab是一個(gè)目前最為完備的、開源的計(jì)算機(jī)視覺體系和框架。在該項(xiàng)目中作為二次開發(fā)所使用的算法提供者。
1.2? MMPose
一個(gè)由OpenMMLab基于PyTorch開發(fā)的人體姿勢(shì)感知工具箱,在項(xiàng)目中利用其算法來進(jìn)行開發(fā)。
1.3? PyTorch
一個(gè)開源的Python深度學(xué)習(xí)框架。在項(xiàng)目的新功能開發(fā)的過程和所采用的算法均基于此框架制作。
1.4? 2D Human Pose Estimation(2D HPE)
其原理為在卷積神經(jīng)網(wǎng)絡(luò)中,對(duì)圖像的關(guān)鍵位點(diǎn),即人體的各個(gè)關(guān)節(jié)、面部、手部特征點(diǎn)的二維空間坐標(biāo)進(jìn)行預(yù)測(cè)。
2D HPE的主要實(shí)現(xiàn)方法為自底向上(bottom up)和自頂向下(top down)兩種方式。自底向上的工作方式為同時(shí)預(yù)測(cè)圖片中所有的關(guān)鍵點(diǎn),然后組合成人體,但這種方法在實(shí)驗(yàn)過程中經(jīng)常出現(xiàn)識(shí)別不準(zhǔn),識(shí)別出非人體的關(guān)鍵點(diǎn)或者錯(cuò)誤的人體關(guān)鍵點(diǎn)等問題,導(dǎo)致肢體連線出現(xiàn)問題和錯(cuò)誤識(shí)別人類目標(biāo)等問題。自頂向下的工作方式為先檢測(cè)人體,然后再對(duì)每個(gè)個(gè)體進(jìn)行預(yù)測(cè)關(guān)鍵點(diǎn),因此,在實(shí)驗(yàn)中該種方法的識(shí)別準(zhǔn)確度更高,在復(fù)雜場(chǎng)景下比自底向上更能準(zhǔn)確識(shí)別人類目標(biāo)。但當(dāng)人物數(shù)量增多時(shí),自頂向下的運(yùn)行速度較自底向上慢,因此自底向上方法用在對(duì)準(zhǔn)確度要求不高、且常常處于人數(shù)多的情況下使用。但在本次項(xiàng)目中并非處于多人的環(huán)境下,故不采用自頂向下的方法。如圖1所示為自底向上結(jié)果。如圖2所示為自頂向下結(jié)果??梢悦黠@地發(fā)現(xiàn)自底向上的方法在低清晰度場(chǎng)景下出現(xiàn)預(yù)測(cè)了錯(cuò)誤的特征點(diǎn)和錯(cuò)誤的肢體連線,導(dǎo)致出現(xiàn)無(wú)法識(shí)別動(dòng)作的結(jié)果,而自頂向下在低清晰度場(chǎng)景下較為準(zhǔn)確地識(shí)別關(guān)鍵點(diǎn),即使存在身體上的一些錯(cuò)誤的連線,但對(duì)識(shí)別對(duì)象的肢體情況產(chǎn)生的影響較小。
1.4.1? Faster R-CNN
識(shí)別目標(biāo)物體,并進(jìn)行分類。運(yùn)行過程為對(duì)圖像進(jìn)行多重卷積,并通過池化運(yùn)算用于保證結(jié)果識(shí)別的準(zhǔn)確性。
如圖3所示為該算法的執(zhí)行流程,其中backbone起到為提取整張圖片的特征的作用,利用共享的基礎(chǔ)卷積層;RPN為候選檢測(cè)框生成網(wǎng)絡(luò),起到為后續(xù)算法執(zhí)行預(yù)測(cè)人體姿勢(shì)和識(shí)別人體目標(biāo)的時(shí)候限定范圍的作用;Roi pooling and classifier起到對(duì)物體分類,并調(diào)整目標(biāo)框坐標(biāo),并把框選結(jié)果輸出傳入下一結(jié)構(gòu)的作用。
1.4.2? High-Resolution Net(HRNet)
人體姿態(tài)預(yù)測(cè)高分辨率網(wǎng)絡(luò)(High-Resolution Net, HRNet)原理為產(chǎn)生關(guān)鍵點(diǎn)熱圖。不同基于回歸坐標(biāo)的方法(如DeepPose),這種基于熱圖的方法較前者能更好地保留空間位置信息,在設(shè)計(jì)上更符合卷積神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)特征,因此在預(yù)測(cè)精度上有更佳的表現(xiàn)。
2? 實(shí)現(xiàn)方式
2.1? COCO數(shù)據(jù)集
加入自己的數(shù)據(jù)時(shí)將訓(xùn)練數(shù)據(jù)置于COCO train2017數(shù)據(jù)集中。寫入該數(shù)據(jù)集因?yàn)檎{(diào)用MMPose的HRNet時(shí)便于調(diào)試和讀取相關(guān)模型。
2.2? 模型建立
2.2.1? 動(dòng)作判定模型
用MMPose處理收集的示范動(dòng)作視頻。識(shí)別視頻中的對(duì)象,找出特征點(diǎn),連線構(gòu)成身體結(jié)構(gòu)。測(cè)量連線結(jié)果之間的角度,記錄并劃定取值范圍,根據(jù)收集到的數(shù)值,比對(duì)不同動(dòng)作設(shè)定的取值范圍,得到當(dāng)前動(dòng)作的一個(gè)判據(jù)。測(cè)量肢體之間的距離作為判據(jù),起到分類出用戶當(dāng)前進(jìn)行運(yùn)動(dòng)的種類為固定還是動(dòng)態(tài)的,是俯臥還是直立的作用。使用肢體角度和肢體距離的結(jié)果來識(shí)別動(dòng)作,達(dá)到提高準(zhǔn)確度的目的。對(duì)于動(dòng)作是否處于建議的標(biāo)準(zhǔn)值,則是在判斷動(dòng)作的角度范圍基礎(chǔ)上,另外設(shè)定一個(gè)取值范圍,稱之為推薦的取值范圍,該范圍在判別動(dòng)作類型的取值范圍內(nèi)。
訓(xùn)練為用相應(yīng)的程序?qū)σ曨l分析。在用軟件分析之前,需要人工提前對(duì)視頻進(jìn)行分類工作,再進(jìn)行訓(xùn)練,還需要做好對(duì)視頻標(biāo)記的工作。在開始階段,即使使用現(xiàn)成的算法起到識(shí)別的作用,但結(jié)果沒有人類準(zhǔn)確度、可信度高。訓(xùn)練時(shí)人工檢驗(yàn)角度識(shí)別時(shí),糾正有可能會(huì)出現(xiàn)尋找需要測(cè)量的邊出錯(cuò)的問題,提高識(shí)別的準(zhǔn)確性。還起到避免模型污染的問題。
在訓(xùn)練和實(shí)際使用時(shí),需要配置算法的參數(shù):使用的算法類型,用到的預(yù)訓(xùn)練模型等。使用時(shí)將預(yù)訓(xùn)練模型設(shè)定為“TopDown”,主干網(wǎng)絡(luò)設(shè)定為“ResNet”。主干網(wǎng)絡(luò)設(shè)定模型深度的值為“50”。設(shè)置圖像處理輸入分辨率為“192×256”,熱圖輸出設(shè)置為“48×64”。對(duì)頭部的輸出通道數(shù)和關(guān)節(jié)的數(shù)量均設(shè)置為“17”,用于辨認(rèn)用戶身體不同部位的當(dāng)前姿勢(shì)狀態(tài)。
配置PyTorch優(yōu)化器為Adam優(yōu)化器,lr(學(xué)習(xí)率)和weight decay(權(quán)值衰減)分別設(shè)定為0.000 3和0.000 1。
此外,為了與用戶實(shí)時(shí)互動(dòng),配置調(diào)用攝像頭以及處理攝像頭輸入數(shù)據(jù)的相關(guān)方法。對(duì)整體輸入幀率設(shè)定為30幀,并根據(jù)機(jī)器性能進(jìn)行調(diào)節(jié),范圍在10~30幀之間浮動(dòng),以攝像頭能夠滿足輸入的幀數(shù)為準(zhǔn)。對(duì)讀取本地視頻的處理,采用相同的最大輸入幀率限制。圖4為算法的執(zhí)行流程。
2.2.2? 用戶體型測(cè)量
通過視覺的方式確認(rèn)物體的尺寸,需要確切的參照物。以國(guó)際標(biāo)準(zhǔn)ISO/IEC 7810中定義:ID-1標(biāo)準(zhǔn)定義的卡片為參照物進(jìn)行測(cè)量。
先使用Faster RCNN識(shí)別用戶位置,定位卡片。得到卡片位置后,再使用者的腳部開始疊加至頭頂并計(jì)數(shù)。到最后若不為完整卡片時(shí),將其平分為53份(大約1 mm一份)。再計(jì)算到頭頂?shù)姆輸?shù),計(jì)算方式如式(1)所示。其中h為身高(單位:mm),n為卡片數(shù)量,k為分割后占用的份數(shù)。
2.2.3? 協(xié)助用戶選擇方法
結(jié)合用戶提供的身體信息數(shù)據(jù)和測(cè)量得到的數(shù)據(jù),計(jì)算出BMI指數(shù),判斷用戶的健康情況。年齡上,青少年的運(yùn)動(dòng)強(qiáng)度、時(shí)間、頻率可接受程度比中老年人更高。體重上,正常體重的比過輕、超重、肥胖能接受更高強(qiáng)度的運(yùn)動(dòng)。
據(jù)此,以持續(xù)時(shí)長(zhǎng)為30分鐘,強(qiáng)度為中高強(qiáng)度作為默認(rèn)值,并根據(jù)用戶實(shí)際情況自行調(diào)整。用戶的實(shí)際情況指用戶根據(jù)自身情況,結(jié)合機(jī)器計(jì)算結(jié)果來調(diào)整。
2.3? 實(shí)現(xiàn)效果
圖5為運(yùn)行的效果圖(以導(dǎo)入俯臥撐視頻為例),通過顯示在人體上的線條、方框和點(diǎn)為姿勢(shì)估計(jì)算法計(jì)算的可視化結(jié)果。方框標(biāo)記對(duì)象所在位置,線條對(duì)象的肢體和軀干、頭部輪廓,點(diǎn)面部和手指的特征點(diǎn)。
圖5由2D HPE自頂而下方法得。實(shí)驗(yàn)時(shí),所使用的算法沒有對(duì)上下顛倒的圖像做訓(xùn)練,出現(xiàn)無(wú)法識(shí)別的問題。根據(jù)HRNet利用二維矩陣計(jì)算,可以增加檢測(cè)圖像顛倒檢測(cè),通過矩陣轉(zhuǎn)置的方式輸出結(jié)果。這導(dǎo)致每一次輸入在計(jì)算前進(jìn)行一次檢測(cè),增大了算法的時(shí)間復(fù)雜度,消耗更多的計(jì)算機(jī)性能,故利用該錯(cuò)誤做出提示,找出有問題的材料。在成品則是利用該錯(cuò)誤提示用戶對(duì)圖像方向做調(diào)整。
3? 結(jié)? 論
基本實(shí)現(xiàn)一種基于人體姿勢(shì)預(yù)測(cè)的一種運(yùn)動(dòng)檢測(cè)和人體體型測(cè)量的測(cè)量方法。通過軟件的輔助,協(xié)助用戶更好地完成動(dòng)作。機(jī)器識(shí)別時(shí)仍不可避免地存在誤差和對(duì)非常規(guī)場(chǎng)景出現(xiàn)多種運(yùn)行問題,這需要投入更多的樣品和結(jié)合實(shí)際使用進(jìn)行自學(xué)習(xí)來降低誤差。未來將以設(shè)法優(yōu)化對(duì)圖像方向性要求、運(yùn)行速度著手,探討如何在對(duì)性能影響最小的情況下,做到不區(qū)分方向能快速且準(zhǔn)確地識(shí)別目標(biāo)。
參考文獻(xiàn):
[1] WANG J D,SUN K,CHENG T H,et al. Deep High-Resolution Representation Learning for Visual Recognition [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2021,43(10):3349-3364.
[2] TOSHEV A,SZEGEDY C. DeepPose: Human Pose Estimation via Deep Neural Networks [C]//2014 IEEE Conference on Computer Vision and Pattern Recognition.Columbus:IEEE,2014:1653-1660.
[3] LIN T Y,MAIRE M,BELONGIE S,et al. Microsoft COCO:Common Objects in Context [J/OL].arXiv:1405.0312 [cs.CV].[2023-02-28].https://arxiv.org/abs/1405.0312.
[4] REN S Q,HE K M,GIRSHICK R,et al. Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2017,39(6):1137-1149.
[5] 廖星宇.深度學(xué)習(xí)入門之PyTorch [M].北京:電子工業(yè)出版社,2017.
[6] 陳先昌.基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)算法與應(yīng)用研究 [D].杭州:浙江工商大學(xué),2014.
[7] 商湯升級(jí)人工智能算法開放體系,開放超600種預(yù)訓(xùn)練模型 [J].中國(guó)安防,2020(8):74.
[8] 張靜靜,寧媛,章成學(xué).深度學(xué)習(xí)的二維人體姿態(tài)估計(jì)綜述 [J].智能計(jì)算機(jī)與應(yīng)用,2021,11(6):139-143.
[9] 虞乃君.一種在微型計(jì)算機(jī)上提高二維快速傅里葉變換速度的方法—子矩陣算法 [J].光學(xué)工程,1983(4):41-46.
[10] 張海明,史濤.基于改進(jìn)FasterR-CNN的目標(biāo)檢測(cè)算法研究 [J].重慶理工大學(xué)學(xué)報(bào):自然科學(xué),2022,36(9):179-186.
[11] 薛艷林.計(jì)算機(jī)圖形圖像處理技術(shù)及應(yīng)用 [J].計(jì)算機(jī)與網(wǎng)絡(luò),2021,47(24):39.
[12] 劉宇川,張朋柱.基于模糊Petri網(wǎng)的個(gè)性化運(yùn)動(dòng)方案智能生成 [J].系統(tǒng)管理學(xué)報(bào),2022,31(1):159-166.
[13] DAI H L,PENG X,SHI X H,et al. Reveal training performance mystery between Tensor Flow and PyTorch in the single GPU environment [J].Science China (Information Sciences),2022,65(1):147-163.
[14] 程世輝,盧翠英.算法的時(shí)間復(fù)雜度分析 [J].河南教育學(xué)院學(xué)報(bào):自然科學(xué)版,2007(4):20-23.
[15] 豐志強(qiáng),尹文強(qiáng),孫艷,等.基于性別差異的高血壓患者自測(cè)健康與BMI關(guān)系研究 [J].中國(guó)衛(wèi)生統(tǒng)計(jì),2022,39(4):509-512+517.
[16] 滕騰.基于BMI指數(shù)的大學(xué)生體質(zhì)健康統(tǒng)計(jì)分析 [J].徐州工程學(xué)院學(xué)報(bào):自然科學(xué)版,2021,36(3):86-92.
[17] 李飛.基于特征融合的人體動(dòng)作識(shí)別 [D].西安:西安理工大學(xué),2018.
[18] 王松,黨建武,王陽(yáng)萍,等.基于關(guān)節(jié)間夾角變化序列的動(dòng)作識(shí)別算法研究 [J].計(jì)算機(jī)應(yīng)用與軟件,2017,34(6):176-179+200.
[19] 劉倩,趙柏山.基于圖像的動(dòng)作識(shí)別與評(píng)價(jià)方法 [J].微處理機(jī),2022,43(5):44-48.
[20] 唐超,王文劍,李偉,等.基于多學(xué)習(xí)器協(xié)同訓(xùn)練模型的人體行為識(shí)別方法 [J].軟件學(xué)報(bào),2015,26(11):2939-2950.
[21] 張玉紅,白韌祥,孟凡軍,等.圖像識(shí)別中的卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用研究 [J].新技術(shù)新工藝,2021(1):52-55.
作者簡(jiǎn)介:劉懿鋒(2003—),男,漢族,廣東廣州人,本科在讀,研究方向:人工智能、圖像識(shí)別技術(shù);陳錦煌(1988—),男,漢族,廣東潮州人,講師,工程師,碩士研究生,研究方向:智能控制;陳釗淇(1994—),男,漢族,廣東潮州人,助理實(shí)驗(yàn)師,本科,研究方向:嵌入式、傳感器技術(shù)。