返回
从零搭建Darknet:轻松玩转自定义数据集中的YOLO训练
人工智能
2023-09-09 07:34:36
一、搭建Darknet框架
-
获取Darknet源代码
- 打开GitHub网站,在搜索栏中输入“Darknet”。
- 进入Darknet的官方仓库,点击“Clone or download”按钮,复制仓库的SSH或HTTPS地址。
- 打开终端窗口,导航至您想要安装Darknet的目录,执行以下命令进行克隆:
git clone https://github.com/pjreddie/darknet
-
编译Darknet
- 进入克隆好的Darknet目录。
- 执行以下命令编译Darknet:
make
二、准备自定义数据集
-
创建数据集文件夹
- 创建一个文件夹来存放您的自定义数据集,例如“my_dataset”。
- 在“my_dataset”文件夹中,创建两个子文件夹:“images”和“labels”。
- 将您的图像文件复制到“images”文件夹中。
- 为每张图像创建相应的文本文件,并将它们放入“labels”文件夹中。
-
编写数据标签文件
- 打开文本编辑器,例如记事本或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模型
-
下载预训练权重文件
- 从Darknet的官方网站下载YOLOv3或YOLOv4的预训练权重文件。
- 将下载的权重文件复制到Darknet目录中的“darknet”文件夹中。
-
修改配置文件
- 打开Darknet目录中的“cfg”文件夹。
- 选择您要训练的YOLO模型的配置文件,例如“yolov3.cfg”或“yolov4.cfg”。
- 在配置文件中,找到以下行:
batch=64
subdivisions=16
- 将“batch”的值更改为32,将“subdivisions”的值更改为8。
-
开始训练
- 在终端窗口中,导航至Darknet目录。
- 执行以下命令开始训练YOLO模型:
./darknet detector train cfg/yolov3.cfg darknet53.conv.74 my_dataset.data
- 其中,“yolov3.cfg”是您选择的YOLO模型的配置文件,“darknet53.conv.74”是预训练权重文件,“my_dataset.data”是您创建的数据集的配置文件。
四、评估训练好的模型
-
导出训练好的权重文件
- 在终端窗口中,导航至Darknet目录。
- 执行以下命令导出训练好的权重文件:
./darknet detector map cfg/yolov3.cfg my_dataset.data yolov3_final.weights
- 其中,“yolov3.cfg”是您选择的YOLO模型的配置文件,“my_dataset.data”是您创建的数据集的配置文件,“yolov3_final.weights”是您想要导出的权重文件的名称。
-
评估模型的性能
- 在终端窗口中,导航至Darknet目录。
- 执行以下命令评估训练好的模型的性能:
./darknet detector test cfg/yolov3.cfg my_dataset.data yolov3_final.weights
- 其中,“yolov3.cfg”是您选择的YOLO模型的配置文件,“my_dataset.data”是您创建的数据集的配置文件,“yolov3_final.weights”是您导出的权重文件。
通过以上步骤,您就可以从零开始搭建Darknet框架,并在该框架下使用YOLO算法训练自己的自定义数据集,开启深度学习目标检测之旅。