本發明涉及計算機視覺和機器學習,特別涉及一種基于視覺檢測的引體向上測試計數和完成質量評價方法。
背景技術:
1、引體向上,指依靠自身力量克服自身體重向上做功的垂吊練習。主要測試上肢肌肉力量的發展水平,以及臂力和腰腹力量,在完成一個完整的引體向上的過程中需要眾多背部骨骼肌和上肢骨骼肌的共同參與做功,是一項多關節復合動作練習,是較好的鍛煉上肢的方法,是所有發展背部骨骼肌肌力和肌耐力的練習方式中參與肌肉最多、運動模式最復雜、發展背部骨骼肌的肌力和肌耐力最有效的練習方式,是最基本的鍛煉背部的方法,是衡量男性體質的重要參考標準和項目之一。因此,訓練引體向上是提高人民群眾身體素質的有效方式。
2、傳統的引體向上測試計數方法使用傳感器進行計數,這種方法無法檢測到受試者全身動作,只能檢測特定部位。對于受試者是否做了合格的引體向上動作則無法檢測。而且對于受試者的引體動作完成質量無法進行量化和精細化評估。
3、因此,現有技術還有待改進和提高。
技術實現思路
1、鑒于上述現有技術的不足之處,本發明的目的在于提供一種基于視覺檢測的引體向上測試計數和完成質量評價方法,旨在解決現有技術中對引體向上過程中人體標準動作的檢測技術差,導致計數不準確和無法量化每次引體向上完成質量的問題。
2、為了達到上述目的,本發明采取了以下技術方案:
3、第一方面,一種基于視覺檢測的引體向上測試計數和完成質量評價方法,包括:
4、s10、數據采集:使用攝像頭,獲取被測試者進行引體向上動作的視頻數據;
5、s11、人體關鍵點檢測:使用mediapipe中的blazepose模型對采集到的圖像進行人體關鍵點檢測;
6、s12、人體姿勢特征提取:提取視頻幀中人體關鍵點的特征數據并將其轉換為嵌入向量;
7、s13、k-nn分類器訓練:準備一個引體向上圖像訓練集樣本,在每個樣本圖片上運行blazepose模型獲得姿勢關鍵點并轉換為嵌入向量輸入到k-nn分類器中進行訓練得到引體向上數據集,該訓練集圖像樣本應包括:
8、雙手懸掛在單杠上即直臂懸垂狀態的圖像樣本數據;
9、雙手向上拉起的圖像樣本數據;
10、下頜過單杠時的圖像樣本數據;
11、雙手下放恢復直臂懸垂狀態的圖像樣本數據;
12、s14、當前動作分類計數和評分:根據單杠位置和受試者雙手位置,設置計數起始,實時捕捉受試者人體姿勢,對每一幀的人體姿勢進行特征提取,將特征輸入至訓練好的k-nn分類器中進行分類判斷和動作評分,實現計數和評分。
13、s15、計數結果和評分顯示:將計數和評分結果展示在設計好的界面上。
14、進一步地,所述在使用k-nn分類器對動作進行分類前先制作好一個引體向上動作的數據集,該數據集對一個完整的引體向上劃分為四個階段,并對每個樣本進行標注和評分。
15、進一步地,所述根據單杠位置和受試者雙手位置,設置計數起始包括:
16、在進行引體向上計數前先進行單杠位置的檢測和受試者雙手位置的檢測,先使用霍夫直線段檢測的方法和測試時單杠的一般位置進行限定的方法來對單杠的位置進行檢測判斷,當檢測到單杠后再進行受試者雙手的檢測,當檢測到受試者的雙手都在單杠上后,開始進行引體向上測試的計數。
17、進一步地,所述實時捕捉受試者人體姿勢,對每一幀的人體姿勢進行特征提取,將特征輸入至訓練好的k-nn分類器中進行分類判斷包括:
18、在實時捕捉的過程中,對每一幀的人體姿勢進行特征提取,并將特征輸入到訓練好的k-nn分類器中進行分類,根據分類結果,判斷當前動作是否為引體向上動作,先對視頻幀中的人體姿勢進行兩次過濾,即最大距離過濾和平均距離過濾,最大距離過濾:設p為當前幀提取的人體姿勢樣本,d為包含所有已知姿勢樣本的數據集,每個樣本記為di∈d,最大距離dmax(p,di)為:
19、
20、pj和dij分別是p和di在第j個關節的坐標,||.||表示兩點間的歐幾里得距離,選擇與p距離最小的前n個樣本(本發明中此處n設置為30),構成集合smax:
21、
22、平均距離過濾:在smax中計算p與各樣本的平均距離davg(p,smax):
23、
24、選擇平均距離最小的前n個樣本(本發明中此處的n設為10),形成集合savg;平均距離過濾的目的是找到與目標姿勢平均距離最近的一些樣本。
25、進一步地,所述實時捕捉受試者人體姿勢,對每一幀的人體姿勢進行特征提取,將特征輸入至訓練好的k-nn分類器中進行分類判斷還包括:
26、再對分類結果進行平滑,平滑方法為移動指數平均,即對于savg中的分類結果,應用移動指數平均平滑(ema),平滑因子α為(0<α<1),平滑后的分類概率向量psmooth為:
27、psmooth(t)=αpsmooth(t-1)+(1-α)p(t)
28、其中,p(t)是當前時間步t的分類概率向量。根據平滑后的這10個樣本,找出這10個樣本中哪類動作次數最多,就將當前動作分類為該類別。
29、進一步地,所述實時捕捉受試者人體姿勢,對每一幀的人體姿勢進行特征提取,將特征輸入至訓練好的k-nn分類器中進行分類判斷還包括:
30、如果當前動作是引體向上動作,則根據當前姿勢的置信度值來判斷當前動作是否達到了引體向上計數的標準,如果置信度值超過了設置的上置信度閾值且隨后低于設置的下置信度閾值,則判定受試者做了一次完整的引體向上;如果當前動作被分類為引體向上動作,則計算其被分為引體向上動作的置信度值,令cup和cdown為上置信度閾值和下置信度閾值(且cdown<cup),通過平滑后的概率向量psmooth,確定當前動作置信度conft,若動作被分類為引體向上,且其置信度滿足:
31、cdown<conft(t)≤cup
32、如果置信度conft在某時刻t′首次超過cup,并在隨后的某個時刻t″下降到cdown以下,此時判定完成一次完整引體向上動作,計數器加一。
33、進一步地,所述根據當前引體動作進行評分包括:
34、在將當前動作識別為引體向上動作后,判斷該引體動作屬于哪一階段,并根據其與數據集中相對應的標準動作進行對比判斷得出當前動作是否為標準動作,如果是標準動作則記一分,否則為零分,隨后對該階段引體動作所有視頻幀進行累加并求平均得到一個階段的評分,然后給與四個階段不同的權重并對分數累加得到整個引體向上動作的評分,最后對評分進行轉換得到整個引體向上動作的完成度。
35、進一步地,人體關鍵點包含以下至少一種:對應于受試者雙臂處的關鍵點、對應于受試者臉部的關鍵點、對應于受試者雙腿處的關鍵點。
36、本發明所采用的技術方案具有以下有益效果:
37、(1)非接觸式測試:該方法實現了基于計算機視覺的人體關鍵點識別,可以對引體向上動作進行準確判斷,而不需要對被測試者進行任何接觸式測量。這可以減少測試過程中對被測試者的干擾和不適感。
38、(2)操作簡便:該方法不需要使用任何額外的測量裝置或傳感器,只需要通過攝像頭獲取人體圖像即可實現引體向上測試。這可以大大減少測試的復雜度和操作難度,使測試更加簡便易行。
39、(3)高效準確實時和精細化評估:該方法基于k最近鄰算法對人體關鍵點進行分類,可以快速而準確地評估被測試者的引體向上動作。同時,該方法還可以實時顯示引體向上測試結果。并且通過對引體向上動作進行階段劃分,并對每個階段的視頻幀采用procrustes距離進行姿勢匹配,可以實現動作質量的精細化評估。這種方法能夠捕捉到動作執行過程中的細節差異,而不僅僅是最終結果,有助于受試者了解自身在哪個具體階段需要改進。
40、(4)客觀性與一致性:利用procrustes分析的姿勢匹配算法,評分過程可以高度自動化,減少人為主觀判斷帶來的誤差,確保了引體向上完成質量評價的一致性和公平性。