如何通過Python+OpenCV實現姿態估計?
什么是OpenCV?
計算機視覺是一個能夠理解圖像和視頻如何存儲和操作的過程,它還有助于從圖像或視頻中檢索數據。計算機視覺是人工智能的一部分。計算機視覺在自動駕駛汽車,物體檢測,機器人技術,物體跟蹤等方面發揮著重要作用。
OpenCV
OpenCV是一個開放源代碼庫,主要用于計算機視覺,圖像處理和機器學習。通過OpenCV,它可以為實時數據提供更好的輸出,我們可以處理圖像和視頻,以便實現的算法能夠識別諸如汽車,交通信號燈,車牌等物體以及人臉,或者甚至是人類的筆跡。借助其他數據分析庫,OpenCV能夠根據自己的需求處理圖像和視頻。
我們將與OpenCV-python一起使用的庫是Mediapipe
什么是Mediapipe?
Mediapipe是主要用于構建多模式音頻,視頻或任何時間序列數據的框架。借助MediaPipe框架,可以構建令人印象深刻的ML管道,例如TensorFlow,TFLite等推理模型以及媒體處理功能。
使用Mediapipe的最先進的ML模型
人臉檢測
多手跟蹤
頭發分割
目標檢測與追蹤
Objectron:3D對象檢測和跟蹤
AutoFlip:自動視頻裁剪管道姿態估計
姿態估計
通過視頻或實時饋送進行人體姿態估計在諸如全身手勢控制,量化體育鍛煉和手語識別等各個領域中發揮著至關重要的作用。例如,它可用作健身,瑜伽和舞蹈應用程序的基本模型。它在增強現實中找到了自己的主要作用。Media Pipe Pose是用于高保真人體姿勢跟蹤的框架,該框架從RGB視頻幀獲取輸入并推斷出整個人類的33個3D界標。當前最先進的方法主要依靠強大的桌面環境進行推理,而此方法優于其他方法,并且可以實時獲得很好的結果。
姿勢地標模型

現在開始
首先,安裝所有必需的庫。– pip install OpenCV-python– pip install mediapipe下載任何類型的視頻,例如跳舞,跑步等。我們將利用這些視頻進行姿勢估計。
為了檢查mediapipe是否正常工作,我們將使用上面下載的視頻實現一個小的代碼。
import cv2
import mediapipe as mp
import time
mpPose = mp.solutions.pose
pose = mpPose.Pose()
mpDraw = mp.solutions.drawing_utils
#cap = cv2.VideoCapture(0)
cap = cv2.VideoCapture('a.mp4')
pTime = 0
while True:
success, img = cap.read()
imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
results = pose.process(imgRGB)
print(results.pose_landmarks)
if results.pose_landmarks:
mpDraw.draw_landmarks(img, results.pose_landmarks, mpPose.POSE_CONNECTIONS)
for id, lm in enumerate(results.pose_landmarks.landmark):
h, w,c = img.shape
print(id, lm)
cx, cy = int(lm.x*w), int(lm.y*h)
cv2.circle(img, (cx, cy), 5, (255,0,0), cv2.FILLED)
cTime = time.time()
fps = 1/(cTime-pTime)
pTime = cTime
cv2.putText(img, str(int(fps)), (50,50), cv2.FONT_HERSHEY_SIMPLEX,1,(255,0,0), 3)
cv2.imshow("Image", img)
cv2.waitKey(1)
請輸入評論內容...
請輸入評論/評論長度6~500個字
最新活動更多
-
11月7日立即參評>> 【評選】維科杯·OFweek 2025(第十屆)物聯網行業年度評選
-
11月20日立即報名>> 【免費下載】RISC-V芯片發展現狀與測試挑戰-白皮書
-
即日-11.25立即下載>>> 費斯托白皮書《柔性:汽車生產未來的關鍵》
-
11月27日立即報名>> 【工程師系列】汽車電子技術在線大會
-
11月28日立即下載>> 【白皮書】精準洞察 無線掌控——283FC智能自檢萬用表
-
12月18日立即報名>> 【線下會議】OFweek 2025(第十屆)物聯網產業大會


分享













