其他分享
首页 > 其他分享> > 手把手教会你使用机器深度学习YOLOV5自己的训练集

手把手教会你使用机器深度学习YOLOV5自己的训练集

作者:互联网

目录

导言

前期的准备

下载源码

数据集的收集与制作

配置文件

创建文件


导言

发这篇文章的目的不仅仅是教会小白也可以使用模型训练,拥有自己的模型,也算是对我这段时间的一个学习的记录吧,万一之后某一天还需要用到的时候可以再次捡起来进行学习和操作。

前期的准备

下载源码

1、YOLOv5的代码链接(大概4M):

GitHub官方下载(推荐):https://github.com/ultralytics/yolov5
 

环境:

Python版本:官方文档给出的是Python3.8,但是其他博主说3.7左右也可以具体没试过

运行yolov5的包都在代码内的 requirements.txt 文件下,缺什么装什么就行了

 这边直接给出CMD命令安装。记得切换到你下载的yolov5的文件夹下后再执行以下命令!

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

在pip install的时候,可能会出现read timeout的情况多重复运行几次就行了。

数据集的收集与制作

首先得有数据,你才能训练和制作模型,这一步你可以寻找开源的数据,也可以自己爬虫,制作数据集是一个繁琐且枯燥的过程,这里需要使用LabelImg工具

这里提供链接省的各位找:LabelImg工具下载

提取码:fmcg

具体步骤就不展开了,大家可以看我的这篇博客:使用labelImg标注图像产生yolov5数据集

但是大家标注具体类别的时候一定要细心,因为这会决定你的预测结果。

这是一篇教学文章,为了让大家快速上手,避免浪费大量时间收集数据

数据已经给各位准备好了

安全帽数据集https://pan.baidu.com/s/16UDG3nlx8ZY4QZ4Gmzxc3g%C2%A0
提取码:03g2 
 

配置文件

解压文件

首先在下载好的文件解压到data文件夹内

注意: JPEGimages内为数据集原始图片,Annotations内为标注的xml文件,以后你就需要标注完之后将图片和标注文件放入这两个文件夹内。)

数据集内的 VOC2028\ImageSets 文件夹下有个Main文件,这是配置好的训练集和测试集

建议删除和我一块操作一遍,毕竟自己的数据集可不会自己生成训练集和测试集

转换代码:

import argparse
import os
import random

parser = argparse.ArgumentParser()
# xml文件的地址,根据自己的数据进行修改 xml一般存放在Annotations下
parser.add_argument('--xml_path', default='VOC2028/Annotations', type=str, help='input xml label path')
# 数据集的划分,地址选择自己数据下的ImageSets/Main
parser.add_argument('--txt_path', default='VOC2028/ImageSets/Main', type=str, help='output txt label path')
opt = parser.parse_args()

trainval_percent = 0.8  # 训练集和验证集所占比例。 这里划分0.8的测试集,可自己进行调整
train_percent = 0.9  # 训练集所占比例,可自己进行调整
xmlfilepath = opt.xml_path
txtsavepath = opt.txt_path
total_xml = os.listdir(xmlfilepath)
if not os.path.exists(txtsavepath):
    os.makedirs(txtsavepath)

num = len(total_xml)
list_index = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list_index, tv)
train = random.sample(trainval, tr)

file_trainval = open(txtsavepath + '/trainval.txt', 'w')
file_test = open(txtsavepath + '/test.txt', 'w')
file_train = open(txtsavepath + '/train.txt', 'w')
file_val = open(txtsavepath + '/val.txt', 'w')

for i in list_index:
    name = total_xml[i][:-4] + '\n'
    if i in trainval:
        file_trainval.write(name)
        if i in train:
            file_train.write(name)
        else:
            file_val.write(name)
    else:
        file_test.write(name)

file_trainval.close()
file_train.close()
file_val.close()
file_test.close()

以上代码存放在data文件夹下(就是和VOC2028文件夹放在一块),我代码叫train_xml.py,这个随便自己取都行,叫123.py也可以,路径和我一样的就会在 VOC2028\ImageSets 文件夹下有个Main文件(假设你刚刚真的删除的话)

标签:xml,YOLOV5,trainval,手把手,train,教会,file,txtsavepath,txt
来源: https://blog.csdn.net/qq_42368762/article/details/122690675