chicken_detector / README.zh-CN.md
dammyceo's picture
Upload folder using huggingface_hub
59cb088 verified

A newer version of the Gradio SDK is available: 5.26.0

Upgrade

Ultralytics YOLO 横幅

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

YOLOv5 CI 测试 YOLOv5 引用 Docker 拉取次数 Discord Ultralytics 论坛 Ultralytics Reddit
在 Gradient 上运行 在 Colab 中打开 在 Kaggle 中打开

Ultralytics YOLOv5 🚀 是由 Ultralytics 开发的尖端、达到业界顶尖水平(SOTA)的计算机视觉模型。基于 PyTorch 框架,YOLOv5 以其易用性、速度和准确性而闻名。它融合了广泛研究和开发的见解与最佳实践,使其成为各种视觉 AI 任务的热门选择,包括目标检测图像分割图像分类

我们希望这里的资源能帮助您充分利用 YOLOv5。请浏览 YOLOv5 文档获取详细信息,在 GitHub 上提出 issue 以获得支持,并加入我们的 Discord 社区进行提问和讨论!

如需申请企业许可证,请填写 Ultralytics 授权许可 表格。

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

🚀 YOLO11:下一代进化

我们激动地宣布推出 Ultralytics YOLO11 🚀,这是我们业界顶尖(SOTA)视觉模型的最新进展!YOLO11 现已在 Ultralytics YOLO GitHub 仓库发布,它继承了我们速度快、精度高和易于使用的传统。无论您是处理目标检测实例分割姿态估计图像分类还是旋转目标检测 (OBB),YOLO11 都能提供在多样化应用中脱颖而出所需的性能和多功能性。

立即开始,释放 YOLO11 的全部潜力!访问 Ultralytics 文档获取全面的指南和资源:

PyPI version Downloads

# 安装 ultralytics 包
pip install ultralytics

📚 文档

请参阅 YOLOv5 文档,了解有关训练、测试和部署的完整文档。请参阅下方的快速入门示例。

安装

克隆仓库并在 Python>=3.8.0 环境中安装依赖项。确保您已安装 PyTorch>=1.8

# 克隆 YOLOv5 仓库
git clone https://github.com/ultralytics/yolov5

# 导航到克隆的目录
cd yolov5

# 安装所需的包
pip install -r requirements.txt
使用 PyTorch Hub 进行推理

通过 PyTorch Hub 使用 YOLOv5 进行推理。模型 会自动从最新的 YOLOv5 发布版本下载。

import torch

# 加载 YOLOv5 模型(选项:yolov5n, yolov5s, yolov5m, yolov5l, yolov5x)
model = torch.hub.load("ultralytics/yolov5", "yolov5s")  # 默认:yolov5s

# 定义输入图像源(URL、本地文件、PIL 图像、OpenCV 帧、numpy 数组或列表)
img = "https://ultralytics.com/images/zidane.jpg"  # 示例图像

# 执行推理(自动处理批处理、调整大小、归一化)
results = model(img)

# 处理结果(选项:.print(), .show(), .save(), .crop(), .pandas())
results.print()  # 将结果打印到控制台
results.show()  # 在窗口中显示结果
results.save()  # 将结果保存到 runs/detect/exp
使用 detect.py 进行推理

detect.py 脚本在各种来源上运行推理。它会自动从最新的 YOLOv5 发布版本下载模型,并将结果保存到 runs/detect 目录。

# 使用网络摄像头运行推理
python detect.py --weights yolov5s.pt --source 0

# 对本地图像文件运行推理
python detect.py --weights yolov5s.pt --source img.jpg

# 对本地视频文件运行推理
python detect.py --weights yolov5s.pt --source vid.mp4

# 对屏幕截图运行推理
python detect.py --weights yolov5s.pt --source screen

# 对图像目录运行推理
python detect.py --weights yolov5s.pt --source path/to/images/

# 对列出图像路径的文本文件运行推理
python detect.py --weights yolov5s.pt --source list.txt

# 对列出流 URL 的文本文件运行推理
python detect.py --weights yolov5s.pt --source list.streams

# 使用 glob 模式对图像运行推理
python detect.py --weights yolov5s.pt --source 'path/to/*.jpg'

# 对 YouTube 视频 URL 运行推理
python detect.py --weights yolov5s.pt --source 'https://youtu.be/LNwODJXcvt4'

# 对 RTSP、RTMP 或 HTTP 流运行推理
python detect.py --weights yolov5s.pt --source 'rtsp://example.com/media.mp4'
训练

以下命令演示了如何复现 YOLOv5 在 COCO 数据集上的结果。模型数据集都会自动从最新的 YOLOv5 发布版本下载。YOLOv5n/s/m/l/x 的训练时间在单个 NVIDIA V100 GPU 上大约需要 1/2/4/6/8 天。使用多 GPU 训练可以显著减少训练时间。请使用硬件允许的最大 --batch-size,或使用 --batch-size -1 以启用 YOLOv5 AutoBatch。下面显示的批处理大小适用于 V100-16GB GPU。

