YOLOv3 和 YOLOv3u
概述
本文档概述了三个密切相关的目标检测模型,即 YOLOv3、YOLOv3-Ultralytics 和 YOLOv3u。
-
YOLOv3: 这是 You Only Look Once (YOLO) 目标检测算法的第三个版本。YOLOv3 最初由 Joseph Redmon 开发,通过引入诸如多尺度预测和三种不同大小的检测核等功能,在其前身的基础上进行了改进。
-
YOLOv3u: 这是 YOLOv3-Ultralytics 的一个更新版本,它结合了 YOLOv8 模型中使用的无锚框、无对象置信度的分离头。YOLOv3u 保持与 YOLOv3 相同的 backbone 和 neck 架构,但使用了 YOLOv8 中更新的检测头。
主要功能
-
YOLOv3: 引入了使用三种不同尺度进行检测的方法,利用了三种不同大小的检测核:13x13、26x26 和 52x52。这显著提高了对不同大小物体的检测精度。此外,YOLOv3 还增加了诸如每个边界框的多标签预测和一个更好的特征提取网络等功能。
-
YOLOv3u: 这个更新后的模型结合了 YOLOv8 中的无锚框、无对象置信度的分离头。通过消除对预定义锚框和对象置信度分数的需求,这种检测头设计可以提高模型检测不同大小和形状物体的能力。这使得 YOLOv3u 在目标检测任务中更加稳健和准确。
支持的任务和模式
YOLOv3 专为以下目的而设计 对象检测 任务。Ultralytics 支持 YOLOv3 的三种变体: yolov3u
, yolov3-tinyu
和 yolov3-sppu
。 u
名称中的 in 表示这些模型利用 YOLOv8 的无锚框头,这与它们基于锚框的原始架构不同。这些模型以其在各种实际场景中的有效性而闻名,在准确性和速度之间取得了平衡。每个变体都提供独特的功能和优化,使其适用于各种应用。
所有这三个模型都支持一套全面的模式,确保在模型部署和开发的各个阶段都具有通用性。这些模式包括推理、验证、训练和导出,为用户提供了一套完整的工具包,以实现有效的对象检测。
模型类型 | 预训练权重 | 支持的任务 | 推理 | 验证 | 训练 | 导出 |
---|---|---|---|---|---|---|
YOLOv3(u) | yolov3u.pt |
目标检测 | ✅ | ✅ | ✅ | ✅ |
YOLOv3-Tiny(u) | yolov3-tinyu.pt |
目标检测 | ✅ | ✅ | ✅ | ✅ |
YOLOv3u-SPP(u) | yolov3-sppu.pt |
目标检测 | ✅ | ✅ | ✅ | ✅ |
此表概述了每个YOLOv3变体的功能,重点介绍了它们的多功能性以及在对象检测工作流程中对各种任务和操作模式的适用性。
使用示例
此示例提供了简单的 YOLOv3 训练和推理示例。有关这些和其他模式的完整文档,请参见Predict、Train、Val和Export文档页面。
示例
PyTorch pretrained *.pt
模型以及配置 *.yaml
文件可以传递给 YOLO()
类,以便在 python 中创建模型实例:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv3u model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
可以使用 CLI 命令直接运行模型:
# Load a COCO-pretrained YOLOv3u model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov3u.pt data=coco8.yaml epochs=100 imgsz=640
# Load a COCO-pretrained YOLOv3u model and run inference on the 'bus.jpg' image
yolo predict model=yolov3u.pt source=path/to/bus.jpg
引用与致谢
如果您的研究中使用了 YOLOv3,请引用原始 YOLO 论文和 Ultralytics YOLOv3 仓库:
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}
感谢 Joseph Redmon 和 Ali Farhadi 开发了最初的 YOLOv3。
常见问题
YOLOv3、YOLOv3-Ultralytics 和 YOLOv3u 之间有什么区别?
YOLOv3 是 Joseph Redmon 开发的 YOLO (You Only Look Once) 目标检测算法的第三次迭代,以其准确性和速度的平衡而闻名,它利用三种不同的尺度(13x13、26x26 和 52x52)进行检测。YOLOv3-Ultralytics 是 Ultralytics 对 YOLOv3 的改编版本,增加了对更多预训练模型的支持,并有助于更轻松地进行模型定制。YOLOv3u 是 YOLOv3-Ultralytics 的升级版本,集成了 YOLOv8 的无锚框、无目标性分离头,提高了各种目标尺寸的检测鲁棒性和准确性。有关变体的更多详细信息,请参阅YOLOv3 系列。
如何使用 Ultralytics 训练 YOLOv3 模型?
使用 Ultralytics 训练 YOLOv3 模型非常简单。您可以使用 Python 或 CLI 训练模型:
示例
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.pt")
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Load a COCO-pretrained YOLOv3u model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov3u.pt data=coco8.yaml epochs=100 imgsz=640
有关更全面的训练选项和指南,请访问我们的训练模式文档。
是什么使 YOLOv3u 在目标检测任务中更准确?
YOLOv3u 通过结合 YOLOv8 模型中使用的无锚框、无对象置信度的分离头,改进了 YOLOv3 和 YOLOv3-Ultralytics。此升级消除了对预定义锚框和对象置信度分数的需求,从而增强了其更精确地检测各种大小和形状对象的能力。这使得 YOLOv3u 成为复杂且多样化的对象检测任务的更好选择。有关更多信息,请参阅 主要功能 部分。
如何使用 YOLOv3 模型进行推理?
您可以使用 python 脚本或 CLI 命令来执行使用 YOLOv3 模型的推理:
示例
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.pt")
# Run inference with the YOLOv3u model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
# Load a COCO-pretrained YOLOv3u model and run inference on the 'bus.jpg' image
yolo predict model=yolov3u.pt source=path/to/bus.jpg
有关运行 YOLO 模型的更多详细信息,请参阅推理模式文档。
YOLOv3 及其变体支持哪些任务?
YOLOv3、YOLOv3-Tiny 和 YOLOv3-SPP 主要支持目标检测任务。这些模型可用于模型部署和开发的各个阶段,例如推理、验证、训练和导出。有关支持的全面任务集和更深入的详细信息,请访问我们的目标检测任务文档。
在哪里可以找到在我的研究中引用 YOLOv3 的资源?
如果您的研究中使用了 YOLOv3,请引用原始 YOLO 论文和 Ultralytics YOLOv3 仓库。BibTeX 引用示例:
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}
有关更多引用详细信息,请参阅引用和致谢部分。