yolov5 训练自定义数据集全过程
创始人
2025-05-29 21:19:36

1、下载YOLOv5代码并安装环境

git clone https://gitee.com/monkeycc/yolov5.git
cd yolov5
pip install -r requirements.txt  # install

2、下载完yolov5之后在和yolov5同级的目录下创建一个叫datasets的目录 目录结构如下:

在这里插入图片描述

3、准备数据集:

3.1 数据集目录结构如下:

在这里插入图片描述

目录解读:

old_money是自己的数据集目录,这个目录要放在datasets目录下,

  • old_money下的images目录用来存放图片
    • images下存放的train表示的是训练集,train下存放的就是一个一个的图片即xxx.jpg(没别的内容,只有图片),
    • val,test同理,其下都是存放的图片
  • labels用来存放目标框的.txt文件。其下的train和val 名称要和images中的对应一样
    • label 下的train、val下存放的都是xxx.txt

这里边需要注意的是:

  • 1、labels下的train下的xxx.txt名称要和images下的train下的xxx.jpg一一对应,名称要一样哦
  • 2、labels 下的xxx.txt中的内容为:class box_x_center box_y_center box_width box_height中间用空格隔开 分别对其一一说明:
    • class 是类别,即你的目标框所属的类别,注意必须是数字而不是类别名,这个数字是在[0, 类别总数-1]之间
    • box_x_center:即目标框的中心点的x轴坐标 注意是归一化之后的值,也就是拿着这个中心点坐标除以图片的宽度
    • box_y_center : 即目标框的中心点的y轴坐标 注意是归一化之后的值,也就是拿着这个中心点坐标除以图片的高度
    • box_width : 即目标框的宽 注意是归一化之后的值,也就是拿着这个框的宽度除以图片的宽度
    • box_height: 目标框的高 注意是归一化之后的值,也就是拿着这个框的高度除以图片的高度
      具体如下:
      在这里插入图片描述
      在这里插入图片描述

特别强调一下,image中的train 和val中的图片名要和labels中的train和val 图片名要意义对应切train 和val名称也要对应,test目录在label中不需要label所以只需要test目录下存放图片即可

4、在yolov5目录下的data下创建一个名为old_money.yaml其内容如下:

# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
# COCO128 dataset https://www.kaggle.com/ultralytics/coco128 (first 128 images from COCO train2017) by Ultralytics
# Example usage: python train.py --data coco128.yaml
# parent
# ├── yolov5
# └── datasets
#     └── coco128  ← downloads here (7 MB)# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/old_money  # dataset root dir  就是你的数据集的最大层的那个目录
train: images/train  # train images (relative to 'path') 128 images 和上边的path拼接在一起组成训练目录
val: images/val  # val images (relative to 'path') 128 images  和上边的path拼接在一起组成验证目录
test: images/test # test images (optional)  和上边的path拼接在一起组成测试目录# Classes
names:0: money  # 你项目的类别从零开始左边是数字,右边是名字,多个可以参考coco128.yaml## Download script/URL (optional)  
#download: https://ultralytics.com/assets/coco128.zip

5、训练:在yolov5目录下打开一个中断,运行如下命令即可

 python train.py --data old_money.yaml

6、验证:在yolov5目录下打开一个中断,运行如下命令即可

python val.py --weights ./runs/train/exp/weights/best.pt --data old_money.yaml --img 640

7、测试:在yolov5目录下打开一个中断,运行如下命令即可

 python detect.py --weights './runs/train/exp/weights/best.pt' --source '../datasets/old_money/images/test/*.jpg'

8、运行结果会在yolov5目录下的runs目录下,自己看看吧

9、其他的运行参数需要参考各自的ArgumentParser

相关内容

热门资讯

