经过两天的努力,借鉴网上众多博客,在自己电脑上实现了使用yolo3模型训练自己的数据集并进行测试图片。本文主要是我根据下面参考文章一步步实施过程的总结,可能没参考文章中那么详细,但是会包含一些参考文章中没提及的容易掉坑的小细节,建议读者结合参考文章一起看,一步步走即可。首先贴出本文主要参考的文章以及代码出处:
代码:https://github.com/qqwweee/keras-yolo3
参考文章:https://blog.csdn.net/patrick_Lxc/article/details/80615433
一.下载项目源码,进行快速测试
从上面代码链接处下载整个项目源码。下载好后,首先根据github中指引进行快速测试。
yolo web:https://pjreddie.com/darknet/yolo
对应操作如下(命令行操作):
1. wget https://pjreddie.com/media/files/yolov3.weights
注释:这里wget为linux命令,windows系统可以直接访问后面链接来下载yolov3权重文件,也可以访问yolo web去下载。
2. python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
注释:执行convert.py文件,此为将darknet的yolo转换为可以用于keras的h5文件,生成的h5被保存在model_data下。命令中的convert.py和yolov3.vfg克隆下来后已经有了,不需要单独下载。
3.用已经被训练好的yolo.h5进行图片识别测试。执行:python yolo.py
执行后会让你输入一张图片的路径,因为我准备的图片(网上随便找的)放在yolo.py同级目录,所以直接输入图片名称,没有加路径。
过程和结果如下图所示:
以上结果表明快速开始项目成功,接下来我们进行搭建自己的数据集,进行模型的训练以及训练后模型用于测试图片识别。
二.准备自己的数据集
可以按照上面参考文章里面做法下载VOC数据集,然后清空里面内容,保留文件目录结构。也可以直接手动创建如下目录结构:
这里面用到的文件夹是Annotation、ImageSets和JPEGImages。注意:需要在VOC2007再创建一个上级目录VOCdevkit。
其中文件夹Annotation中主要存放xml文件,每一个xml对应一张图像,并且每个xml中存放的是标记的各个目标的位置和类别信息,命名通常与对应的原始图像一样;而ImageSets我们只需要用到Main文件夹,这里面存放的是一些文本文件,通常为train.