2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > YOLOv3 网络搭建Darknet53 训练自己的数据集

YOLOv3 网络搭建Darknet53 训练自己的数据集

时间:2019-10-26 01:02:43

相关推荐

YOLOv3 网络搭建Darknet53 训练自己的数据集

YOLOv3官网

网络搭建步骤

一、编译darknet531.下载darknet53文件2.修改Makefile文件3.编译darkent53二、下载预训练权重文件三、测试编译好的darknet四、训练自己的数据1.准备自己的数据集2.obj.names文件3.obj.data文件4. yolov3.cfg文件5.训练模型6.测试图片

一、编译darknet53

1.下载darknet53文件

git clone /AlexeyAB/darknet

2.修改Makefile文件

在darknet文件夹下找到Makefile文件,修改:(如果没有GPU加速的话,就不用修改了。)

GPU=1 CUDNN=1 OPENCV=1

另外,OPENCV需要提前安装好。

3.编译darkent53

cd darknet

make

二、下载预训练权重文件

wget /media/files/yolov3.weights

三、测试编译好的darknet

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

运行结束后,可以查看输出的predictions.jpg,直接点开图片即可,也可以运行:

diaplay predicions.jpg

四、训练自己的数据

1.准备自己的数据集

将数据图片和标签(txt)放到一个文件夹obj里,将obj文件夹复制到darknet/data文件夹下。可以使用公开的数据集,下载方式。

在darknet/文件夹下创建一个generate_train.py,将下面代码复制进去并运行:

import osimage_files = []os.chdir(os.path.join("data", "obj"))for filename in os.listdir(os.getcwd()):if filename.endswith(".jpg"):image_files.append("data/obj/" + filename)os.chdir("..")with open("train.txt", "w") as outfile:for image in image_files:outfile.write(image)outfile.write("\n")outfile.close()os.chdir("..")

然后到darknet/data文件夹下看是否生成了一个train.txt文件。

2.obj.names文件

darknet/data文件夹下创建obj.names文件,里面存放需要识别的物体的名字(我们以识别两个物体为例,分别是Car和Bird),例如:

Car Bird

3.obj.data文件

在darknet/data文件夹下添加obj.data文件。

darknet/data/obj.data

输入内容如下:其中train.txt为训练集保存路径,test.txt为测试集保存路径

classes=2train = /data/train.txtvalidation = /data/test.txt names=data/obj.names backup=backup/

4. yolov3.cfg文件

在darknet/cfg文件夹下找到yolov3.cfg文件,复制一份更名为yolov3-custom.cfg文件,我们修改复制之后的文件,源文件不动。

打开yolov3-custom.cfg文件:

在[net]层修改:

-将#Testing下面两行用#注释掉;

-将#Training 下面两行的注释打开;

其余修改如下:

burn_in=1000 max_batches=6000 (训练6000次)steps=4800,5400 (设置为0.8倍的max_batches和0.9倍的max_batches)

在[yolo]层修改:

-在文本中搜索yolo,找到[yolo]层。下面的classes=2,random=0,上面一层的[convolutional]的filters=21,[21=(2+5)*3,2是类别数,如果是80类则应该写(80+5)*3=255]。

这种[yolo]层一共有3处,都要修改。

5.训练模型

下载darknet53预训练权重:

wget /media/files/darknet53.conv.74

开始训练:

./darknet detector train data/obj.data cfg/yolov3-custom.cfg darknet53.conv.74

这里需要训练一段时间,下面是训练结果(6000次训练):

6.测试图片

首先复制一份yolov3-custom.cfg 并更名为yolov3-custom_test.cfg, 修改的位置如下:

运行:

./darknet detector test data/obj.data cfg/yolov3-custom-test.cfg backup/yolov3-custom_final.weights data/person.jpg

显示结果如下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。