yolov3调用mysql_yoloV3一步步训练自己的数据

YOLOV3的主页:

https://pjreddie.com/darknet/yolo/

运行主页上的代码得到:

17d0476bae6cb6494a176008eb226043.png

首先使用一个开源的神经网络框架Darknet,使用C和CUDA,有CPU和GPU两种模式。

7cb0de3c8b952a52bb31ba0b76f7e962.png

1、下载darknet

编辑Makefile文件:

c3e279386625e425306565437f77d800.png

2、编译:

make

如果遇到缺失包报错,将缺失的包装上去以后重新编译,重复下列两个操作,直到所有包都装好

make clean

make

安装好DarkNet之后,在darknet的子目录cfg/下已经有了一些网络模型的配置文件,在使用之前,需要下载好预训练好的权重文件yolo.weights(1.0 GB).

如果运行paper中的代码,则下载yolov3.weights后,运行以下命令就可以检测:

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

或者这个命令

./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/dog.jpg

如果想检测多张图片,需要预先载入预训练的模型:

bd723aaea8467bdd5d1da2e824ce3042.png

3、数据制作

制作VOC数据集:

064b3ae8d083514d49c1eeebaecb6e48.png

根据上面的链接下载数据,得到

b2048b4243d48110fdbcfdd7e2f632db.png

具体的每一个值的计算方式是这样的:假设一个标注的boundingbox的左下角和右上角坐标分别为(x1,y1)(x2,y2),图像的宽和高分别为w,h

d556e849f4528b6fb215287938816915.png

归一化的中心点x坐标计算公式:((x2+x1) / 2.0)/ w

归一化的中心点y坐标计算公式:((y2+y1) / 2.0)/ h

归一化的目标框宽度的计算公式: (x2-x1) / w

归一化的目标框高度计算公式:((y2-y1)/ h

如果图片的高度、宽度未知,可以通过cv2读取。

imginfo = cv2.imread(img_dir + img_name + '.jpg').shape

imginfo里存的是图像的[h, w,通道数] ,这一需要注意imginfo结果里的顺序

可以使用voc_label.py自动获取标签集合。

71ccf2a8ad6bd75574a0966c27a53849.png

总共20个类,运行以上脚本,得到了训练集的路径名称和对应的标签。

这个脚本主要是将训练集的路径写到test.txt中,并将xml中的label设置成训练需要的格式。

构建训练集:

cat 2007_train.txt 2007_val.txt 2012_*.txt > train.txt

构建好数据集,修改cfg/voc.data

8031c823da1eb3f6630771bbfeffce0a.png

train指定训练集的路径,valid指定测试集的路径,names的文件中指定了该数据集标注的检测的类别,内容为:

4757b34928c00f71e6206e7390d4f618.png

下载darknet53作为预训练的模型:

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

训练模型:

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

如果想使用多GPU,则使用以下的命令:

./darknet detector train cfg/voc.data cfg/yolov3-voc.cfg darknet53.conv.74 -gpus 0,1,2,3

如果想暂停训练,并且从断点开始训练则:

./darknet detector train cfg/coco.data cfg/yolov3.cfg backup/yolov3.backup -gpus 0,1,2,3

4f04ae479c08e4e038af1f587de03942.png

其中 cfg/yolov3-voc.cfg设置了网络的结构

总结——使用自己的数据训练yolo模型:

1、下载数据集制作数据训练集的格式train.txt(或者自己写下载数据集的脚本)

2219d32f7023912596d9eb6e8d06ed55.png

测试数据集:

714dd0da7b40c3cdf21333da20327e6d.png

标签数据集:

cc4d0228dbad98442efb14f38b5ded3b.png

b6d423ab621121ac4bf180d8eb0a760e.png

2、设置cfg/xxx.data,检测的类别数,训练集路径,测试集路径,检测类别

3、修改cfg模型设置:

bb73b18c14e194167d72dc9bd93d4459.png

3、下载预训练的模型,并且训练

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值