利用yoloV8训练自己的数据集(手势识别数据):
github:官方项目链接
yolo相关发展史介绍:
在这里插入图片描述
YOLO(You Only Look Once)是一种流行的对象检测和图像分割模型,由华盛顿大学的 Joseph Redmon 和 Ali Farhadi 开发。

  • YOLO2015 年推出,以其高速度和准确性迅速受到欢迎。
  • YOLOv22016 年发布,通过结合批量归一化、锚框和维度集群改进了原始模型。
  • YOLOv32018 年推出,使用更高效的主干网络、多个锚点和空间金字塔池进一步增强了模型的性能。
  • YOLOv42020年发布,引入了马赛克数据增强、新的无锚检测头和新的损失函数等创新。
  • YOLOv5进一步提升了模型的性能,并增加了超参数优化、集成实验跟踪和自动导出为流行的导出格式等新功能。
  • YOLOv62022年由美团开源,并在该公司的许多自主送货机器人中使用。
  • YOLOv7添加了额外的任务,例如对 COCO 关键点数据集的姿势估计。
  • YOLOv8是Ultralytics 最新版本的 YOLO。作为尖端的、最先进的 (SOTA) 模型,YOLOv8 建立在先前版本成功的基础上,引入了新功能和改进以增强性能、灵活性和效率。YOLOv8 支持全方位的视觉 AI 任务,包括检测、分割、姿态估计、跟踪和分类。这种多功能性允许用户在不同的应用程序和领域中利用 YOLOv8 的功能。
    yolov8的详细介绍YOLOv8 深度详解!一文看懂
    --------------------------------分界线----------------------------------
    下面是具体实验记录:

1.数据集准备

手势识别数据集:具体介绍
该数据集包含用于对象检测的 5 个手势类的 839 张图像:1,2,3,4,5. 在五个手指的帮助下,形成一个到五个数字的组合,并在这些带有相应标签的手势上训练对象检测模型,如图 5所示。数据集分为训练集、验证集和测试集。该数据集包含 587 个训练图像、167 个验证图像和 85 个测试图像。每个图像都有一个416× 416只有一个对象(或实例)的分辨率。
在这里插入图片描述
各个类别数据分布如下:在这里插入图片描述数据文件夹结构:
在这里插入图片描述
数据集格式为yolo_txt格式,即将每个xml标注提取bbox信息为txt格式,每个图像对应一个txt文件,文件每一行为一个目标的信息,包括class, x_center, y_center, width, height格式。格式如下:
在这里插入图片描述

2.环境准备

基础环境rtx3090显卡,yolov8要求的基本环境如下:
在这里插入图片描述
创建虚拟环境并激活:

conda create -n xx python=3.8
conda activate xx

拉取yolo的git项目

git clone https://github.com/autogyro/yolo-V8.git
cd yolo-V8
pip install -r requirements.txt
pip install ultralytics

3.测试环境

官网下载相应的权重
在这里插入图片描述
利用下面的测试指令进行测试:

yolo task=detect mode=predict model=yolov8n.pt conf=0.25 source='https://media.roboflow.com/notebooks/examples/dog.jpeg'

在这里插入图片描述
在这里插入图片描述

4.训练自己的数据

创建自己数据集的yaml文件
在这里插入图片描述在yolo-V8目录下运行以下代码(单卡训练)

yolo task=detect mode=train model=yolov8n.pt data=ultral
ytics/yolo/data/datasets/hand.yaml batch=32 epochs=100 imgsz=640 lr0=0.01

在这里插入图片描述
训练过程可视化:
在训练过程的可视化tensorboard tensorboard --logdir ./ 然后打开localhost:6006即可,效果如下:
在这里插入图片描述
训练完可以去result文件夹查看相应的结果:
在这里插入图片描述
如何多卡训练,只需添加gpu(device=0,1)即可

yolo task=detect mode=train model=yolov8n.pt data=ultral
ytics/yolo/data/datasets/hand.yaml batch=32 epochs=100 imgsz=640 lr0=0.01 device=0,1

5.模型测试

在这里插入图片描述
训练完会在train2的目录下生成相应的.pt文件:
在这里插入图片描述
测试图片指令:

yolo task=detect mode=val split=test model=runs/detect/train2/weights/best.pt  data=hand.yaml

在这里插入图片描述
ceshi在这里插入图片描述
测试视频指令:
自己录制一个video进行测试

yolo task=detect mode=predict source=video.mp4  model=runs/detect/train2/weights/best.pt

测试效果还是不错的!
在这里插入图片描述
参考:
1.使用YOLOv8训练自己的目标检测数据集
2.YOLOV8进行疲劳驾驶检测
3.在自定义数据上训练 YOLOv8?
4.YOLOv8训练自定义数据集(超详细)

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