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

news2024/11/24 17:56:15

目录

前言

一、准备数据集

二、创建文件结构

三、格式化文件

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2234597.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue组件在项目中的常用业务逻辑(3)

获取完后台接口数据后,需将数据在页面中进行动态展示。 一、在getters中简化数据: 二、在search>index.vue中写计算属性,实现将接口的goodsList模块数据展示在vue的search上: 三、1.用v-for循环数据,一共十个&…

改变自己最快的方式,就5个字,早践行早受益

学习和工作效率不高,总是被屏幕上突然弹出的各种消息扰乱大脑,打破既定节奏? 在如今这个娱乐至死的时代,短视频横行,网络聊天,吃喝玩乐极度便捷,娱乐触手可得,我们的注意力被太多东…

FLINK单机版安装部署入门-1

文章目录 FLINK单机版安装部署高于1.9.3需要修改配置文件flink-conf.yaml(低于1.9.3可以跳过)linux启动集群windows下启动Flink提交任务方式命令方式提交运行WordCount任务运行streaming任务 web页面提交任务取消Job java: Compilation failed: internal java compiler error高…

【Linux系列】Linux 和 Unix 系统中的`set`命令与错误处理

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Python | Leetcode Python题解之第537题复数乘法

题目: 题解: class Solution:def complexNumberMultiply(self, num1: str, num2: str) -> str:real1, imag1 map(int, num1[:-1].split())real2, imag2 map(int, num2[:-1].split())return f{real1 * real2 - imag1 * imag2}{real1 * imag2 imag1…

同三维T610UHK USB单路4K60采集卡

USB单路4K60HDMI采集卡,支持1路4K60HDMI输入和1路4K60HDMI环出,1路MIC输入1路Line IN音频输入和1路音频输出,录制支持4K60、1080P120,TYPE-C接口,环出支持1080P240 HDR 一、产品简介: 同三维T610UHK是一款USB单路4K60HDMI采集卡,…

设置JAVA以适配华为2288HV2服务器的KVM控制台

华为2288HV2服务器比较老旧了,其管理控制台登录java配置比较麻烦,华为的ibmc_kvm_client_windows客户端测试了几个版本,连接控制台也有问题,最终安装JDK解决。 一、测试环境 主机为WindowsServer2012R2,64位系统 二、Java软件包…

腾讯混元3D生成大模型“ Hunyuan3D-1.0”正式开源

腾讯公司近日宣布,其最新的MoE模型“混元Large”以及混元3D生成大模型“Hunyuan3D-1.0”已正式开源,供企业及开发者免费下载并商用。 腾讯混元3D生成大模型是业界首个同时支持文字、图像生成3D的开源大模型,首批开源模型包含轻量版和标准版&…

论文阅读- --DeepI2P:通过深度分类进行图像到点云配准

目前存在的问题: 单模态配准具有局限性,多模态研究很少跨模态图像到点云配准问题是求解相机坐标系与点云之间的旋转矩阵R ∈ SO(3)和平移向量t ∈ R3。 这个问题很困难,因为由于缺乏点到像素的对应关系,无法使用 ICP、PnP 和捆绑调…

MySQL表设计(三大范式 表的设计)

1.上讲约束复习: 1.NOT NULL 非空约束,被指定NOT NULL的列,值不允许为空(必填) 2. UNIQUE 唯一约束,这个列里的值在表中是唯一的,也就是说不能重复 3. PRIMARY KEY 主键约束,可以看做是NOT NULL和UNIQUE…

【修订中】js 中apply call bind 用法

一、call、apply可以翻译成继承或者借调 区别:传参不同 可以调用函数可以改变函数中this的指向 二、js 语法词法: 普通函数 构造函数: 为什么不在构造函数中写方法 function Student(n, a) {this.uname n;this.age a;this.sayHi func…

Android15音频进阶之Cuttlefish搭建音频开发环境(九十二)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【原创干货持续更新中……】🚀 优质视频课程:AAOS车载系统+…

【Unity】Unity拖拽在Android设备有延迟和卡顿问题的解决

一、介绍 在制作Block类游戏时,其核心的逻辑就是拖拽方块放入到地图中,这里最先想到的就是Unity的拖拽接口IDragHandler,然后通过 IPointerDownHandler, IPointerUpHandler 这两个接口判断按下和松手,具体的实现逻辑就是下面 public void On…

如何理解ETLCloud在iPaas中的关键角色

在当今的数字化时代,企业越来越依赖于其处理和分析数据的能力。为了实现这一目标,企业需要将各种异构的应用和数据源集成在一起,形成一个统一的数据视图。在这一过程中,ETL(Extract, Transform, Load)和iPa…

Linux多线程(个人笔记)

Linux多线程 1.Linux线程概念1.1线程的优点1.2线程的缺点 2.Linux线程VS进程3.Linux线程控制3.1创建线程3.2线程tid及进程地址空间布局3.3线程终止3.4线程等待 4.分离线程5.线程互斥5.1互斥锁mutex5.2互斥锁接口5.3互斥锁实现原理5.4可重入VS线程安全 6.线程同步6.1条件变量6.2…

【案例】故障雪花屏

开发平台:Unity 6.0 开发工具:Shader Graph 参考视频:【U2D Shader Graph】❄️雪❄️花❄️屏❄️   一、效果图 二、Shader Graph 路线图 三、案例分析 核心思路:雪花屏幕效果 (混合) 原图像 最终图像…

Hunyuan-Large:推动AI技术进步的下一代语言模型

腾讯近期推出了基于Transformer架构的混合专家(MoE)模型——Hunyuan-Large(Hunyuan-MoE-A52B)。该模型目前是业界开源的最大MoE模型之一,拥有3890亿总参数和520亿激活参数,展示了极强的计算能力和资源优化优…

arkUI:Column和Rom的间距设置(列向,横向)

arkUI:Column和Rom的间距设置(列向,横向) 1 主要内容说明2 相关内容举例和说明2.1 Column的间距(列的间距)2.1.1 源码1 (Column的间距)2.1.2 源码1运行效果 2.2 Row的间距&#xff0…

QML项目实战:自定义Combox

目录 一.添加模块 import QtQuick.Controls 2.4 import QtQuick.Templates 2.4 as T import QtGraphicalEffects 1.15 import QtQuick 2.15 as T2 二.自定义Combox 1.combox文字显示 2.设置下拉图标显示 3.下拉框中选中背景设置 4.下拉框中选中文字设置 5.下拉框设置…

【设计模式系列】原型模式(十一)

一、什么是原型模式 原型模式(Prototype Pattern)是一种创建型设计模式,它使得一个对象可以复制自身,从而创建一个与自己属性一致的新对象,而无需知晓对象创建的细节。这种模式允许动态地增加对象的数量,并…