中文 | 한국어 | 日本语 | Русский | 俄罗斯德语 |法语 |西班牙语 |葡萄牙语 |土耳其 |越南 | Tiếng Việt |巴黎
YOLOv5?是世界上最受欢迎的视觉人工智能,代表 Ultralytics 对未来视觉人工智能方法的开源研究,融合了数千小时研发过程中获得的经验教训和最佳实践。
我们希望这里的资源能够帮助您充分利用 YOLOv5。请浏览 YOLOv5 文档了解详细信息,在 GitHub 上提出问题以获得支持,并加入我们的 Discord 社区提出问题和讨论!
要申请企业许可证,请填写 Ultralytics Licensing 处的表格。
YOLO11?新的
我们很高兴推出 Ultralytics YOLO11 ™,这是我们最先进 (SOTA) 视觉模型的最新进展! YOLO11 现已在GitHub上发布,它建立在我们的速度、精度和易用性传统之上。无论您是处理对象检测、图像分割还是图像分类,YOLO11 都能提供在各种应用中脱颖而出所需的性能和多功能性。
今天就开始释放 YOLO11 的全部潜力!请访问 Ultralytics 文档以获取全面的指南和资源:
pip 安装 ultralytics
文档
有关训练、测试和部署的完整文档,请参阅 YOLOv5 文档。请参阅下面的快速入门示例。
在Python>=3.8.0环境(包括PyTorch>=1.8 )中克隆存储库并安装requirements.txt。
git 克隆 https://github.com/ultralytics/yolov5 # clonecd yolov5 pip install -r requests.txt # 安装
YOLOv5 PyTorch Hub 推理。模型会从最新的 YOLOv5 版本自动下载。
import torch# Modelmodel = torch.hub.load("ultralytics/yolov5", "yolov5s") # 或 yolov5n - yolov5x6, custom# Imagesimg = "https://ultralytics.com/images/zidane.jpg" # 或文件, Path、PIL、OpenCV、numpy、list# Inferenceresults = model(img)# Resultsresults.print() # 或 .show()、.save()、.crop()、.pandas() 等。
detect.py
在各种来源上运行推理,从最新的 YOLOv5 版本自动下载模型并将结果保存到runs/detect
。
python detector.py --weights yolov5s.pt --source 0 # 网络摄像头 img.jpg # 图片 vid.mp4 # 视频 屏幕# 屏幕截图 路径/#目录 list.txt # 图像列表 list.streams # 流列表 'path/*.jpg' # glob 'https://youtu.be/LNwODJXcvt4' # YouTube 'rtsp://example.com/media.mp4' # RTSP、RTMP、HTTP 流
以下命令重现 YOLOv5 COCO 结果。模型和数据集会从最新的 YOLOv5 版本自动下载。在 V100 GPU 上,YOLOv5n/s/m/l/x 的训练时间为 1/2/4/6/8 天(多 GPU 速度更快)。使用尽可能大的--batch-size
,或者为 YOLOv5 AutoBatch 传递--batch-size -1
。显示的批量大小适用于 V100-16GB。
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5n.yaml --batch-size 128 约洛夫5s 64 约洛夫5米40 约洛夫5l 24 约洛夫5x 16
训练自定义数据?受到推崇的
获得最佳训练效果的秘诀☘️
多GPU训练
PyTorch 中心?新的
TFLite、ONNX、CoreML、TensorRT 导出?
NVIDIA Jetson 平台部署?新的
测试时间增强 (TTA)
模型集成
模型剪枝/稀疏性
超参数演化
使用冻结层进行迁移学习
架构总结 ?新的
用于训练和部署 YOLO 的 Ultralytics HUB?受到推崇的
ClearML 日志记录
YOLOv5 与 Neural Magic 的 Deepsparse
彗星记录?新的
集成
我们与领先的人工智能平台的关键集成扩展了 Ultralytics 产品的功能,增强了数据集标记、培训、可视化和模型管理等任务。了解 Ultralytics 如何与 W&B、Comet、Roboflow 和 OpenVINO 合作优化您的 AI 工作流程。
超解集线器? | 温布利 | 彗星 ⭐ 新 | 神经魔法 |
---|---|---|---|
简化 YOLO 工作流程:使用 Ultralytics HUB 轻松标记、训练和部署。立即尝试! | 使用权重和偏差跟踪实验、超参数和结果 | Comet 永久免费,可让您保存 YOLOv5 模型、恢复训练以及交互式可视化和调试预测 | 使用 Neural Magic DeepSparse 将 YOLO11 推理速度提高 6 倍 |
超解集线器
使用 Ultralytics HUB ⭐ 体验无缝 AI,它是数据可视化、YOLOv5 和 YOLOv8 的一体化解决方案?模型训练和部署,无需任何编码。使用我们的尖端平台和用户友好的 Ultralytics 应用程序,将图像转化为可行的见解,并轻松将您的 AI 愿景变为现实。立即免费开始您的旅程!
为什么选择YOLOv5
YOLOv5 的设计非常容易上手且易于学习。我们优先考虑现实世界的结果。
COCO AP val表示 [email protected]:0.95 指标,在 5000 张图像的 COCO val2017 数据集上测量,推理大小从 256 到 1536。
GPU 速度使用 AWS p3.2xlarge V100 实例(批量大小为 32)测量 COCO val2017 数据集上每个图像的平均推理时间。
EfficientDet数据来自 google/automl,批量大小为 8。
通过python val.py --task study --data coco.yaml --iou 0.7 --weights yolov5n6.pt yolov5s6.pt yolov5m6.pt yolov5l6.pt yolov5x6.pt
重现
模型 | 尺寸 (像素) | 平均AP值 50-95 | 平均AP值 50 | 速度 中央处理器b1 (多发性硬化症) | 速度 V100 B1 (多发性硬化症) | 速度 V100 b32 (多发性硬化症) | 参数 (男) | 失败次数 @640(乙) |
---|---|---|---|---|---|---|---|---|
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 个 epoch。 Nano 和 Small 模型使用 hyp.scratch-low.yaml hyps,所有其他模型使用 hyp.scratch-high.yaml。
mAP val值适用于 COCO val2017 数据集上的单模型单尺度。
通过python val.py --data coco.yaml --img 640 --conf 0.001 --iou 0.65
重现
使用 AWS p3.2xlarge 实例对 COCO val 图像进行平均速度。不包括 NMS 时间(~1 ms/img)。
通过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 实例分割模型是世界上最快、最准确的,击败了当前所有的 SOTA 基准。我们使它们的训练、验证和部署变得非常简单。请参阅我们的发行说明中的完整详细信息,并访问我们的 YOLOv5 分段 Colab 笔记本以获取快速入门教程。
我们使用 A100 GPU 在 COCO 上以图像大小 640 训练 YOLOv5 分割模型 300 个时期。我们将所有模型导出到 ONNX FP32 进行 CPU 速度测试,导出到 TensorRT FP16 进行 GPU 速度测试。我们在 Google Colab Pro 笔记本电脑上运行了所有速度测试,以便轻松重现。
模型 | 尺寸 (像素) | 地图框 50-95 | 地图掩模 50-95 | 列车时间 300 个纪元 A100(小时) | 速度 ONNX CPU (多发性硬化症) | 速度 TRT A100 (多发性硬化症) | 参数 (男) | 失败次数 @640(乙) |
---|---|---|---|---|---|---|---|---|
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 优化器在图像大小 640 和所有默认设置下训练至 300 个 epoch,其中lr0=0.01
和weight_decay=5e-5
。
运行记录到 https://wandb.ai/glenn-jocher/YOLOv5_v70_official
准确度值适用于 COCO 数据集上的单模型单尺度。
通过python segment/val.py --data coco.yaml --weights yolov5s-seg.pt
重现
使用 Colab Pro A100 高 RAM 实例计算 100 多个推理图像的平均速度。值仅表示推理速度(NMS 每张图像增加约 1 毫秒)。
通过python segment/val.py --data coco.yaml --weights yolov5s-seg.pt --batch 1
重现
使用export.py
导出到 FP32 的 ONNX 和 FP16 的 TensorRT。
通过python export.py --weights yolov5s-seg.pt --include engine --device 0 --half
复制
YOLOv5分割训练支持使用--data coco128-seg.yaml
参数自动下载COCO128-seg分割数据集,并使用bash data/scripts/get_coco.sh --train --val --segments
手动下载COCO-segments数据集,然后python train.py --data coco.yaml
。
# 单GPUpython segment/train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640# 多GPU DDPpython -m torch.distributed.run --nproc_per_node 4 --master_port 1 segment /train.py --data coco128-seg.yaml --weights yolov5s-seg.pt --img 640 --设备 0,1,2,3
在 COCO 数据集上验证 YOLOv5s-seg mask mAP:
bash data/scripts/get_coco.sh --val --segments # 下载 COCO val 分段分割(780MB,5000 个图像)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
model = torch.hub.load( "ultralytics/yolov5", "custom", "yolov5m-seg.pt") # 从 PyTorch Hub 加载(警告:尚不支持推理)
将 YOLOv5s-seg 模型导出到 ONNX 和 TensorRT:
python export.py --weights yolov5s-seg.pt --include onnx 引擎 --img 640 --device 0
分类
YOLOv5 版本 v6.2 带来了对分类模型训练、验证和部署的支持!请参阅我们的发行说明中的完整详细信息,并访问我们的 YOLOv5 分类 Colab Notebook 以获取快速入门教程。
我们使用 4xA100 实例在 ImageNet 上训练 YOLOv5-cls 分类模型 90 个周期,并使用相同的默认训练设置训练 ResNet 和 EfficientNet 模型进行比较。我们将所有模型导出到 ONNX FP32 进行 CPU 速度测试,导出到 TensorRT FP16 进行 GPU 速度测试。我们在 Google Colab Pro 上运行了所有速度测试,以便轻松重现。
模型 | 尺寸 (像素) | ACC 前1名 | ACC 前5名 | 训练 90 纪元 4xA100(小时) | 速度 ONNX CPU (多发性硬化症) | 速度 张量RT V100 (多发性硬化症) | 参数 (男) | 失败次数 @224(乙) |
---|---|---|---|---|---|---|---|---|
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 |
残差网络18 | 224 | 70.3 | 89.5 | 6:47 | 11.2 | 0.5 | 11.7 | 3.7 |
残差网络34 | 224 | 73.9 | 91.8 | 8:33 | 20.6 | 0.9 | 21.8 | 7.4 |
残网50 | 224 | 76.8 | 93.4 | 11:10 | 23.4 | 1.0 | 25.6 | 8.5 |
残网101 | 224 | 78.5 | 94.3 | 17:10 | 42.1 | 1.9 | 44.5 | 15.9 |
高效网络_b0 | 224 | 75.1 | 92.4 | 13:03 | 12.5 | 1.3 | 5.3 | 1.0 |
高效网络_b1 | 224 | 76.4 | 93.2 | 17:04 | 14.9 | 1.6 | 7.8 | 1.5 |
高效网络_b2 | 224 | 76.6 | 93.4 | 17:10 | 15.9 | 1.6 | 9.1 | 1.7 |
高效网络_b3 | 224 | 77.7 | 94.0 | 19:19 | 18.9 | 1.9 | 12.2 | 2.4 |
所有检查点均使用 SGD 优化器在图像大小 224 和所有默认设置下训练至 90 个 epoch,其中lr0=0.001
且weight_decay=5e-5
。
运行记录到 https://wandb.ai/glenn-jocher/YOLOv5-Classifier-v6-2
准确度值适用于 ImageNet-1k 数据集上的单模型单尺度。
通过python classify/val.py --data ../datasets/imagenet --img 224
重现
使用 Google Colab Pro V100 高 RAM 实例计算 100 多个推理图像的平均速度。
通过python classify/val.py --data ../datasets/imagenet --img 224 --batch 1
重现
使用export.py
导出到 FP32 的 ONNX 和 FP16 的 TensorRT。
通过python export.py --weights yolov5s-cls.pt --include engine onnx --imgsz 224
复制
YOLOv5 分类训练支持使用--data
参数自动下载 MNIST、Fashion-MNIST、CIFAR10、CIFAR100、Imagenette、Imagewoof 和 ImageNet 数据集。例如,要开始在 MNIST 上进行训练,请使用--data mnist
。
# 单GPUpython Classify/train.py --model yolov5s-cls.pt --data cifar100 --epochs 5 --img 224 --batch 128# 多GPU DDPpython -m torch.distributed.run --nproc_per_node 4 - -master_port 1分类/train.py --model yolov5s-cls.pt --data imagenet --epochs 5 --img 224 --device 0,1,2,3
在 ImageNet-1k 数据集上验证 YOLOv5m-cls 的准确性:
bash data/scripts/get_imagenet.sh --val # 下载 ImageNet val split (6.3G, 50000 张图像)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
model = torch.hub.load("ultralytics/yolov5", "custom", "yolov5s-cls.pt") # 从 PyTorch Hub 加载
将一组经过训练的 YOLOv5s-cls、ResNet 和 EfficientNet 模型导出到 ONNX 和 TensorRT:
python export.py --weights yolov5s-cls.pt resnet50.pt effectivenet_b0.pt --include onnx 引擎 --img 224
环境
几秒钟内即可开始使用我们经过验证的环境。单击下面的每个图标了解详细信息。
贡献
我们喜欢您的意见!我们希望为 YOLOv5 做出贡献尽可能简单和透明。请参阅我们的贡献指南以开始使用,并填写 YOLOv5 调查,向我们发送有关您的体验的反馈。感谢我们所有的贡献者!
执照
Ultralytics 提供两种许可选项来适应不同的用例:
AGPL-3.0 许可证:此 OSI 批准的开源许可证非常适合学生和爱好者,促进开放协作和知识共享。有关更多详细信息,请参阅许可证文件。
企业许可证:该许可证专为商业用途而设计,允许将 Ultralytics 软件和人工智能模型无缝集成到商业产品和服务中,绕过 AGPL-3.0 的开源要求。如果您的方案涉及将我们的解决方案嵌入到商业产品中,请通过 Ultralytics 许可进行联系。
接触
有关 YOLOv5 错误报告和功能请求,请访问 GitHub 问题,并加入我们的 Discord 社区提出问题和讨论!