Skip to content

YOLOv3, YOLOv3-Ultralytics, 和 YOLOv3u

概述

本文档概述了三个密切相关的目标检测模型,即 YOLOv3YOLOv3-UltralyticsYOLOv3u

  1. YOLOv3: 这是 You Only Look Once (YOLO) 目标检测算法的第三版。最初由 Joseph Redmon 开发,YOLOv3 通过引入多尺度预测和三种不同大小的检测核等特性,改进了其前身。

  2. YOLOv3-Ultralytics: 这是 Ultralytics 对 YOLOv3 模型的实现。它再现了原始的 YOLOv3 架构,并提供了额外的功能,如支持更多预训练模型和更简单的定制选项。

  3. YOLOv3u: 这是 YOLOv3-Ultralytics 的更新版本,采用了 YOLOv8 模型中使用的无锚点、无目标分割头。YOLOv3u 保持了与 YOLOv3 相同的骨干和颈部架构,但采用了 YOLOv8 的更新检测头。

Ultralytics YOLOv3

关键特性

  • YOLOv3: 引入了三种不同尺度的检测,利用三种不同大小的检测核:13x13、26x26 和 52x52。这显著提高了对不同大小物体的检测准确性。此外,YOLOv3 增加了每个边界框的多标签预测和更好的特征提取网络等特性。

  • YOLOv3-Ultralytics: Ultralytics 对 YOLOv3 的实现提供了与原始模型相同的性能,但增加了对更多预训练模型的支持、额外的训练方法和更简单的定制选项。这使得它在实际应用中更加多功能和用户友好。

  • YOLOv3u: 这个更新模型采用了 YOLOv8 中的无锚点、无目标分割头。通过消除对预定义锚框和目标分数的需求,这种检测头设计可以提高模型对不同大小和形状物体的检测能力。这使得 YOLOv3u 在目标检测任务中更加稳健和准确。

支持的任务和模式

YOLOv3 系列,包括 YOLOv3、YOLOv3-Ultralytics 和 YOLOv3u,专门设计用于目标检测任务。这些模型以其有效性在各种现实场景中闻名,平衡了准确性和速度。每个变体都提供了独特的特性和优化,使其适用于一系列应用。

所有三个模型都支持一套全面的操作模式,确保在模型部署和开发的各个阶段具有多功能性。这些模式包括推理验证训练导出,为用户提供了有效的目标检测工具包。

模型类型 支持的任务 推理 验证 训练 导出
YOLOv3 目标检测
YOLOv3-Ultralytics 目标检测
YOLOv3u 目标检测

此表提供了每个 YOLOv3 变体功能的概览,突出了它们在目标检测工作流程中各种任务和操作模式下的多功能性和适用性。

使用示例

此示例提供了简单的 YOLOv3 训练和推理示例。有关这些和其他模式的完整文档,请参阅预测训练验证导出文档页面。

Example

PyTorch 预训练的 *.pt 模型以及配置 *.yaml 文件可以传递给 YOLO() 类,以在 Python 中创建模型实例:

from ultralytics import YOLO

# 加载 COCO 预训练的 YOLOv3n 模型
model = YOLO("yolov3n.pt")

# 显示模型信息(可选)
model.info()

# 在 COCO8 示例数据集上训练模型 100 个周期
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# 使用YOLOv3n模型对'bus.jpg'图像进行推理
results = model("path/to/bus.jpg")

CLI命令可直接运行模型:

# 加载一个COCO预训练的YOLOv3n模型并在COCO8示例数据集上训练100个epoch
yolo train model=yolov3n.pt data=coco8.yaml epochs=100 imgsz=640

# 加载一个COCO预训练的YOLOv3n模型并对'bus.jpg'图像进行推理
yolo predict model=yolov3n.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是YOLO(You Only Look Once)目标检测算法的第三次迭代,由Joseph Redmon开发,以其准确性和速度的平衡而闻名,利用三种不同尺度(13x13、26x26和52x52)进行检测。YOLOv3-Ultralytics是Ultralytics对YOLOv3的改编,增加了对更多预训练模型的支持,并简化了模型定制。YOLOv3u是YOLOv3-Ultralytics的升级变体,集成了YOLOv8中的无锚点、无目标分割头,提高了对各种物体大小的检测鲁棒性和准确性。有关变体的更多详细信息,请参阅YOLOv3系列

如何使用Ultralytics训练YOLOv3模型?

使用Ultralytics训练YOLOv3模型非常简单。您可以使用Python或CLI进行训练:

Example

from ultralytics import YOLO

# 加载一个COCO预训练的YOLOv3n模型
model = YOLO("yolov3n.pt")

# 在COCO8示例数据集上训练模型100个epoch
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# 加载一个COCO预训练的YOLOv3n模型并在COCO8示例数据集上训练100个epoch
yolo train model=yolov3n.pt data=coco8.yaml epochs=100 imgsz=640

有关更全面的训练选项和指南,请访问我们的训练模式文档

是什么使得YOLOv3u在目标检测任务中更准确?

YOLOv3u通过集成YOLOv8模型中使用的无锚点、无目标分割头,改进了YOLOv3和YOLOv3-Ultralytics。这一升级消除了对预定义锚框和目标分数的需求,增强了其对不同大小和形状物体的检测能力。这使得YOLOv3u成为复杂和多样目标检测任务的更好选择。有关更多信息,请参阅为什么选择YOLOv3u部分。

如何使用YOLOv3模型进行推理?

您可以通过Python脚本或CLI命令使用YOLOv3模型进行推理:

Example

from ultralytics import YOLO

# 加载一个COCO预训练的YOLOv3n模型
model = YOLO("yolov3n.pt")

# 使用YOLOv3n模型对'bus.jpg'图像进行推理
results = model("path/to/bus.jpg")
# 加载一个COCO预训练的YOLOv3n模型并对'bus.jpg'图像进行推理
yolo predict model=yolov3n.pt source=path/to/bus.jpg

有关运行YOLO模型的更多详细信息,请参阅推理模式文档

YOLOv3及其变体支持哪些任务?

YOLOv3、YOLOv3-Ultralytics和YOLOv3u主要支持目标检测任务。这些模型可用于模型部署和开发的各个阶段,如推理、验证、训练和导出。有关支持的任务和更深入的详细信息,请访问我们的目标检测任务文档

在哪里可以找到引用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}
}
} ```

更多引用详情,请参阅引用与致谢部分。


📅 Created 11 months ago ✏️ Updated 20 days ago

Comments