Ultralytics YOLO27:
Get Started

YOLOv4:高速精准的目标检测#

欢迎访问 Ultralytics 文档中的 YOLOv4 页面。YOLOv4 是一款先进的实时目标检测器,由 Alexey Bochkovskiy 于 2020 年在 https://github.com/AlexeyAB/darknet 发布。YOLOv4 旨在实现速度与准确率之间的最佳平衡,因此是众多应用的理想选择。

YOLOv4 架构图 YOLOv4 架构图。图中展示了 YOLOv4 精巧的网络设计,包括骨干网络、颈部和头部组件,以及这些组件相互连接的层,以实现最佳实时目标检测效果。

简介#

YOLOv4 是“你只看一次”第 4 版的简称。它是一种实时目标检测模型,旨在解决早期 YOLO 版本(如 YOLOv3)和其他目标检测模型的局限性。与其他基于卷积神经网络 (CNN) 的目标检测器不同,YOLOv4 不仅适用于推荐系统,还适用于独立的流程管理和减少人工输入。它可在普通图形处理器 (GPUs) 上运行,因此能够以实惠的成本大规模使用;它还专为在普通 GPU 上实时运行而设计,训练只需一块这样的 GPU。

架构#

YOLOv4 运用了多项协同工作的创新特性来优化性能,包括加权残差连接 (WRC)、跨阶段局部连接 (CSP)、跨小批次归一化 (CmBN)、自对抗训练 (SAT)、Mish 激活、Mosaic 数据增强、DropBlock 正则化和 CIoU 损失。这些特性结合起来,帮助模型取得先进水平的成果。

典型的目标检测器由多个部分组成,包括输入、骨干网络、颈部和头部。YOLOv4 的骨干网络在 ImageNet 上预训练,用于预测目标类别和边界框。骨干网络可以采用多种模型,包括 VGG、ResNet、ResNeXt 或 DenseNet。检测器的颈部用于收集不同阶段的特征图,通常包含若干自下而上的路径和自上而下的路径。头部则用于完成最终的目标检测和分类。

免费技巧包#

YOLOv4 还采用了称为“免费技巧包”的方法,这些技术可以在不增加推理成本的情况下提升模型训练期间的准确率。数据增强是目标检测中常见的免费技巧包方法,它通过增加输入图像的多样性来提升模型的鲁棒性。数据增强的示例包括光度变换(调整图像的亮度、对比度、色调、饱和度和噪声)和几何变换(随机缩放、裁剪、翻转和旋转)。这些技术有助于模型更好地泛化到不同类型的图像。

功能与性能#

YOLOv4 专为实现目标检测的最佳速度与准确率而设计。YOLOv4 的架构包括作为骨干网络的 CSPDarknet53、作为颈部的 PANet,以及 YOLOv3 检测头。这种设计让 YOLOv4 能够以惊人的速度执行目标检测,适用于实时应用。YOLOv4 的准确率也很出色,在 COCO 等目标检测基准测试中取得了先进水平的结果。

与 YOLO 系列中的其他模型(如 YOLOv5 和 YOLOv7)相比,YOLOv4 在速度与准确率的平衡方面仍占据优势。尽管更新的模型可能具备某些优点,YOLOv4 的架构创新仍让它适用于许多需要实时性能的应用。

使用示例#

YOLOv4 是基于 Darknet 的模型,Ultralytics Python 软件包不原生支持它:我们没有在 ultralytics/assets 上发布 yolov4.pt 预训练权重,也没有 ultralytics/cfg/models/v4/ YAML 文件。本页面作为架构参考保留。想运行 YOLOv4 的用户应直接参阅 YOLOv4 GitHub 仓库中的安装和使用说明。

下面简要介绍使用 YOLOv4 时通常可能采取的步骤:

  1. 访问 YOLOv4 GitHub 仓库:https://github.com/AlexeyAB/darknet。

  2. 按照 README 文件中的说明进行安装。通常需要克隆仓库、安装所需依赖项,并设置必要的环境变量。

  3. 安装完成后,你可以按照仓库提供的使用说明训练和使用模型。通常需要准备数据集、配置模型参数、训练模型,然后使用训练好的模型执行目标检测。

