• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于BlazePose和KNN 的健身計(jì)數(shù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

      2023-07-12 08:44:26孔亞琪
      軟件工程 2023年7期
      關(guān)鍵詞:計(jì)數(shù)器置信度關(guān)鍵點(diǎn)

      孔亞琪,劉 宇

      (南京郵電大學(xué)教育科學(xué)與技術(shù)學(xué)院,江蘇 南京 210023)

      0 引言(Introduction)

      目前,健身運(yùn)動(dòng)已經(jīng)成為人們的一種生活方式,AI健身技術(shù)可以幫助用戶更好地完成健身動(dòng)作,從而達(dá)到更好的健身效果。健身動(dòng)作具有多樣性和復(fù)雜性的特點(diǎn),現(xiàn)有的健身動(dòng)作識(shí)別與計(jì)數(shù)方法尚存在一些問(wèn)題,例如識(shí)別精度低、計(jì)數(shù)不準(zhǔn)等。因此,如何提高健身動(dòng)作識(shí)別與計(jì)數(shù)的速度和準(zhǔn)確率,成為當(dāng)前研究的熱點(diǎn)和難點(diǎn)。

      近年來(lái),國(guó)內(nèi)外學(xué)者對(duì)于健身動(dòng)作識(shí)別與計(jì)數(shù)進(jìn)行了廣泛的研究。其中,基于深度學(xué)習(xí)的方法得到了廣泛應(yīng)用。例如,YANG等[1]使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)識(shí)別深蹲和俯臥撐等動(dòng)作,但是此方法需要大量的數(shù)據(jù)集與計(jì)算量才能達(dá)到較高的準(zhǔn)確度?;趥鞲衅鞯姆椒ㄊ且环N常見的健身計(jì)數(shù)器的設(shè)計(jì)方案,主要使用加速度計(jì)、陀螺儀等傳感器測(cè)量用戶的運(yùn)動(dòng)狀態(tài),并統(tǒng)計(jì)用戶完成的動(dòng)作次數(shù)。例如,MURO-DE-LAHERRAN等[2]使用陀螺儀和加速度儀計(jì)數(shù)深蹲、引體向上等動(dòng)作。盡管此方法具有較高的計(jì)數(shù)準(zhǔn)確度,但傳感器的佩戴會(huì)對(duì)用戶運(yùn)動(dòng)過(guò)程的舒適度和體驗(yàn)感造成一定的影響。為解決以上問(wèn)題,本文使用BlazePose模型對(duì)人體的33個(gè)關(guān)鍵點(diǎn)進(jìn)行檢測(cè),運(yùn)用KNN算法作為動(dòng)作分類器,對(duì)懸停動(dòng)作與當(dāng)前動(dòng)作關(guān)鍵點(diǎn)之間的距離進(jìn)行相似度度量,用于判斷用戶是否處于健身的動(dòng)作中,加入計(jì)數(shù)器統(tǒng)計(jì)動(dòng)作次數(shù),并對(duì)其健身動(dòng)作進(jìn)行實(shí)時(shí)記錄。

      1 系統(tǒng)簡(jiǎn)介(System introduction)

      本文所提健身動(dòng)作檢測(cè)與計(jì)數(shù)系統(tǒng)基于BlazePose模型和KNN算法,可以自動(dòng)檢測(cè)和計(jì)數(shù)多種常見的健身動(dòng)作,如深蹲、俯臥撐、引體向上、仰臥起坐等。該系統(tǒng)利用BlazePose模型實(shí)時(shí)跟蹤人體骨骼關(guān)節(jié),提取人體運(yùn)動(dòng)動(dòng)作的特征,并使用KNN算法判斷當(dāng)前的健身動(dòng)作類型并加入計(jì)數(shù)器進(jìn)行計(jì)數(shù);并且,該系統(tǒng)具有良好的計(jì)數(shù)準(zhǔn)確率和實(shí)時(shí)性,可以實(shí)現(xiàn)對(duì)健身動(dòng)作的高效計(jì)數(shù)和檢測(cè),使用戶能夠更加方便且有效地進(jìn)行健身訓(xùn)練。此外,該系統(tǒng)可以記錄用戶的運(yùn)動(dòng)數(shù)據(jù),并將運(yùn)動(dòng)數(shù)據(jù)保存到本地文件資源管理器,方便用戶進(jìn)行健身記錄查看和分析。此健身計(jì)數(shù)系統(tǒng)的功能流程圖如圖1所示。

      圖1 系統(tǒng)功能流程圖Fig.1 System functional flowchart

      2 系統(tǒng)關(guān)鍵模塊設(shè)計(jì)(Design of key system modules)

      2.1 健身動(dòng)作檢測(cè)與計(jì)數(shù)模塊設(shè)計(jì)

      健身動(dòng)作檢測(cè)與計(jì)數(shù)模塊為該系統(tǒng)的關(guān)鍵模塊。首先,該模塊使用BlazePose檢測(cè)并跟蹤健身者的身體姿勢(shì);其次,根據(jù)檢測(cè)的姿勢(shì)生成人體相應(yīng)的33個(gè)關(guān)鍵點(diǎn)坐標(biāo),針對(duì)每個(gè)動(dòng)作類別,系統(tǒng)會(huì)預(yù)先收集許多相應(yīng)類別的健身動(dòng)作樣本并進(jìn)行模型訓(xùn)練,每個(gè)樣本對(duì)應(yīng)一個(gè)正確執(zhí)行該動(dòng)作的健身者姿勢(shì)序列,對(duì)于新檢測(cè)到的動(dòng)作,該模塊通過(guò)攝像頭傳入的人體姿勢(shì)關(guān)鍵點(diǎn)并計(jì)算其33個(gè)關(guān)鍵點(diǎn)與每個(gè)訓(xùn)練樣本關(guān)鍵點(diǎn)之間的相似度,使用KNN算法確定最合適的類別標(biāo)簽;最后,加入計(jì)數(shù)器用于對(duì)每個(gè)動(dòng)作的執(zhí)行次數(shù)進(jìn)行計(jì)數(shù)。健身動(dòng)作檢測(cè)與計(jì)數(shù)的算法流程圖如圖2所示。

      圖2 健身動(dòng)作檢測(cè)與計(jì)數(shù)算法流程圖Fig.2 Flowchart of the algorithm for detecting and counting fitness pose

      2.2 BlazePose和KNN簡(jiǎn)介

      圖3 BlazePose模型關(guān)鍵點(diǎn)位置Fig.3 Key point positions of the BlazePose model

      K最近鄰算法(KNN)是一種基于實(shí)例的學(xué)習(xí)算法,可用于解決分類和回歸問(wèn)題[4]。在該模塊中,KNN 算法通過(guò)計(jì)算樣本之間的距離對(duì)數(shù)據(jù)進(jìn)行分類,從而識(shí)別健身者正在執(zhí)行的動(dòng)作。

      2.3 訓(xùn)練樣本

      2.3.1 提取樣本關(guān)鍵點(diǎn)坐標(biāo)

      首先,將數(shù)據(jù)集樣本圖片分為兩類放入兩個(gè)不同的文件夾中,以深蹲為例,將數(shù)據(jù)集圖片分為兩類,分別為完全蹲下狀態(tài)和完全起立狀態(tài),放入squat_down和squat_up兩個(gè)文件夾中,然后調(diào)用一個(gè)名為bootstrap的函數(shù),該函數(shù)可以從一組圖像中提取人體姿勢(shì)關(guān)鍵點(diǎn)坐標(biāo),并保存這些坐標(biāo)。

      2.3.2 提取樣本特征

      特征提取的過(guò)程是通過(guò)將姿勢(shì)的關(guān)鍵點(diǎn)轉(zhuǎn)換為特征向量實(shí)現(xiàn)的。這些特征向量可以被看作是數(shù)字表示,它們捕捉到了關(guān)鍵點(diǎn)的相對(duì)位置和方向等重要信息,并且可以用于訓(xùn)練姿勢(shì)相關(guān)的深度學(xué)習(xí)模型[5]。將已保存的關(guān)鍵點(diǎn)數(shù)據(jù)復(fù)制到一個(gè)名為samples的列表中。使用PCA 算法(一種常見的數(shù)據(jù)降維方法,通過(guò)線性變換將高維數(shù)據(jù)轉(zhuǎn)化為低維數(shù)據(jù),并且保留數(shù)據(jù)的主要特征)對(duì)samples列表中的姿態(tài)關(guān)鍵點(diǎn)數(shù)據(jù)進(jìn)行降維處理。降維后的姿態(tài)關(guān)鍵點(diǎn)數(shù)據(jù)稱為特征向量,將這些特征向量寫入CSV文件中,即可得到每個(gè)動(dòng)作對(duì)應(yīng)的特征向量。

      2.3.3 歸一化處理

      對(duì)于已經(jīng)提取的樣本特征,進(jìn)行歸一化處理可以使不同特征之間的比較更加準(zhǔn)確和公平,從而提高機(jī)器學(xué)習(xí)算法的性能和模型的泛化能力[6]。歸一化處理后,可以將不同身高、體型的人的姿勢(shì)映射到相同的尺度下,從而方便進(jìn)行特征提取、姿勢(shì)分類和計(jì)數(shù)等操作。如果沒有做歸一化處理,由于不同的姿勢(shì)關(guān)鍵點(diǎn)取值范圍可能不同,導(dǎo)致不同姿勢(shì)的特征向量之間難以比較。并且,歸一化處理可以有效地降低噪聲對(duì)關(guān)鍵點(diǎn)特征提取的影響,這是因?yàn)橐恍╆P(guān)鍵點(diǎn)的取值范圍可能與其他關(guān)鍵點(diǎn)不同,導(dǎo)致它們對(duì)特征向量的貢獻(xiàn)有所偏差。通過(guò)歸一化處理,可以將這類偏差降至最低,從而減少噪聲對(duì)關(guān)鍵點(diǎn)特征的干擾[7]。因此,對(duì)人體姿勢(shì)關(guān)鍵點(diǎn)進(jìn)行歸一化處理,可以提高模型的魯棒性和泛化能力。

      ?程元敏先生已檢出并加以分析。參見程元敏《尚書學(xué)史》,華東師范大學(xué)出版社2013年版,第1184~1188頁(yè)。

      本文采用最大最小歸一化(Min-Max Scaling)方法進(jìn)行歸一化處理,第i個(gè)關(guān)鍵點(diǎn)坐標(biāo)的原始取值為(x i,y i),那么它的歸一化處理后的值為),具體歸一化處理公式如下:

      2.3.4 異常樣本識(shí)別與剔除

      識(shí)別異常樣本的方法是通過(guò)計(jì)算每個(gè)樣本的嵌入向量與輸入姿勢(shì)嵌入向量的歐氏距離,將距離大于某個(gè)閾值的樣本識(shí)別為離群點(diǎn)[8]。距離越大,表示兩個(gè)特征向量之間的差異越大,越有可能是離群點(diǎn)。通常,閾值的取值范圍是在0~1,該范圍內(nèi)的值可以表示距離的比例關(guān)系。當(dāng)閾值為1.0時(shí),意味著輸入姿勢(shì)嵌入向量與識(shí)別為離群點(diǎn)的樣本的嵌入向量之間的歐氏距離為1以上,這意味著異常樣本與輸入樣本特征向量之間的差異較大,可能為錯(cuò)誤數(shù)據(jù),應(yīng)該被排除或者進(jìn)一步分析處理。將閾值設(shè)置為1.0后,檢測(cè)到3張異常樣本圖片,定義一個(gè)remove_outliers函數(shù)即可剔除這個(gè)圖片文件及其相應(yīng)的關(guān)鍵點(diǎn)數(shù)據(jù)。剔除異常樣本后會(huì)排除一些異常噪聲或錯(cuò)誤數(shù)據(jù),可以進(jìn)一步提高模型的魯棒性和泛化能力。

      2.4 構(gòu)建動(dòng)作分類器

      KNN動(dòng)作分類器是機(jī)器學(xué)習(xí)模型的其中之一,可用于分類人體動(dòng)作。該模型通過(guò)將人體特征轉(zhuǎn)化為向量形式,并計(jì)算不同向量之間的相似度,利用KNN算法根據(jù)最近鄰標(biāo)準(zhǔn)對(duì)相似度最高的幾個(gè)向量進(jìn)行分類[9]。KNN動(dòng)作分類器具體實(shí)現(xiàn)算法如下所示:

      將已訓(xùn)練的CSV樣本文件輸入KNN 模型,KNN 模型使用基于歐氏距離的相似性度量方法,計(jì)算數(shù)據(jù)集中所有樣本和當(dāng)前攝像頭輸入樣本的特征向量之間的距離,這個(gè)距離就是攝像頭輸入的當(dāng)前幀與已訓(xùn)練的樣本之間的相似度。在這個(gè)過(guò)程中,k個(gè)訓(xùn)練樣本與測(cè)試樣本之間的相似度可以被解釋為置信度,因?yàn)樵撝捣从沉朔诸惼鬏敵鼋Y(jié)果的可信程度[10]。例如,當(dāng)k個(gè)訓(xùn)練樣本中有n個(gè)樣本屬于down(蹲下)類,m個(gè)樣本屬于up(起立)類時(shí),該測(cè)試樣本被分類為down(蹲下)類的置信度可以表示如下:

      其中,k表示KNN分類器選擇的最近鄰數(shù)。如果n越大,則置信度越高,這是因?yàn)楦嗟挠?xùn)練樣本被投票選為down(蹲下)類。同樣,被分類為up(起立)類的置信度可以表示如下:

      將檢測(cè)down(蹲下)的閾值設(shè)為0.6,即如果檢測(cè)到當(dāng)前動(dòng)作置信度大于0.6,即可以認(rèn)定健身者處于深蹲健身動(dòng)作中,對(duì)于健身者進(jìn)入深蹲健身狀態(tài),標(biāo)記為True,則計(jì)數(shù)器可以運(yùn)行;否則不會(huì)進(jìn)行檢測(cè)與計(jì)數(shù)。圖4為一個(gè)連續(xù)做5個(gè)深蹲的健身者的處于down(蹲下)狀態(tài)的置信度檢測(cè)結(jié)果圖(圖中斜線陰影部分為經(jīng)過(guò)平滑處理后的置信度檢測(cè)結(jié)果),橫軸為幀數(shù),豎軸為置信度。

      圖4 連續(xù)深蹲的健身者處于“down”狀態(tài)置信度檢測(cè)圖Fig.4 Confidence interval detection graph of a fitness enthusiast in a continuous″down″state squat

      2.5 計(jì)數(shù)器實(shí)現(xiàn)

      計(jì)數(shù)器主要用于計(jì)算給定目標(biāo)姿勢(shì)類的重復(fù)次數(shù)。通過(guò)輸入動(dòng)作分類器的結(jié)果,獲取給定動(dòng)作的置信度。如果置信度超過(guò)進(jìn)入姿勢(shì)的閾值,則開始計(jì)算該姿勢(shì)的重復(fù)次數(shù)。當(dāng)置信度低于退出姿勢(shì)的閾值時(shí),即完成一次姿勢(shì),并記錄該動(dòng)作的開始時(shí)間、結(jié)束時(shí)間、動(dòng)作持續(xù)時(shí)間和與上一次動(dòng)作的間隔時(shí)間等。檢測(cè)過(guò)程中,會(huì)將結(jié)果寫入Excel表格并按照一定格式保存。計(jì)數(shù)器實(shí)現(xiàn)算法具體如下所示:

      3 實(shí)現(xiàn)與驗(yàn)證(Implementation and verification)

      3.1 數(shù)據(jù)采集

      本文選取了三名身高體重相差較大的體育生作為數(shù)據(jù)采集對(duì)象,通過(guò)拍攝其在多種不同場(chǎng)景下的健身動(dòng)作,盡可能地保證數(shù)據(jù)收集的全面性。三名體育生的身高和體重分別為170 cm、64 kg,179 cm、75 kg,185 cm、86 kg。三名體育生分別進(jìn)行持續(xù)的深蹲、俯臥撐、引體向上動(dòng)作,使用25 FPS的錄像設(shè)備在不同光線、不同場(chǎng)地、不同拍攝距離的情況下進(jìn)行水平狀態(tài)下的360°循環(huán)拍攝。拍攝的健身數(shù)據(jù)將用于后續(xù)對(duì)運(yùn)動(dòng)姿態(tài)識(shí)別的研究與分析,為更準(zhǔn)確和可靠的運(yùn)動(dòng)姿態(tài)識(shí)別算法的開發(fā)提供基礎(chǔ)數(shù)據(jù)支持。

      3.2 數(shù)據(jù)預(yù)處理

      為了更方便地采集運(yùn)動(dòng)者動(dòng)作的圖像數(shù)據(jù)信息,本設(shè)計(jì)利用Python編寫圖片幀提取的程序,具體要求為將MP4格式的視頻以每秒5幀的速度進(jìn)行圖片幀提取,將數(shù)據(jù)集錄像輸入程序即可快速提取錄像的幀。對(duì)于提取的視頻幀進(jìn)行手動(dòng)篩選后,共得到300張圖像,即每種運(yùn)動(dòng)類型的圖像100張作為數(shù)據(jù)集,提取的部分深蹲數(shù)據(jù)集圖片如圖5所示。

      圖5 深蹲數(shù)據(jù)集Fig.5 Squat dataset

      3.3 運(yùn)動(dòng)檢測(cè)與計(jì)數(shù)準(zhǔn)確率測(cè)試

      本文召集另外兩名身高和體重分別為175 cm、70 kg和183 cm、83 kg的體育生作為測(cè)試者,用于測(cè)試實(shí)際計(jì)數(shù)的準(zhǔn)確率。兩名測(cè)試者分別進(jìn)行兩組持續(xù)的深蹲、俯臥撐、引體向上動(dòng)作,深蹲和俯臥撐每組40個(gè)動(dòng)作,引體向上每組20個(gè)動(dòng)作,每名體育生做100個(gè)動(dòng)作,深蹲、俯臥撐、引體向上動(dòng)作總數(shù)共計(jì)200個(gè)。在此過(guò)程中,計(jì)數(shù)器漏計(jì)共5個(gè)動(dòng)作,實(shí)際計(jì)數(shù)動(dòng)詳見表1,實(shí)際計(jì)數(shù)準(zhǔn)確率為95.5%,已具備一定的應(yīng)用價(jià)值。

      表1 計(jì)數(shù)器準(zhǔn)確率統(tǒng)計(jì)表Tab.1 Statistics table of counter efficiency

      3.4 系統(tǒng)實(shí)現(xiàn)

      本系統(tǒng)基于BlazePose動(dòng)作檢測(cè)模型和KNN算法,旨在實(shí)現(xiàn)一個(gè)穩(wěn)定、實(shí)時(shí)、高計(jì)數(shù)準(zhǔn)確率的健身動(dòng)作計(jì)數(shù)系統(tǒng),系統(tǒng)主界面使用Tkinter進(jìn)行開發(fā),Tkinter是Python的標(biāo)準(zhǔn)圖形用戶界面(GUI)庫(kù),它提供了一種直觀、簡(jiǎn)潔的方式使得開發(fā)人員能夠快速創(chuàng)建包括窗口、按鈕、菜單、文本框等基本元素在內(nèi)的可視化應(yīng)用程序界面。該系統(tǒng)的主界面如圖6所示。

      圖6 系統(tǒng)主界面Fig.6 System main interface

      進(jìn)入主界面后,有三種健身類型可供用戶選擇,選擇其中一種即可自動(dòng)調(diào)用本地?cái)z像頭進(jìn)行實(shí)時(shí)的健身動(dòng)作檢測(cè),檢測(cè)窗口左上角顯示置信度檢測(cè)圖,右上角數(shù)字顯示當(dāng)前動(dòng)作數(shù),例如選擇俯臥撐進(jìn)行檢測(cè)與計(jì)數(shù)后,檢測(cè)與計(jì)數(shù)效果如圖7所示。

      圖7 俯臥撐檢測(cè)與計(jì)數(shù)效果Fig.7 Push-up detection and counting effect

      本次實(shí)現(xiàn)設(shè)備基于Windows 11操作系統(tǒng)環(huán)境,使用AMD Ryzen 7 5800 H 處理器,NVIDIA GeForce RTX 3060 顯卡,16 GB內(nèi)存和分辨率為1 280×720的HD檢測(cè)攝像頭,實(shí)現(xiàn)了基于BlazePose模型和KNN 算法的健身動(dòng)作計(jì)數(shù)器,其檢測(cè)速度可達(dá)30 FPS,能夠有效地檢測(cè)用戶的健身動(dòng)作,提供準(zhǔn)確的計(jì)數(shù)統(tǒng)計(jì)并實(shí)時(shí)記錄用戶的健身數(shù)據(jù)。

      4 結(jié)論(Conclusion)

      本文基于BlazePose動(dòng)作識(shí)別模型和KNN 算法為核心,實(shí)現(xiàn)了一個(gè)計(jì)數(shù)準(zhǔn)確率較高的健身動(dòng)作計(jì)數(shù)器系統(tǒng)的開發(fā),該計(jì)數(shù)器結(jié)合計(jì)算機(jī)視覺技術(shù)和機(jī)器學(xué)習(xí)算法,可以準(zhǔn)確地檢測(cè)用戶的運(yùn)動(dòng)姿態(tài)并提供準(zhǔn)確率較高的計(jì)數(shù)統(tǒng)計(jì)。通過(guò)詳細(xì)的數(shù)據(jù)采集、數(shù)據(jù)處理、算法設(shè)計(jì)和系統(tǒng)驗(yàn)證等步驟,驗(yàn)證了該健身計(jì)數(shù)系統(tǒng)在不同環(huán)境下,針對(duì)不同健身者的實(shí)際動(dòng)作檢測(cè)準(zhǔn)確率可達(dá)95.5%,并具有實(shí)時(shí)的檢測(cè)功能和較高的計(jì)算速度,檢測(cè)速度可達(dá)30 FPS,有望在健身場(chǎng)所和線上健身平臺(tái)等實(shí)際應(yīng)用場(chǎng)景中得到推廣與使用。

      猜你喜歡
      計(jì)數(shù)器置信度關(guān)鍵點(diǎn)
      煤氣與熱力(2022年2期)2022-03-09 06:29:30
      聚焦金屬關(guān)鍵點(diǎn)
      硼鋁復(fù)合材料硼含量置信度臨界安全分析研究
      肉兔育肥抓好七個(gè)關(guān)鍵點(diǎn)
      正負(fù)關(guān)聯(lián)規(guī)則兩級(jí)置信度閾值設(shè)置方法
      計(jì)數(shù)器競(jìng)爭(zhēng)冒險(xiǎn)及其處理的仿真分析
      置信度條件下軸承壽命的可靠度分析
      軸承(2015年2期)2015-07-25 03:51:04
      醫(yī)聯(lián)體要把握三個(gè)關(guān)鍵點(diǎn)
      鎖定兩個(gè)關(guān)鍵點(diǎn)——我這樣教《送考》
      任意N進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法
      河南科技(2014年10期)2014-02-27 14:09:30
      康定县| 鹤庆县| 嘉黎县| 贡嘎县| 六盘水市| 蒲江县| 休宁县| 临洮县| 合山市| 内乡县| 南涧| 东丽区| 辽宁省| 永泰县| 云梦县| 偏关县| 固阳县| 永年县| 浑源县| 玉田县| 黄石市| 镇康县| 客服| 财经| 南川市| 鄂尔多斯市| 如皋市| 呼和浩特市| 阿拉善左旗| 丰台区| 新龙县| 临城县| 文山县| 额济纳旗| 桃源县| 类乌齐县| 秦安县| 黎川县| 买车| 怀化市| 利津县|