yolo4训练自己的数据集

第一步:搜集数据集,由于我想做一个口罩识别的小demo,所以我的数据集是口罩,一共两类。

口罩数据集

链接:https://pan.baidu.com/s/1ow4mjnEmr41Xuuzyci8EaA?pwd=mr0v 
提取码:mr0v

yolo4训练自己的数据集_第1张图片

第二步:找一个yolo的模型,B站上有很多大佬。个人推荐这个大佬。他就有教程,可以跟着自己做,我写的是一些注意事项,自己遇到的。

Tensorflow2 搭建自己的yolo3目标检测平台(Bubbliiiing 深度学习 教程)_哔哩哔哩_bilibili

源码下载

https://github.com/bubbliiiing/yolo3-tf2
喜欢的可以点个star噢。

yolo4训练自己的数据集_第2张图片

 第三步:环境的配置,这个直接pip安装就可以。B站的大佬已经帮你找好环境了。 如果有环境安装的问题可以留言一起讨论。

yolo4训练自己的数据集_第3张图片

第四步:训练模型,在这里有一些小的心得,B站的大佬用的voc数据集,我python基础不好,写不出对xml文件内容提取,所以就把我的数据集格式转变为voc的格式了。意思就是数据集重命名,这里有python现成的工具。代码如下

import os
path = "D:\\BaiduNetdiskDownload\\mask_dataset\\label_nomask"

filelist = os.listdir(path) #该文件夹下所有的文件(包括文件夹)
count=515#设置图片编号从1开始
for file in filelist:#打印出所有图片原始的文件名
    print(file)
for file in filelist:   #遍历所有文件
    Olddir=os.path.join(path,file)   #原来的文件路径
    if os.path.isdir(Olddir):   #如果是文件夹则跳过
        continue
    filename=os.path.splitext(file)[0]   #文件名
    filetype=os.path.splitext(file)[1]   #文件扩展名
    Newdir=os.path.join(path,str(count).zfill(6)+filetype)  #用字符串函数zfill 以0补全所需位数
    os.rename(Olddir,Newdir)#重命名
    count += 1
"""
import os
path = 'E:/CSRNet-pytorch-master/data/original/shanghaitech/part_B_final/train_data/images'
num = 1
for file in os.listdir(path):
    os.rename(os.path.join(path,file),os.path.join(path,'IMG_'+str(num)+".jpg"))
    num+=1
"""

效果像下图这样。

yolo4训练自己的数据集_第4张图片

 这里有一个注意的地方,就是如果你数据集有很多不同地方来的,记得注意图片和xml文件一一对应。

把重命名的数据放入其中就可以。

yolo4训练自己的数据集_第5张图片

在运行大佬这个代码的时候,这个voc_classes.txt文件里面是你分类的东西。

 yolo4训练自己的数据集_第6张图片

下图是你分类内容,在这里有一个注意点。就是你分类的内容必须与你进行标注的标签一致。就是你xml文件里面的名字。 

yolo4训练自己的数据集_第7张图片yolo4训练自己的数据集_第8张图片

 yolo4训练自己的数据集_第9张图片

 像这样的才是成功,有路径有位置信息。

yolo4训练自己的数据集_第10张图片

然后进行训练就可以了,B站大佬讲的很详细。

你可能感兴趣的:(笔记,计算机视觉,人工智能)