本教程是作者自己参考了一系列资料,以及踩坑之后总结下来的。和大家分享一下。
这次使用的模型是YOLOv3 的keras版本。
链接如下:
https://github.com/qqwweee/keras-yolo3
具体的使用细节,github上都写明了。
我这里是为了检测图像,所示使用,记得下载yolo的权重。
python yolo_video.py --image
就行了
要使用VOC的数据集。我们需要做的是在当前项目的目录下新建VOCdevkit文件夹。
文件的目录如下:
VOCdevkit
--VOC2007
--Annotations 用于存档xml文件
--ImageSets
--Main 存放训练集和测试集需要用要的文件编号
--JPEGImages2 存放需要检测的图片
我们需要在Main目录下,创建两个文件。test.txt和train.txt
这两个文件是给voc_annotation.py调用的,目的是用来生成符合keras-yolo3的数据格式。
如何生成test.txt和train.txt
这两个文件时需要我们自己编写的,我利用的是python脚本将Annotations里面的文件,读取出来随机打乱,然后按照八二开的原则,将文件名字放入train和test文件中,需要注意的是,不要包含后缀名。
然后调用voc_annotation.py脚本
这里需要注意的是,sets要生成的文件名,他会分别读取Main路径下的,train和val还有test。如果我们不需要其中的某一项,则将其从list中去掉。
在classes中把自己数据源中的需要识别的类加进去。我需要的只是car和train。
调用之后会在根目录生成
三个文件。接着打开
k-mean.py文件,把filename改成自己需要训练的数据集。该脚本会生成一个yolo_anchors.txt文件,把这个文件放入到model_data文件中去。
打开train.py文件
把文件对应的文件名字修改成为你自己的文件。并修改好input_shape.
把自己下载的权重的路径修改好。修改对应的trian和fine-tune对应的参数,我修改的是batch_size和epochs。
使用 python train.py我们就可以跑起来了。
这样我们就可以跑起来了。