首页 > 其他分享 >使用yolov3配置文件训练自己的数据

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

时间:2024-11-02 23:16:18浏览次数:5  
标签:文件 yolov3 配置文件 训练 train custom 文件夹 txt data

目录

前言

一、准备数据集

二、创建文件结构

三、格式化文件

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文件

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

标签:文件,yolov3,配置文件,训练,train,custom,文件夹,txt,data
From: https://blog.csdn.net/weixin_65047977/article/details/143419076

相关文章

  • 海南话语音识别模型——模型训练(一)
          上篇文章已经介绍了语料数据的预处理,对数据集中的音频数据分别做了重采样、静音切除、降噪以及在Fbank和MFCC中特征提取方式中选择了Fbank对音频数据进行特征提取的方法;在经过上面的处理后已经可以将提取出的音频数据Fbank丢到Transformer中进行训练,但还漏了一个比较......
  • 【牛客训练记录】中国地质大学(武汉)2024年新生赛(同步赛)
    训练情况赛后反思B题大模拟急到红温了,WA了四发,未考虑到部分细节情况A题直接输出\(x-1\)即可。#defineintlonglongusingnamespacestd;voidsolve(){ intx;cin>>x; cout<<x-1; }signedmain(){ //intT;cin>>T;while(T--) solve(); return0;}B题......
  • 代码随想录算法训练营第十天|leetcode232.用栈实现队列、leetcode225. 用队列实现栈、
    1leetcode232.用栈实现队列题目链接:232.用栈实现队列-力扣(LeetCode)文章链接:代码随想录视频链接:栈的基本操作!|LeetCode:232.用栈实现队列哔哩哔哩bilibili自己的思路:真的第一次接触这个概念,完全没有任何思路,甚至不知道从何下手1.1基本概念栈就是相当于砌墙的砖头,先......
  • 代码随想录算法训练营第九天|leetcode151.翻转字符串里的单词、卡码网55.右旋字符串、
    1leetcode151.翻转字符串里的单词题目链接:151.反转字符串中的单词-力扣(LeetCode)文章链接:代码随想录视频链接:字符串复杂操作拿捏了!|LeetCode:151.翻转字符串里的单词哔哩哔哩bilibili自己的思路:直接将空格去掉,然后分割字符串为列表,在列表中进行翻转,不在字符串内部操作......
  • 基于YOLO11/v10/v8/v5深度学习的危险驾驶行为检测识别系统设计与实现【python源码+Pyq
    《博主简介》小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~......
  • 极市平台 | ECCV‘24|Plain-Det:同时支持多数据集训练的新目标检测
    本文来源公众号“极市平台”,仅用于学术分享,侵权删,干货满满。原文链接:ECCV'24|Plain-Det:同时支持多数据集训练的新目标检测极市导读论文提出了Plain-Det,提供了灵活性以适应新的数据集,具有跨多样数据集的稳健性能、训练效率和与各种检测架构的兼容性。结合Def-DETR和Plain-Det,......
  • 日记 2024.11.1:2024 syzx 秋季训练 4
    E令\(m=s/2\)。将\(r<m\)的区间称作A类,\(m<l\)的B类,\(l\leqm\leqr\)的C类。A、B类可以互相匹配,过程如下:将B翻转,假如A类都叫\([l_i,r_i]\),B类对称翻转后叫作\([l_j,r_j]\),将\(l_i,r_j\)混合从小到大排序,维护一个升序的set,遇到\(l_i\)时将\(r_i\)插......
  • 20241030 训练记录
    [TJOI2012]桥删边最短路模板。只需求出对于每条边,不经过这条边的最短路就做完了。考虑不在原\(1\)到\(n\)最短路上的边,它们的答案就为原本的最短路。对于原本就在最短路上的边,既然删掉了这条边,那么新的最短路一定会经过另外一条边,设这条边为\((u,v,w)\),\(dis(u,v)\)表......
  • 模拟大模型训练时,单双精度输出不一致?从而加剧幻觉?或导致幻觉?
        下面是Python代码。就同样的随机数据,分别在单精度、双精度下做模拟训练与预测,最后比较它们预测的值,发现不一致。    大家看看,代码是否有问题?importnumpyasnpimporttensorflowastffromtensorflow.keras.layersimportDense,LSTMfromtensorfl......