yolov4训练数据并检测

1.下载代码

git clone https://github.com/AlexeyAB/darknet.git
cd darknet
make

2.修改Makefile文件(用CPU训练则忽略此步)
打开darknet下Makefile文件,修改以下参数
GPU=1
CUDNN=1
CUDNN_HALF=1
OPENCV=1
OPENMP=1
LIBSO=1
DEBUG=1
保存退出,在darknet文件夹下打开终端,执行make
3.测试开源权重

  #图片结果保存在darknet/predictions.jpg
./darknet detect cfg/yolov4.cfg yolov4.weights data/person.jpg

在这里插入图片描述4.准备数据集,在scripts文件夹下创建文件夹VOCdevkit(根据下图在VOCdevkit文件夹下创建文件,并放入相应的数据

  VOCdevkit 
  ——VOC2007        #文件夹的年份可以自己取,但是要与其他文件年份一致
  ————Annotations  #放入所有xml文件
  ————ImageSets    
  ——————Main       #放入train.txt,val.txt文件
  ————JPEGImages   #放入所有的图片文件

Main中的txt文件是要写文件名,如train.txt里是用来训练的图片的文件名(不包含后缀,只是文件名),这个文件可以用如下代码生成

import os
from os import listdir, getcwd
from os.path import join
if __name__ == '__main__':
    source_folder='/home/lka/darknet/scripts/VOCdevkit/VOC2007/JPEGImages'#按照自己存放文件的路径修改
    dest='/home/lka/darknet/scripts/VOCdevkit/VOC2007/ImageSets/Main/train.txt' 
    dest2='/home/lka/darknet/scripts/VOCdevkit/VOC2007/ImageSets/Main/val.txt'  
    file_list=os.listdir(source_folder)       
    train_file=open(dest,'a')                 
    val_file=open(dest2,'a')                  
    for file_obj in file_list:                
        file_path=os.path.join(source_folder,file_obj) 
       
        file_name,file_extend=os.path.splitext(file_obj)
       
        file_num=int(file_name) 
        
        if(0<file_num<175): #按照图片的数量和编号划分数据集,我这里文件的编号为1-250,以1-175为训练集,其余为验证集                    
            
            train_file.write(file_name+'\n')  
        else :
            val_file.write(file_name+'\n')    
    train_file.close()
val_file.close()

5.修改scripts下的voc_label.py,这个文件就是根据Main中txt里的文件名,生成相应的txt,里面存放的是它们的路径

sets=[('2007', 'train'), ('2007', 'val')]   #这里要与Main中的txt文件一致
 
classes = ["Flammable"]          #你所标注的类别标签名
 
os.system("cat 2007_train.txt 2007_val.txt 2012_train.txt 2012_val.txt > train.txt")
#os.system("cat 2007_train.txt 2007_val.txt 2007_test.txt 2012_train.txt 2012_val.txt > train.all.txt")
#文件最后一句,意思是要将生成的文件合并,所以很据需要修改,这里的年份都是一致的

修改完了之后在scripts下执行voc_label.py,运行后生成 2007_train.txt、2007_val.txt、train.txt,如图
在这里插入图片描述同时,主目录darknet下的scripts/VOCdevkit/VOC2007/下面会生成一个label文件夹
6.修改配置文件
修改cfg/coco.data

classes= 1   #类别数
train  = /home/lka/darknet/scripts/2007_train.txt #训练集路径
valid  = /home/lka/darknet/scripts/2007_val.txt #测试集路径
#valid = data/coco_val_5k.list
names = /home/lka/darknet/cfg/coco.names     #自己的类别
backup = /home/lka/darknet/backup/   #权重保存地址
eval=coco

修改cfg/coco.names,改成自己类别的名称
在这里插入图片描述7.修改cfg/yolov4-custom.cfg

8    width=416  #修改width和height为416
9    height=416
20   max_batches = 6000  #修改最大batch迭代多少个数max_batches = 6000
21   policy=steps
22   steps=4800,5400    #修改steps多久学习率下降一次,一般设置为batch个数的80%和90%

然后三个classes的地方要修改,分别为第970,1058和1146行

970  classes=1

还有三个filters=255的地方要修改成自己的

963  filters=18  #(类别数+5)*3

8.开始训练
下载权重 yolov4.conv.137

链接:https://pan.baidu.com/s/1yhB8pRcGH84gyRWeNictBA
提取码:gi4d

下载好放入主目录中

./darknet detector train cfg/coco.data cfg/yolov4-custom.cfg yolov4.conv.137

如果要使用gpu的话输入以下

./darknet detector train cfg/coco.data cfg/yolov4-custom.cfg yolov4.conv.137 -gpus gpu_id #加上gpu编号

9.预测

./darknet detector test cfg/coco.data cfg/yolov4-custom.cfg backup/yolo-custom_1000.weights data/test.jpg
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值