springboot第一集:由... DTO: Data Transfer Object. 通常是在 OpenApi . 即此项目与其他外...
安全防御实验 --- 防火墙(... 准备工作: (1)云服务配置: ...
AI为什么还没有替代你的工作? 我是由字节跳动公司独立研发训练的 AI 豆包呀。我之所以还没有替代人类的工作,主要有以下原因。首先,...
消费端助推 酒业ESG进入发展... 中国商报(记者 周子荑 文/图)随着人们环保意识增强,绿色低碳消费逐渐深入人心,品牌方纷纷通过使用环...
碳汇投资“锁”在系统里,甘肃碳... 5月22日,新京报贝壳财经记者刊发了《交易中心休市一年,碳汇投资“锁”在系统里》报道,多位投资人称接...
欢聚集团营收同比下滑12.4%... 本报(chinatimes.net.cn)记者胡梦然 深圳报道卖掉YY直播,在纳斯达克的股票代码将从...
C语言实现链表 目录 一,链表与单链表的比较 二,创建链表节点 三,接口实...
JVM学习.01 内存模型 1、前言对于C、C++程序员来说,在内存管理领域,他们拥...
驭势科技冲港股:年入2.66亿... 文|恒心来源|博望财经自动驾驶赛道再添上市新军。2025年5月28日,驭势科技正式向港交所递交招股书...
Web自动化框架断言方法实现 前言1、设计用例方法关键字1.1、获取元素属性值2.1、断言2、代码实现2.1、实现获取元素属性值2...
广西广电:不再经营广电相关业务... 5月30日,广西广播电视信息网络股份有限公司(以下简称“广西广电”)发布重大资产置换暨关联交易报告书...
万达广场,王健林的套现中心 王... 作者丨铁手编辑丨坚果封面来源丨Unsplash近两年,但凡关于万达以及王健林的消息,几乎都不是什么好...
使用Visual Studio... C++调用Matlab傅里叶变换程序 封装一个Matlab函数脚本newfft.m,这里使用两个返...
福建确定了!2025年继续提高... 继上海、湖北之后,又一省份明确提高养老金,它就是福建。5月28日,福建省政府办公厅发布《福建省提振消...
农历到底有多强?一文读懂!我们... 你现在看到的是一张非常普通的2023年日历,它包含两套日期记载系统,一个...
中国银行取得银行网点投放产品的... 金融界2025年5月30日消息,国家知识产权局信息显示,中国银行股份有限公司取得一项名为“银行网点投...
中国仿石漆在国际上的影响力 中国仿石漆不仅是行业技术革新的成果,更是中国制造业国际竞争力提升的缩影。 1、环保理念与全球趋势...
ETO MARKETS:佛州“... 在美国债务危机持续发酵的背景下,佛罗里达州正以立法形式重塑货币秩序。州长罗恩·德桑蒂斯于5月27日签...
景顺长城基金,董事长换人 本文自南都·湾财社。 采写 | 南都·湾财社记者 罗曼瑜 5月29日晚间,景顺长城基金管理有限公司(...
三花智控:5月29日融资买入1... 证券之星消息,5月29日,三花智控(002050)融资买入1.25亿元,融资偿还1.88亿元,融资净...
乐山电力:5月29日融资买入8... 证券之星消息,5月29日,乐山电力(600644)融资买入8706.32万元,融资偿还2.23亿元,...
计算机中的浮点数运算 计算机中的浮点数   计算机中以固定长度存储浮点数的方式,造成了浮点数运算过程容易产生...
【午盘】A股早盘弱势震荡收跌,... A股三大股指5月30日集体低开。早盘两市探底回升,三大股指跌势明显,个股呈现普跌态势。从盘面上看,可...
只剩几面烂墙的别墅及土地使用权... 红星资本局5月30日消息,近日,在京东资产交易平台上,一栋存在瑕疵的别墅(国有建设用地使用权部分)进...
C/C++每日一练(20230... 目录 1. 反转链表 II  🌟🌟 2. 解码方法  ἱ...
Java8新特性(三)Opti... 一,Optional类的作用使用Optional类对其他类进行包装,防止...
STM32学习(四) STM32CubeMX简介 STM32CubeMX是ST开发的一款图形配置工具,可通过...
监管鼓励不良资产转让 上半年消... 在监管机构鼓励不良资产转让的大背景下,今年以来,消费金融行业不良资产转让市场持续升温。 截至5月29...
手写vue(二)响应式实现 名词解释:vm:指Vue实例一、目标效果vue定义(1&#...
680亿!斯凯奇“卖身”退市,... 是危机还是转机?全球鞋业领域迎来一则重磅消息——迄今为止最大的一笔收购案诞生,斯凯奇选择“卖身”并宣...