姿态估计_超简易demo

2024-06-08 21:20
文章标签 简易 估计 demo 姿态

本文主要是介绍姿态估计_超简易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.shapeprint(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 = cTimecv2.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()
结果

在这里插入图片描述

这篇关于姿态估计_超简易demo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1043343

相关文章

linux 内核提权总结(demo+exp分析) -- 任意读写(四)

hijack_modprobe_path篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm     原理同hijack_prctl, 当用户执行错误格式的elf文件时内核调用call_usermod

linux 内核提权总结(demo+exp分析) -- 任意读写(三)

hijack_prctl篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm   prctl函数: 用户态函数,可用于定制进程参数,非常适合和内核进行交互 用户态执行prctl函数后触发prctl系统

linux 内核提权总结(demo+exp分析) -- 任意读写(二)

hijack_vdso篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm     vdso: 内核实现的一个动态库,存在于内核,然后映射到用户态空间,可由用户态直接调用 内核中的vdso如果被修改

linux 内核提权总结(demo+exp分析) -- 任意读写(一)

cred篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm   每个线程在内核中都对应一个线程结构块thread_infothread_info中存在task_struct类型结构体 struct t

linux 内核提权总结(demo+exp分析) -- ROP(二)

ret2usr CR4篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm   smep: smep是内核的一种保护措施, 使得内核不可执行用户态代码 内核通过CR4寄存器的第20位来控制smep,

linux 内核提权总结(demo+exp分析) -- ROP(一)

基础ROP篇(linux 5.0.21) 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm   内核提权与用户态攻击的区别 攻击流程 用户态攻击: 执行 system("/bin/sh") 获得shel

海龟绘图简易教程|Turtle for Python

turtle 是 python 内置的一个比较有趣味的模块,俗称 海龟绘图,它是基于 tkinter 模块打造,提供一些简单的绘图工具,海龟作图最初源自 20 世纪 60 年代的 Logo 编程语言,之后一些很酷的 Python 程序员构建了 turtle 库,让其他程序员只需要 import turtle,就可以在 Python 中使用海龟作图。 原文链接|海龟绘图简易教程 1. 基本

实例demo理解面向接口思想

浅显的理解面向接口编程 Android开发的语言是java,至少目前是,所以理解面向接口的思想是有必要的。下面通过一个简单的例子来理解。具体的概括我也不知道怎么说。 例子: 现在我们要开发一个应用,模拟移动存储设备的读写,即计算机与U盘、MP3、移动硬盘等设备进行数据交换。已知要实现U盘、MP3播放器、移动硬盘三种移动存储设备,要求计算机能同这三种设备进行数据交换,并且以后可能会有新的第三方的

使用jetty和mongodb做个简易文件系统

使用jetty和mongodb做个简易文件系统 - ciaos 时间 2014-03-09 21:21:00   博客园-所有随笔区 原文   http://www.cnblogs.com/ciaos/p/3590662.html 主题  MongoDB  Jetty  文件系统 依赖库: 1,jetty(提供http方式接口) 2,mongodb的java驱动(访问mo

数据集 3DPW-开源户外三维人体建模-姿态估计-人体关键点-人体mesh建模 >> DataBall

3DPW 3DPW-开源户外三维人体建模数据集-姿态估计-人体关键点-人体mesh建模 开源户外三维人体数据集 @inproceedings{vonMarcard2018, title = {Recovering Accurate 3D Human Pose in The Wild Using IMUs and a Moving Camera}, author = {von Marc