当前位置:   article > 正文

在国产芯片上实现YOLOv5/v8图像AI识别-【1.4】YOLOv8的介绍及使用(训练、导出)更多内容见视频

在国产芯片上实现YOLOv5/v8图像AI识别-【1.4】YOLOv8的介绍及使用(训练、导出)更多内容见视频

本专栏主要是提供一种国产化图像识别的解决方案,专栏中实现了YOLOv5/v8在国产化芯片上的使用部署,并可以实现网页端实时查看。根据自己的具体需求可以直接产品化部署使用。

B站配套视频:https://www.bilibili.com/video/BV1or421T74f
在这里插入图片描述

数据准备

v8的数据准备在我们做分类和检测任务时候其实可以和v5的数据准备结果共享。此处我们就不过多说明标注相关工作了。

环境准备

当然有的教程里面会让你使用pip install ultralytics,强烈不推荐使用这种方法,我们在使用过程中是需要修改源码文件的。

yolov8的使用方法和v5差异比较大,当然内核是一样的。
在docker环境中使用我们之前的image镜像再创建一个容器。

docker run --gpus all -it --name yolov8_env -v $(pwd):/app nvcr.io/nvidia/pytorch:22.03-py3 
  • 1

从github仓库中下载yolov8项目,进入项目目录,然后安装相关依赖,这里就没有requestments.txt了

git clone https://github.com/ultralytics/ultralytics.git
cd ultralytics
pip install -e .
  • 1
  • 2
  • 3

训练

需要进行训练的数据集摆放路径和v5的基本一致

. v8项目路径
├── datasets
│   └── project_dataset
│       ├── images
│       │   ├── train
│       │   │   └── demo_001.jpg
│       │   └── val
│       │       └── demo_002.jpg
│       └── labels
│           ├── train
│           │   └── demo_001.txt
│           └── val
│               └── demo_002.txt
└── 其他文件、文件夹
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

之后就是创建我们的yaml文件了,此处v5和v8就开始有差异了。v8的数据集yaml文件是需要自己创建的,当然官网(https://docs.ultralytics.com)上也可以下载到,这里以我的数据集为例子。这个文件可以摆放在项目中的任意位置,只要最后训练时候可以指向到。

# 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: /app/docs/yolov8/ultralytics/datasets/bz_754  # 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)

# Classes (80 COCO classes)
names:
  0: noemal
  1: error
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

其次就是描述模型的yaml文件,这个文件所在位置也发生了变化,在./ultralytics/cfg/models/v8/yolov8.yaml目录下面。并且官方已经把n、s、m、l、x模型都合并到一个描述文件里面了。
在这里插入图片描述

接下来就可以编写训练脚本了,这也是v5和v8的不同,当然官方也提供了相关的脚本编写模板。

from ultralytics import YOLO
# 加载模型
# model = YOLO('weights/yolov8s.pt')
model = YOLO('yolov8s.yaml')

results = model.train(data='datasets/bz_754/bz_754.yaml', epochs=200, imgsz=640, workers=0, batch=36, name='train-RELU-s-200-754' )
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

模型导出

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/873789
推荐阅读
相关标签
  

闽ICP备14008679号