使用YOLO框架Darknet进行分类预训练

首先给大家推荐一下我老师大神的人工智能教学网站。教学不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵黄段子!点这里可以跳转到网站

网络上大部分整理的博文都是关于YOLO以及YOLOv2的finetune过程,但由于实际的业务数据的要求,需要得到与之匹配的预训练模型,本文将使用YOLO的网络进行预训练,得到适合自己的分类器。
文章参考链接地址:https://pjreddie.com/darknet/train-cifar/

1、 下载darknet,并进行编译

git clone https://github.com/pjreddie/darknet
cd darknet
make

2、获取数据

这里写图片描述

我使用的是Mnist数据集,由于Mnist数据集是二进制格式的,所以需要先将其转化为.jpg格式的图片,同时将其中的标签数据提取出来。具体提取后的适配于Darknet训练的格式如下:

其中test存放测试图片,train存放训练图片,labels存放类别种类。labels中的格式如下:

 0
 1
 2
 3
 4
 5
 6
 7
 8
 9

注意:train文件夹中的每张图片的名字,需要包含label中的标签,比如有张图片属于类别”0”,则这张图片名字可以命名为“0_XXXXX”,其中XXXXX 为任意字符,但不能包含标签中其他类别的字符,否则程序就会当作该图片属于多个类。
将lables.txt改为lables.list,然后还需要train.list文件,这个文件里列出了train文件夹里所有的图片,每一行为一张图片的绝对路径。

/home/yrs/darknet/data/train/0_asdgaega.jpg
/home/yrs/darknet/data/train/1_asdgbyel.jpg

3、修改数据配置文件

进入darknet/cfg文件夹,修改imagenet1k.data文件,并保存为mnist.data:

classes=10                              //类别数
train  = data/train.list                //训练集列表路径
valid  = data/valid.list                //验证集列表路径
backup = /home/yrs/backup/              //用来保存训练结果的路径
labels = data/labels.list               //标签路径
names  = data/shortnames.list           //训练阶段不使用
top=5                                   //top5准确率

4、修改网络配置文件

还是上一步的文件夹,打开darknet19.cfg,这里列出了主要需要修改的项,并保存为mnist.cfg

[net]
batch=128
subdivisions=1
height=56
width=56
max_crop=512
channels=3
momentum=0.9
decay=0.0005

learning_rate=0.001
policy=poly
power=4
max_batches=10000

angle=7
hue = .1
saturation=.75
exposure=.75
aspect=.75

[convolutional]

batch_normalize=1 filters=32 size=3 stride=1 pad=1 activation=leaky …… ……

[convolutional]

filters=10 //一定要修改,否则会出错 size=1 stride=1 pad=1 activation=linear

[avgpool]

[softmax]

groups=1

[cost]

type=sse

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

5、训练模型

进入darknet根目录

./darknet classifier train cfg/mnist.data cfg/mnist.cfg
这里写图片描述

接下来就看到训练过程啦~

点这里可以跳转到人工智能网站

发表评论