请注意,具体步骤可能因你的使用场景和 YOLOv4 仓库的当前状态而异。因此,强烈建议你直接参阅 YOLOv4 GitHub 仓库中提供的说明。

如需在 Ultralytics 框架中进行训练和推理,请参阅 YOLO11 或 YOLO26。

结论#

YOLOv4 是一款功能强大且高效的目标检测模型,兼顾速度与准确率。它在训练期间运用了独特功能和免费技巧包方法,因此能出色地完成实时目标检测任务。任何拥有普通 GPU 的用户都可以训练和使用 YOLOv4,使其适用于广泛的应用,包括监控系统、自动驾驶汽车和工业自动化。

如果你想在项目中实现目标检测,YOLOv4 仍然是一个很有竞争力的选择,尤其是在优先考虑实时性能时。尽管 Ultralytics 目前专注于支持较新的 YOLO 版本,例如 YOLO11 和 YOLO26,YOLOv4 引入的架构创新仍对这些后续模型的开发产生了影响。

引用与致谢#

我们谨向 YOLOv4 作者致谢,感谢他们为实时目标检测领域做出的重要贡献:

引用格式
@misc{bochkovskiy2020yolov4,
      title={YOLOv4: Optimal Speed and Accuracy of Object Detection},
      author={Alexey Bochkovskiy and Chien-Yao Wang and Hong-Yuan Mark Liao},
      year={2020},
      eprint={2004.10934},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

YOLOv4 原始论文可在 arXiv 上查阅。作者已公开其研究成果,代码库可通过 GitHub 获取。感谢他们为推动这一领域发展并让更广泛的社区能够使用其成果所做的努力。

常见问题#

  • YOLOv4 是“只看一次”第 4 版的简称,是 Alexey Bochkovskiy 于 2020 年开发的一款先进实时目标检测模型。它在速度与准确率之间实现了最佳平衡,非常适合实时应用。YOLOv4 的架构融入了多项创新特性,例如加权残差连接 (WRC)、跨阶段局部连接 (CSP)和自对抗训练 (SAT)等,从而取得了先进水平的成果。如果你正在寻找一款能在普通 GPU 上高效运行的高性能模型,YOLOv4 是绝佳选择。

  • YOLOv4 的架构包含几个关键组件:骨干网络、颈部和头部。骨干网络可以采用 VGG、ResNet 或 CSPDarknet53 等模型,并经过预训练以预测类别和边界框。颈部利用 PANet 连接不同阶段的特征图,以全面提取数据。最后,采用 YOLOv3 配置的头部负责完成最终目标检测。YOLOv4 还采用了 Mosaic 数据增强和 DropBlock 正则化等“免费技巧包”方法,进一步优化速度和准确率。

  • “免费技巧包”指的是在不增加推理成本的情况下提升 YOLOv4 训练准确率的方法。这些技术包括各种数据增强方式,例如光度变换(调整亮度、对比度等)和几何变换(缩放、裁剪、翻转、旋转)。通过增加输入图像的多样性,这些增强方法帮助 YOLOv4 更好地泛化到不同类型的图像,从而提升其鲁棒性和准确率,同时不影响实时性能。

  • YOLOv4 旨在同时优化速度和准确率,非常适合需要快速、可靠性能的实时目标检测任务。它能够在普通 GPU 上高效运行,训练和推理都只需一块 GPU。因此,它易于使用且实用,适用于从推荐系统到独立流程管理等各种应用,从而减少对大型硬件配置的需求,并成为实时目标检测的高性价比解决方案。

  • 要开始使用 YOLOv4,你应访问官方 YOLOv4 GitHub 仓库。按照 README 文件中的安装说明操作,通常包括克隆仓库、安装依赖项和设置环境变量。安装完成后,你可以准备数据集、配置模型参数,并按照提供的使用说明训练模型。由于 Ultralytics 目前不支持 YOLOv4,建议直接参阅 YOLOv4 GitHub,以获取最新且详细的指导。

评论