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

【源码】基于Python和Pytorch的高效YOLOv4目标检测系统

项目简介

本项目实现了经优化的Efficient_YOLOv4目标检测网络。借助一系列优化手段,在保障检测精度的同时,降低了模型计算量与体积,提升了检测速度,可实现实时检测。

项目的主要特性和功能

  1. 构建Efficient_YOLOv4目标检测网络结构。
  2. 支持对自定义数据集开展锚框聚类。
  3. 能够进行网络模型的训练和预训练。
  4. 把PANet替换成BiFPN,用Swish激活函数替代Mish激活函数。
  5. 去除部分优化技巧以减少计算量。
  6. 调整学习率衰减方式为0.97的指数衰减。
  7. 用深度卷积替换卷积块和密集卷积层,并加入CSP化。
  8. 显著减少模型体积,从245MB降至86MB。
  9. 提升检测速度,从45ms降至35ms。
  10. 提高检测精度,MAP0.5从41%提升到59.57%。

安装使用步骤

环境要求

  • Windows10
  • Python3.7
  • Pytorch1.3
  • CUDA10.0

训练步骤

  1. 使用labelimg将自己的数据集标注为VOC格式,也可使用现有的VOC2007+VOC2012格式的数据集。
  2. 运行kmeans_for_anchors.py进行聚类获取数据的锚框。
  3. 运行voc2yolo3.py将数据集分为训练集和测试集。
  4. 运行voc_annotation.py得到数据的位置和信息。
  5. 运行trains.py进行训练,将代码中的路径改为自己的路径,把得到的锚框和标签信息加入进去: Python trains.py '-anchors', default="./model_data/anchors.txt" '-classes', default="./model_data/class_name.txt" '-annotation', default="./my_train.txt"

检测步骤

运行detect.py进行目标检测,配置如下参数: Python detect.py '-model_path', default="./models/Epoch22-Total_Loss18.8616-Val_Loss18.8762.pth" '-classes_path', default='./model_data/voc_classes.txt', type=str, help='classes path' '-anchors_path', default='./model_data/voc07_12anchors.txt'

下载地址

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