YOLOv3 和 YOLOv3u
概述
本文件概述了三种密切相关的物体检测模型,即YOLOv3、YOLOv3-Ultralytics 和YOLOv3u。
-
YOLOv3:这是 "You Only Look Once"(YOLO )物体检测算法的第三个版本。YOLOv3 最初由约瑟夫-雷德蒙(Joseph Redmon)开发,通过引入多尺度预测和三种不同大小的检测内核等功能,YOLOv3 对其前身进行了改进。
-
YOLOv3u:这是 YOLOv3-Ultralytics 的更新版本,它采用了YOLOv8 模型中使用的无锚、无对象性分割头。YOLOv3u 保留了与 YOLOv3 相同的骨干和颈部结构,但使用了YOLOv8 更新的检测头。
主要功能
-
YOLOv3:引入了三种不同的检测比例,利用三种不同大小的检测内核:13x13、26x26 和 52x52。这大大提高了对不同大小物体的检测精度。此外,YOLOv3 还增加了一些功能,如每个边界框的多标签预测和更好的特征提取网络。
-
YOLOv3u:该更新模型采用了YOLOv8 中的无锚点、无物体度分割头。通过消除对预定义锚点框和物体度分数的需求,该检测头设计可提高模型检测不同大小和形状物体的能力。这使得 YOLOv3u 在执行物体检测任务时更加稳健和准确。
支持的任务和模式
Ultralytics 支持三种 YOLOv3 变体: yolov3u
, yolov3-tinyu
和 yolov3-sppu
.......。 u
名称中的 "anchor "表示这些模型利用了YOLOv8 的无锚点头部,与基于锚点的原始架构不同。这些模型因其在各种实际场景中的有效性而闻名,同时兼顾了准确性和速度。每个变体都具有独特的功能和优化,因此适用于各种应用。
所有三种模型都支持一整套模式,确保在模型部署和开发的各个阶段都能发挥多功能。这些模式包括推理、验证、训练和输出,为用户提供了有效检测物体的完整工具包。
| 模型类型 | 预训练权重 | 支持的任务 | 推断 | 验证 | 训练 | 导出
| -------------- | ------------------- | -------------------------------------- | -------------------------------------- | ---------- | -------- | ------ | --- |
YOLOv3(u) | YOLOv3(u) | YOLOv3(u) | YOLOv3(u) yolov3u.pt
| 物体检测 | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-Tiny(u) | YOLOv3-Tiny(u) yolov3-tinyu.pt
| 物体检测 | ✅ | ✅ | ✅ | ✅ |
| YOLOv3u-SPP(u) | YOLOv3u-SPP(u) yolov3-sppu.pt
| | 物体检测 | ✅ | ✅ | ✅ | ✅ |
本表提供了 YOLOv3 各变体的功能概览,突出显示了它们的多功能性以及对物体探测工作流程中各种任务和操作模式的适用性。
使用示例
本示例提供了简单的 YOLOv3 训练和推理示例。有关这些模式和其他模式的完整文档,请参阅Predict、Train、Val和Export文档页面。
示例
PyTorch 训练有素 *.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 命令可直接运行模型:
引用和致谢
如果您在研究中使用了 YOLOv3,请引用YOLO 原文和Ultralytics YOLOv3 存储库:
感谢约瑟夫-雷德蒙和阿里-法哈迪开发最初的 YOLOv3。
常见问题
YOLOv3、YOLOv3-Ultralytics 和 YOLOv3u 之间有什么区别?
YOLOv3 是约瑟夫-雷德蒙开发的YOLO (You Only Look Once)物体检测算法的第三次迭代,它以兼顾准确性和速度而著称,利用三种不同的比例(13x13、26x26 和 52x52)进行检测。YOLOv3-Ultralytics 是Ultralytics' YOLOv3 的改良版,增加了对更多预训练模型的支持,并方便了模型定制。YOLOv3u 是 YOLOv3-Ultralytics 的升级变体,集成了YOLOv8 的无锚点、无对象性分割头,提高了各种对象大小的检测稳健性和准确性。有关变体的详细信息,请参阅YOLOv3 系列。
如何使用Ultralytics 训练 YOLOv3 模型?
使用Ultralytics 训练 YOLOv3 模型非常简单。您可以使用Python 或CLI 训练模型:
示例
有关更全面的培训选项和指南,请访问我们的培训模式文档。
是什么让 YOLOv3u 在执行物体检测任务时更加精确?
YOLOv3u 在 YOLOv3 和 YOLOv3-Ultralytics 的基础上进行了改进,加入了YOLOv8 型号中使用的无锚点、无物体度分割头。这一升级使 YOLOv3u 不再需要预定义的锚点框和物体度分数,从而增强了其更精确地检测不同大小和形状的物体的能力。这使得 YOLOv3u 成为复杂多样的物体检测任务的更好选择。更多信息,请参阅为什么选择 YOLOv3u部分。
如何使用 YOLOv3 模型进行推理?
您可以通过Python 脚本或CLI 命令使用 YOLOv3 模型进行推理:
示例
有关运行YOLO 模型的更多详情,请参阅推理模式文档。
YOLOv3 及其变体支持哪些任务?
YOLOv3、YOLOv3-Tiny 和 YOLOv3-SPP 主要支持对象检测任务。这些模型可用于模型部署和开发的各个阶段,如推理、验证、训练和导出。如需了解所支持任务的完整集合和更深入的详细信息,请访问我们的对象检测任务文档。
在哪里可以找到在研究中引用 YOLOv3 的资源?
如果您在研究中使用了 YOLOv3,请引用YOLO 原文和Ultralytics YOLOv3 存储库。BibTeX 引用示例:
更多引用详情,请参阅引用和致谢部分。