姿态估计_超简易demo

// 所以所谓姿态估计到底怎么实现?
// paper核心代码有点难找,所以先看个简单实现感受一下

Mediapipe

Mediapipe是主要用于构建多模式音频,视频或任何时间序列数据的框架。借助MediaPipe框架,可以构建令人印象深刻的ML管道,例如TensorFlow,TFLite等推理模型以及媒体处理功能。

pip install mediapipe 

demo

import cv2  
import mediapipe as mp  
import time

# 初始化 Mediapipe Pose 模型
mpPose = mp.solutions.pose
pose = mpPose.Pose()
mpDraw = mp.solutions.drawing_utils

# 打开视频文件
cap = cv2.VideoCapture('C:/Users/HP/Downloads/dancing.mp4')

pTime = 0  # 上一帧的时间戳

# 进入视频帧处理的循环
while True:
    # 读取视频帧
    success, img = cap.read()
    # 如果读取失败,跳出循环
    if success is False:
        break
    
    # 将 BGR 格式的图像转换为 RGB 格式
    imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    
    # 使用 Mediapipe Pose 模型进行姿势检测
    results = pose.process(imgRGB)
    
    # 如果检测结果为空,继续下一帧处理
    if results is None:
        continue
    
    # 打印姿势关键点的位置信息
    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)
    key = cv2.waitKey(1) & 0xFF  # 等待按键输入,延迟1ms

# 清理窗口和释放视频流
cv2.destroyAllWindows()
cap.release()

结果

在这里插入图片描述

相关推荐

  1. 视频姿态估计:DeciWatch

    2024-06-07 18:30:05       42 阅读
  2. 姿态估计:DiffPose

    2024-06-07 18:30:05       44 阅读
  3. 人体姿态估计学习

    2024-06-07 18:30:05       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-07 18:30:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-07 18:30:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-07 18:30:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-07 18:30:05       20 阅读

热门阅读

  1. Chrome Plugin静态页面触发CSP如何解决CSP

    2024-06-07 18:30:05       10 阅读
  2. CSS样式优先级

    2024-06-07 18:30:05       9 阅读
  3. JVM由那些部分组成,运行流程是什么?

    2024-06-07 18:30:05       10 阅读
  4. 10分钟Apache Kylin快速入门

    2024-06-07 18:30:05       9 阅读
  5. AIGC笔记--Stable Diffusion源码剖析之UNetModel

    2024-06-07 18:30:05       8 阅读
  6. Docker面试整理-Docker的核心组件是什么?

    2024-06-07 18:30:05       13 阅读
  7. 【计算机网络复习】1.1 OSI参考模型

    2024-06-07 18:30:05       8 阅读
  8. 国产达梦数据库使用说明

    2024-06-07 18:30:05       7 阅读