--- comments: true description: 了解YOLOv3、YOLOv3-Ultralytics和YOLOv3u的概述。了解它们的关键功能、用途和支持的目标检测任务。 keywords: YOLOv3、YOLOv3-Ultralytics、YOLOv3u、目标检测、推理、训练、Ultralytics --- # YOLOv3、YOLOv3-Ultralytics和YOLOv3u ## 概述 本文介绍了三个紧密相关的目标检测模型,分别是[YOLOv3](https://pjreddie.com/darknet/yolo/)、[YOLOv3-Ultralytics](https://github.com/ultralytics/yolov3)和[YOLOv3u](https://github.com/ultralytics/ultralytics)。 1. **YOLOv3:** 这是第三版 You Only Look Once (YOLO) 目标检测算法。YOLOv3 在前作的基础上进行了改进,引入了多尺度预测和三种不同尺寸的检测核,提高了检测准确性。 2. **YOLOv3-Ultralytics:** 这是 Ultralytics 对 YOLOv3 模型的实现。它在复现了原始 YOLOv3 架构的基础上,提供了额外的功能,如对更多预训练模型的支持和更简单的定制选项。 3. **YOLOv3u:** 这是 YOLOv3-Ultralytics 的更新版本,它引入了 YOLOv8 模型中使用的无锚、无物体性能分离头。YOLOv3u 保留了 YOLOv3 的主干和颈部架构,但使用了来自 YOLOv8 的更新检测头。 ![Ultralytics YOLOv3](https://raw.githubusercontent.com/ultralytics/assets/main/yolov3/banner-yolov3.png) ## 关键功能 - **YOLOv3:** 引入了三种不同尺度的检测,采用了三种不同尺寸的检测核:13x13、26x26 和 52x52。这显著提高了对不同大小对象的检测准确性。此外,YOLOv3 还为每个边界框添加了多标签预测和更好的特征提取网络。 - **YOLOv3-Ultralytics:** Ultralytics 对 YOLOv3 的实现具有与原始模型相同的性能,但增加了对更多预训练模型、额外训练方法和更简单的定制选项的支持。这使得它在实际应用中更加通用和易用。 - **YOLOv3u:** 这个更新的模型采用了来自 YOLOv8 的无锚、无物体性能分离头。通过消除预定义的锚框和物体性能分数的需求,检测头设计可以提高模型对不同大小和形状的对象的检测能力。这使得 YOLOv3u 在目标检测任务中更加强大和准确。 ## 支持的任务和模式 YOLOv3 系列,包括 YOLOv3、YOLOv3-Ultralytics 和 YOLOv3u,专门用于目标检测任务。这些模型以在各种实际场景中平衡准确性和速度而闻名。每个变体都提供了独特的功能和优化,使其适用于各种应用场景。 这三个模型都支持一套全面的模式,确保在模型部署和开发的各个阶段具备多种功能。这些模式包括[推理](../modes/predict.md)、[验证](../modes/val.md)、[训练](../modes/train.md)和[导出](../modes/export.md),为用户提供了有效的目标检测完整工具。 | 模型类型 | 支持的任务 | 推理 | 验证 | 训练 | 导出 | |--------------------|----------------------------|----|----|----|----| | YOLOv3 | [目标检测](../tasks/detect.md) | ✅ | ✅ | ✅ | ✅ | | YOLOv3-Ultralytics | [目标检测](../tasks/detect.md) | ✅ | ✅ | ✅ | ✅ | | YOLOv3u | [目标检测](../tasks/detect.md) | ✅ | ✅ | ✅ | ✅ | 该表格提供了每个 YOLOv3 变体的能力一览,突显了它们的多功能性和适用性,以用于目标检测工作流程中的各种任务和操作模式。 ## 用法示例 以下示例提供了简单的 YOLOv3 训练和推理示例。有关这些和其他模式的完整文档,请参阅 [Predict](../modes/predict.md)、[Train](../modes/train.md)、[Val](../modes/val.md) 和 [Export](../modes/export.md) 文档页面。 !!! Example "示例" === "Python" 可以将预先训练的 PyTorch `*.pt` 模型以及配置 `*.yaml` 文件传递给 `YOLO()` 类,以在 Python 中创建模型实例: ```python from ultralytics import YOLO # 加载一个经过 COCO 预训练的 YOLOv3n 模型 model = YOLO('yolov3n.pt') # 显示模型信息(可选) model.info() # 在 COCO8 示例数据集上训练模型100个epoch results = model.train(data='coco8.yaml', epochs=100, imgsz=640) # 使用 YOLOv3n 模型对 'bus.jpg' 图像进行推理 results = model('path/to/bus.jpg') ``` === "CLI" 可以直接使用命令行界面 (CLI) 来运行模型: ```bash # 加载一个经过 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 仓库: !!! Quote "" === "BibTeX" ```bibtex @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 模型。