Skip to content
项目

ultralytics/yolov3 has 10,637 GitHub stars and 3,411 forks. GitHot measured +1 stars in 24 hours, +4 in 7 days, and +10 in 15 days. Last checked 2026-11-11 08:17 UTC. Last push 2026-11-01.

这些数字如何统计

用于实时目标检测的 YOLOv3、YOLOv3-SPP 和 YOLOv3-tiny 的 PyTorch 实现,支持训练、验证、推理和多格式导出。

实测星标增长

24小时
+1
7天
+4
15天
+10
1个月
更新延迟

各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。

README.zh-CN.md

原文

Ultralytics YOLOv3 banner

English | 한국어 | 日本語 | Русский | Deutsch | Français | Español | Português | Türkçe | Tiếng Việt | العربية

YOLOv3 CI Docker Pulls Discord Ultralytics Forums Ultralytics Reddit
Open In Colab

Ultralytics YOLOv3 是 YOLOv3(You Only Look Once,第 3 版)实时目标检测模型的 PyTorch 实现。YOLOv3 将检测视为单一回归问题,在一次前向传播中直接从整幅图像预测边界框和类别概率,因而快速、准确,且易于训练和部署。

本仓库提供三款经典的 YOLOv3 检测模型——YOLOv3、YOLOv3-SPP 和 YOLOv3-tiny——并配套训练、验证、推理和导出工具,同时复用 ultralytics 包中的共享工具。

详细指南请参阅 Ultralytics YOLOv3 文档。如需支持,请提交 GitHub Issue,并欢迎加入 Discord、Reddit 和 Ultralytics 论坛 参与讨论。

如需商业使用,请通过 Ultralytics 许可 申请企业许可证。

Ultralytics GitHub space Ultralytics LinkedIn space Ultralytics Twitter space Ultralytics YouTube space Ultralytics TikTok space Ultralytics BiliBili space Ultralytics Discord

📚 文档

完整文档请参阅 Ultralytics YOLOv3 文档。以下快速入门示例涵盖本仓库的安装、推理和训练。

安装

在 Python>=3.8.0 环境(已安装 PyTorch>=1.8)中克隆仓库并从 requirements.txt 安装依赖。

# 克隆 YOLOv3 仓库
git clone https://github.com/ultralytics/yolov3

# 进入目录
cd yolov3

# 安装依赖
pip install -r requirements.txt
使用 PyTorch Hub 进行推理

通过 PyTorch Hub 可直接加载 YOLOv3,权重在首次使用时自动下载。

import torch

# 加载 YOLOv3 模型 (可选: 'yolov3'、'yolov3_spp'、'yolov3_tiny')
model = torch.hub.load("ultralytics/yolov3", "yolov3", pretrained=True)

# 对图像进行推理 (本地文件、URL、PIL 图像、OpenCV 帧或 numpy 数组)
results = model("https://ultralytics.com/images/zidane.jpg")

# 查看结果
results.print()  # 在控制台打印检测结果
results.show()  # 显示标注后的图像
results.save()  # 将标注图像保存到 runs/detect/exp
使用 detect.py 进行推理

detect.py 支持多种输入源推理,自动下载模型并将结果保存至 runs/detect。

python detect.py --weights yolov3.pt --source 0                              # 摄像头
python detect.py --weights yolov3.pt --source img.jpg                        # 图像
python detect.py --weights yolov3.pt --source vid.mp4                        # 视频
python detect.py --weights yolov3.pt --source screen                         # 屏幕截图
python detect.py --weights yolov3.pt --source path/                          # 目录
python detect.py --weights yolov3.pt --source 'path/*.jpg'                   # glob 匹配
python detect.py --weights yolov3.pt --source 'rtsp://example.com/media.mp4' # RTSP、RTMP、HTTP 流
训练

在 COCO 数据集上训练 YOLOv3。模型和数据集会自动下载。请根据硬件选择尽可能大的 --batch-size。

# 训练 YOLOv3-tiny
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov3-tiny.yaml --batch-size 64

# 训练 YOLOv3
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov3.yaml --batch-size 32

# 训练 YOLOv3-SPP
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov3-spp.yaml --batch-size 16

