Link to this sectionYOLOv4:高速且精准的目标检测#
欢迎来到 YOLOv4 的 Ultralytics 文档页面。YOLOv4 是由 Alexey Bochkovskiy 于 2020 年在 https://github.com/AlexeyAB/darknet 上发布的最先进的实时目标检测器。YOLOv4 旨在提供速度与精度之间的最佳平衡,使其成为许多应用的绝佳选择。
YOLOv4 架构图。展示了 YOLOv4 复杂的网络设计,包括骨干网络(backbone)、颈部(neck)和头部(head)组件,以及它们为了实现最优实时目标检测而相互连接的层。
Link to this section简介#
YOLOv4 代表 You Only Look Once version 4。它是一个实时目标检测模型,旨在解决 YOLOv3 等以往 YOLO 版本以及其他目标检测模型存在的局限性。与基于 卷积神经网络(CNN)的其他目标检测器不同,YOLOv4 不仅适用于推荐系统,还适用于独立流程管理和减少人工输入。它在传统图形处理器(GPU)上的运行能力使其能够以实惠的价格进行大规模使用,并且它被设计为能在传统 GPU 上实现实时工作,且训练时仅需一块此类 GPU。
Link to this section架构#
YOLOv4 利用了多种创新特性,这些特性共同作用以优化其性能。其中包括加权残差连接(WRC)、跨阶段部分连接(CSP)、跨小批量 批归一化(CmBN)、自对抗训练(SAT)、Mish 激活函数、Mosaic 数据增强、DropBlock 正则化 以及 CIoU 损失函数。这些特性相结合,实现了最先进的结果。
一个典型的目标检测器由多个部分组成,包括输入、backbone、neck 和 head。YOLOv4 的 backbone 在 ImageNet 上进行预训练,用于预测对象的类别和 bounding boxes。Backbone 可以来自多种模型,包括 VGG、ResNet、ResNeXt 或 DenseNet。检测器的 neck 部分用于收集来自不同阶段的 feature maps,通常包括几个自底向上的路径和几个自顶向下的路径。Head 部分用于执行最终的目标检测和分类。
Link to this section免费赠品包(Bag of Freebies)#
YOLOv4 还利用了被称为“免费赠品包”的方法,这些技术可以在不增加推理成本的情况下提高模型在训练期间的 准确率。数据增强 是 目标检测 中常用的一种免费赠品包技术,它增加了输入图像的多样性,从而提高模型的鲁棒性。数据增强的一些例子包括光度畸变(调整图像的亮度、对比度、色调、饱和度和噪声)和几何畸变(添加随机缩放、裁剪、翻转和旋转)。这些技术有助于模型更好地泛化到不同类型的图像。
Link to this section特性与性能#
YOLOv4 专为实现目标检测的最佳速度和准确性而设计。YOLOv4 的架构包括作为 backbone 的 CSPDarknet53、作为 neck 的 PANet 以及作为 detection head 的 YOLOv3。这种设计使 YOLOv4 能够以惊人的速度执行目标检测,使其适用于实时应用程序。YOLOv4 在准确性方面也表现出色,在 COCO 等目标检测基准测试中取得了最先进的成果。
与 YOLO 系列中的其他模型(例如 YOLOv5 和 YOLOv7)相比,YOLOv4 在速度和准确性之间的平衡方面保持着稳固的地位。虽然较新的模型可能具有某些优势,但 YOLOv4 的架构创新使其在许多需要实时性能的应用程序中依然具有相关性。
Link to this section使用示例#
YOLOv4 is a Darknet-based model and is not natively supported by the Ultralytics Python package: there are no yolov4.pt pretrained weights published on ultralytics/assets and no ultralytics/cfg/models/v4/ YAMLs. This page is kept as an architectural reference. Users interested in running YOLOv4 should refer directly to the YOLOv4 GitHub repository for installation and usage instructions.
以下是使用 YOLOv4 通常需要采取的步骤概述:
-
访问 YOLOv4 GitHub 仓库:https://github.com/AlexeyAB/darknet。
-
按照 README 文件中提供的安装说明进行操作。这通常涉及克隆仓库、安装必要的依赖项以及设置任何所需的环境变量。
-
安装完成后,你可以根据仓库中提供的说明来训练和使用该模型。这通常涉及准备数据集、配置模型参数、训练模型,然后使用训练好的模型执行目标检测。
请注意,具体步骤可能会根据你的特定用例和 YOLOv4 仓库的当前状态而有所不同。因此,强烈建议直接参考 YOLOv4 GitHub 仓库中提供的说明。
如需在 Ultralytics 框架内进行训练和推理,请参阅 YOLO11 或 YOLO26。
Link to this section结论#
YOLOv4 是一个强大且高效的目标检测模型,在速度和精度之间取得了平衡。它在训练期间对独特特性和“免费赠品包”技术的使用,使其能够在实时目标检测任务中表现出色。任何拥有传统 GPU 的人都可以训练和使用 YOLOv4,这使其对于包括 监控系统、自动驾驶汽车 和 工业自动化 在内的广泛应用都具有可访问性和实用性。
对于那些希望在项目中实现目标检测的人来说,YOLOv4 仍然是一个强大的竞争者,尤其是在实时性能为优先考虑因素时。虽然 Ultralytics 目前专注于支持较新的 YOLO 版本,如 YOLO11 和 YOLO26,但 YOLOv4 中引入的架构创新已经影响了这些后续模型的开发。
Link to this section引用与致谢#
我们希望感谢 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 上访问。我们感谢他们在推动该领域发展并让更广泛的社区能够获取其工作成果方面所做的努力。
Link to this section常见问题解答#
Link to this section什么是 YOLOv4,为什么我应该将其用于 目标检测?#
YOLOv4 代表“You Only Look Once version 4”,是由 Alexey Bochkovskiy 于 2020 年开发的最先进的实时目标检测模型。它在速度和 准确率 之间实现了最优平衡,使其非常适合实时应用。YOLOv4 的架构结合了多种创新特性,如加权残差连接(WRC)、跨阶段部分连接(CSP)和自对抗训练(SAT)等,以实现最先进的结果。如果你正在寻找一种在传统 GPU 上高效运行的高性能模型,YOLOv4 是一个极佳的选择。
Link to this sectionYOLOv4 的架构是如何提升其性能的?#
YOLOv4 的架构包括几个关键组件:骨干网络、颈部和头部。骨干网络可以是 VGG、ResNet 或 CSPDarknet53 等模型,它经过预训练以预测类别和边界框。颈部利用 PANet 连接来自不同阶段的 特征图 以进行全面数据提取。最后,头部使用来自 YOLOv3 的配置进行最终的目标检测。YOLOv4 还采用了“免费赠品包”技术,如 Mosaic 数据增强和 DropBlock 正则化,进一步优化了其速度和精度。
Link to this section在 YOLOv4 的语境下,“免费赠品包”(Bag of Freebies)是什么?#
“免费赠品包”是指那些能够在不增加推理成本的情况下提高 YOLOv4 训练准确率的方法。这些技术包括各种形式的数据增强,如光度畸变(调整亮度、对比度等)和几何畸变(缩放、裁剪、翻转、旋转)。通过增加输入图像的多样性,这些增强手段有助于 YOLOv4 更好地泛化到不同类型的图像,从而在不影响实时性能的情况下提高其鲁棒性和准确率。
Link to this section为什么 YOLOv4 被认为适用于在传统 GPU 上进行实时目标检测?#
YOLOv4 旨在优化速度和精度,使其成为需要快速且可靠性能的实时目标检测任务的理想选择。它在传统 GPU 上运行高效,训练和推理均仅需一块 GPU。这使得它对于从 推荐系统 到独立流程管理的各种应用都具有可访问性和实用性,从而减少了对大量硬件设置的需求,使其成为一种极具成本效益的实时目标检测解决方案。
Link to this section如果 Ultralytics 目前不支持 YOLOv4,我该如何入门?#
要开始使用 YOLOv4,你应该访问官方 YOLOv4 GitHub 仓库。按照 README 文件中提供的安装说明进行操作,这通常包括克隆仓库、安装依赖项以及设置环境变量。安装完成后,你可以通过准备数据集、配置模型参数并遵循提供的用法说明来训练模型。由于 Ultralytics 目前不支持 YOLOv4,建议直接参考 YOLOv4 GitHub 以获取最新且详细的指导。