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

python 复制代码
安装包版本参考:
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路径替换

python 复制代码
# 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

python 复制代码
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. 参考链接

相关推荐
LIUDAN'S WORLD8 小时前
YOLOv3实践教程:使用预训练模型进行目标检测
人工智能·深度学习·yolo·计算机视觉
LIUDAN'S WORLD8 小时前
YOLOv2 快速入门与核心概念:更快、更准的目标检测利器
人工智能·yolo·目标检测
知来者逆1 天前
计算机视觉——基于 Yolov8 目标检测与 OpenCV 光流实现目标追踪
深度学习·yolo·目标检测·计算机视觉·yolov8·目标追踪
DragonnAi1 天前
基于项目管理的轻量级目标检测自动标注系统【基于 YOLOV8】
人工智能·yolo·目标检测
zy_destiny2 天前
【非机动车检测】用YOLOv8实现非机动车及驾驶人佩戴安全帽检测
人工智能·python·算法·yolo·机器学习·安全帽·非机动车
unix2linux2 天前
YOLO v5 Series - HTTP-FLV - FFmpeg & (HTML5 + FLV.js ) Integrating
yolo·http·ffmpeg
向哆哆2 天前
BiFPN与RepViT协同机制在YOLOv8目标检测中的应用与优化
人工智能·深度学习·yolo·目标检测·yolov8
知来者逆3 天前
计算机视觉——基于YOLOV8 的人体姿态估计训练与推理
深度学习·yolo·计算机视觉·yolov8·姿态估计
DragonnAi3 天前
猫咪如厕检测与分类识别系统系列【六】分类模型训练+混合检测分类+未知目标自动更新
人工智能·python·yolo·目标检测·计算机视觉·分类·数据挖掘
Wiktok3 天前
YOLO 的 data.yaml 配置文件路径解析
深度学习·yolo·机器学习