使用 python val.py --weights yolov3.pt --data coco.yaml 验证精度,并使用 python export.py --weights yolov3.pt --include onnx 导出为其他格式(TorchScript、ONNX、OpenVINO、TensorRT、CoreML、PaddlePaddle)。

教程

以下指南基于 Ultralytics 通用训练框架,同样适用于 YOLOv3:

🧠 架构

YOLOv3 的检测能力建立在几个核心思想之上,使其兼具准确与高效:

  • Darknet-53 主干 — 53 层卷积特征提取网络,带有残差(跳跃)连接;比 YOLOv2 的 Darknet-19 主干更深、更准确,同时保持高效。
  • 多尺度检测 — 采用类特征金字塔的设计(上采样并拼接较早的特征图),在三个特征图尺度上进行预测,从而很好地检测大、中、小目标。
  • 锚框 — 边界框相对于由维度聚类得到的锚框先验进行预测,每个尺度三个锚框(共九个),并使用 sigmoid 偏移参数化以稳定训练。
  • 独立类别预测 — 每个类别使用独立的逻辑分类器而非 softmax 进行打分,因此单个框可携带多个互不排斥的标签。

本仓库提供该架构的三种变体:

  • YOLOv3 — 完整的 Darknet-53 模型;速度与精度的最佳平衡。
  • YOLOv3-SPP — 增加空间金字塔池化模块,在多个核大小上池化特征,扩大有效感受野并小幅提升精度。
  • YOLOv3-tiny — 紧凑主干、两个尺度检测,针对以速度为先的 CPU 和边缘设备优化。

模型在 models/*.yaml 中以声明式定义,并由 models/yolo.py 中的 parse_model() 构建,因此无需编写 Python 即可查看和修改架构。

🏋️ 预训练权重

三款模型均在 COCO(80 类)上训练,并在首次使用时从 YOLOv3 版本资源自动下载。

模型 说明
yolov3-tiny.pt 轻量的两尺度模型——最快的选择,适合 CPU 和边缘设备。
yolov3.pt 原始 Darknet-53 模型——速度与精度的有力平衡。
yolov3-spp.pt 增加空间金字塔池化,扩大感受野并提升精度。

🧩 集成

Ultralytics 与领先的 AI 平台集成,扩展数据集标注、训练、可视化和模型管理能力。在 Ultralytics 集成 探索 Weights & Biases、Comet ML、Roboflow 和 Intel OpenVINO 等合作伙伴如何简化您的工作流。

Ultralytics active learning integrations

🤔 为何选择 YOLOv3?

YOLOv3 是实时目标检测的里程碑,至今仍是可靠且广为理解的基准:

  • 实时单阶段检测 — 一次前向传播即可产生所有检测,无需独立的候选区域生成阶段。
  • 跨尺寸表现稳健 — 多尺度预测可处理大、中、小目标。
  • 支持多标签 — 独立的逻辑分类器允许重叠的类别标签。
  • 简单且可移植 — 全卷积设计,训练顺畅,可干净地导出到多种部署格式。

如需了解更广泛的 Ultralytics YOLO 模型系列,请访问 Ultralytics 仓库。

☁️ 环境

使用预配置环境快速上手。点击下方图标了解各平台设置详情。

🤝 贡献

欢迎贡献!请参阅贡献指南开始参与,并通过 Ultralytics 调查 分享您的反馈。感谢所有贡献者!

Ultralytics open-source contributors

📜 许可证

Ultralytics 提供两种许可选项:

  • AGPL-3.0 许可证:经 OSI 批准的开源协议,适合科研与协作。详情见 LICENSE。
  • 企业许可证:面向商业用途,可将 Ultralytics 软件和模型集成到商业产品中,无需遵守 AGPL-3.0 的开源义务。请通过 Ultralytics 许可 联系我们。

📧 联系

如需报告 bug 或提出功能请求,请使用 GitHub Issues。如有问题或想讨论,欢迎加入我们的 Discord、Reddit 和 Ultralytics 论坛。


Ultralytics GitHub space Ultralytics LinkedIn space Ultralytics Twitter space Ultralytics YouTube space Ultralytics TikTok space Ultralytics BiliBili space Ultralytics Discord

探索相关项目