# 在 COCO 上训练 YOLOv5n 300 个周期
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5n.yaml --batch-size 128

# 在 COCO 上训练 YOLOv5s 300 个周期
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5s.yaml --batch-size 64

# 在 COCO 上训练 YOLOv5m 300 个周期
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5m.yaml --batch-size 40

# 在 COCO 上训练 YOLOv5l 300 个周期
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5l.yaml --batch-size 24

# 在 COCO 上训练 YOLOv5x 300 个周期
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5x.yaml --batch-size 16
YOLOv5 训练结果
教程

🧩 集成

我们与领先 AI 平台的关键集成扩展了 Ultralytics 产品的功能,增强了诸如数据集标注、训练、可视化和模型管理等任务。了解 Ultralytics 如何与 Weights & BiasesComet MLRoboflowIntel OpenVINO 等合作伙伴协作,优化您的 AI 工作流程。在 Ultralytics 集成 探索更多信息。

Ultralytics 主动学习集成

Ultralytics HUB 🌟 Weights & Biases Comet Neural Magic
简化 YOLO 工作流程:使用 Ultralytics HUB 轻松标注、训练和部署。立即试用! 使用 Weights & Biases 跟踪实验、超参数和结果。 永久免费的 Comet ML 让您保存 YOLO 模型、恢复训练并交互式地可视化预测。 使用 Neural Magic DeepSparse 将 YOLO 推理速度提高多达 6 倍。

⭐ Ultralytics HUB

通过 Ultralytics HUB ⭐ 体验无缝的 AI 开发,这是构建、训练和部署计算机视觉模型的终极平台。可视化数据集,训练 YOLOv5YOLOv8 🚀 模型,并将它们部署到实际应用中,无需编写任何代码。使用我们尖端的工具和用户友好的 Ultralytics App 将图像转化为可操作的见解。今天就免费开始您的旅程吧!

Ultralytics HUB 平台截图

🤔 为何选择 YOLOv5?

YOLOv5 的设计旨在简单易用。我们优先考虑实际性能和可访问性。

YOLOv5 性能图表

YOLOv5-P5 640 图表

YOLOv5 P5 640 性能图表

图表说明

预训练权重

此表显示了在 COCO 数据集上训练的各种 YOLOv5 模型的性能指标。

模型 尺寸
(像素)
mAPval
50-95
mAPval
50
速度
CPU b1
(毫秒)
速度
V100 b1
(毫秒)
速度
V100 b32
(毫秒)
参数
(M)
FLOPs
@640 (B)
YOLOv5n 640 28.0 45.7 45 6.3 0.6 1.9 4.5
YOLOv5s 640 37.4 56.8 98 6.4 0.9 7.2 16.5
YOLOv5m 640 45.4 64.1 224 8.2 1.7 21.2 49.0
YOLOv5l 640 49.0 67.3 430 10.1 2.7 46.5 109.1
YOLOv5x 640 50.7 68.9 766 12.1 4.8 86.7 205.7
YOLOv5n6 1280 36.0 54.4 153 8.1 2.1 3.2 4.6
YOLOv5s6 1280 44.8 63.7 385 8.2 3.6 12.6 16.8
YOLOv5m6 1280 51.3 69.3 887 11.1 6.8 35.7 50.0
YOLOv5l6 1280 53.7 71.3 1784 15.8 10.5 76.8 111.4
YOLOv5x6
+ [TTA]
1280
1536
55.0
55.8
72.7
72.7
3136
-
26.2
-
19.4
-
140.7
-
209.8
-
表格说明
  • 所有预训练权重均使用默认设置训练了 300 个周期。Nano (n) 和 Small (s) 模型使用 hyp.scratch-low.yaml 超参数,而 Medium (m)、Large (l) 和 Extra-Large (x) 模型使用 hyp.scratch-high.yaml
  • mAPval 值表示在 COCO val2017 数据集上的单模型、单尺度性能。
    复现请使用:python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65
  • 速度指标是在 AWS p3.2xlarge V100 实例上对 COCO val 图像进行平均测量的。不包括非极大值抑制 (NMS) 时间(约 1 毫秒/图像)。
    复现请使用:python val.py --data coco.yaml --img 640 --task speed --batch 1
  • TTA (测试时增强) 包括反射和尺度增强以提高准确性。
    复现请使用:python val.py --data coco.yaml --img 1536 --iou 0.7 --augment

🖼️ 分割

YOLOv5 v7.0 版本 引入了实例分割模型,达到了业界顶尖的性能。这些模型设计用于轻松训练、验证和部署。有关完整详细信息,请参阅发布说明,并探索 YOLOv5 分割 Colab 笔记本以获取快速入门示例。

