劉懿鋒 陳錦煌 陳釗淇



摘? 要:鑒于此前隨時可能發生的居家工作、學習等突發情況,采用基于深度學習的機器視覺技術,設計一種可在體育鍛煉方面進行人體動作識別的應用。基于PyTorch深度學習框架進行搭建,同時采用OpenMMLab的MMPose人體姿勢估計算法庫進行輔助開發。經過無數次的調試和改進,該應用可以實現檢測人體姿勢的功能,但采集的樣本數不足以及所用設備機能不足,導致無法準確識別各種不同的動作并給出相應的建議。
關鍵詞:人工智能;人體姿勢;圖像識別;深度學習
中圖分類號:TP311? 文獻標識碼:A? 文章編號: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? 引? 言
此前新冠疫情期間,人們隨時有可能被隔離在家或者其他地方,這些隔離場所通常空間狹小,使隔離者沒有充足的運動空間。基于此,提出此項目。在項目中利用當前已有的較為成熟的人體姿勢感知算法來進行二次開發,并在此基礎上增加動作類型識別和建議的功能。圖像識別是機器學習領域的一個應用,也是計算機視覺方面的一個研究方向。本文探索人體關節識別技術在生活中的一種用途,研究其使用價值。
首先對該項目用到的工具和一些數學公式進行簡單的說明。
1? 工具介紹
1.1? OpenMMLab
OpenMMLab是一個目前最為完備的、開源的計算機視覺體系和框架。在該項目中作為二次開發所使用的算法提供者。
1.2? MMPose
一個由OpenMMLab基于PyTorch開發的人體姿勢感知工具箱,在項目中利用其算法來進行開發。
1.3? PyTorch
一個開源的Python深度學習框架。在項目的新功能開發的過程和所采用的算法均基于此框架制作。
1.4? 2D Human Pose Estimation(2D HPE)
其原理為在卷積神經網絡中,對圖像的關鍵位點,即人體的各個關節、面部、手部特征點的二維空間坐標進行預測。
2D HPE的主要實現方法為自底向上(bottom up)和自頂向下(top down)兩種方式。自底向上的工作方式為同時預測圖片中所有的關鍵點,然后組合成人體,但這種方法在實驗過程中經常出現識別不準,識別出非人體的關鍵點或者錯誤的人體關鍵點等問題,導致肢體連線出現問題和錯誤識別人類目標等問題。自頂向下的工作方式為先檢測人體,然后再對每個個體進行預測關鍵點,因此,在實驗中該種方法的識別準確度更高,在復雜場景下比自底向上更能準確識別人類目標。但當人物數量增多時,自頂向下的運行速度較自底向上慢,因此自底向上方法用在對準確度要求不高、且常常處于人數多的情況下使用。但在本次項目中并非處于多人的環境下,故不采用自頂向下的方法。如圖1所示為自底向上結果。如圖2所示為自頂向下結果。可以明顯地發現自底向上的方法在低清晰度場景下出現預測了錯誤的特征點和錯誤的肢體連線,導致出現無法識別動作的結果,而自頂向下在低清晰度場景下較為準確地識別關鍵點,即使存在身體上的一些錯誤的連線,但對識別對象的肢體情況產生的影響較小。
1.4.1? Faster R-CNN
識別目標物體,并進行分類。運行過程為對圖像進行多重卷積,并通過池化運算用于保證結果識別的準確性。
如圖3所示為該算法的執行流程,其中backbone起到為提取整張圖片的特征的作用,利用共享的基礎卷積層;RPN為候選檢測框生成網絡,起到為后續算法執行預測人體姿勢和識別人體目標的時候限定范圍的作用;Roi pooling and classifier起到對物體分類,并調整目標框坐標,并把框選結果輸出傳入下一結構的作用。
1.4.2? High-Resolution Net(HRNet)
人體姿態預測高分辨率網絡(High-Resolution Net, HRNet)原理為產生關鍵點熱圖。不同基于回歸坐標的方法(如DeepPose),這種基于熱圖的方法較前者能更好地保留空間位置信息,在設計上更符合卷積神經網絡的設計特征,因此在預測精度上有更佳的表現。
2? 實現方式
2.1? COCO數據集
加入自己的數據時將訓練數據置于COCO train2017數據集中。寫入該數據集因為調用MMPose的HRNet時便于調試和讀取相關模型。
2.2? 模型建立
2.2.1? 動作判定模型
用MMPose處理收集的示范動作視頻。識別視頻中的對象,找出特征點,連線構成身體結構。測量連線結果之間的角度,記錄并劃定取值范圍,根據收集到的數值,比對不同動作設定的取值范圍,得到當前動作的一個判據。測量肢體之間的距離作為判據,起到分類出用戶當前進行運動的種類為固定還是動態的,是俯臥還是直立的作用。使用肢體角度和肢體距離的結果來識別動作,達到提高準確度的目的。對于動作是否處于建議的標準值,則是在判斷動作的角度范圍基礎上,另外設定一個取值范圍,稱之為推薦的取值范圍,該范圍在判別動作類型的取值范圍內。
訓練為用相應的程序對視頻分析。在用軟件分析之前,需要人工提前對視頻進行分類工作,再進行訓練,還需要做好對視頻標記的工作。在開始階段,即使使用現成的算法起到識別的作用,但結果沒有人類準確度、可信度高。訓練時人工檢驗角度識別時,糾正有可能會出現尋找需要測量的邊出錯的問題,提高識別的準確性。還起到避免模型污染的問題。
在訓練和實際使用時,需要配置算法的參數:使用的算法類型,用到的預訓練模型等。使用時將預訓練模型設定為“TopDown”,主干網絡設定為“ResNet”。主干網絡設定模型深度的值為“50”。設置圖像處理輸入分辨率為“192×256”,熱圖輸出設置為“48×64”。對頭部的輸出通道數和關節的數量均設置為“17”,用于辨認用戶身體不同部位的當前姿勢狀態。
配置PyTorch優化器為Adam優化器,lr(學習率)和weight decay(權值衰減)分別設定為0.000 3和0.000 1。
此外,為了與用戶實時互動,配置調用攝像頭以及處理攝像頭輸入數據的相關方法。對整體輸入幀率設定為30幀,并根據機器性能進行調節,范圍在10~30幀之間浮動,以攝像頭能夠滿足輸入的幀數為準。對讀取本地視頻的處理,采用相同的最大輸入幀率限制。圖4為算法的執行流程。
2.2.2? 用戶體型測量
通過視覺的方式確認物體的尺寸,需要確切的參照物。以國際標準ISO/IEC 7810中定義:ID-1標準定義的卡片為參照物進行測量。
先使用Faster RCNN識別用戶位置,定位卡片。得到卡片位置后,再使用者的腳部開始疊加至頭頂并計數。到最后若不為完整卡片時,將其平分為53份(大約1 mm一份)。再計算到頭頂的份數,計算方式如式(1)所示。其中h為身高(單位:mm),n為卡片數量,k為分割后占用的份數。
2.2.3? 協助用戶選擇方法
結合用戶提供的身體信息數據和測量得到的數據,計算出BMI指數,判斷用戶的健康情況。年齡上,青少年的運動強度、時間、頻率可接受程度比中老年人更高。體重上,正常體重的比過輕、超重、肥胖能接受更高強度的運動。
據此,以持續時長為30分鐘,強度為中高強度作為默認值,并根據用戶實際情況自行調整。用戶的實際情況指用戶根據自身情況,結合機器計算結果來調整。
2.3? 實現效果
圖5為運行的效果圖(以導入俯臥撐視頻為例),通過顯示在人體上的線條、方框和點為姿勢估計算法計算的可視化結果。方框標記對象所在位置,線條對象的肢體和軀干、頭部輪廓,點面部和手指的特征點。
圖5由2D HPE自頂而下方法得。實驗時,所使用的算法沒有對上下顛倒的圖像做訓練,出現無法識別的問題。根據HRNet利用二維矩陣計算,可以增加檢測圖像顛倒檢測,通過矩陣轉置的方式輸出結果。這導致每一次輸入在計算前進行一次檢測,增大了算法的時間復雜度,消耗更多的計算機性能,故利用該錯誤做出提示,找出有問題的材料。在成品則是利用該錯誤提示用戶對圖像方向做調整。
3? 結? 論
基本實現一種基于人體姿勢預測的一種運動檢測和人體體型測量的測量方法。通過軟件的輔助,協助用戶更好地完成動作。機器識別時仍不可避免地存在誤差和對非常規場景出現多種運行問題,這需要投入更多的樣品和結合實際使用進行自學習來降低誤差。未來將以設法優化對圖像方向性要求、運行速度著手,探討如何在對性能影響最小的情況下,做到不區分方向能快速且準確地識別目標。
參考文獻:
[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] 廖星宇.深度學習入門之PyTorch [M].北京:電子工業出版社,2017.
[6] 陳先昌.基于卷積神經網絡的深度學習算法與應用研究 [D].杭州:浙江工商大學,2014.
[7] 商湯升級人工智能算法開放體系,開放超600種預訓練模型 [J].中國安防,2020(8):74.
[8] 張靜靜,寧媛,章成學.深度學習的二維人體姿態估計綜述 [J].智能計算機與應用,2021,11(6):139-143.
[9] 虞乃君.一種在微型計算機上提高二維快速傅里葉變換速度的方法—子矩陣算法 [J].光學工程,1983(4):41-46.
[10] 張海明,史濤.基于改進FasterR-CNN的目標檢測算法研究 [J].重慶理工大學學報:自然科學,2022,36(9):179-186.
[11] 薛艷林.計算機圖形圖像處理技術及應用 [J].計算機與網絡,2021,47(24):39.
[12] 劉宇川,張朋柱.基于模糊Petri網的個性化運動方案智能生成 [J].系統管理學報,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] 程世輝,盧翠英.算法的時間復雜度分析 [J].河南教育學院學報:自然科學版,2007(4):20-23.
[15] 豐志強,尹文強,孫艷,等.基于性別差異的高血壓患者自測健康與BMI關系研究 [J].中國衛生統計,2022,39(4):509-512+517.
[16] 滕騰.基于BMI指數的大學生體質健康統計分析 [J].徐州工程學院學報:自然科學版,2021,36(3):86-92.
[17] 李飛.基于特征融合的人體動作識別 [D].西安:西安理工大學,2018.
[18] 王松,黨建武,王陽萍,等.基于關節間夾角變化序列的動作識別算法研究 [J].計算機應用與軟件,2017,34(6):176-179+200.
[19] 劉倩,趙柏山.基于圖像的動作識別與評價方法 [J].微處理機,2022,43(5):44-48.
[20] 唐超,王文劍,李偉,等.基于多學習器協同訓練模型的人體行為識別方法 [J].軟件學報,2015,26(11):2939-2950.
[21] 張玉紅,白韌祥,孟凡軍,等.圖像識別中的卷積神經網絡應用研究 [J].新技術新工藝,2021(1):52-55.
作者簡介:劉懿鋒(2003—),男,漢族,廣東廣州人,本科在讀,研究方向:人工智能、圖像識別技術;陳錦煌(1988—),男,漢族,廣東潮州人,講師,工程師,碩士研究生,研究方向:智能控制;陳釗淇(1994—),男,漢族,廣東潮州人,助理實驗師,本科,研究方向:嵌入式、傳感器技術。