@TOC
WARNING!
本教程所使用的的程序为下图所示版本(https://blog.csdn.net/weixin_44791964/article/details/103276106)
基于Tensorflow -GPU2.0.0+Keras2.3.1
准备数据
准备好图片以及标注文件:分别存放在VOCdevkit/VOC2007/JPEGImages和Annotations文件夹。
在model_data文件夹下面创建一个自己的分类txt文件(我这里以我创建的new-classes.txt为例)这个记事本里面存放的是数据集分类的类别名称(最后一行不能有空格!!!)
将预训练的权重文件保存在model_data文件夹下面。
创建文件名的索引
在VOCdevkit/VOC2007文件夹中的voc2yolo3文件运行即可(记得在每次运行前手动删除VOCdevkit/VOC2007/Imagesets/Main里面的四个txt文件以及根目录下的2007_train test val三个文件)
合并图像文件与标注文件
合并图像文件与标注文件。修改
为自己的数据集的类别名称,然后运行该程序。若出现一下错误:
注意检查自己的标签和路径中不要使用中文。(这边要注意下:如果自己将这些文件都生成好了cp到服务器上面运行的时候一定会报错,就是因为这个2007_train.txt里面的路径是自己电脑上的索引,所以必须在服务器上面生成这三个文件,这样在训练的时候,程序才能找到图片以及对应的标注文件。)
开始训练
主要在程序里面修改batchsize以及epoch。这个程序冻结部分网络结构,以防止初期权值被破坏,并且可以解冻后再训练。
ATTENTION:我这里训练采用的是yolov3作者给的预训练好的权重文件。
预测predict.py
在训练完成之后,/logs文件夹下面会生成几个.h5的权重文件。其中last1.h5是最终的权重文件,需要我们cp到model_data文件夹里面。修改yolo.py文件夹中的路径文件名
model_path为训练好的权重文件的路径