0.前言
因为yolo的作者不断更新自己的版本,让人使用和修改起来很不方便。因此这里保存一个自己的版本,并记录如何在自己的数据集上训练正框检测模型。
1.YOLOv2代码备份:
备份地址:https://pan.baidu.com/s/1qZW8glY
2.修改文件:
voc.data文件:修改’classes’为待检测的类别数(不包括背景),修改’train’为‘train.txt’文件的路径,用来存放所有训练数据的路径,修改’names’为’voc.names’的路径,用来存在前面各个类别的名称,修改’backup’为存放模型参数文件的路径。
tiny-yolo.cfg文件:这里以tiny-yolo.cfg文件为例,说明如何修改网络配置文件。在最下面’[region]’层参数中,修改’classes’为待检测的类别数目,修改最后一个’[convolutional]’层的filter数目为num * (1 + classes + coords),其中’num’,’classes’,’coords’均来自’[region]’层。
在’data’目录下新建自己的数据目录,如’mix_data’,在’mix_data’下新建’images’目录,里面存放所有的训练和测试图像(一般建议jpg格式),新建’labels’目录,里面存放每一张图像对应的label文件,图像和对应的label文件要求文件名一样,label文件的格式为txt形式,里面每一行存储一个object的标签,格式为’class_id x y w h’,其中x, y, w, h都是用图像大小归一化的。
在’data’目录下新建’train.txt’文件和’test.txt’文件,分别存放训练和测试的图像文件路径,建议都用绝对路径。同时新建’voc.names’文件,存放各个类别的名称。
3. 编译darknet
根据官网的提示,编译darknet, 运行训练指令和测试指令。