基于 LabVIEW 和 YOLOv8-Pose 的跳繩計數(shù)裝置
跳繩是一項廣受歡迎的運(yùn)動項目,因其簡單易行而備受學(xué)生和運(yùn)動愛好者青睞。然而,在實際運(yùn)動中,人工計數(shù)容易出現(xiàn)誤差,影響比賽和訓(xùn)練效果。本文提出了一種基于 LabVIEW 和 YOLOv8-Pose 的跳繩計數(shù)裝置,利用深度學(xué)習(xí)的姿態(tài)檢測能力和 LabVIEW 的實時處理功能,實現(xiàn)跳繩動作的精準(zhǔn)識別與計數(shù)。本裝置具有操作簡單、檢測精準(zhǔn)、實時性強(qiáng)等優(yōu)點,適用于學(xué)校、體育館及家庭訓(xùn)練場景。
本文引用地址:http://m.butianyuan.cn/article/202502/466783.htm引言
隨著人工智能技術(shù)的發(fā)展,計算機(jī)視覺在體育領(lǐng)域的應(yīng)用日益廣泛。傳統(tǒng)的跳繩計數(shù)方法主要依賴人工記錄,存在效率低、誤差大的問題。近年來,基于機(jī)器視覺的自動計數(shù)方法逐漸受到關(guān)注,其中人體姿態(tài)識別技術(shù)為跳繩計數(shù)提供了全新的解決方案。
系統(tǒng)設(shè)計
2.1 硬件設(shè)計
本裝置的硬件包括:
攝像頭:用于采集跳繩者的視頻圖像,支持USB接口的普通網(wǎng)絡(luò)攝像頭或工業(yè)相機(jī)。攝像頭的采樣速率建議高于30FPS(每秒30幀)。
AIPC:搭載GPU的臺式機(jī)或筆記本電腦,用于運(yùn)行 YOLOv8-Pose 模型。
2.2 軟件模塊
YOLOv8-Pose 模型:基于深度學(xué)習(xí)的開源模型,能夠精準(zhǔn)識別人體關(guān)節(jié)點位置。模型通過訓(xùn)練,能夠檢測跳繩者的肢體動作。
LabVIEW:用于構(gòu)建圖形化界面和處理邏輯,包括攝像頭采集、處理、計數(shù)及結(jié)果顯示。
OpenVINO? :用于加快的模型推理速度,支持 Intel 的 CPU/GPU/NPU。在 AIPC 的 Intel 11 代 1165G7 芯片下,yolov8n-Pose 的最大推理速度可達(dá)到 60FPS。
2.3 軟件設(shè)計
步驟1:模型和攝像頭初始化
使用LabVIEW中的Opencv Camera模塊,即可快速采集攝像頭的圖像,并將圖像顯示在前面板上。程序中,我們需要設(shè)置采集圖像的寬度為640個像素,高度為480個像素。同時,我們初始化yolov8-pose模型,加載至OpenVINO? 推理引擎中。跳繩計數(shù)器歸零,然后進(jìn)入循環(huán)。
步驟2:實時采集與姿態(tài)識別
每次循環(huán),軟件都從攝像頭中取出一幀圖像,送入 yolov8-pose 的推理函數(shù)中,獲取識別的結(jié)果圖像,和第一個人的所有關(guān)鍵點位置。
步驟3:
調(diào)用跳繩計數(shù)器算法,每次循環(huán)都需要判斷是否跳繩數(shù)加1。
跳繩計數(shù)算法設(shè)計
3.1 yolov8-pose模型輸出解析
Yolov8-pose算法的輸出分兩部分,第一部分是box,即每個人的外接矩形的位置,里面的參數(shù)為:
Box=[left,top,width,height] (左邊的像素點、上邊的像素點、寬度,高度)
第二部分是keypoints,由17個點構(gòu)成,17個點的定義如下圖:
3.2 跳繩過程中的坐標(biāo)變化
以雙腳跳為例,采集某同學(xué)整個跳繩過程中的keypoint-15(左腳踝)或者keypoint-16(右腳踝)的y軸數(shù)值。Y值越小,說明在圖中的位置越高。
波形圖中,左右兩邊部分表示了正常的跳躍時間段,中間有一部分y軸變化較小,說明學(xué)生暫停跳躍。
3.3 算法實現(xiàn)思路
(1) 在正常跳躍時,當(dāng)學(xué)生腳部處于一個周期的最低點(即曲線的極大值)時可認(rèn)為跳了一個。
(2) 但是,曲線在接近最高點時,由于AI產(chǎn)生的誤差,曲線會有毛刺。因此需要判斷當(dāng)前新產(chǎn)生的最高點與上一次最高點的循環(huán)間隔,如果間隔太小,就可以忽略。
(3) 當(dāng)學(xué)生失誤停止跳繩時,由于學(xué)生本身還在移動或測量誤差導(dǎo)致的y值變化也應(yīng)去除。只需判斷當(dāng)前值與歷史數(shù)據(jù)中的最高點(y的最小值)的差,如果小于一個閾值就可忽略。
3.4 算法實現(xiàn)代碼
在 LabVIEW 中,我們?nèi)∽罱?0個點分析,其中最后5個點用來判斷曲線的極大值,如果5個值中第2個(從0開始計數(shù))為最大值的,且與10個數(shù)的最小值的差大于60(最高點與最低點的高度像素差),可將該點作為候選點。
獲取候選點所對應(yīng)的時間,與它之前的一個候選點做比較。如果時間大于150毫秒(5幀,假設(shè)人類跳繩速度小于每分鐘360個),則忽略,小于則計數(shù)器加1。
將算法保存為子vi :跳繩計數(shù)判斷.vi,放入主程序,最終程序如下圖:
實驗
4.1 實驗設(shè)置
在校內(nèi)體育館搭建實驗場景,選取10名學(xué)生進(jìn)行跳繩測試。設(shè)置單人跳繩和雙人交替跳繩兩種模式,采集多組視頻數(shù)據(jù)。
4.2 測試結(jié)果
實驗結(jié)果表明,該裝置在雙腳跳繩場景下的計數(shù)準(zhǔn)確率達(dá)98.5%,在左右腳交替跳繩場景下準(zhǔn)確率為95.3%。與人工計數(shù)相比,誤差控制在±2次以內(nèi)。
誤差原因主要與相機(jī)位置有關(guān),相機(jī)需要放在學(xué)生正前方2~3米左右,高度大約為學(xué)生身高的一半,且相機(jī)鏡頭水平向前。如果相機(jī)斜著,可能造成一定誤差。
4.3 性能分析
實時性:使用 OpenVINO? 及英特爾 GPU 加速,系統(tǒng)處理幀率可達(dá)60 FPS,滿足實時計數(shù)需求。
穩(wěn)定性:即使在光照變化和背景復(fù)雜的情況下,模型依然能夠有效識別關(guān)鍵動作。
創(chuàng)新點與優(yōu)勢
1. 將 LabVIEW 與 YOLOv8-Pose 結(jié)合,實現(xiàn)深度學(xué)習(xí) 型的實時調(diào)用與可視化界面交互。
2. 提出了基于關(guān)鍵點運(yùn)動軌跡的跳繩動作識別算法,有效降低誤判率。
3. 系統(tǒng)成本低、部署簡單,適合中學(xué)生科創(chuàng)比賽和實際推廣。
結(jié)論與展望
本文設(shè)計了一種基于 LabVIEW 和 YOLOv8-Pose 的跳繩計數(shù)裝置,成功解決了人工計數(shù)誤差大的問題。未來可進(jìn)一步優(yōu)化算法,使用平均濾波算法提高人體位置(如腳踝位置的準(zhǔn)確度)、并兼容雙腳跳和單腳跳兩種跳繩模式。同時探索硬件設(shè)備的小型化與便攜化,使其適應(yīng)更多應(yīng)用場景。
參考文獻(xiàn)
Redmon J., Farhadi A. YOLOv8: Real-Time Object Detection and Pose Estimation. arXiv preprint.
National Instruments. LabVIEW User Manual. NI.
Cao Z., Simon T., Wei S. Pose Estimation in Sports Applications. IEEE Transactions.
https://doc.virobotics.net/zh_cn/ai_toolkit_for_ov
https://github.com/openvinotoolkit/openvino_notebooks/tree/latest/notebooks/pose-estimation-webcam
評論