文章目录
- 前言
- 1 下载yolov8([网址](https://github.com/ultralytics/ultralytics))
- 2 配置conda环境
- 3 用pycharm打开文件
- 3 训练自己的YOLOV8数据集
- 4 run下运行完了之后没有best.pt文件
- 5 导出为onnx文件
- 6 yolov8应用完整案例(免费且包含源代码、数据集)
- 总结
前言
本文记录一下yolov8训练目标检测模型的过程,以及其中的一些需要注意的地方。本人是yolov5直接使用的yolov8,因此本文也记录了与yolov5的训练过程不一样的地方。
原创声明:如有转载请注明文章来源。码字不易,如对卿有所帮助,欢迎评论、点赞、收藏。
1 下载yolov8(网址)
2 配置conda环境
这边说一下,pip这里会自动安装cpu版本的torch。因此安装torch要去官网下载,不注意的话后面训练模型会超级慢。
Prompt终端
1、创建一个新的环境,终端输入:
conda create -n YOLOV8_1 python=3.9
2、激活环境:
conda activate YOLOV8_1
3、转到YOLOV8所在文件夹:
cd /d D:\python_set\ultralytics-yolov8-main
4、安装requirements.txt中的包
pip install -r requirements.txt
3 用pycharm打开文件
打开之后你可能会觉得yolov5文件包里面啥都有,怎么yolov8里面好像啥也没有,连个train.py都没有,还怎么用呀!其实这就是工程化代码的特点,你可以基于这个框架自己创建一个train,只要几行代码就可以训练好了。不会再是yolov5一个train文件看得头大。
- 在ultralytics中加入创建dataset文件夹,子文件夹code_inspection是本人的项目。里面存档你的images、lables和yaml文件
- images
- labels
- yaml文件,这个是从coco128中改的(coco128.yaml路径为:ultralytics/cfg/datasets/coco8.yaml)
3 训练自己的YOLOV8数据集
- 打开终端
输入如下:
# 相关参数需要自己修改一下,这个应该很好理解
yolo detect train data=datasets/code_inspection/code_inspection.yaml model=yolov8n.yaml pretrained=ultralytics/yolov8n.pt epochs=200 batch=8 lr0=0.01 resume=True
运行之后会出现一个询问:wanna会询问你要不要使用wandb记录训练结果,这个时候需要你点击进入链接,创建一个wandb的账号,账号会自动生成一个号码(20个字符作用的一个号码),就可以用wandb了。
yolov5 | yolov8 |
---|---|
有train detect文件 | 没有train detect文件,最好用终端训练 |
没有wandb | 有wandb |
4 run下运行完了之后没有best.pt文件
yolov8的训练的文件会放在网络端,当然也是有办法放在本地的。我是没有的。
点击进入最上面的链接
按照如下顺序点击即可下载模型。反正我觉得不是很方便。
啊这,过了个小时,run文件下权重文件直接就出现了。可能是我重启之后的效果。
5 导出为onnx文件
这个倒是很方便的。创建一个文件,赋值下面代码就可以了。
from ultralytics import YOLO# Load a model
model = YOLO('best.pt') # load a custom trained model# Export the model
model.export(format='onnx')
6 yolov8应用完整案例(免费且包含源代码、数据集)
大图像中的小目标检测——基于YOLOV8+OnnxRuntime部署+滑动窗口+Zbar的条码检测研究
总结
入门yolov8目标检测的步骤:
- 环境配置
- 标注数据集,标注的报错点在这里
((以YOLO标注为例)labelimg标注闪退的几种情况详解,报错IndexError: list index out of range) - 熟悉训练过程。由于yolov8加入了一些可视化的东西,用过yolov5之后再来看yolov8会有反应不过来wandb的用法。
- 找一个案例练习,在这里给大家提供一个超级赞的案例,工业产线上的目标检测案例。
(大图像中的小目标检测——基于YOLOV8+OnnxRuntime部署+滑动窗口+Zbar的条码检测研究)