YOLOv8
是YOLO
的最新(20240206)
版本,由Ultralytics
提供。YOLOv8
支持全方位的视觉 AI
任务,包括检测
、分割
、姿态估计
、跟踪
和分类
。这种多功能性使用户能够在各种应用和领域中利用YOLOv8
的功能。
本文将介绍如何快速训练自己的 YOLOv8
模型。
仓库地址: https://github.com/kekxv/YOLOv8Tutorial
YOLO:简史
YOLO(You Only Look Once)
是一种流行的物体检测和图像分割模型,由华盛顿大学
的约瑟夫-雷德蒙(Joseph Redmon)
和阿里-法哈迪(Ali Farhadi)
开发。YOLO
于 2015
年推出,因其高速度和高精确度而迅速受到欢迎。
2016
年发布的YOLOv2
通过纳入批量归一化
、锚框
和维度集群
改进了原始模型。2018
年推出的YOLOv3
使用更高效的骨干网络
、多锚和空间金字塔池
进一步增强了模型的性能。YOLOv4
于2020
年发布,引入了Mosaic
数据增强、新的无锚检测头
和新的损失函数
等创新技术。YOLOv5
进一步提高了模型的性能,并增加了超参数优化、集成实验跟踪和自动导出为常用导出格式等新功能。YOLOv6
于2022
年由美团
开源,目前已用于该公司的许多自主配送机器人。YOLOv7
增加了额外的任务,如COCO
关键点数据集的姿势估计。YOLOv8
是YOLO
的最新(20240206)
版本,由Ultralytics
提供。YOLOv8
支持全方位的视觉 AI
任务,包括检测
、分割
、姿态估计
、跟踪
和分类
。这种多功能性使用户能够在各种应用和领域中利用YOLOv8
的功能。
更多的资料可以查看:https://docs.ultralytics.com/zh/
关于 Makefile
Makefile
一般用于c
的编译辅助,但是它不只是可以用于编译,它的目标规则特性,可以让用来做一些其他的事情:
make clean
清理缓存make clean-all
清理所有缓存,包括训练数据make install-dev
安装依赖make train
开始训练make test
测试image/test
文件夹的识别结果make val
验证make onnx
导出onnx
模型,其他的ncnn
以及mnn
可以通过onnx
模型转换make env
创建虚拟环境make labelImg
启动分类标注工具
可以查看 Makefile
文件以及官方文档,手动使用 cli
进行训练等操作
开始准备
样本收集
需要准备训练样本,这个根据情况进行收集,前期做验证,可以考虑通过搜索引擎进行搜集,注意来源数据是否涉及版权以及个人隐私问题,请不要公开发布涉及版权以及个人隐私问题。
本项目提供的证件样本,均通过搜索引擎从公开网站所获取。(如果提供的样张涉及到版权或者隐私问题,请发issue
,将会进行处理。)
将收集到的训练样本,放到 datasets/images/train
,想要做测试的样本,放到datasets/images/test
里面。
开始标注
可以根据自己的实际情况进行标注,当前项目可以考虑使用labelImg
工具进行标注。执行以下命令,将会启动labelImg
标注工具。
1 | make labelImg |
labelImg
快捷键:
A
上一张
D
下一张
W
画框建议打开自动保存
开始训练
标注完成之后,就可以开始训练了:
1 | 训练 epochs 10 |
如果出现 增加动态修改为当前位置的配置,应该不会再出现这个问题。Dataset 'config.yaml' images not found ⚠️, missing path
则可能路径识别错误,请将config.yaml
的path
改为datasets
目录的绝对路径。
训练的结果大概是:
1 | 196 epochs completed in 2.217 hours. |
如果没有出现报错,则表示训练完成。
测试模型
测试模型效果,可以将图片放到 datasets/images/test
,然后执行:
1 | make test |
测试的结果将会保存在目录runs/detect/predict(序号)
,根据输出的日志查看。
如果效果可以,则可以考试正式的数据训练😁。
导出为 ONNX
默认的模型格式为.pt
,如果是服务器进行识别,则可以考虑直接使用,如果是想要边缘计算或者不想使用.pt
的模型,可以考虑导出为onnx
模型,只需要执行:
1 | make onnx |
则可以直接导出为onnx
格式模型。
额外说明
支持系统
目前只在 Linux
以及macOS
测试, windows 建议使用windows
可以考虑使用 wsl
进行训练。后续增加windows
支持。wsl
,或者 powershell
进行操作。
windows系统注意
需要手动安装 python3
,make
,cmake
(用于onnx
,如果不需要可以不装)。
训练卡住问题
如果开始训练出现卡住的问题,可能是无法访问https://ultralytics.com
,可以检查一下网络环境,或者尝试将front/Arial.ttf字体加入到系统。再进行训练
关于 labelImg
labelImg
需要使用 python3.9
的版本,其他版本会有bug
,无法保存
关于安装:
1 | make install-dev |
激活虚拟环境
1 | . env/bin/activate |
退出虚拟环境
1 | deactivate |
训练:
1 | yolo task=detect mode=train model=yolov8n.pt data=config.yaml batch=-1 imgsz=640 epochs=100 |
相关文档
yolov8
文档
https://docs.ultralytics.com/zh/quickstart/
在线转换模型类型:
https://convertmodel.com