Win10上使用Darknet框架训练YOLOv4自定义数据集

本文在《Win10上使用Darknet框架测试YOLOv4识别》基础上进行,需要用到8个文件,其中有两个文件由程序自动生成,无需手动编辑。

1.准备样本数据和配置文件

 darknet.exe所在目录为x64,按文件夹分:
x64:yolov4-tiny.conv.29、process.py
x64/cfg:yolov4-tiny-custom.cfg
x64/data:obj.data、.obj.names、.obj样本文件夹、train.txt、test.txt、

 需要用到的文件及之间的关系如下图所示

(1).obj.data
位置:x64\data
作用:指定标签、训练集、测试集

classes = 10
train = data/train.txt
valid = data/test.txt
names = data/obj.names
backup = backup/

(2).yolov4-tiny-custom.cfg
位置:x64\cfg
作用:训练过程控制

有两处yolo需要改

(3).yolov4-tiny.conv.29
位置:x64
作用:预训练文件

下载地址:https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v4_pre/yolov4-tiny.conv.29

(4).obj.names
位置:x64\data
作用:标签名

(5).obj文件夹
位置:x64\data
作用:样本数据

(6)..process.py
位置:x64
作用:将样本数据分成训练集和测试集

import glob, os
 
# Current directory
current_dir = os.path.dirname(os.path.abspath(__file__))
 
print(current_dir)
 
current_dir = 'data/obj'
 
# Percentage of images to be used for the test set
percentage_test = 10;
 
# Create and/or truncate train.txt and test.txt
file_train = open('data/train.txt', 'w')
file_test = open('data/test.txt', 'w')
 
# Populate train.txt and test.txt
counter = 1
index_test = round(100 / percentage_test)
for pathAndFilename in glob.iglob(os.path.join(current_dir, "*.jpg")):
    title, ext = os.path.splitext(os.path.basename(pathAndFilename))
 
    if counter == index_test:
        counter = 1
        file_test.write("data/obj" + "/" + title + '.jpg' + "\n")
    else:
        file_train.write("data/obj" + "/" + title + '.jpg' + "\n")
        counter = counter + 1

(7)..train.txt
位置:x64\data
作用:训练集,由process.py程序生成,无需手杨编辑

(8).test.txt
位置:x64\data
作用:测试集,由process.py程序生成,无需手杨编辑

2.训练数据

在x64目录下打开命令行,运行以下语句开始训练

darknet detector train data/obj.data cfg/yolov4-tiny-custom.cfg yolov4-tiny.conv.29 -dont_show -map

训练结束时是这样的

训练结果保存在backup,将weights、cfg、names文件复制到对应的程序就可以识别了

训练过程的图表在x64下的chart.png和chart_yolov4-tiny-custom.png

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值