分割预训练权重

YOLOv5 分割模型在 COCO 数据集上使用 A100 GPU 以 640 像素的图像大小训练了 300 个周期。模型导出为 ONNX FP32 用于 CPU 速度测试,导出为 TensorRT FP16 用于 GPU 速度测试。所有速度测试均在 Google Colab Pro 笔记本上进行,以确保可复现性。

模型 尺寸
(像素)
mAPbox
50-95
mAPmask
50-95
训练时间
300 周期
A100 (小时)
速度
ONNX CPU
(毫秒)
速度
TRT A100
(毫秒)
参数
(M)
FLOPs
@640 (B)
YOLOv5n-seg 640 27.6 23.4 80:17 62.7 1.2 2.0 7.1
YOLOv5s-seg 640 37.6 31.7 88:16 173.3 1.4 7.6 26.4
YOLOv5m-seg 640 45.0 37.1 108:36 427.0 2.2 22.0 70.8
YOLOv5l-seg 640 49.0 39.9 66:43 (2x) 857.4 2.9 47.9 147.7
YOLOv5x-seg 640 50.7 41.4 62:56 (3x) 1579.2 4.5 88.8 265.7
  • 所有预训练权重均使用 SGD 优化器,lr0=0.01weight_decay=5e-5,在 640 像素的图像大小下,使用默认设置训练了 300 个周期。
    训练运行记录在 https://wandb.ai/glenn-jocher/YOLOv5_v70_official
  • 准确度值表示在 COCO 数据集上的单模型、单尺度性能。
    复现请使用:python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
  • 速度指标是在 Colab Pro A100 High-RAM 实例上对 100 张推理图像进行平均测量的。值仅表示推理速度(NMS 约增加 1 毫秒/图像)。
    复现请使用:python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
  • 导出到 ONNX (FP32) 和 TensorRT (FP16) 是使用 export.py 完成的。
    复现请使用:python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
分割使用示例  在 Colab 中打开

训练

YOLOv5 分割训练支持通过 --data coco128-seg.yaml 参数自动下载 COCO128-seg 数据集。对于完整的 COCO-segments 数据集,请使用 bash data/scripts/get_coco.sh --train --val --segments 手动下载,然后使用 python train.py --data coco.yaml 进行训练。

# 在单个 GPU 上训练
python segment/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640

# 使用多 GPU 分布式数据并行 (DDP) 进行训练
python -m torch.distributed.run --nproc_per_node 4 --master_port 1 segment/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640 --device 0,1,2,3

验证

在 COCO 数据集上验证 YOLOv5s-seg 的掩码平均精度均值 (mAP)

# 下载 COCO 验证分割集 (780MB, 5000 张图像)
bash data/scripts/get_coco.sh --val --segments

# 验证模型
python segment/val.py --weights yolov5s-seg.pt --data coco.yaml --img 640

预测

使用预训练的 YOLOv5m-seg.pt 模型对 bus.jpg 执行分割:

# 运行预测
python segment/predict.py --weights yolov5m-seg.pt --source data/images/bus.jpg
# 从 PyTorch Hub 加载模型(注意:推理支持可能有所不同)
model = torch.hub.load("ultralytics/yolov5", "custom", "yolov5m-seg.pt")
Zidane 分割示例 Bus 分割示例

导出

将 YOLOv5s-seg 模型导出为 ONNX 和 TensorRT 格式:

# 导出模型
python export.py --weights yolov5s-seg.pt --include onnx engine --img 640 --device 0

🏷️ 分类

YOLOv5 v6.2 版本 引入了对图像分类模型训练、验证和部署的支持。请查看发布说明了解详细信息,并参阅 YOLOv5 分类 Colab 笔记本获取快速入门指南。

分类预训练权重

YOLOv5-cls 分类模型在 ImageNet 上使用 4xA100 实例训练了 90 个周期。ResNetEfficientNet 模型在相同设置下一起训练以进行比较。模型导出为 ONNX FP32(用于 CPU 速度测试)和 TensorRT FP16(用于 GPU 速度测试)。所有速度测试均在 Google Colab Pro 上运行,以确保可复现性。

