yolo位姿估计实验

目录

  1. 介绍
  2. 实验过程
    2.1 数据集下载
    2.2 模型和数据配置文件修改
    2.3 模型训练
  3. 参考链接

1. 介绍

1.1 简介

YOLOv8-Pose是基于YOLOv4算法的姿势估计模型,旨在实现实时高效的人体姿势估计。姿势估计在计算机视觉领域具有重要意义,可广泛应用于视频监控、运动分析、健康管理等领域。

1.2 背景

传统的姿势估计方法常需复杂网络架构和大量计算资源,导致实时性不佳。YOLOv8-Pose通过对YOLOv4算法进行改进和优化,在目标检测和姿势估计两方面融合任务,提高了模型的精度和效率。同时,利用深度学习技术和大规模数据集训练,使模型具备更好的泛化能力和适用性。

1.3 应用领域

  • 运动分析: 用于体育训练、舞蹈教学等领域,帮助教练和学员更好地分析和改进动作。
  • 健康管理: 结合智能设备进行人体姿势监测,提供健身建议和健康管理。
  • 视频监控: 在安防领域中,用于人体行为识别、异常检测等应用。

1.4 总结

YOLOv8-Pose旨在解决传统姿势估计方法的不足,提供更高效、更准确的姿势估计模型。其应用涵盖了多个领域,具有广泛的发展前景。

2. 实验过程

2.1 数据集下载

coco8-pose数据集下载链接:https://ultralytics.com/assets/coco8-pose.zip
环境配置:
python版本:3.10.16
显卡:xxx
cuda版本:cuda_11.1

安装包版本参考:
anyio==4.8.0
astor==0.8.1
attrdict==2.0.1
babel==2.17.0
bce-python-sdk==0.9.29
beautifulsoup4==4.13.3
blinker==1.9.0
cachetools==5.5.1
certifi==2025.1.31
charset-normalizer==3.4.1
click==8.1.8
colorama==0.4.6
contourpy==1.3.1
cssselect==1.2.0
cssutils==2.11.1
cycler==0.12.1
Cython==3.0.12
decorator==5.1.1
et_xmlfile==2.0.0
exceptiongroup==1.2.2
filelock==3.17.0
fire==0.7.0
Flask==3.1.0
flask-babel==4.0.0
fonttools==4.56.0
fsspec==2025.2.0
future==1.0.0
h11==0.14.0
httpcore==1.0.7
httpx==0.28.1
huggingface-hub==0.29.1
idna==3.10
imageio==2.37.0
imgaug==0.4.0
itsdangerous==2.2.0
Jinja2==3.1.5
joblib==1.4.2
kiwisolver==1.4.8
lazy_loader==0.4
lmdb==1.6.2
lxml==5.3.1
MarkupSafe==3.0.2
matplotlib==3.8.2
more-itertools==10.6.0
mpmath==1.3.0
networkx==3.4.2
numpy==1.26.3
opencv-contrib-python==4.6.0.66
opencv-python==4.6.0.66
opencv-python-headless==4.11.0.86
openpyxl==3.1.5
opt-einsum==3.3.0
packaging==24.2
paddleocr==2.7.3
paddlepaddle-gpu==2.6.2
pandas==2.2.3
pdf2docx==0.5.8
pillow==10.2.0
premailer==3.10.0
protobuf==3.20.2
psutil==7.0.0
py-cpuinfo==9.0.0
pyclipper==1.3.0.post6
pycryptodome==3.21.0
PyMuPDF==1.25.3
pyparsing==3.2.1
python-dateutil==2.9.0.post0
python-docx==1.1.2
pytz==2025.1
PyYAML==6.0.2
RapidFuzz==3.12.1
rarfile==4.2
requests==2.32.3
scikit-image==0.25.1
scikit-learn==1.6.1
scipy==1.15.1
seaborn==0.13.2
shapely==2.0.7
six==1.17.0
sniffio==1.3.1
soupsieve==2.6
sympy==1.13.1
termcolor==2.5.0
thop==0.1.1.post2209072238
threadpoolctl==3.5.0
tifffile==2025.1.10
torch==2.6.0
torchvision==0.21.0
tqdm==4.66.1
typing_extensions==4.12.2
tzdata==2025.1
ultralytics==8.1.9
urllib3==2.3.0
visualdl==2.5.3
Werkzeug==3.1.3

2.2 模型和数据配置文件修改

数据配置文件路径:yolov10/ultralytics/cfg/datasets/coco8-pose.yaml
修改点:(1)path路径替换

