• 笔记--使用yolov5训练自定的数据集


    目录

    1-- 使用labelimg标注自定数据集

    2-- 数据集路径格式

    3-- 设置配置文件

    4-- 训练

    5-- 检测

    6-- 参考

    7-- 补充问题


    1-- 使用labelimg标注自定数据集

    安装labelimg第三方库

    pip install labelimg -i https://mirror.baidu.com/pypi/simple

    运行labelimg

    labelimg

    Open Dir:需标注的数据集地址 

    Change Save Dir:存放已标注数据集 label 的地址

    Next Image 和 Prev Image 用于切换下一张和上一张图片

    Change save format:注意切换成Yolo的格式

    Create RectBox:使用矩形框标注物体的位置

    2-- 数据集路径格式

    训练集和验证集的路径格式如下:

    1. dataset
    2. ├─ images
    3. │ ├─ test # 存放测试集数据(可无)
    4. │ ├─ train # 存放训练集数据
    5. │ └─ val # 存放验证集数据
    6. └─ labels
    7. ├─ test # 存放测试集标签(可无)
    8. ├─ train # 存放训练集标签
    9. ├─ val # 存放验证集标签

    举例:

    注:存放图片和标签的文件夹需对应相同,如 images 下存放训练集图片  和  labels下 存放训练集标签的文件夹均为train_dataset。(文件夹名可自由定义)

    3-- 设置配置文件

    ①设置数据集的配置文件

    参考Yolov5的coco.yaml配置文件

    举例:

    1. # 设置路径
    2. path: /civi/dd_Detection_6.28/dataset # dataset root dir
    3. train: images/train_dataset # train images dir
    4. val: images/test_dataset # val images dir
    5. test: # optional
    6. # 设置类别Classes
    7. nc: 1 # number of classes
    8. names: ['done'] # class names

    path:数据集的根目录

    train:训练集相对于path的路径

    val:验证集相对于path的路径

    (路径的设置 可参考 第二节数据集路径格式 的举例图)

    nc:类别的个数(这里博主用于识别一个类别,因此设置为1)

    names:类别的名称

    ②设置权重文件配置

    参考Yolov5提供的预训练权重配置文件(这里博主选用的是yolov5s.yaml,使用yolov5s.pt)

    nc改成类别数目即可,这里博主只识别一个类别

    4-- 训练

    运行训练代码:

    1. python train.py \
    2. --data /civi/dd_Detection_6.28/train.yaml \
    3. --cfg /civi/dd_Detection_6.28/yolov5s.yaml \
    4. --weights /civi/dd_Detection_6.28/yolov5s.pt \
    5. --epoch 300 --batch-size 8 --device 0

    --data:数据集配置文件的地址

    --cfg:权重配置文件的地址

    --weights: 预训练权重文件的地址(预训练权重下载地址

    --epoch:训练的次数

    --batch-size:batch大小

    --device:使用cpu或gpu训练

    (使用cpu:--device cpu)(使用gpu:--device 0,1..)

    其它参数可参考train.py的配置参数

    5-- 检测

    1. python detect.py \
    2. --weights /civi/dd_Detection_6.28/test_img/best.pt \
    3. --source /civi/dd_Detection_6.28/test_img/test_ljf/test1.PNG

    6-- 参考

    参考1

    7-- 补充问题

    可能遇到的问题1:url错误(可能原因:博主使用的python3.8版本)

    解决方法:进入报错的代码。添加以下命令:

    1. import ssl
    2. ssl._create_default_https_context = ssl._create_unverified_context

    可能遇到的问题2:字体下载响应过慢

    解决方法:根据打印的内容,手动下载 字体文件 到 规定的路径 内

    举例:训练过程中,博主需下载 Arial.ttf 字体到 /root/.config/Ultralytics 路径内。

  • 相关阅读:
    PyCharm利用pydevd-pycharm实现Python远程调试
    Redis核心数据结构实战与高性能解析
    数据结构 之 树
    VSCODE驯服笔记(一)
    Vue3 中的 v-bind 指令:你不知道的那些工作原理
    Java 基础数据类型占用内存空间和字符串编码简介(二)
    Java设计模式-工厂模式
    10.11作业
    C++奇迹之旅:深入思考拷贝构造函数
    短剧是什么?短剧平台的经营模式。短剧平台需要什么资质?
  • 原文地址:https://blog.csdn.net/weixin_43863869/article/details/125534495