返回

从零搭建Darknet:轻松玩转自定义数据集中的YOLO训练

人工智能

一、搭建Darknet框架

  1. 获取Darknet源代码

    • 打开GitHub网站,在搜索栏中输入“Darknet”。
    • 进入Darknet的官方仓库,点击“Clone or download”按钮,复制仓库的SSH或HTTPS地址。
    • 打开终端窗口,导航至您想要安装Darknet的目录,执行以下命令进行克隆:
git clone https://github.com/pjreddie/darknet
  1. 编译Darknet

    • 进入克隆好的Darknet目录。
    • 执行以下命令编译Darknet:
make

二、准备自定义数据集

  1. 创建数据集文件夹

    • 创建一个文件夹来存放您的自定义数据集,例如“my_dataset”。
    • 在“my_dataset”文件夹中,创建两个子文件夹:“images”和“labels”。
    • 将您的图像文件复制到“images”文件夹中。
    • 为每张图像创建相应的文本文件,并将它们放入“labels”文件夹中。
  2. 编写数据标签文件

    • 打开文本编辑器,例如记事本或Sublime Text。
    • 对于每张图像,创建一个新的文本文件。
    • 在文本文件中,使用以下格式编写数据标签:
<class_id> <x_center> <y_center> <width> <height>
  • 例如,如果您有一张图像中包含一只猫,则数据标签如下:
0 0.5 0.5 0.3 0.3
  • 其中,“0”是猫的类别ID,“0.5”和“0.5”是猫的中心点坐标,“0.3”和“0.3”是猫的宽度和高度。

三、训练YOLO模型

  1. 下载预训练权重文件

    • 从Darknet的官方网站下载YOLOv3或YOLOv4的预训练权重文件。
    • 将下载的权重文件复制到Darknet目录中的“darknet”文件夹中。
  2. 修改配置文件

    • 打开Darknet目录中的“cfg”文件夹。
    • 选择您要训练的YOLO模型的配置文件,例如“yolov3.cfg”或“yolov4.cfg”。
    • 在配置文件中,找到以下行:
batch=64
subdivisions=16
  • 将“batch”的值更改为32,将“subdivisions”的值更改为8。
  1. 开始训练

    • 在终端窗口中,导航至Darknet目录。
    • 执行以下命令开始训练YOLO模型:
./darknet detector train cfg/yolov3.cfg darknet53.conv.74 my_dataset.data
  • 其中,“yolov3.cfg”是您选择的YOLO模型的配置文件,“darknet53.conv.74”是预训练权重文件,“my_dataset.data”是您创建的数据集的配置文件。

四、评估训练好的模型

  1. 导出训练好的权重文件

    • 在终端窗口中,导航至Darknet目录。
    • 执行以下命令导出训练好的权重文件:
./darknet detector map cfg/yolov3.cfg my_dataset.data yolov3_final.weights
  • 其中,“yolov3.cfg”是您选择的YOLO模型的配置文件,“my_dataset.data”是您创建的数据集的配置文件,“yolov3_final.weights”是您想要导出的权重文件的名称。
  1. 评估模型的性能

    • 在终端窗口中,导航至Darknet目录。
    • 执行以下命令评估训练好的模型的性能:
./darknet detector test cfg/yolov3.cfg my_dataset.data yolov3_final.weights
  • 其中,“yolov3.cfg”是您选择的YOLO模型的配置文件,“my_dataset.data”是您创建的数据集的配置文件,“yolov3_final.weights”是您导出的权重文件。

通过以上步骤,您就可以从零开始搭建Darknet框架,并在该框架下使用YOLO算法训练自己的自定义数据集,开启深度学习目标检测之旅。