# Ultralytics YOLO 🚀, AGPL-3.0 license
# COCO8-pose dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/coco8-pose/
# Example usage: yolo train data=coco8-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-pose  ← downloads here (1 MB)# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco8-pose # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)# Keypoints
kpt_shape: [17, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15]# Classes
names:0: person# Download script/URL (optional)
download: https://ultralytics.com/assets/coco8-pose.zip

模型配置文件路径:yolov10/ultralytics/cfg/models/v8/yolov8-pose.yaml

2.3 模型训练

在项目路径建立train_pose.py文件
预训练模型下载链接:https://github.com/Sousannah/YOLOv8-Projects/blob/main/yolov8n-pose.pt

from ultralytics import YOLO# 加载模型
# model = YOLO('yolov8s-pose.yaml')  # 从头训练
model = YOLO('yolov8n-pose.pt')  # 使用预训练模型 (recommended for training)
# model = YOLO('yolov8s-pose.yaml').load('yolov8s-pose.pt')  # 从yaml构建网络并从预训练模型中迁移权重# 训练
results = model.train(data='./ultralytics/cfg/datasets/coco8-pose.yaml', epochs=5, imgsz=640, workers=0, batch=4, name="spose")

若出现类似_pickle.UnpicklingError: Weights only load failed. This file can still be loaded报错,则在yolov10/ultralytics/nn/tasks.py文件里类似ckpt = torch.load(file, map_location=“cpu”)语句后加上weights_only=False。

3. 参考链接

  • https://github.com/THU-MIG/yolov10.git
  • 加载模型时torch.load函数的安全性导致报错问题:https://blog.csdn.net/Water_7jjkk/article/details/144201970

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/72375.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

极简Redis速成学习

