YOLO Vision 2026:

YOLOv3 与 YOLOv3u#

概述#

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

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

  2. YOLOv3u: 这是 YOLOv3-Ultralytics 的更新版本,它结合了 YOLOv8 模型中使用的无锚框(anchor-free)、无置信度(objectness-free)的分离检测头。YOLOv3u 保持了与 YOLOv3 相同的主干网络和颈部架构,但采用了来自 YOLOv8 的更新检测头

YOLOv3 object detection model banner

主要特性#

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

  • YOLOv3u: 这个更新后的模型整合了来自 YOLOv8 的无锚框、无目标性得分的分离检测头。通过消除对预定义锚框和目标性得分的需求,这种检测头设计能够提高模型检测不同大小和形状物体的能力。这使得 YOLOv3u 在目标检测任务中更加稳健且准确。

支持的任务和模式#

YOLOv3 专为目标检测任务而设计。Ultralytics 支持 YOLOv3 的三个变体:yolov3uyolov3-tinyuyolov3-sppu。名称中的 u 表示这些模型使用了 YOLOv8 的无锚框检测头,这与它们基于锚框的原始架构不同。这些模型因其在各种真实场景中的有效性而闻名,平衡了准确性和速度。每个变体都提供独特的功能和优化,使其适用于各种应用。

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

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

此表可让你一目了然地了解每个 YOLOv3 变体的功能,突出了它们在目标检测工作流中针对各种任务和操作模式的通用性和适用性。

使用示例#

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

示例

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")

引用与致谢#

如果你在研究中使用了 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
    
    # 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)

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

  • YOLOv3u 在 YOLOv3 和 YOLOv3-Ultralytics 的基础上进行了改进,并结合了 YOLOv8 模型中使用的无锚框、无置信度分离检测头。此升级消除了对预定义锚框和置信度分数的需要,增强了其更精确检测不同大小和形状物体的能力。这使得 YOLOv3u 成为复杂和多样化目标检测任务的更好选择。有关更多信息,请参考核心功能部分。

  • 你可以通过 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")

    有关运行 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}
    }

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

评论