本篇文章比较长,请仔细阅读,对你非常有帮助的。
本次代码全部开源,小白可上手。
环境准备:
python>=3.08
如果不会装请看这篇文章pycharm 安装虚拟环境,同时指定python版本
安装好python环境和 项目虚拟环境后,
需要安装下面的一些依赖:
pip install ultralytics
pip install torch==2.3.1
pip install torchvision==0.18.1
pip install onnxruntime
pip install onnx
pip install labelme
pip install labelme2yolo
如果上面的依赖库不好安装或耗时比较久,可以尝试下面方法
训练步骤
1. 收集数据集
2. 进行数据集标注
3. 把标注好的数据集进行转化
4. 进行数据集训练
5. 模型使用
收集数据集我已经通过爬虫脚本收集好了。你们可以直接拉代码使用,代码我会放在文章后面,请继续慢慢阅读
原始图片集
通过网盘分享的文件:images_list
链接: https://pan.baidu.com/s/1uz_P041VlejXKedn58BY6A?pwd=nmv9 提取码: nmv9
数据标注集
1. 用命令启动标注工具labelme
2. 选择原始数据集
3. 开启自动保存功能
点击【文件】-点击【自动保存】
4. 进行图片标注,可以选择多边形或者举行标注
5. 重复完成步骤4, 直到标注完所有图片
然后我们到了下一步
把标注好的数据进行转化为json 文件
转换命令是:
labelme2yolo --json_dir <path/to/images_dir> --val_size 0.1 --test_size 0.1
其中json_dir指定图片文件夹
yolo训练会将图片分为 train(训练集)、val(验证集)、test(测试集) 共3个数据集
val_size 指定val数据集占比 (0.1表示10%)
test_size 指定test数据集占比 (0.1表示10%)
其余为train数据集占比
训练集(Train Set)是模型学习的主要数据来源
验证集(Validation Set)用于在训练过程中评估模型的性能
测试集(Test Set)用于在模型训练完成后进行最终的评估
最终输出下面的文件结构:
上面2个步骤走完了, 下面我们就可以进行模型的训练了
首先建一个py文件夹, 可以命名train.py 或者其它
train.py的代码如下:
from ultralytics import YOLO
# yolo提供的预训练模型
model = YOLO("yolov8s.pt")
results = model.train(data="E:\git_code\code_model\images\images_json\YOLODataset\dataset.yaml",
# 最大训练批次
epochs=100,
# 使用cpu训练
device='cpu',