前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >YOLOv8-Pose关键点检测

YOLOv8-Pose关键点检测

原创
作者头像
AI小怪兽
修改于 2023-11-08 06:21:26
修改于 2023-11-08 06:21:26
2K00
代码可运行
举报
文章被收录于专栏:YOLO大作战YOLO大作战
运行总次数:0
代码可运行

YOLOv8-Pose关键点检测

✨✨✨手把手教你从数据标记到生成适合Yolov8-pose的yolo数据集;

🚀🚀🚀模型性能提升、pose模式部署能力;

🍉🍉🍉应用范围:工业工件定位、人脸、摔倒检测等支持各个关键点检测;

实时更新中,模型轻量化创新结果如下:

layers

parameters

GFLOPs

kb

mAP50

mAP50-95

yolov8-pose

187

3379496

9.6

6842

0.921

0.697

yolov8-C2f_GhostBottleneck-pose

362

2590296

7.7

5393

0.929

0.769

yolov8-C2f_GhostBottleneckV2-pose

298

2927192

8.3

5989

0.904

0.74

yolov8-C2f_repghost-pose

334

2959784

8.4

6080

0.892

0.736

yolov8-C2f_g_ghostBottleneck-pose

214

2954744

8.4

6022

0.932

0.71

yolov8-C2f_DCNV3-pose

341

2895930

8.6

5970

0.926

0.743

yolov8-C2f_PConv-pose

205

3018296

8.5

6134

0.925

0.695

yolov8-C2f_BiLevelRoutingAttention-pose

205

3018296

8.5

6134

0.926

0.734

yolov8-C2f_ScConv-pose

256

3188264

9

6479

0.921

0.7

yolov8-slimneck-pose

309

3378200

8.9

6932

0.93

0.829

yolov8-C2f_RepvggOREPA-pose

280

4565192

8.4

9359

0.915

0.677

yolov8-C2f_OREPA-pose

196

4562504

8.2

9303

0.931

0.691

YOLOv8-C2f_LSKA_Attention-pose

226

2987000

8.5

6080

0.925

0.652

yolov8-C2f_MultiDilatelocalAttention-pose

250

3004472

8.5

6101

0.909

0.726

yolov8-pose_PPLCNet

228

2223924

6.6

4574

0.901

0.752

YOLOv8-pose-EfficientRepBiPAN

342

3055496

8.5

6302

0.912

0.779

1.数据集介绍

数据集大小300张:训练集236张,验证集64张

关键点共21个

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 关键点的类别
keypoint_class = ['Ulna', 'Radius', 'FMCP','FPIP', 'FDIP', 'MCP5','MCP4', 'MCP3', 'MCP2','PIP5', 'PIP4', 'PIP3'
                  ,'PIP2', 'MIP5', 'MIP4','MIP3', 'MIP2', 'DIP5','DIP4', 'DIP3', 'DIP2']

2.手部关键点训练

2.1 新建ultralytics/cfg/datasets/hand_keypoint.yaml

参考coco8-pose.yaml即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Ultralytics YOLO 🚀, AGPL-3.0 license
# COCO8-pose dataset (first 8 images from COCO train2017) by Ultralytics
# 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: ./ultralytics-7.31/data/hand_keypoint  # 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: [21, 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,17,18,19,20]

# Classes
names:
  0: hand

# Download script/URL (optional)
#download: https://ultralytics.com/assets/coco8-pose.zip

2.2修改ultralytics/cfg/models/v8/yolov8-pose.yaml

修改为21个关键点和一个类别nc:1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Ultralytics YOLO 🚀, AGPL-3.0 license
# YOLOv8-pose keypoints/pose estimation model. For Usage examples see https://docs.ultralytics.com/tasks/pose

# Parameters
nc: 1  # number of classes
kpt_shape: [21, 3]  # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
scales: # model compound scaling constants, i.e. 'model=yolov8n-pose.yaml' will call yolov8-pose.yaml with scale 'n'
  # [depth, width, max_channels]
  n: [0.33, 0.25, 1024]
  s: [0.33, 0.50, 1024]
  m: [0.67, 0.75, 768]
  l: [1.00, 1.00, 512]
  x: [1.00, 1.25, 512]

