YOLOV3-Darknet环境搭建+训练COCO数据集了解! |
- 下一篇博客具体的实战:YOLOV3-使用Darknet训练检测自定义模型+COCO数据集!
一、Darknet介绍
1.1、Darknet
简要介绍:
- 一种较为轻型的完全基于C和CUDA的开源深度学习框架。
- 容易安装,没有任何的依赖项,移植性非常的好,支持CPU和GPU两种计算方式。
- Darknet官网:https://pjreddie.com/darknet/
- GitHub上找到Darknet源代码:https://github.com/pjreddie/darknet
Darknet的一些特性:
- Darknet完全由C语言实现,没有任何的依赖项,当然可以使用OpenCV(我们在编译Darknet的时候,有一个配置文件makefile文件,我们通过配置makefile文件来指定它是否使用OpenCV),但OpenCV只是用来显示图片,为了更好的可视化;
- Darknet支持CPU和GPU(CUDA和cuDNN);
- 一款轻量级的深度学习框架,灵活性,适合用来研究底层,可以更为方便的从底层对其进行扩展;
- Darknet的实现与Caffee的实现存在相似的地方;
1.2、数据集标注工具labelImg的简介
参考我之前的链接:DL笔记:PascalVOC 数据集介绍+数据集标注工具!
二、训练YOLO V3关注2个点
2.1、网络配置文件.cfg
- 中括号+网络层的名字定义当前网络属于什么层。输入图像的信息;训练过程用到的信息;数据增强的一些信息;
网络层信息 | 卷积层信息 |
---|---|
|
|
2.2、权值文件.weights
- 保留网络结构所对应的权值。
三、Darknet的安装配置
- 下载库文件
git clone https://github.com/pjreddie/darknet
cd darknet
- 修改Makefile
- 编译
make
- 安装好执行这个命令,显示下面的信息,告诉我们我们使用Darknet进行模型的训练或者测试,来完成后续函数的调用。我们使用的格式为:
./darknet 函数名的格式
比如:针对图像,我们采用Darknet来测试图像,验证我们当前的Darknet是否安装成功。这里调用imtest函数,针对data文件夹下面的一张图片进行测试;
./darknet imtest data/eagle.jpg
运行监测器
./darknet detect cfg/yolo.cfg yolo.weights data/dog.jpg
3.1、 Darknet的文件结构!
3.2、网络配置文件yolov3.cfg
3.3、数据配置文件cfg/coco.data
- 这里我们需要修改的就是cfg文件夹下面的coco.data
3.4、权值文件cfg/coco.data
- 我们训练的过程中会生成针对yolov3的cfg这样的一个网络所生成的权值文件。权值文件会存放在Darknet下面的backup文件夹下面,这个backup文件夹,就是在3.3节中的图中,coco.data文件夹下。这个就指出了接下来权值要存放的目录。
- 接下来我们会用yolov3_20000.weights用于测试。前1000次每隔100次保存一下,超过1000,每隔10000次保存一下。具体如何下面会看源码分析。
- 如果我们训练的过程中止了,想继续之前的模型,我们会针对yolov3.backup这个权值文件来进行权值恢复。
3.5、coco数据集
- 对于coco数据集,我们不需要写脚本,自己解析它的json文件,提供了coco api;
- coco api:标注信息的解析;可以通过如下指令,来下载安装coco数据解析的api,
git clone https://github.com/pdollar/coco.git
cd coco/PythonAPI
# 如果使用的是python2,运行下面的命令;
make -j8
# 如果使用的是python3,需要修改Makefile:
vim Makefile
# 将Makefile中的python改为python3,然后:
make -j8
- 实际上想使用coco数据集转化成voc格式的数据集,需要使用这里的coco api;下面可以使用Darknet对coco进行解析,因此这里不需要单独进行解析。只需要下载数据集放在指定的路径,就能使用Darknet完成后续的模型训练。
- Darknet中提供了coco数据集下载脚本:
3.5.1、COCO数据集的标注格式介绍
参考这个链接:COCO 标注详解
四、yolov3进行训练的命令
4.1、训练命令
4.2、训练日志
4.3、网络配置信息yolov3.cfg
- yolo层
4.4、数据路径的配置coco.data
4.5、yolov3常见错误
4.6、模型的保存设置
- 下一篇博客具体的实战:YOLOV3-使用Darknet训练检测自定义模型+COCO数据集!
参考文章
参考了一下作者的文章,在这里表示感谢!