环境要求:根据《yolov8训练环境搭建》搭建好运行环境
参考文献:
1、yolo官方文档python版本:
https://docs.ultralytics.com/usage/python/
2、github文档
https://github.com/ultralytics/ultralytics/blob/main/README.zh-CN.md
3、标定源数据的生成 使用labelImg来标定类别,输出选择Yolo
labelImg的使用文档
https://blog.csdn.net/klaus_x/article/details/106854136
一、文档说明:
1、datasets 自定义数据集目录
datasets
├─ test 用于测试的源数据
│ ├─ images
│ └─ labels
├─ train 用于训练的源数据
│ ├─ images
│ └─ labels
├─ valid 用于校验的源数据
│ ├─ images
│ └─ labels
└─ data.yaml (1、test,train,val:分别对应上面文件夹中images的绝对路径。
2、names:指定为需要识别的类型,注意这里的顺序必须和标定源文件中的缺陷类型顺序一致。
3、nc:names中类别的数量。)
2、env 存放用到的环境校验和数据集生成脚本
a、checkEnv.py 环境检验脚本
b、createDatasets.py 数据集脚本 使用时只需修改源路径
image_dir:源标定文件的img位置
label_dir:源标定文件的labels位置
3、train.py 训练脚本
pt:指定模型
从头开始训练时设置为yolov8n.pt次数加载基础库开始构建模型
叠加训练时指定需要被叠加的模型
out:训练输出的目录名 最终的输出目录在当前路径的./runs/detect中
isRseume:续训开关,不叠加训练时建议设为ture断续后可以使用continueTrain继续训练
叠加训练:当模型训练完成后如果对结果不满意可以在加载训练完的best.pt继续使用doTrain进行叠加训练,注意的叠加训练不能使rseume
4、predit.py 识别脚本
srcFile:需要识别的源图路径
outFile:输出识别的结果
pt:指定上面自己训练输出的best.pt的绝对路径
startPredict 线性的训练FPS统计包含了加载图像、识别、存图
startPredictByThread 统计FPS只计算识别,不存图
二、源码:
1、开始训练: 搭建好环境后进入yv8下修改./datasets/data.yaml中的路径和类别,运行./train.py(源码需要打开doTrain的注释,关闭continueTrain)就可以开始训练了结果在./runs/detect/test下。如果需要其他操作自行参看main的注释开起对应功能。
2、分析:运行./predit.py,自行指定srcFile和outFile,分析结果输出在outFile。如果需要其他操作自行参看main的注释开起对应功能。