2.3默认参数开启训练

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from ultralytics.yolo.cfg import entrypoint
arg="yolo pose train model=yolov8-pose.yaml data=ultralytics/cfg/datasets/hand_keypoint.yaml"
entrypoint(arg)

模型配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
               from  n    params  module                                       arguments                     
  0                  -1  1       464  ultralytics.nn.modules.conv.Conv             [3, 16, 3, 2]                 
  1                  -1  1      4672  ultralytics.nn.modules.conv.Conv             [16, 32, 3, 2]                
  2                  -1  1      7360  ultralytics.nn.modules.block.C2f             [32, 32, 1, True]             
  3                  -1  1     18560  ultralytics.nn.modules.conv.Conv             [32, 64, 3, 2]                
  4                  -1  2     49664  ultralytics.nn.modules.block.C2f             [64, 64, 2, True]             
  5                  -1  1     73984  ultralytics.nn.modules.conv.Conv             [64, 128, 3, 2]               
  6                  -1  2    197632  ultralytics.nn.modules.block.C2f             [128, 128, 2, True]           
  7                  -1  1    295424  ultralytics.nn.modules.conv.Conv             [128, 256, 3, 2]              
  8                  -1  1    460288  ultralytics.nn.modules.block.C2f             [256, 256, 1, True]           
  9                  -1  1    164608  ultralytics.nn.modules.block.SPPF            [256, 256, 5]                 
 10                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']          
 11             [-1, 6]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 12                  -1  1    148224  ultralytics.nn.modules.block.C2f             [384, 128, 1]                 
 13                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']          
 14             [-1, 4]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 15                  -1  1     37248  ultralytics.nn.modules.block.C2f             [192, 64, 1]                  
 16                  -1  1     36992  ultralytics.nn.modules.conv.Conv             [64, 64, 3, 2]                
 17            [-1, 12]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 18                  -1  1    123648  ultralytics.nn.modules.block.C2f             [192, 128, 1]                 
 19                  -1  1    147712  ultralytics.nn.modules.conv.Conv             [128, 128, 3, 2]              
 20             [-1, 9]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 21                  -1  1    493056  ultralytics.nn.modules.block.C2f             [384, 256, 1]                 
 22        [15, 18, 21]  1   1125538  ultralytics.nn.modules.head.Pose             [1, [21, 3], [64, 128, 256]]  
YOLOv8-pose summary: 250 layers, 3385074 parameters, 3385058 gradients, 9.7 GFLOPs

2.4训练结果分析

100个epoch以后

BoxPR_curve.png

PosePR_curve.png

预测图片结果如下:

存在部分关键点预测不准确的现象

优化教程如下:

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

1.手把手入门教程

1.1训练准备篇,数据集制作

1.1 案列实战

1.2 模型部署

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

2.模型轻量化创新

2.1 Ghostnet、G_ghost、Ghostnetv2、repghost

2.2 MobileNetV3

2.3 轻量级自研模型创新

2.4 DCNV3 结合C2f

2.5 PConv结合C2f

2.6 轻量级Slim-Neck

2.7 ScConv结合C2f

2.8 OREPA结合C2f

2.9 Large Separable Kernel Attention结合C2f

2.10 多尺度空洞注意力(MSDA)结合C2f

2.11 轻量高性能网络PPLCNet助力backbone

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

3.loss优化

3.1 多loss自研设计

