Ultralytics YOLO27:
Get Started

YOLOv3 和 YOLOv3u#

概述#

本文概述了三个密切相关的目标检测模型:YOLOv3、YOLOv3-Ultralytics 和 YOLOv3u。

  1. YOLOv3:这是 You Only Look Once(YOLO)目标检测算法的第三个版本。YOLOv3 最初由 Joseph Redmon 开发,通过引入多尺度预测和三种不同尺寸的检测卷积核等特性,在前代版本的基础上进行了改进。

  2. YOLOv3-Ultralytics:这是 Ultralytics 对 YOLOv3 的 PyTorch 实现,由 ultralytics/yolov3 仓库维护。它保留了原始的基于锚框的架构,同时增加了更多预训练模型,并让自定义更加简单。

  3. YOLOv3u:这是 YOLOv3-Ultralytics 的更新版本,采用了 YOLOv8 模型使用的无锚框、无目标性分支头。YOLOv3u 保留了与 YOLOv3 相同的主干网络和颈部架构,但使用了 YOLOv8 的更新版检测头。

YOLOv3 目标检测模型横幅

主要功能#

  • YOLOv3:引入了使用三种不同尺度进行检测的方法,采用三种不同尺寸的检测卷积核:13x13、26x26 和 52x52。这显著提高了对不同尺寸物体的检测准确率。此外,YOLOv3 还加入了为每个边界框进行多标签预测等功能,并改进了特征提取网络。

  • YOLOv3u:这个更新版模型采用了 YOLOv8 的无锚框、无目标性分支头。通过移除对预定义锚框和目标性分数的依赖,这种检测头设计可以提升模型检测不同尺寸和形状物体的能力。因此,YOLOv3u 在目标检测任务中更加稳健、准确。

支持的任务和模式#

YOLOv3 专为目标检测任务设计。Ultralytics 支持 YOLOv3 的三个变体:yolov3u、yolov3-tinyu 和 yolov3-sppu。名称中的 u 表示这些模型采用了 YOLOv8 的无锚框检测头,与基于锚框的原始架构不同。这些模型以在各种真实场景中的出色表现而闻名,兼顾了准确率和速度。每个变体都具备独特的功能和优化,适用于各种应用场景。

这三个模型都支持一套全面的模式,确保在模型部署和开发的各个阶段灵活适用。这些模式包括推理、验证、训练和导出,为用户提供完整的工具集,以高效执行目标检测。

模型类型预训练权重支持的任务训练验证推理导出
YOLOv3(u)yolov3u.pt目标检测✅✅✅✅
YOLOv3-Tiny(u)yolov3-tinyu.pt目标检测✅✅✅✅
YOLOv3-SPP(u)yolov3-sppu.pt目标检测✅✅✅✅

此表概览了各 YOLOv3 变体的能力,展示了它们在目标检测工作流中的灵活性,以及对各种任务和运行模式的适用性。

使用示例#

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

示例

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

from ultralytics import YOLO

# 加载在 COCO 上预训练的 YOLOv3u 模型
model = YOLO("yolov3u.pt")

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

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

# 使用 YOLOv3u 模型对 'bus.jpg' 图像运行推理
results = model("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 是由 Joseph Redmon 开发的 YOLO(You Only Look Once)算法的第三代版本,以兼顾准确率和速度而闻名,并使用三种不同尺度(13x13、26x26 和 52x52)进行目标检测。YOLOv3-Ultralytics 是 Ultralytics 对 YOLOv3 的改编版本,增加了对更多预训练模型的支持,并让模型自定义更加简单。YOLOv3u 是 YOLOv3-Ultralytics 的升级变体,集成了 YOLOv8 的无锚框、无目标性分支头,提高了对不同尺寸物体的检测稳健性和准确率。有关这些变体的更多详情,请参阅 YOLOv3 系列。

  • 使用 Ultralytics 训练 YOLOv3 模型非常简单。你可以使用 Python 或 CLI 训练模型:

    示例
    from ultralytics import YOLO
    
    # 加载在 COCO 上预训练的 YOLOv3u 模型
    model = YOLO("yolov3u.pt")
    
    # 使用 COCO8 示例数据集训练模型 100 个 epoch
    results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

    如需了解更全面的训练选项和指南,请访问我们的训练模式文档。

  • YOLOv3u 采用了 YOLOv8 模型使用的无锚框、无目标性分支头,在 YOLOv3 和 YOLOv3-Ultralytics 的基础上进行了改进。这项升级无需预定义锚框和目标性分数,因此能够更精确地检测不同尺寸和形状的物体。对于复杂多样的目标检测任务,YOLOv3u 是更好的选择。有关更多信息,请参阅主要特性部分。

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

    示例
    from ultralytics import YOLO
    
    # 加载在 COCO 上预训练的 YOLOv3u 模型
    model = YOLO("yolov3u.pt")
    
    # 使用 YOLOv3u 模型对 'bus.jpg' 图像运行推理
    results = model("path/to/bus.jpg")

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

  • YOLOv3、YOLOv3-Tiny 和 YOLOv3-SPP 主要支持目标检测任务。这些模型可用于模型部署和开发的各个阶段,例如推理、验证、训练和导出。如需查看支持任务的完整列表和更深入的详情,请访问我们的目标检测任务文档。

  • 如果你在研究中使用 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}
    }

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

评论