Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!

YOLOV3-Darknet环境搭建+训练COCO数据集了解!

文章目录

    • 一、Darknet介绍
      • 1.1、Darknet
      • 1.2、数据集标注工具labelImg的简介
    • 二、训练YOLO V3关注2个点
      • 2.1、网络配置文件.cfg
      • 2.2、权值文件.weights
    • 三、Darknet的安装配置
      • 3.1、 Darknet的文件结构!
      • 3.2、网络配置文件yolov3.cfg
      • 3.3、数据配置文件cfg/coco.data
      • 3.4、权值文件cfg/coco.data
      • 3.5、coco数据集
        • 3.5.1、COCO数据集的标注格式介绍
    • 四、yolov3进行训练的命令
      • 4.1、训练命令
      • 4.2、训练日志
      • 4.3、网络配置信息yolov3.cfg
      • 4.4、数据路径的配置coco.data
      • 4.5、yolov3常见错误
      • 4.6、模型的保存设置
    • 参考文章

  • 下一篇博客具体的实战: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

  • 中括号+网络层的名字定义当前网络属于什么层。输入图像的信息;训练过程用到的信息;数据增强的一些信息;
网络层信息 卷积层信息
Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第1张图片
Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第2张图片

2.2、权值文件.weights

  • 保留网络结构所对应的权值。

三、Darknet的安装配置

  • 下载库文件
git clone https://github.com/pjreddie/darknet
cd darknet
  • 修改Makefile
Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第3张图片
  • 编译
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的文件结构!

Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第4张图片

3.2、网络配置文件yolov3.cfg

Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第5张图片

3.3、数据配置文件cfg/coco.data

  • 这里我们需要修改的就是cfg文件夹下面的coco.data
Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第6张图片

3.4、权值文件cfg/coco.data

  • 我们训练的过程中会生成针对yolov3的cfg这样的一个网络所生成的权值文件。权值文件会存放在Darknet下面的backup文件夹下面,这个backup文件夹,就是在3.3节中的图中,coco.data文件夹下。这个就指出了接下来权值要存放的目录。
  • 接下来我们会用yolov3_20000.weights用于测试。前1000次每隔100次保存一下,超过1000,每隔10000次保存一下。具体如何下面会看源码分析。
Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第7张图片
  • 如果我们训练的过程中止了,想继续之前的模型,我们会针对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

Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第8张图片
  • 实际上想使用coco数据集转化成voc格式的数据集,需要使用这里的coco api;下面可以使用Darknet对coco进行解析,因此这里不需要单独进行解析。只需要下载数据集放在指定的路径,就能使用Darknet完成后续的模型训练。
  • Darknet中提供了coco数据集下载脚本:
Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第9张图片

3.5.1、COCO数据集的标注格式介绍

参考这个链接:COCO 标注详解

四、yolov3进行训练的命令

4.1、训练命令

Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第10张图片

4.2、训练日志

Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第11张图片

4.3、网络配置信息yolov3.cfg

Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第12张图片
Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第13张图片
Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第14张图片
  • yolo层
Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第15张图片

4.4、数据路径的配置coco.data

Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第16张图片

4.5、yolov3常见错误

Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第17张图片
Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第18张图片

4.6、模型的保存设置

Darknet框架1:YOLOV3-Darknet环境搭建+训练COCO数据集了解!_第19张图片
  • 下一篇博客具体的实战:YOLOV3-使用Darknet训练检测自定义模型+COCO数据集!

参考文章

参考了一下作者的文章,在这里表示感谢!

  • 配置YOLO-v3训练自己的数据—完整版(含常见问题)
  • 快到没朋友的YOLOv123 修炼指南 3:实战配置演练+训练自己的数据
  • 目标检测:YOLOv3: 训练自己的数据
  • YOLOv3训练自己的数据详细步骤

你可能感兴趣的:(Machine,Learning学习笔记,Deep,Learning学习笔记,Deep,learning,Darknet,Machine,learning,YOLO,V3)