赞
踩
CV之DL之YOLOv8:YOLOv8的简介、安装和使用方法、案例应用之详细攻略
目录
2023年1月11日,Ultralytics重磅发布YOLOv8。Ultralytics YOLOv8是一种前沿、最先进(SOTA)的模型,它在之前的YOLO版本的成功基础上进行了改进,引入了新的功能和改进,以进一步提升性能和灵活性。YOLOv8旨在快速、准确且易于使用,使其成为广泛应用于目标检测和跟踪、实例分割、图像分类和姿态估计等多种任务的理想选择。
YOLOv8是计算机视觉中的新一代技术,支持目标检测、分类和分割任务。YOLOv8是由Ultralytics创建的一种新型计算机视觉模型,也是YOLOv5的创建者。YOLOv8模型具有开箱即用的目标检测、分类和分割任务支持,可通过Python包和命令行界面访问。
YOLOv8由Ultralytics创建。YOLOv8的代码是开源的,并根据GPL许可证授权。使用Roboflow Universe,您可以探索经过训练以解决各种问题的模型,从在航空图像中识别飞机到在工作区域中识别铲车和货盘。
官网地址:YOLOv8: A New State-of-the-Art Computer Vision Model
文章解读地址:What is YOLOv8? The Ultimate Guide.
GitHub地址:https://github.com/ultralytics/ultralytics
| 背景痛点 | 以往的目标检测模型都存在着一定的误差和限制,难以满足现实应用场景的要求 YOLO系列模型虽然精准度较高,但是易用性和扩展性有限 |
| 解决方案 | YOLOv8是继YOLOv5后,野心勃勃的目标检测、实例分割和图像分类模型YOLOv8采用无锚框检测、新的卷积核操作、新的C2f模块设计等优化了原有模型的结构。 YOLOv8同时提供了更友好的命令行界面和Python包接口,大幅提升了开发体验。 |
| 核心特点 | >> 在COCO和Roboflow100评估数据集上,精度均优于YOLOv5和其他同类模型; >> 支持目标检测、实例分割和图像分类三大任务; >> 代码开源托管于GitHub,支持广泛的开发者社区参与迭代更新; >> 提供便利的命令行和Python接口,实现模型训练、推理、部署等流程一体化; |
| 优势 | >> 模型精度领先同类网络,在保持实时性的基础上实现更高的识别精度; >> 友好的开发体验极大提升了模型应用开发效率; >> 开放和活跃的社区支持全面解决问题; >> 可以直接实现目标检测模型在现实场景中的部署应用; |
总之,YOLOv8通过优化模型结构和提升开发体验,很好地结合了模型效果和易用性,成为目前目标检测领域最成熟和优秀的模型之一。
YOLOv8具有体系结构和开发人员体验方面的改进。与YOLOv8的前身YOLOv5相比,YOLOv8具有:
>> 新的无锚检测系统。
>>模型中使用的卷积块的变化。
>>在训练期间应用的马赛克增强,在最后10个时期之前关闭。
此外,YOLOv8还带来了改进模型开发人员体验的变化。首先,该模型现在以可安装在Python代码中的库的形式打包。快速运行 "pip install ultralytics" 将为您提供。
pip install yolov8
此命令将安装YOLOv8库的最新版本。然后,您可以使用"yolo"命令行程序或通过以下Python代码将模型导入到您的脚本中。
您可以在Python代码中使用YOLOv8模型,也可以通过模型CLI使用。
要使用YOLOv8 CLI训练模型,请使用以下命令:
yolo train --source image.jpg
将源添加到您想要进行推理的图像上。这将使用默认的YOLOv8s模型权重进行预测。
要使用Python CLI,请首先将"ultralytics"包导入到您的代码中。然后,您可以使用该包加载、训练和使用模型。
| 加载自定义模型 | 加载自定义模型 要将自定义模型加载到项目中,请使用以下代码: import ultralytics # 加载模型 model = ultralytics.YOLOv8('yolov8n', pretrained=True) # 使用COCO数据集进行训练 model.train(dataset='COCO', epochs=100) # 此代码加载默认的YOLOv8n模型权重,并使用COCO数据集进行100个时期的训练。您可能希望在Google Colab中运行此代码,以便将训练过的模型保留在内存中进行实验。 您可以将 "yolov8n" 文本替换为您想要使用的模型名称。您可以在Ultralytics YOLOv8 GitHub存储库中了解有关不同模型大小的更多信息。 |
| 创建新模型 | 创建新模型(高级) 虽然推荐使用默认的YOLOv8n权重加载模型,但您也可以使用Python包从头开始训练新模型。为此,请提供包含有关要在其上训练模型的数据集信息的YOLOv5 PyTorch TXT文件: yolo create_model --data dataset.yaml --cfg yolov8n.yaml |
使用PyTorch>=1.8在Python>=3.8环境中使用pip安装包含所有要求的Ultralytics软件包。
pip install ultralytics
可以直接在命令行界面(CLI)中使用YOLOv8,使用yolo命令:
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'
yolo可用于各种任务和模式,并接受额外的参数,例如imgsz=640。有关示例,请参阅YOLOv8 CLI文档。
YOLOv8也可以直接在Python环境中使用,并接受与上述CLI示例相同的参数:
- from ultralytics import YOLO
-
- # 加载模型
- model = YOLO("yolov8n.yaml") # 从头开始构建新模型
- model = YOLO("yolov8n.pt") # 加载预训练模型(推荐用于训练)
-
-
- # 使用模型
- model.train(data="coco128.yaml", epochs=3) # 训练模型
- metrics = model.val() # 在验证集上评估模型性能
- results = model("https://ultralytics.com/images/bus.jpg") # 对图像进行预测
- path = model.export(format="onnx") # 将模型导出为ONNX格式
有关更多示例,请参阅YOLOv8 Python文档。

