华为Altas 200DK A2 部署实战(二)基于Yolov8-pose训练自制的手部姿态估计数据集

基于Yolov8-pose训练自制手部姿态估计数据集并在PC端推理验证

   
首先先在本地安装跑Yolov8的环境,实测pytorch环境得2.0往上才能支持Yolov8的全部包。安装conda环境等过程细节本文不做介绍,网上很多。

   
在Github官网上下载Yolov8源码,推荐通过以下指令安装Yolov8环境。

# 从GitHub安装ultralytics包
pip install git+https://github.com/ultralytics/ultralytics.git@main

   
我从Yolov8官网上下载下来源码文件然后pip install ultralytics发现所安装的Yolov8的包里面task项目列表没有pose这个任务,所以用上面的代码安装ultralytics会好一些。
我自己的环境为Ultralytics YOLOv8.0.225 🚀 Python-3.8.0 torch-2.0.1+cu117 CPU (Intel Core™ i7-10700 2.90GHz)

   
环境全部安装完成后,我们可以通过以下指令测试yolov8-pose是否可以训练。没有数据集没关系,程序会自动下载数据集并开始训练,如果可以开始训练我们也可以ctrl+c终止操作,进行下一步内容。

yolo pose train

   
下面我们定制我们训练的yaml文件,跟coco8-pose.yaml的内容差不多,注意我们所用的kpt_shape只有x和y这两个维度,可见性visible在我们数据集中未标注。

# 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: /home/lx/model_deploy/hagrid-Hagrid_v1/dataset  # dataset root dir 改成自己的
train: /home/lx/model_deploy/hagrid-Hagrid_v1/dataset/train  # train images (relative to 'path')	改成自己的
val: /home/lx/model_deploy/hagrid-Hagrid_v1/dataset/val	#改成自己的

# Keypoints
kpt_shape: [21, 2]  # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]


# Classes
names:
  0: hand

   
关于flip_idx,表示手部关键点与数据位置的对应关系,数据集中没有标注具体的关系,这里我自己按照数据集的标注画了个图便于大家确认各关键点之间的关系。
   

在这里插入图片描述

图1 手部关键点示意图

   
然后我们就可以进行训练了,通过以下指令实现,因为要部署在边缘设备上,选择参数少速度快的模型,这里采用Yolov8n-pose模型进行训练,采用官方的yolov8n-pose.pt预训练模型作为先验知识。

yolo pose train data=pose.yaml model=yolov8n-pose.pt pretrained=yolov8n-pose.pt epochs=100 imgsz=640 single_cls=true

在训练时开始时会打印很多关于标签的warning,这是因为我们标签中的一些数据违规了,比如bounding box的取值大于1了,Yolov8会自动将这些违规数据清洗掉。
   
做完这些我们就可以在目录下的runs文件夹中看到我们的训练结果了
在这里插入图片描述

图2 记录训练结果的文件夹

   
下面展示一下验证集的预测结果和实际标注结果的对比
在这里插入图片描述

图3 验证集的真实标注情况

   

在这里插入图片描述

图4 验证集的模型预测情况

   
可以看出我们的训练结果还不错。如果条件允许的话,可以用原始数据集中的所有图片和标注进行训练补充更多的数据,也可以自己手动调整yolov8-pose的网络结构进行优化,将会获得更好的性能。

至此,基于Yolov8-pose训练自制数据集流程结束^ _ ^

  • 14
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L.fountain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值