模型 尺寸
(像素)
准确率
top1
准确率
top5
训练
90 周期
4xA100 (小时)
速度
ONNX CPU
(毫秒)
速度
TensorRT V100
(毫秒)
参数
(M)
FLOPs
@224 (B)
YOLOv5n-cls 224 64.6 85.4 7:59 3.3 0.5 2.5 0.5
YOLOv5s-cls 224 71.5 90.2 8:09 6.6 0.6 5.4 1.4
YOLOv5m-cls 224 75.9 92.9 10:06 15.5 0.9 12.9 3.9
YOLOv5l-cls 224 78.0 94.0 11:56 26.9 1.4 26.5 8.5
YOLOv5x-cls 224 79.0 94.4 15:04 54.3 1.8 48.1 15.9
ResNet18 224 70.3 89.5 6:47 11.2 0.5 11.7 3.7
ResNet34 224 73.9 91.8 8:33 20.6 0.9 21.8 7.4
ResNet50 224 76.8 93.4 11:10 23.4 1.0 25.6 8.5
ResNet101 224 78.5 94.3 17:10 42.1 1.9 44.5 15.9
EfficientNet_b0 224 75.1 92.4 13:03 12.5 1.3 5.3 1.0
EfficientNet_b1 224 76.4 93.2 17:04 14.9 1.6 7.8 1.5
EfficientNet_b2 224 76.6 93.4 17:10 15.9 1.6 9.1 1.7
EfficientNet_b3 224 77.7 94.0 19:19 18.9 1.9 12.2 2.4
表格说明(点击展开)
  • 所有预训练权重均使用 SGD 优化器,lr0=0.001weight_decay=5e-5,在 224 像素的图像大小下,使用默认设置训练了 90 个周期。
    训练运行记录在 https://wandb.ai/glenn-jocher/YOLOv5-Classifier-v6-2
  • 准确度值(top-1 和 top-5)表示在 ImageNet-1k 数据集上的单模型、单尺度性能。
    复现请使用:python classify/val.py --data ../datasets/imagenet --img 224
  • 速度指标是在 Google Colab Pro V100 High-RAM 实例上对 100 张推理图像进行平均测量的。
    复现请使用:python classify/val.py --data ../datasets/imagenet --img 224 --batch 1
  • 导出到 ONNX (FP32) 和 TensorRT (FP16) 是使用 export.py 完成的。
    复现请使用:python export.py --weights yolov5s-cls.pt --include engine onnx --imgsz 224
分类使用示例  在 Colab 中打开

训练

YOLOv5 分类训练支持使用 --data 参数自动下载诸如 MNISTFashion-MNISTCIFAR10CIFAR100ImagenetteImagewoofImageNet 等数据集。例如,使用 --data mnist 开始在 MNIST 上训练。

# 使用 CIFAR-100 数据集在单个 GPU 上训练
python classify/train.py --model yolov5s-cls.pt --data cifar100 --epochs 5 --img 224 --batch 128

# 在 ImageNet 数据集上使用多 GPU DDP 进行训练
python -m torch.distributed.run --nproc_per_node 4 --master_port 1 classify/train.py --model yolov5s-cls.pt --data imagenet --epochs 5 --img 224 --device 0,1,2,3

验证

在 ImageNet-1k 验证数据集上验证 YOLOv5m-cls 模型的准确性:

# 下载 ImageNet 验证集 (6.3GB, 50,000 张图像)
bash data/scripts/get_imagenet.sh --val

# 验证模型
python classify/val.py --weights yolov5m-cls.pt --data ../datasets/imagenet --img 224

预测

使用预训练的 YOLOv5s-cls.pt 模型对图像 bus.jpg 进行分类:

# 运行预测
python classify/predict.py --weights yolov5s-cls.pt --source data/images/bus.jpg
# 从 PyTorch Hub 加载模型
model = torch.hub.load("ultralytics/yolov5", "custom", "yolov5s-cls.pt")

导出

将训练好的 YOLOv5s-cls、ResNet50 和 EfficientNet_b0 模型导出为 ONNX 和 TensorRT 格式:

# 导出模型
python export.py --weights yolov5s-cls.pt resnet50.pt efficientnet_b0.pt --include onnx engine --img 224

☁️ 环境

使用我们预配置的环境快速开始。点击下面的图标查看设置详情。

🤝 贡献

我们欢迎您的贡献!让 YOLOv5 变得易于访问和有效是社区的共同努力。请参阅我们的贡献指南开始。通过 YOLOv5 调查分享您的反馈。感谢所有为使 YOLOv5 变得更好而做出贡献的人!

Ultralytics 开源贡献者

📜 许可证

Ultralytics 提供两种许可选项以满足不同需求:

  • AGPL-3.0 许可证:一种 OSI 批准的开源许可证,非常适合学术研究、个人项目和测试。它促进开放协作和知识共享。详情请参阅 LICENSE 文件。
  • 企业许可证:专为商业应用量身定制,此许可证允许将 Ultralytics 软件和 AI 模型无缝集成到商业产品和服务中,绕过 AGPL-3.0 的开源要求。对于商业用例,请通过 Ultralytics 授权许可联系我们。

📧 联系

对于与 YOLOv5 相关的错误报告和功能请求,请访问 GitHub Issues。对于一般问题、讨论和社区支持,请加入我们的 Discord 服务器


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