《------往期經典推薦------》
一、AI應用軟件開發實戰專欄【鏈接】
項目名稱 | 項目名稱 |
---|---|
1.【人臉識別與管理系統開發】 | 2.【車牌識別與自動收費管理系統開發】 |
3.【手勢識別系統開發】 | 4.【人臉面部活體檢測系統開發】 |
5.【圖片風格快速遷移軟件開發】 | 6.【人臉表表情識別系統】 |
7.【YOLOv8多目標識別與自動標注軟件開發】 | 8.【基于YOLOv8深度學習的行人跌倒檢測系統】 |
9.【基于YOLOv8深度學習的PCB板缺陷檢測系統】 | 10.【基于YOLOv8深度學習的生活垃圾分類目標檢測系統】 |
11.【基于YOLOv8深度學習的安全帽目標檢測系統】 | 12.【基于YOLOv8深度學習的120種犬類檢測與識別系統】 |
13.【基于YOLOv8深度學習的路面坑洞檢測系統】 | 14.【基于YOLOv8深度學習的火焰煙霧檢測系統】 |
15.【基于YOLOv8深度學習的鋼材表面缺陷檢測系統】 | 16.【基于YOLOv8深度學習的艦船目標分類檢測系統】 |
17.【基于YOLOv8深度學習的西紅柿成熟度檢測系統】 | 18.【基于YOLOv8深度學習的血細胞檢測與計數系統】 |
19.【基于YOLOv8深度學習的吸煙/抽煙行為檢測系統】 | 20.【基于YOLOv8深度學習的水稻害蟲檢測與識別系統】 |
21.【基于YOLOv8深度學習的高精度車輛行人檢測與計數系統】 | 22.【基于YOLOv8深度學習的路面標志線檢測與識別系統】 |
23.【基于YOLOv8深度學習的智能小麥害蟲檢測識別系統】 | 24.【基于YOLOv8深度學習的智能玉米害蟲檢測識別系統】 |
25.【基于YOLOv8深度學習的200種鳥類智能檢測與識別系統】 | 26.【基于YOLOv8深度學習的45種交通標志智能檢測與識別系統】 |
27.【基于YOLOv8深度學習的人臉面部表情識別系統】 | 28.【基于YOLOv8深度學習的蘋果葉片病害智能診斷系統】 |
29.【基于YOLOv8深度學習的智能肺炎診斷系統】 | 30.【基于YOLOv8深度學習的葡萄簇目標檢測系統】 |
31.【基于YOLOv8深度學習的100種中草藥智能識別系統】 | 32.【基于YOLOv8深度學習的102種花卉智能識別系統】 |
33.【基于YOLOv8深度學習的100種蝴蝶智能識別系統】 | 34.【基于YOLOv8深度學習的水稻葉片病害智能診斷系統】 |
35.【基于YOLOv8與ByteTrack的車輛行人多目標檢測與追蹤系統】 | 36.【基于YOLOv8深度學習的智能草莓病害檢測與分割系統】 |
37.【基于YOLOv8深度學習的復雜場景下船舶目標檢測系統】 | 38.【基于YOLOv8深度學習的農作物幼苗與雜草檢測系統】 |
39.【基于YOLOv8深度學習的智能道路裂縫檢測與分析系統】 | 40.【基于YOLOv8深度學習的葡萄病害智能診斷與防治系統】 |
41.【基于YOLOv8深度學習的遙感地理空間物體檢測系統】 | 42.【基于YOLOv8深度學習的無人機視角地面物體檢測系統】 |
43.【基于YOLOv8深度學習的木薯病害智能診斷與防治系統】 | 44.【基于YOLOv8深度學習的野外火焰煙霧檢測系統】 |
45.【基于YOLOv8深度學習的腦腫瘤智能檢測系統】 | 46.【基于YOLOv8深度學習的玉米葉片病害智能診斷與防治系統】 |
47.【基于YOLOv8深度學習的橙子病害智能診斷與防治系統】 | 48.【基于深度學習的車輛檢測追蹤與流量計數系統】 |
49.【基于深度學習的行人檢測追蹤與雙向流量計數系統】 | 50.【基于深度學習的反光衣檢測與預警系統】 |
51.【基于深度學習的危險區域人員闖入檢測與報警系統】 | 52.【基于深度學習的高密度人臉智能檢測與統計系統】 |
53.【基于深度學習的CT掃描圖像腎結石智能檢測系統】 | 54.【基于深度學習的水果智能檢測系統】 |
55.【基于深度學習的水果質量好壞智能檢測系統】 | 56.【基于深度學習的蔬菜目標檢測與識別系統】 |
57.【基于深度學習的非機動車駕駛員頭盔檢測系統】 | 58.【太基于深度學習的陽能電池板檢測與分析系統】 |
59.【基于深度學習的工業螺栓螺母檢測】 | 60.【基于深度學習的金屬焊縫缺陷檢測系統】 |
61.【基于深度學習的鏈條缺陷檢測與識別系統】 | 62.【基于深度學習的交通信號燈檢測識別】 |
63.【基于深度學習的草莓成熟度檢測與識別系統】 | 64.【基于深度學習的水下海生物檢測識別系統】 |
65.【基于深度學習的道路交通事故檢測識別系統】 | 66.【基于深度學習的安檢X光危險品檢測與識別系統】 |
67.【基于深度學習的農作物類別檢測與識別系統】 | 68.【基于深度學習的危險駕駛行為檢測識別系統】 |
69.【基于深度學習的維修工具檢測識別系統】 | 70.【基于深度學習的維修工具檢測識別系統】 |
71.【基于深度學習的建筑墻面損傷檢測系統】 | 72.【基于深度學習的煤礦傳送帶異物檢測系統】 |
73.【基于深度學習的老鼠智能檢測系統】 |
二、機器學習實戰專欄【鏈接】,已更新31期,歡迎關注,持續更新中~~
三、深度學習【Pytorch】專欄【鏈接】
四、【Stable Diffusion繪畫系列】專欄【鏈接】
五、YOLOv8改進專欄【鏈接】,持續更新中~~
六、YOLO性能對比專欄【鏈接】,持續更新中~
《------正文------》
目錄
- 引言
- 什么是OpenCV?
- 什么是姿態估計?
- 什么是Mediapipe?
- 步驟1:設置OpenCV和Mediapipe
- 步驟2:使用OpenCV捕獲視頻
- 步驟3:使用Mediapipe檢測身體關節
- 第四步:姿勢估計
- 步驟5:提取關節坐標
- 步驟6:計算關節角度
- 第五步:建立二頭肌卷曲計數器
- 第6步:構建二頭肌卷曲跟蹤器
- 總結
引言
本文主要介紹一個使用OpenCV和Mediapipe的運動跟蹤器的實戰項目,主要實現手部二頭肌卷取動作的檢測與計數,并詳細介紹了其實現原理與實現代碼,供小伙伴們學習參考。當然,通過該項目原理可以實現很多其他鍛煉項目的檢測與計數,感興趣的小伙伴自行探索。
什么是OpenCV?
OpenCV(Open Source Computer Vision Library)是計算機視覺領域使用最廣泛的工具之一。它是一個開源庫,包含2,500多種算法,使我們能夠執行目標檢測、面部識別和圖像處理等任務。
在我們的運動跟蹤項目中,OpenCV扮演了關鍵角色。它使我們能夠:
1.從計算機的網絡攝像頭捕獲視頻。
2.處理視頻的每一幀以檢測特定身體部位的運動,如肘部和手腕。
3.以視頻和文本疊加的形式向用戶顯示實時反饋。
我們為這個項目選擇OpenCV的主要原因之一是它易于使用Python,即使是初學者也可以使用。OpenCV支持多種平臺,包括Windows、macOS和Linux,這使得學生可以輕松地在自己的計算機上運行該項目。
什么是姿態估計?
在我們深入研究我們項目的技術細節之前,理解姿態估計的概念是很重要的。姿態估計是計算機視覺中的一種技術,它允許我們通過檢測關鍵點或“地標”(如肘部,肩部,手腕和臀部)來跟蹤和分析人體的運動。
通過連接這些關鍵點,我們可以繪制人體地圖,并測量不同身體部位的運動和角度。
簡而言之,姿勢估計可以幫助計算機識別您的身體所處的位置。無論您是站著、坐著還是執行特定運動(例如舉起啞鈴),姿勢估計都可以識別每個關節的位置以及它的真實的移動方式。
使用姿勢估計跟蹤運動的能力使其成為構建需要用戶交互的應用程序的理想工具。這包括健身追蹤器、互動游戲、虛擬現實和基于手勢的界面等應用程序。
什么是Mediapipe?
Mediapipe由Google開發,是一個機器學習框架,可以簡化構建用于人體姿勢估計,手部跟蹤,面部檢測等的實時系統。它提供了預先構建的模型,可以以驚人的精度和速度檢測人體,手部或面部的關鍵點。
Mediapipe的設計高度靈活和高效,使其成為移動的設備和實時應用的理想選擇。它使用復雜的機器學習算法來跟蹤人體上的地標,使其成為我們運動跟蹤器項目的完美工具。
這就是為什么Mediapipe是我們項目的最佳選擇:
實時性能: Mediapipe可以足夠快地處理視頻幀,以便為用戶提供真實的反饋。
準確度: 它能夠以高精度檢測身體的最小運動。
用途: 它與Python順利集成,使初學者易于實現。
與OpenCV一起,Mediapipe允許我們為二頭肌卷曲跟蹤器捕獲和分析身體運動。
步驟1:設置OpenCV和Mediapipe
我們項目的第一步是設置必要的工具。我們首先安裝了OpenCV和Mediapipe庫,這對捕獲視頻和檢測姿勢至關重要。
以下是安裝過程:
安裝MediaPipe和OpenCV
安裝完成后,我們在Python腳本中導入了必要的模塊:
導入必要的Python模塊
在我們的例子中,OpenCV處理視頻捕獲,而Mediapipe檢測姿勢。這兩個庫將共同創建二頭肌卷曲跟蹤器。
步驟2:使用OpenCV捕獲視頻
在這一步中,我們解釋了OpenCV如何從計算機的網絡攝像頭捕獲視頻。來自網絡攝像頭的每一幀都經過處理,使我們能夠實時查看和分析運動。
以下是我們如何拍攝視頻:
用于從網絡攝像頭流捕獲視頻幀的代碼
步驟3:使用Mediapipe檢測身體關節
下一步是使用Mediapipe來檢測特定的身體關節,如肩膀,肘部和手腕。Mediapipe的姿態估計模型讓我們可以輕松地做到這一點。它為身體的不同部位提供了關鍵點(地標),我們可以用它來跟蹤運動。
我們首先建立了Mediapipe Pose模型。我們還設置了Mediapipe的繪圖和姿勢工具。
對于每一幀視頻,Mediapipe都會檢測姿勢和地標:
這段代碼有助于可視化身體標志,顯示肩膀、肘部和手腕等關節上的點。
第四步:姿勢估計
現在我們有了依賴項,讓我們設置網絡攝像頭提要并開始檢測姿勢。
此腳本從網絡攝像頭捕獲視頻并應用姿勢估計,在屏幕上可視化檢測到的姿勢。您將看到Mediapipe如何在真實的時間內識別您身體上的關鍵點。
步驟5:提取關節坐標
接下來,我們將提取特定關節的坐標。這對于以后計算角度至關重要。
為了訪問特定的關節,我們使用姿勢標志列表中的索引。例如,左肩的坐標可以如下訪問:
步驟6:計算關節角度
為了創建運動跟蹤器,我們需要計算在卷曲過程中二頭肌在不同點的角度。這需要一些簡單的三角函數,我們教學生使用一個函數來計算三點之間的角度:肩膀,肘部和手腕。
下面是我們如何計算角度:
代碼計算3點之間的角度:肩,肘和手腕
此函數獲取肩、肘和腕的坐標,并計算二頭肌彎曲期間手肘關節的角度。
我們現在可以使用這個函數來計算手肘關節的角度:
計算并顯示肘關節處的角度
肩、肘、腕角度顯示
第五步:建立二頭肌卷曲計數器
隨著角度計算到位,我們現在可以建立我們的運動跟蹤器的核心-二頭肌卷曲計數器!計數器將根據手肘的角度跟蹤卷曲的數量。
我們設置了一個計數器變量來跟蹤完成的卷曲次數,并設置了一個階段變量來檢查手臂是處于“向上”還是“向下”的位置。
計算二頭肌卷曲次數的代碼
這種邏輯確保了手肘從“向下”位置(角度> 160°)移動到“向上”位置(角度< 30°)時,它將被計為一次卷曲。
第6步:構建二頭肌卷曲跟蹤器
最后,我們將結合之前的代碼,實現我們的二頭肌卷曲跟蹤器。我們將根據手肘關節的角度變化來計算卷曲。
所有代碼合并
有了這個,你就建立了一個二頭肌卷曲跟蹤器,可以計數總次數和顯示階段手臂所在階段,你的手臂位置(向上或向下)等信息。
總結
本文通過使用Mediapipe和OpenCV構建了一個二頭肌卷曲跟蹤器,當然你也可以通過了解基礎知識,擴展此鍛煉監控系統,以跟蹤其他鍛煉,如蹲下,俯臥撐,甚至瑜伽姿勢。這些應用程序不僅提供實時反饋,還使鍛煉更具吸引力和樂趣。
好了,這篇文章就介紹到這里,喜歡的小伙伴感謝給點個贊和關注,更多精彩內容持續更新~~
關于本篇文章大家有任何建議或意見,歡迎在評論區留言交流!