​详见:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://blog.csdn.net/m0_63774211/article/details/134174684

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Yolov8-pose关键点检测:训练实战篇 | 手部关键点检测
​💡💡💡本文解决什么问题:教会你如何用自己的数据集训练Yolov8-pose关键点检测
AI小怪兽
2023/12/05
13.6K2
基于YOLOv8-pose的画笔关键点(bic_markers)检测
💡💡💡本文解决什么问题:教会你如何用自己的数据集训练Yolov8-pose关键点检测
AI小怪兽
2024/01/14
1.1K3
基于YOLOv8的老虎姿态(Tiger-Pose)识别
💡💡💡本文解决什么问题:教会你如何用自己的数据集训练Yolov8-pose关键点检测
AI小怪兽
2024/01/13
1.4K2
基于YOLOv8的晶体管定位识别(pose),从数据集标注到训练手把手教程
💡💡💡本文解决什么问题:教会你如何用晶体管从标注到训练Yolov8-pose关键点检测
AI小怪兽
2024/01/22
1.8K4
YOLO11-pose关键点检测:DCNv4更快收敛、更高速度、更高性能,效果秒杀DCNv3、DCNv2等 ,结合C3k2二次创新
💡💡💡本文独家改进:DCNv4更快收敛、更高速度、更高性能,完美和YOLO11结合,助力涨点
AI小怪兽
2024/10/28
5150
YOLO11-pose关键点检测:训练实战篇 | 自己数据集从labelme标注到生成yolo格式的关键点数据以及训练教程
💡💡💡本文解决什么问题:教会你如何用自己的数据集转换成对应格式的数据集以及如何训练YOLO11-pose关键点检测
AI小怪兽
2024/10/17
3.3K0
YOLOv12优化:注意力魔改 | 新颖的多尺度卷积注意力(MSCA),即插即用,助力小目标检测
💡💡💡本文改进:多尺度卷积注意力(MSCA),有效地提取上下文信息,新颖度高,创新十足。
AI小怪兽
2025/03/10
6110
基于Yolov8网络进行目标检测(三)-训练自己的数据集
前一篇文章详细了讲解了如何构造自己的数据集,以及如何修改模型配置文件和数据集配置文件,本篇主要是如何训练自己的数据集,并且如何验证。
python与大数据分析
2023/09/18
2.6K0
基于Yolov8网络进行目标检测(三)-训练自己的数据集
YoloV8自定义姿势关键点检测教程:机械臂关键点姿势跟踪(步骤 + 源码)
自定义姿势关键点检测是一种计算机视觉技术,涉及识别和跟踪对象上的特定点或关键点。对于下棋机器人手臂来说,这些关键点可以代表棋子的位置、棋盘的方向,甚至机器人手臂本身的配置。
Color Space
2024/01/12
1.7K0
YoloV8自定义姿势关键点检测教程:机械臂关键点姿势跟踪(步骤 + 源码)
YOLO11 pose关键点检测:具有切片操作的SimAM注意力,魔改SimAM助力pose关键点检测能力
💡💡💡本文解决什么问题:教会你如何用自己的数据集转换成对应格式的数据集以及如何训练YOLO11-pose关键点检测
AI小怪兽
2024/10/18
4390
YOLO11改进算法 | 引入SimAM模块的YOLO11-pose关键点姿态估计
YOLO11是由Ultralytics团队于2024年9月30日发布的,它是YOLO(You Only Look Once)系列中的最新成员。YOLO11在之前版本的YOLO基础上引入了新功能和改进,以进一步提高性能和灵活性。这使得YOLO11成为目标检测和跟踪、实例分割、图像分类和姿态估计等多种计算机视觉任务的理想选择。
CoovallyAIHub
2025/01/07
1K0
YOLO11改进算法 | 引入SimAM模块的YOLO11-pose关键点姿态估计
YOLO11实战:GC10-DET缺陷检测 |多级特征融合金字塔(HS-FPN),助力缺陷检测(2)
💡💡💡本文独家改进:高层筛选特征金字塔网络(HS-FPN),能够刷选出大小目标,增强模型表达不同尺度特征的能力,助力小目标检测
AI小怪兽
2024/12/27
3220
基于YOLO11的矿井下移动目标检测系统(Python源码+数据集+Pyside6界面)
💡💡💡本文摘要:基于YOLO11的矿井下移动目标检测,阐述了整个数据制作和训练可视化过程
AI小怪兽
2025/01/09
2210
【目标检测】YOLOv8:快速上手指南
YOLOv8是YOLOv5团队在今年新推出的一代YOLO版本,与前几代版本相比,其性能和速度差距如下图所示:
zstar
2023/09/13
4.3K0
【目标检测】YOLOv8:快速上手指南
【yolov5目标检测】使用yolov5训练自己的训练集
首先得准备好数据集,你的数据集至少包含images和labels,严格来说你的images应该包含训练集train、验证集val和测试集test,不过为了简单说明使用步骤,其中test可以不要,val和train可以用同一个,因此我这里只用了一个images
叶茂林
2023/10/23
1.3K0
【yolov5目标检测】使用yolov5训练自己的训练集
实战 | 使用YOLOv8 Pose实现瑜伽姿势识别
瑜伽是一种古老的运动,近年来由于其对身心健康的众多益处而广受欢迎。随着人们对瑜伽的兴趣日益浓厚,对能够准确分类瑜伽姿势的自动化系统的需求也越来越大。本文中我们将探讨如何使用 YOLOv8 Pose(一种先进的对象检测模型)对图像和视频中的瑜伽姿势进行分类。
Color Space
2024/04/19
1.9K0
实战 | 使用YOLOv8 Pose实现瑜伽姿势识别
yolov8训练自定义目标检测模型
首先得准备好数据集,你的数据集至少包含images和labels,严格来说你的images应该包含训练集train、验证集val和测试集test,不过为了简单说明使用步骤,其中test可以不要,val和train可以用同一个,因此我这里只用了一个images
叶茂林
2023/10/19
1.9K0
yolov8训练自定义目标检测模型
YOLO11实战:GC10-DET缺陷检测 | 新一代高效可形变卷积DCNv4结合SPPF二次创新
💡💡💡本文独家改进:DCNv4更快收敛、更高速度、更高性能,完美和YOLO11结合,助力涨点
AI小怪兽
2024/12/26
3262
YOLO11 全新发布!(原理介绍+代码详见+结构框图)
Ultralytics YOLO11是一款尖端的、最先进的模型,它在之前YOLO版本成功的基础上进行了构建,并引入了新功能和改进,以进一步提升性能和灵活性。YOLO11设计快速、准确且易于使用,使其成为各种物体检测和跟踪、实例分割、图像分类以及姿态估计任务的绝佳选择。
AI小怪兽
2024/10/08
9.1K1
基于YOLOv8的工业油污缺陷检测,多种优化方法---自研注意力CPMS基于CBAM优化, mAP@0.5提升近五个点(二)
💡💡💡本文主要内容:详细介绍了工业油污缺陷检测整个过程,从数据集到训练模型到结果可视化分析,以及如何优化提升检测性能。
AI小怪兽
2024/02/04
4030
推荐阅读
Yolov8-pose关键点检测:训练实战篇 | 手部关键点检测
13.6K2
基于YOLOv8-pose的画笔关键点(bic_markers)检测
1.1K3
基于YOLOv8的老虎姿态(Tiger-Pose)识别
1.4K2
基于YOLOv8的晶体管定位识别(pose),从数据集标注到训练手把手教程
1.8K4
YOLO11-pose关键点检测:DCNv4更快收敛、更高速度、更高性能,效果秒杀DCNv3、DCNv2等 ,结合C3k2二次创新
5150
YOLO11-pose关键点检测:训练实战篇 | 自己数据集从labelme标注到生成yolo格式的关键点数据以及训练教程
3.3K0
YOLOv12优化:注意力魔改 | 新颖的多尺度卷积注意力(MSCA),即插即用,助力小目标检测
6110
基于Yolov8网络进行目标检测(三)-训练自己的数据集
2.6K0
YoloV8自定义姿势关键点检测教程:机械臂关键点姿势跟踪(步骤 + 源码)
1.7K0
YOLO11 pose关键点检测:具有切片操作的SimAM注意力,魔改SimAM助力pose关键点检测能力
4390
YOLO11改进算法 | 引入SimAM模块的YOLO11-pose关键点姿态估计
1K0
YOLO11实战:GC10-DET缺陷检测 |多级特征融合金字塔(HS-FPN),助力缺陷检测(2)
3220
基于YOLO11的矿井下移动目标检测系统(Python源码+数据集+Pyside6界面)
2210
【目标检测】YOLOv8:快速上手指南
4.3K0
【yolov5目标检测】使用yolov5训练自己的训练集
1.3K0
实战 | 使用YOLOv8 Pose实现瑜伽姿势识别
1.9K0
yolov8训练自定义目标检测模型
1.9K0
YOLO11实战:GC10-DET缺陷检测 | 新一代高效可形变卷积DCNv4结合SPPF二次创新
3262
YOLO11 全新发布!(原理介绍+代码详见+结构框图)
9.1K1
基于YOLOv8的工业油污缺陷检测,多种优化方法---自研注意力CPMS基于CBAM优化, mAP@0.5提升近五个点(二)
4030
相关推荐
Yolov8-pose关键点检测:训练实战篇 | 手部关键点检测
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验