使用yolov3配置文件训练自己的数据

目录

前言

一、准备数据集

二、创建文件结构

三、格式化文件

1.data文件夹

2.config文件夹

四、修改yolo的配置文件

1.train文件

2.json2yolo文件

3.datasets文件


前言

使用yolov3框架训练自己的数据大致分为这四步:

  1. 准备数据集
  2. 创建文件结构
  3. 格式化文件
  4. 修改yolo的配置文件

一、准备数据集

使用labelme对自己数据集的图片进行打标处理

如图所示

打标之后保存的json文件要保存在自己知道的文件夹里

例如这样

二、创建文件结构

创建如图所示的文件结构

  • config和data文件夹需要自己创建
    • config文件夹里custom.data.txt保存的信息如下图所示
    • yolov3-custom.cfg里保存的是模型的结构以及配置参数
    • ​​​​​​​data文件夹下保存数据集的图片,打标后保存的json文件,labels里保存解析之后的数据,文件名与数据集图片名一致
    • classes.names里保存数据集的分类名称
    • train和val文件里保存数据集的路径,最好是绝对路径
  • utils文件夹通常是 YOLOv3 或其他深度学习项目中用来存放辅助工具和功能的地方,可以直接用,不用自己创建
  • weights里是darknet模型和yolo层的权重参数,需下载使用

三、格式化文件

  • 上一步创建了文件结构
  • 这一步填充每个文件夹中的数据

1.data文件夹

  • data文件夹的结构如图所示
    • custom里保存的是整个数据集的文件
    • 图片分成训练集和验证集
    • 标签也分成训练集和验证集
  • jsons里的json数据通过utils里的json2yolo.py文件进行解析,提取出每张打标图片的类别,矩形框的中心点坐标和框的宽高并将其保存在labels文件夹内
    • 标签文件与图片同名,但更改为txt文件
  • classes.names里的类别手动输入,一行一个类别,注意与json2yolo里的字典顺序一致
  • train.txt和val.txt里的信息是每张图片的绝对路径,可以由下面的代码帮助实现

import os

path = "D:\Code\YOLO\YOLOv3_try\data\custom\images\\train"
target = 'data\\custom\\train.txt'
file_name = os.listdir(path)  # 获取文件夹下每个文件的名字

with open(target, 'w') as t:
    for i in file_name:  # 遍历每个图片名 
        j = path + '\\' + i   # 将图片名加上文件夹路径 变成绝对路径
        t.write(j + '\n')   # 将图片绝对路径写入txt文件

2.config文件夹

custom.data.txt里是一些文件的绝对路径

yolov3-custom.cfg里是模型的结构和参数

卷积层 yolo层 路由层 残差层等

四、修改yolo的配置文件

1.train文件

  • train文件里要修改运行配置
  • 有些路径要更换为自己创建文件路径

2.json2yolo文件

  • 这里的字典顺序跟classes.names文件一致即可

  • 这里的两个路径都要改成自己文件的绝对路径

3.datasets文件

  • 配置文件这里使用的是相对路径
  • 如果像我这样使用绝对路径的话直接删除有路径的那两行即可

猜你喜欢

转载自blog.csdn.net/weixin_65047977/article/details/143419076