使用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

5、训练模型

进入darknet根目录

./darknet classifier train cfg/mnist.data cfg/mnist.cfg

接下来就看到训练过程啦~
这里写图片描述

  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
YOLO(You Only Look Once)是一种目标检测算法,而Darknet是一个用于实现YOLO算法的开源框架YOLO算法的特点是将目标检测任务看作是一个单次前向传递的回归问题,它将整个图像分成多个网格,并对每个网格预测边界框和类别概率。这种设计使得YOLO在速度上非常高效,可以实时地进行目标检测。 Darknet是一个用C语言编写的轻量级神经网络框架,专门用于实现YOLO算法。它提供了一个简单而灵活的接口,可以用于训练和测试YOLO模型。 为了使用YOLODarknet,你需要进行以下几个步骤: 1. 配置和编译Darknet:首先,你需要下载Darknet框架并解压。然后,你可以根据你的需求修改Makefile文件以配置编译选项。通过运行"make"命令,你可以生成可执行的Darknet文件。 2. 自定义数据集:为了训练YOLO模型,你需要准备一个数据集。你可以创建一个.data文件来配置数据集的路径、类别数量等信息。 3. 配置网络参数:YOLO模型的配置文件是一个.cfg文件。你可以修改yolov4-tiny.cfg文件中的filters和classes参数来适应你的数据集。 4. 训练模型:使用以下命令开始训练你的YOLO模型: ./darknet detector train datasets/attackgiant/attackgiant.data cfg/yolov4-tiny-attackgiant.cfg -map 5. 测试模型:为了测试你的模型,你需要下载预训练的权重文件。你可以从YOLOv4 model zoo下载yolov4.weights,并将其放置在当前目录下。然后,可以使用以下命令进行测试: ./darknet detector test ./cfg/coco.data ./cfg/yolov4.cfg ./yolov4.weights data/dog.jpg -i 0 -thresh 0.25 或者你可以直接运行一个名为image_yolov4.sh的脚本。 这些是使用YOLODarknet进行目标检测的基本步骤。通过逐步调整和训练,你可以获得更好的检测结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值