在这里提供了在COCO数据集上预训练的YOLOv8 Detect、Segment和Pose模型,以及在ImageNet数据集上预训练的YOLOv8 Classify模型。对于所有Detect、Segment和Pose模型,都可以使用Track模式。
Ultralytics YOLO支持的任务,所有模型将在第一次使用时自动从最新的Ultralytics发布中下载。
See Detection Docs for usage examples with these models trained on COCO, which include 80 pre-trained classes.请查阅检测文档,以获取在COCO上训练的这些模型的使用示例,其中包括80个预训练类别。
| Model | size (pixels) | mAPval 50-95 | Speed CPU ONNX (ms) | Speed A100 TensorRT (ms) | params (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 |
yolo val detect data=coco.yaml device=0yolo val detect data=coco.yaml batch=1 device=0|cpuSee Detection Docs for usage examples with these models trained on Open Image V7, which include 600 pre-trained classes.请查阅检测文档,以获取在Open Image V7上训练的这些模型的使用示例,其中包括600个预训练类别。
| Model | size (pixels) | mAPval 50-95 | Speed CPU ONNX (ms) | Speed A100 TensorRT (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 18.4 | 142.4 | 1.21 | 3.5 | 10.5 |
| YOLOv8s | 640 | 27.7 | 183.1 | 1.40 | 11.4 | 29.7 |
| YOLOv8m | 640 | 33.6 | 408.5 | 2.26 | 26.2 | 80.6 |
| YOLOv8l | 640 | 34.9 | 596.9 | 2.43 | 44.1 | 167.4 |
| YOLOv8x | 640 | 36.3 | 860.6 | 3.56 | 68.7 | 260.6 |
yolo val detect data=open-images-v7.yaml device=0yolo val detect data=open-images-v7.yaml batch=1 device=0|cpuSee Segmentation Docs for usage examples with these models trained on COCO-Seg, which include 80 pre-trained classes.请查阅分割文档,以获取在COCO-Seg上训练的这些模型的使用示例,其中包括80个预训练类别。
| Model | size (pixels) | mAPbox 50-95 | mAPmask 50-95 | Speed CPU ONNX (ms) | Speed A100 TensorRT (ms) | params (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 |
yolo val segment data=coco-seg.yaml device=0yolo val segment data=coco-seg.yaml batch=1 device=0|cpuSee Pose Docs for usage examples with these models trained on COCO-Pose, which include 1 pre-trained class, person.请查阅姿态文档,以获取在COCO-Pose上训练的这些模型的使用示例,其中包括1个预训练类别,即一个人。
| Model | size (pixels) | mAPpose 50-95 | mAPpose 50 | Speed CPU ONNX (ms) | Speed A100 TensorRT (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLOv8n-pose | 640 | 50.4 | 80.1 | 131.8 | 1.18 | 3.3 | 9.2 |
| YOLOv8s-pose | 640 | 60.0 | 86.2 | 233.2 | 1.42 | 11.6 | 30.2 |
| YOLOv8m-pose | 640 | 65.0 | 88.8 | 456.3 | 2.00 | 26.4 | 81.0 |
| YOLOv8l-pose | 640 | 67.6 | 90.0 | 784.5 | 2.59 | 44.4 | 168.6 |
| YOLOv8x-pose | 640 | 69.2 | 90.2 | 1607.1 | 3.73 | 69.4 | 263.2 |
| YOLOv8x-pose-p6 | 1280 | 71.6 | 91.2 | 4088.7 | 10.04 | 99.1 | 1066.4 |
yolo val pose data=coco-pose.yaml device=0yolo val pose data=coco-pose.yaml batch=1 device=0|cpuSee Classification Docs for usage examples with these models trained on ImageNet, which include 1000 pretrained classes.请查阅分类文档,以获取在ImageNet上训练的这些模型的使用示例,其中包括1000个预训练类别。
| Model | size (pixels) | acc top1 | acc top5 | Speed CPU ONNX (ms) | Speed A100 TensorRT (ms) | params (M) | FLOPs (B) at 640 |
|---|---|---|---|---|---|---|---|
| YOLOv8n-cls | 224 | 69.0 | 88.3 | 12.9 | 0.31 | 2.7 | 4.3 |
| YOLOv8s-cls | 224 | 73.8 | 91.7 | 23.4 | 0.35 | 6.4 | 13.5 |
| YOLOv8m-cls | 224 | 76.8 | 93.5 | 85.4 | 0.62 | 17.0 | 42.7 |
| YOLOv8l-cls | 224 | 76.8 | 93.5 | 163.0 | 0.87 | 37.5 | 99.7 |
| YOLOv8x-cls | 224 | 79.0 | 94.6 | 232.0 | 1.01 | 57.4 | 154.8 |
yolo val classify data=path/to/ImageNet device=0yolo val classify data=path/to/ImageNet batch=1 device=0|cpu更新中……
使用航空图像技术计算被摄飞机的数量。
地址:How to Use the Aerial Imagery Object Detection API
检测仓库环境中的铲车、货盘和小型载具等物品。
地址:loco-small-1 Object Detection Dataset and Pre-Trained Model by RandD
在图像中识别车牌。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。