YOLOv4:高速且精准的目标检测#
欢迎来到 Ultralytics 的 YOLOv4 文档页面。YOLOv4 是由 Alexey Bochkovskiy 于 2020 年推出的先进实时目标检测器,参见 https://github.com/AlexeyAB/darknet。YOLOv4 旨在实现速度与精度之间的最佳平衡,因此非常适合众多应用。
YOLOv4 架构图。展示 YOLOv4 的复杂网络设计,包括主干网络、颈部和检测头组件,以及它们相互连接的层,从而实现最佳的实时目标检测效果。
简介#
YOLOv4 是 You Only Look Once version 4(只看一次第 4 版)的缩写。这是一个实时目标检测模型,旨在解决之前 YOLO 版本(例如 YOLOv3)及其他目标检测模型的局限性。与其他基于卷积神经网络(CNN)的目标检测器不同,YOLOv4 不仅适用于推荐系统,还适用于独立的流程管理和减少人工输入。在常规图形处理器(GPU)上运行时,它可以以可承受的成本大规模使用;同时,它专为在常规 GPU 上实时运行而设计,训练时只需要一块 GPU。
架构#
YOLOv4 采用了多项协同工作的创新特性,以优化其性能。这些特性包括加权残差连接(WRC)、跨阶段局部连接(CSP)、跨小批量批归一化(CmBN)、自对抗训练(SAT)、Mish 激活、Mosaic数据增强、DropBlock正则化以及 CIoU 损失函数。这些特性相结合,实现了业界领先的结果。
典型的目标检测器由多个部分组成,包括输入、主干网络、颈部和检测头。YOLOv4 的主干网络在 ImageNet 上进行预训练,用于预测目标的类别和边界框。主干网络可以采用多种模型,包括 VGG、ResNet、ResNeXt 或 DenseNet。检测器的颈部用于收集来自不同阶段的特征图,通常包含多条自底向上的路径和多条自顶向下的路径。检测头用于完成最终的目标检测和分类。
免费增强包#
YOLOv4 还使用了称为“免费增强包”(bag of freebies)的方法。这些技术可以在不增加推理成本的情况下提升模型在训练期间的精度。数据增强是目标检测中常见的免费增强包技术,通过增加输入图像的多样性来提升模型的鲁棒性。数据增强的示例包括光度失真(调整图像的亮度、对比度、色调、饱和度和噪声)以及几何失真(随机缩放、裁剪、翻转和旋转)。这些技术有助于模型更好地泛化到不同类型的图像。
特性与性能#
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 时通常可能采取的步骤概览:
-
访问 YOLOv4 GitHub 仓库:https://github.com/AlexeyAB/darknet。
-
按照 README 文件中的说明进行安装。这通常包括克隆仓库、安装必要的依赖项以及设置所需的环境变量。
-
安装完成后,你可以按照仓库中的使用说明训练和使用模型。这通常包括准备数据集、配置模型参数、训练模型,然后使用训练好的模型执行目标检测。
请注意,具体步骤可能会因你的具体使用场景和 YOLOv4 仓库的当前状态而有所不同。因此,强烈建议你直接参考 YOLOv4 GitHub 仓库中提供的说明。
如需在 Ultralytics 框架中进行训练和推理,请参阅 YOLO11 或 YOLO26。
结论#
YOLOv4 是一个强大而高效的目标检测模型,在速度和精度之间实现了良好平衡。它在训练期间采用独特特性和免费增强包技术,因此能够出色地执行实时目标检测任务。任何拥有常规 GPU 的人都可以训练和使用 YOLOv4,这使其能够广泛应用于监控系统、自动驾驶车辆和工业自动化等众多场景,兼具可用性与实用性。
对于希望在项目中实现目标检测的用户来说,YOLOv4 仍然是一个有力的竞争者,尤其适合将实时性能作为优先事项的场景。尽管 Ultralytics 目前专注于支持 YOLO11 和 YOLO26 等较新的 YOLO 版本,但 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 是 “You Only Look Once version 4(只看一次第 4 版)” 的缩写,是 Alexey Bochkovskiy 于 2020 年开发的先进实时目标检测模型。它在速度和精度之间实现了最佳平衡,非常适合实时应用。YOLOv4 的架构包含多项创新特性,例如加权残差连接(WRC)、跨阶段局部连接(CSP)和自对抗训练(SAT)等,以实现先进水平的结果。如果你正在寻找一个能够在常规 GPU 上高效运行的高性能模型,YOLOv4 是一个非常不错的选择。
“免费增强包”是指能够提升 YOLOv4 训练精度、但不会增加推理成本的方法。这些技术包括各种形式的数据增强,例如光度失真(调整亮度、对比度等)和几何失真(缩放、裁剪、翻转和旋转)。通过增加输入图像的多样性,这些增强方法可以帮助 YOLOv4 更好地泛化到不同类型的图像,从而提升其鲁棒性和精度,同时不影响实时性能。
YOLOv4 旨在同时优化速度和精度,非常适合需要快速且可靠性能的实时目标检测任务。它可以在常规 GPU 上高效运行,训练和推理各只需要一块 GPU。这使其适用于从推荐系统到独立流程管理等各种应用,同时减少对复杂硬件配置的需求,成为一种经济高效的实时目标检测解决方案。
要开始使用 YOLOv4,你应访问官方的 YOLOv4 GitHub 仓库。按照 README 文件中的安装说明操作,其中通常包括克隆仓库、安装依赖项以及设置环境变量。安装完成后,你可以准备数据集、配置模型参数,并按照提供的使用说明训练模型。由于 Ultralytics 当前不支持 YOLOv4,建议你直接参考 YOLOv4 GitHub,以获取最新且详细的指导。