littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于Darknet框架的YOLO物体检测系统

项目简介

本项目是基于Darknet框架实现的YOLO(You Only Look Once)物体检测系统,支持YOLO v4、v3和v2版本,可在Windows和Linux系统上运行。利用神经网络进行物体检测,在MS COCO等数据集上取得优异效果,具有高准确性和实时性,还提供多种预训练模型,方便用户快速部署和定制化训练。

项目的主要特性和功能

  1. 支持YOLO v4、v3和v2,用户可按需选择模型版本。
  2. 可在Windows和Linux系统上编译运行。
  3. 提供多种预训练模型,包括不同配置文件和对应权重文件,适用于不同数据集和场景。
  4. 通过融合卷积层和批归一化层、利用Tensor Cores加速检测等技术手段优化模型性能。
  5. 支持多GPU训练,提高训练效率。
  6. 用户可根据自身数据集进行自定义训练,检测自定义物体。
  7. 支持在TensorFlow、OpenCV - dnn、Intel OpenVINO等多种框架中使用YOLO v4。
  8. 提供mixup、cutmix、mosaic等多种数据增强方法,提高模型泛化能力。
  9. 支持计算mAP、F1、IoU、Precision - Recall等评估指标。
  10. 可作为JSON和MJPEG服务器,通过网络在线获取检测结果。

安装使用步骤

安装依赖

  1. 操作系统:Windows或Linux
  2. CMake:版本 >= 3.12,下载地址:https://cmake.org/download/
  3. CUDA:版本 >= 10.0,下载地址:https://developer.nvidia.com/cuda-toolkit-archive
  4. OpenCV:版本 >= 2.4,可使用包管理器安装、从源码构建或从官方网站下载。
  5. cuDNN:版本 >= 7.0,下载地址:https://developer.nvidia.com/rdp/cudnn-archive
  6. GPU:计算能力(CC) >= 3.0
  7. 编译器:Linux系统使用GCC或Clang,Windows系统使用MSVC 2017/2019

编译项目

Linux/macOS(使用CMake)

在复制的仓库中打开终端,运行以下命令: bash ./build.sh

Linux(使用make)

在darknet目录下执行make命令。执行前可在Makefile中设置以下选项: - GPU=1:使用CUDA加速,需将CUDA安装在/usr/local/cuda。 - CUDNN=1:使用cuDNN加速训练,需将cuDNN安装在/usr/local/cudnn。 - CUDNN_HALF=1:为Tensor Cores构建,可加速检测和训练。 - OPENCV=1:使用OpenCV,支持视频文件和网络摄像头的检测。 - DEBUG=1:构建调试版本。 - OPENMP=1:使用OpenMP支持,通过多核CPU加速。 - LIBSO=1:构建共享库darknet.so和可执行文件uselib。 - ZED_CAMERA=1:构建支持ZED - 3D相机的库。

Windows(使用CMake)

  1. 安装Visual Studio 2017或2019。
  2. 安装CUDA(至少v10.0),并在安装过程中启用VS集成。
  3. 打开Powershell,执行以下命令: PowerShell PS Code\> cd vcpkg PS Code\vcpkg> $env:VCPKG_ROOT=$PWD PS Code\vcpkg> .\bootstrap-vcpkg.bat PS Code\vcpkg> .\vcpkg install darknet[full]:x64-windows #replace with darknet[opencv-base,cuda,cudnn]:x64-windows for a quicker install of dependencies PS Code\vcpkg> cd .. PS Code\> cd darknet PS Code\darknet> .\build.ps1

使用预训练模型进行检测

在Linux上使用./darknet,在Windows上使用darknet.exe。以下是一些使用示例: - Yolo v4 COCO - 图像darknet.exe detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights -thresh 0.25 - Yolo v4 COCO - 视频darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -ext_output test.mp4 - Yolo v4 COCO - WebCam 0darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -c 0

自定义训练

  1. 下载预训练权重:根据要使用的配置文件,下载相应的预训练权重文件。
  2. 创建配置文件:创建yolo-obj.cfg文件,根据需要修改相关参数,如batchsubdivisionsmax_batches等。
  3. 创建名称文件:在build\darknet\x64\data\目录下创建obj.names文件,列出要检测的对象名称。
  4. 创建数据文件:在build\darknet\x64\data\目录下创建obj.data文件,指定类别数、训练集和验证集文件路径等。
  5. 创建训练文件:在build\darknet\x64\data\目录下创建train.txt文件,列出训练图像的文件名。
  6. 开始训练:使用以下命令开始训练: bash darknet.exe detector train data/obj.data yolo-obj.cfg yolov4.conv.137

停止训练

通常每个类别训练2000次迭代,但总迭代次数不少于训练图像数且不少于6000次。当平均损失0.xxxxxx avg不再下降时,可停止训练。也可以使用-map标志进行训练,当mAP不再增加时停止训练。停止训练后,选择darknet\build\darknet\x64\backup目录下mAP最高的权重文件用于检测。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】