yolov3-tiny训练自己的数据集

仅作笔记整理搬运使用,没有任何程序原创部分,主要给自己提个醒,避免重复搜索工作

一、制作VOC数据集

https://blog.csdn.net/Sunhansong/article/details/107281225

二、darknet框架下载

yolov3官方网站
https://pjreddie.com/darknet/yolo/

AlexeyAB 版本darknet
https://github.com/AlexeyAB/darknet
训练直接可视化,权重有best.weights

三、训练

  1. 把数据集放在darknet/script中
  2. 修改voc_label.py中的classes变成自己需要的类别名称,此外将classes上一行的带括号的2012删除,以及最后两句注销.
python3 ./voc_label.py
cat 2007_train.txt 2007_val.txt > train.txt
  1. 修改配置

    修改data/voc.names里面的类别为自己需要的类别名称
    修改cfg/voc.data文件

classes= 3
train  = /home/shs/darknet/scripts/2007_train.txt
valid  = /home/shs/darknet/scripts/2007_test.txt
names = data/voc.names
backup = /home/shs/darknet/backup/

注:classese:类别数量
train:路径为voc数据集文件夹下的2007_train.txt文件的路径
test:路径为voc数据集文件夹下的2007_test.txt文件的路径
names:为data文件夹下的voc.names
backup:为主目录下backup文件夹(主要用来存放训练生成的.weights文件(模型)和.backup文件(用于训练过程中断后继续训练时所用文件))
eval:为voc评价标准

  1. 修改cfg文件
    若用yolov3-tiny.cfg
[net]
#Testing
#batch=1
#subdivisions=1
#Training
batch=64
subdivisions=16    #原来是2,后来运行时总出核心已转储的错,改大了就好了
width=416
height=416
channels=3
[convolutional]
size=1
stride=1
pad=1
filters=93   ##改为3*(classes+1+4)
activation=linear

[yolo]
mask = 0,1,2
anchors = 10,13,  16,30,  33,23,  30,61,  62,45,  59,119,  116,90,  156,198,  373,326
classes=26    ##改为你自己的数量
num=9
jitter=.3
ignore_thresh = .5
truth_thresh = 1
random=1

其中有两处需要修改!yolov3-voc.cfg有三处!

  1. 训练:

(1)模型下载:

wget https://pjreddie.com/media/files/darknet53.conv.74

(2)可设置训练次数
系统默认会迭代45000次batch,如果需要修改训练次数,进入cfg/yolo3_tiny.cfg修改max_batches的值。
(3)模型保存
训练时默认:迭代次数小于1000时毎迭代100次保存一次模型,迭代次数大于等于1000时毎一万次保存一次模型,保存的模型结果保存在主目录下的backup文件夹下,同时,会保存.backup模型(该模型为:当训练中断时,若想要继续接着上次训练可以使用这个模型),若想修改毎多少次保存一次模型的次数,可以在DarkNet主目录下examples/detector.c文件138行中进行修改
修改完成后,在DarkNet主目录下鼠标右键打开终端输入命令:make,回车进行重新编译
(4)训练终端输入:

./darknet detector train cfg/voc.data cfg/yolov3-tiny.cfg darknet53.conv.74 -map

加上-map可在训练时看到map

./darknet detector train cfg/voc.data cfg/yolov3-tiny.cfg darknet53.conv.74  2>1 | tee train_yolov3.log

后面命令可保存训练日志train_yolov3.log
(5)
训练时,终端看Avg IOU 😗**这个值越大说明训练效果越好,出现大量的nan则证明训练无效

Region 106 Avg IOU: 0.494182, Class: 0.494590, Obj: 0.000736, No Obj: 0.000152, .5R: 0.000000, .75R: 0.000000,  count: 1
658(迭代次数): 6.408302(总的loss损失), 6.909904 avg(平均loss), 0.000187 rate(学习率), 3.666400 seconds(训练batchsize用到的时间), 42112 images(当前已经训练多少图片)
Loaded: 0.000028 seconds

参数信息:
Avg IOU: 当前迭代中,预测的box与

  • 6
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值