redis是什么? 是一种以键值对形式存储的数据库,特点是基于内存存储,读写快,性能高,常用于缓存、消息队列等应用情境 redis的五种数据类型是什么? 分别是String、Hash、List、Set和Zset(操作命…

大语言模型学习--本地部署DeepSeek

本地部署一个DeepSeek大语言模型 研究学习一下。 本地快速部署大模型的一个工具 先根据操作系统版本下载Ollama客户端 1.Ollama安装 ollama是一个开源的大型语言模型(LLM)本地化部署与管理工具,旨在简化在本地计算机上运行和管理大语言模型…

【OpenCV C++】以时间命名存图,自动检查存储目录,若不存在自动创建, 按下空格、回车、Q、S自动存图

文章目录 // 保存图像的函数 void saveImage(const cv::Mat& frame) {// 生成唯一文件名auto now = std::chrono::system_clock::

【JavaEE】线程安全

【JavaEE】线程安全 一、引出线程安全二、引发线程安全的原因三、解决线程安全问题3.1 synchronized关键字(解决修改操作不是原子的)3.1.1 synchronized的特性3.1.1 synchronized的使用事例 3.2 volatile 关键字(解决内存可见性) …

Vue核心知识:动态路由实现完整方案

在Vue中实现动态路由,并结合后端接口和数据库表设计,是一个复杂的项目,需要多个技术栈和步骤的配合。以下将详细描述整个实现过程,包括数据库设计、后端接口设计、前端路由配置以及如何实现动态路由的功能。 目录 一、需求分析二…

自媒体多账号如何切换不同定位才能做得更好

一、选择稀缺增长的赛道,避开内卷红海 1.职场赛道 ● 细分方向:公务员/体制内经验分享、自由职业指南、远程办公技巧。例如,通过采访自由职业者或分享远程工作体验,快速积累精准粉丝。 ● 优势:职场人群需求明确&…

基于SpringBoot的校园二手交易平台(源码+论文+部署教程)

运行环境 校园二手交易平台运行环境如下: • 前端:Vue • 后端:Java • IDE工具:IntelliJ IDEA(可自行更换) • 技术栈:SpringBoot Vue MySQL 主要功能 校园二手交易平台主要包含前台和…

iPhone 镜像 连接错误

重置连接 defaults delete com.apple.ScreenContinuity打开 iPhone 镜像 参考 mac镜像iPhone无法连接报错个人经历的 iPhone 镜像 bug 与部分解决办法

Qt基础入门-详解

前言 qt之路正式开启 💓 个人主页:普通young man-CSDN博客 ⏩ 文章专栏:C_普通young man的博客-CSDN博客 ⏩ 本人giee: 普通小青年 (pu-tong-young-man) - Gitee.com 若有问题 评论区见📝 🎉欢迎大家点赞&#x1f44…

Unity 优化封装常用API和编辑器扩展工具包

资源名:WXTools 文章目录 MeshRenderEditorSpriteGroupToolWXEditorUtilsComponentUtilsDataUtilsGameObjectUtilsRigidbodyUtilsStringUtilsTransformUtilsVectorUtilsWXTools 内容包括: MeshRenderEditor mesh扩展 SpriteGroupTool SpriteGroup操作…

python学习第三天

条件判断 条件判断使用if、elif和else关键字。它们用于根据条件执行不同的代码块。 # 条件判断 age 18 if age < 18:print("你还是个孩子&#xff01;") elif age 18:print("永远十八岁&#xff01;") else:print("你还年轻&#xff01;")…

ThinkPHP使用phpword读取模板word文件并添加表格

1.安装phpword包composer require phpoffice/phpword 2.模板文件结构 如上图框住的是要替换的文本和要复制表格样式 实现代码 <?phpnamespace app\api\logic;use PhpOffice\PhpWord\Element\Table; use PhpOffice\PhpWord\SimpleType\TblWidth; use PhpOffice\PhpWord\…

(原创)用python语言基于paddleocr构建批量识别实现纸质和电子的增值税专用发票程序

文章目录 1. 说明2. 准备工作3. 代码3.1 导入库&#xff1a;3.2 遍历发票指定处理方式3.3 发票识别相关函数3.4 发票字段定位函数3.6 识别记录相关函数3.6 识别结果校验3.7 文件预处理等其他函数3.8 main主函数 1. 说明 1.1 以paddle识别引擎为基础的增值税发票识别程序&#…

DeepSeek搭配Excel,制作自定义按钮,实现办公自动化!

今天跟大家分享下我们如何将DeepSeek生成的VBA代码&#xff0c;做成按钮&#xff0c;将其永久保存在我们的Excel表格中&#xff0c;下次遇到类似的问题&#xff0c;直接在Excel中点击按钮&#xff0c;就能10秒搞定&#xff0c;操作也非常的简单. 一、代码准备 代码可以直接询问…

解决显示器在高刷条件下花屏的问题

起因是家里的显示器好久没用之后&#xff0c;100HZ的刷新率下会花屏&#xff0c;在75HZ的情况下就正常显示&#xff0c;在网上找了一圈感觉是硬件问题解决不了 于是想了想如果我用90HZ呢&#xff1f;不过原始的情况下没有自定义刷新率的选择&#xff0c;不过amd和nvida控制面板…

IP-----双重发布

目录 6.双重发布 1.重发布的作用 2.部署条件 1.必须存在ASBR 2.种子度量值 3.重发布的规则 4.重发布的数量 5.重发布的场景 1.场景和规则 2.直连和静态 3.动态RIP 4.动态OSPF 5.更改开销值 6.重发布的问题1 7.重发布的问题2 1.流量 2.前缀列表 3.偏移列表 4…

蓝桥杯试题:DFS回溯

一、题目要求 输入一个数组n&#xff0c;输出1到n的全排列 二、代码展示 import java.util.*;public class ikun {static List<List<Integer>> list new ArrayList<>();public static void main(String[] args) { Scanner sc new Scanner(System.in);…

Ruby基础

一、字符串 定义 283.to_s //转为string "something#{a}" //定义字符串&#xff0c;并且插入a变量的值 something//单引号定义变量 %q(aaaaaaaaa) // 定义字符串&#xff0c;&#xff08;&#xff09;内可以是任何数&#xff0c;自动转义双引号%Q("aaaaa"…

基于提示驱动的潜在领域泛化的医学图像分类方法(Python实现代码和数据分析)

摘要 医学图像分析中的深度学习模型易受数据集伪影偏差、相机差异、成像设备差异等导致的分布偏移影响&#xff0c;导致在真实临床环境中诊断不可靠。领域泛化&#xff08;Domain Generalization, DG&#xff09;方法旨在通过多领域训练提升模型在未知领域的性能&#xff0c;但…

C#—Settings配置详解

C#—Settings配置详解 在C#项目中&#xff0c;全局配置通常指的是应用程序的设置&#xff08;settings&#xff09;&#xff0c;这些设置可以跨多个类或组件使用&#xff0c;并且通常用于存储应用程序的配置信息&#xff0c;如数据库连接字符串、用户偏好设置等。 Settings配置…