YOLOv4:高速、精确的物体探测
欢迎访问Ultralytics YOLOv4 文档页面,YOLOv4 是由 Alexey Bochkovskiy 于 2020 年在https://github.com/AlexeyAB/darknet 推出的最先进的实时物体检测器。YOLOv4 的设计在速度和精确度之间实现了最佳平衡,是许多应用的理想选择。
YOLOv4 架构图.展示 YOLOv4 复杂的网络设计,包括主干、颈部和头部组件及其相互连接的层,以实现最佳的实时目标检测。
导言
YOLOv4 是 You Only Look Once 版本 4 的缩写。它是一种实时对象检测模型,旨在解决YOLO 之前版本(如YOLOv3)和其他对象检测模型的局限性。与其他基于卷积神经网络(CNN)的物体检测器不同,YOLOv4 不仅适用于推荐系统,还适用于独立的流程管理和减少人工输入。它可在传统图形处理器(GPU)上运行,以合理的价格实现大规模使用,其设计可在传统GPU 上实时运行,同时只需要一个这样的GPU 进行训练。
建筑学
YOLOv4 利用多项创新功能共同优化其性能。这些功能包括加权序列连接 (WRC)、跨阶段部分连接 (CSP)、交叉迷你批归一化(CmBN)、自对抗训练 (SAT)、误激活、马赛克数据增强、DropBlock正则化和 CIoU 损失。这些功能结合在一起,达到了最先进的效果。
典型的物体检测器由几个部分组成,包括输入、主干、颈部和头部。YOLOv4 的骨干是在ImageNet上预先训练好的,用于预测物体的类别和边界框。骨干可以来自多个模型,包括 VGG、ResNet、ResNeXt 或 DenseNet。检测器的颈部用于收集不同阶段的特征图,通常包括几条自下而上的路径和几条自上而下的路径。头部用于进行最终的物体检测和分类。
免费赠品袋
YOLOv4 还使用了被称为 "bag of freebies "的方法,即在不增加推理成本的情况下,在训练过程中提高模型准确性的技术。数据增强是物体检测中常用的一种 "bag of freebies "技术,它可以增加输入图像的可变性,从而提高模型的鲁棒性。数据增强的一些例子包括光度失真(调整图像的亮度、对比度、色调、饱和度和噪点)和几何失真(添加随机缩放、裁剪、翻转和旋转)。这些技术有助于模型更好地适应不同类型的图像。
功能和性能
YOLOv4 的设计旨在实现物体检测的最佳速度和准确性。YOLOv4 的架构包括作为主干的 CSPDarknet53、作为颈部的 PANet 和作为检测头的 YOLOv3。这种设计使 YOLOv4 能够以惊人的速度进行物体检测,使其适用于实时应用。YOLOv4 的准确性也非常出色,在COCO 等物体检测基准测试中取得了最先进的结果。
与YOLO 系列的其他型号相比,如 YOLOv5和YOLOv7 相比,YOLOv4 在速度和精度之间的平衡上保持了优势地位。虽然较新的型号可能具有某些优势,但 YOLOv4 在架构上的创新仍使其适用于许多需要实时性能的应用。
使用示例
截至本文撰写之时,Ultralytics 目前还不支持 YOLOv4 模型。因此,任何有兴趣使用 YOLOv4 的用户都需要直接访问 YOLOv4 GitHub 存储库,以获取安装和使用说明。
下面简要介绍使用 YOLOv4 的典型步骤:
-
访问 YOLOv4 GitHub 代码库:https://github.com/AlexeyAB/darknet。
-
按照 README 文件中提供的说明进行安装。这通常包括克隆软件源、安装必要的依赖项和设置任何必要的环境变量。
-
安装完成后,您可以根据资源库中提供的使用说明训练和使用模型。这通常包括准备数据集、配置模型参数、训练模型,然后使用训练好的模型执行对象检测。
请注意,具体步骤可能会根据您的具体使用情况和 YOLOv4 代码库的当前状态而有所不同。因此,强烈建议直接参考 YOLOv4 GitHub 代码库中提供的说明。
我们对由此造成的不便深表歉意,并将努力在支持 YOLOv4 后更新本文档,提供Ultralytics 的使用示例。
结论
YOLOv4 是一个强大而高效的物体检测模型,在速度和准确性之间取得了平衡。它在训练过程中使用了独特的功能和免费技术,使其在实时物体检测任务中表现出色。任何拥有传统GPU 的人都可以训练和使用 YOLOv4,这使得它在包括监控系统、自动驾驶汽车和工业自动化在内的广泛应用中具有可访问性和实用性。
对于那些希望在自己的项目中实施对象检测的人来说,YOLOv4 仍然是一个强有力的竞争者,尤其是当实时性能成为优先考虑的因素时。Ultralytics 目前主要支持较新的YOLO 版本,如 YOLOv8和 YOLO11等较新的 YOLO 版本,但 YOLOv4 中引入的架构创新影响了这些较后模型的开发。
引用和致谢
我们衷心感谢 YOLOv4 作者在实时物体检测领域做出的重大贡献:
YOLOv4 的原始论文可在arXiv 上找到。作者公开了他们的工作,代码库可以在GitHub 上访问。我们感谢他们为推动这一领域的发展和让更多人了解他们的工作所做的努力。
常见问题
什么是 YOLOv4,为什么要使用它进行物体检测?
YOLOv4 是 "You Only Look Once version 4 "的缩写,是阿列克谢-博奇科夫斯基(Alexey Bochkovskiy)于 2020 年开发的最先进的实时物体检测模型。它在速度和精度之间实现了最佳平衡,因此非常适合实时应用。YOLOv4 的架构融合了多项创新功能,如加权冗余连接(WRC)、跨阶段部分连接(CSP)和自对抗训练(SAT)等,以实现最先进的效果。如果您正在寻找一种能在传统 GPU 上高效运行的高性能模型,YOLOv4 将是您的最佳选择。
YOLOv4 的架构如何提升其性能?
YOLOv4 的架构包括几个关键组件:主干、颈部和头部。骨干可以是 VGG、ResNet 或 CSPDarknet53 等模型,经过预先训练,可以预测类别和边界框。颈部利用 PANet 连接来自不同阶段的特征图,以进行全面的数据提取。最后,头部利用 YOLOv3 的配置进行最终的物体检测。YOLOv4 还采用了 "bag of freebies "技术,如马赛克数据增强和 DropBlock 正则化,进一步优化了速度和准确性。
什么是 YOLOv4 中的 "一袋赠品"?
"免费工具包 "指的是在不增加推理成本的情况下提高 YOLOv4 训练精确度的方法。这些技术包括各种形式的数据增强,如光度失真(调整亮度、对比度等)和几何失真(缩放、裁剪、翻转、旋转)。通过增加输入图像的可变性,这些增强技术有助于 YOLOv4 更好地概括不同类型的图像,从而在不影响其实时性的情况下提高其鲁棒性和准确性。
为什么 YOLOv4 被认为适合在传统 GPU 上进行实时物体检测?
YOLOv4 的设计旨在优化速度和准确性,因此非常适合需要快速可靠性能的实时物体检测任务。它能在传统的 GPU 上高效运行,只需要一个 GPU 就能完成训练和推理。这使得它可以用于从推荐系统到独立流程管理等各种应用,从而减少了对大量硬件设置的需求,并使其成为一种经济高效的实时对象检测解决方案。
如果Ultralytics 目前不支持 YOLOv4,如何开始使用?
要开始使用 YOLOv4,您应该访问官方的YOLOv4 GitHub 代码库。按照 README 文件中提供的安装说明进行操作,其中通常包括克隆版本库、安装依赖项和设置环境变量。安装完成后,您就可以准备数据集、配置模型参数并按照提供的使用说明来训练模型了。由于Ultralytics 目前不支持 YOLOv4,建议直接参考 YOLOv4 GitHub 以获取最新的详细指导。