19 KiB
Ultralytics YOLOv8 是由 Ultralytics 开发的一个前沿的 SOTA 模型。它在以前成功的 YOLO 版本基础上,引入了新的功能和改进,进一步提升了其性能和灵活性。YOLOv8 基于快速、准确和易于使用的设计理念,使其成为广泛的目标检测、图像分割和图像分类任务的绝佳选择。
如果要申请企业许可证,请填写 Ultralytics 许可。
文档
有关训练、测试和部署的完整文档见YOLOv8 Docs。请参阅下面的快速入门示例。
安装
Pip 安装包含所有 requirements.txt 的 ultralytics 包,环境要求 Python>=3.7,且 **PyTorch>=1.7 **。
pip install ultralytics
使用方法
YOLOv8 可以直接在命令行界面(CLI)中使用 yolo
命令运行:
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'
yolo
可以用于各种任务和模式,并接受额外的参数,例如 imgsz=640
。参见 YOLOv8 文档
中可用yolo
参数的完整列表。
yolo task=detect mode=train model=yolov8n.pt args...
classify predict yolov8n-cls.yaml args...
segment val yolov8n-seg.yaml args...
export yolov8n.pt format=onnx args...
YOLOv8 也可以在 Python 环境中直接使用,并接受与上面 CLI 例子中相同的参数:
from ultralytics import YOLO
# 加载模型
model = YOLO("yolov8n.yaml") # 从头开始构建新模型
model = YOLO("yolov8n.pt") # 加载预训练模型(推荐用于训练)
# Use the model
results = model.train(data="coco128.yaml", epochs=3) # 训练模型
results = model.val() # 在验证集上评估模型性能
results = model("https://ultralytics.com/images/bus.jpg") # 预测图像
success = model.export(format="onnx") # 将模型导出为 ONNX 格式
已知问题 / 待办事项
我们仍在努力完善 YOLOv8 的几个部分!我们的目标是尽快完成这些工作,使 YOLOv8 的功能设置达到YOLOv5 的水平,包括对所有相同格式的导出和推理。我们还在写一篇 YOLOv8 的论文,一旦完成,我们将提交给 arxiv.org。
- TensorFlow 导出
- DDP 恢复训练
- arxiv.org 论文
模型
所有 YOLOv8 的预训练模型都可以在这里找到。目标检测和分割模型是在 COCO 数据集上预训练的,而分类模型是在 ImageNet 数据集上预训练的。
第一次使用时,模型 会从 Ultralytics 发布页 自动下载。
目标检测
模型 | 尺寸 (像素) |
mAPval 50-95 |
推理速度 CPU ONNX (ms) |
推理速度 A100 TensorRT (ms) |
参数量 (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv8n | 640 | 37.3 | 80.4 | 0.99 | 3.2 | 8.7 |
YOLOv8s | 640 | 44.9 | 128.4 | 1.20 | 11.2 | 28.6 |
YOLOv8m | 640 | 50.2 | 234.7 | 1.83 | 25.9 | 78.9 |
YOLOv8l | 640 | 52.9 | 375.2 | 2.39 | 43.7 | 165.2 |
YOLOv8x | 640 | 53.9 | 479.1 | 3.53 | 68.2 | 257.8 |
- mAPval 结果都在 COCO val2017 数据集上,使用单模型单尺度测试得到。
复现命令yolo val detect data=coco.yaml device=0
- 推理速度使用 COCO
验证集图片推理时间进行平均得到,测试环境使用 Amazon EC2 P4d 实例。
复现命令yolo val detect data=coco128.yaml batch=1 device=0/cpu
实例分割
模型 | 尺寸 (像素) |
mAPbox 50-95 |
mAPmask 50-95 |
推理速度 CPU ONNX (ms) |
推理速度 A100 TensorRT (ms) |
参数量 (M) |
FLOPs (B) |
---|---|---|---|---|---|---|---|
YOLOv8n-seg | 640 | 36.7 | 30.5 | 96.1 | 1.21 | 3.4 | 12.6 |
YOLOv8s-seg | 640 | 44.6 | 36.8 | 155.7 | 1.47 | 11.8 | 42.6 |
YOLOv8m-seg | 640 | 49.9 | 40.8 | 317.0 | 2.18 | 27.3 | 110.2 |
YOLOv8l-seg | 640 | 52.3 | 42.6 | 572.4 | 2.79 | 46.0 | 220.5 |
YOLOv8x-seg | 640 | 53.4 | 43.4 | 712.1 | 4.02 | 71.8 | 344.1 |
- mAPval 结果都在 COCO val2017 数据集上,使用单模型单尺度测试得到。
复现命令yolo val segment data=coco.yaml device=0
- 推理速度使用 COCO
验证集图片推理时间进行平均得到,测试环境使用 Amazon EC2 P4d 实例。
复现命令yolo val segment data=coco128-seg.yaml batch=1 device=0/cpu
分类
模型 | 尺寸 (像素) |
acc top1 |
acc top5 |
推理速度 CPU ONNX (ms) |
推理速度 A100 TensorRT (ms) |
参数量 (M) |
FLOPs (B) at 640 |
---|---|---|---|---|---|---|---|
YOLOv8n-cls | 224 | 66.6 | 87.0 | 12.9 | 0.31 | 2.7 | 4.3 |
YOLOv8s-cls | 224 | 72.3 | 91.1 | 23.4 | 0.35 | 6.4 | 13.5 |
YOLOv8m-cls | 224 | 76.4 | 93.2 | 85.4 | 0.62 | 17.0 | 42.7 |
YOLOv8l-cls | 224 | 78.0 | 94.1 | 163.0 | 0.87 | 37.5 | 99.7 |
YOLOv8x-cls | 224 | 78.4 | 94.3 | 232.0 | 1.01 | 57.4 | 154.8 |
- acc 都在 ImageNet 数据集上,使用单模型单尺度测试得到。
复现命令yolo val classify data=path/to/ImageNet device=0
- 推理速度使用 ImageNet
验证集图片推理时间进行平均得到,测试环境使用 Amazon EC2 P4d 实例。
复现命令yolo val classify data=path/to/ImageNet batch=1 device=0/cpu
模块集成
Roboflow | ClearML ⭐ 新 | Comet ⭐ 新 | Neural Magic ⭐ 新 |
---|---|---|---|
将您的自定义数据集进行标注并直接导出到 YOLOv8 以进行训练 Roboflow | 自动跟踪、可视化甚至远程训练 YOLOv8 ClearML(开源!) | 永远免费,Comet可让您保存 YOLOv8 模型、恢复训练以及交互式可视化和调试预测 | 使用 Neural Magic DeepSparse,运行 YOLOv8 推理的速度最高可提高6倍 |
Ultralytics HUB
Ultralytics HUB 是我们⭐ 新的无代码解决方案,用于可视化数据集,训练 YOLOv8🚀 模型,并以无缝体验方式部署到现实世界。现在开始免费! 还可以通过下载 Ultralytics App 在你的 iOS 或 Android 设备上运行 YOLOv8 模型!
贡献
我们喜欢您的意见或建议!我们希望尽可能简单和透明地为 YOLOv8 做出贡献。请看我们的 贡献指南 ,并填写 调查问卷 向我们发送您的体验反馈。感谢我们所有的贡献者!
License
YOLOv8 在两种不同的 License 下可用:
- GPL-3.0 License: 查看 License 文件的详细信息。
- 企业License:在没有 GPL-3.0 开源要求的情况下为商业产品开发提供更大的灵活性。典型用例是将 Ultralytics 软件和 AI 模型嵌入到商业产品和应用程序中。在以下位置申请企业许可证 Ultralytics 许可 。
联系我们
请访问 GitHub Issues 或 Ultralytics Community Forum 以报告 YOLOv8 错误和请求功能。