CV之DL之YOLOv8:YOLOv8的简介、安装和使用方法、案例应用之详细攻略
目录
YOLOv8的简介
1、Yolov8的概述
2、YOLOv8对比前身YOLOv5
YOLOv8的安装和使用方法
1、安装和使用
T1、采用yolov8安装和使用
第1步,安装YOLOv8
第2步,使用YOLOv8
T1、采用CLI
T2、采用Python
T2、采用ultralytics安装和使用
第1步,安装ultralytics
第2步,使用
T1、CLI的形式
T2、python代码的形式
2、下载模型
A1、检测(COCO),80个类别
A2、检测(Open Image V7),600个类别
A3、分割(COCO),80个类别
A4、姿态(COCO)
A5、分类(ImageNet),1000个类别
YOLOv8的案例应用
1、基础用法
2、进阶用法
飞机检测
仓库物品检测
车牌检测
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
1、Yolov8的概述
背景痛点 |
以往的目标检测模型都存在着一定的误差和限制,难以满足现实应用场景的要求 YOLO系列模型虽然精准度较高,但是易用性和扩展性有限 |
解决方案 |
YOLOv8是继YOLOv5后,野心勃勃的目标检测、实例分割和图像分类模型YOLOv8采用无锚框检测、新的卷积核操作、新的C2f模块设计等优化了原有模型的结构。 YOLOv8同时提供了更友好的命令行界面和Python包接口,大幅提升了开发体验。 |
核心特点 |
>> 在COCO和Roboflow100评估数据集上,精度均优于YOLOv5和其他同类模型; >> 支持目标检测、实例分割和图像分类三大任务; >> 代码开源托管于GitHub,支持广泛的开发者社区参与迭代更新; >> 提供便利的命令行和Python接口,实现模型训练、推理、部署等流程一体化; |
优势 |
>> 模型精度领先同类网络,在保持实时性的基础上实现更高的识别精度; >> 友好的开发体验极大提升了模型应用开发效率; >> 开放和活跃的社区支持全面解决问题; >> 可以直接实现目标检测模型在现实场景中的部署应用; |
总之,YOLOv8通过优化模型结构和提升开发体验,很好地结合了模型效果和易用性,成为目前目标检测领域最成熟和优秀的模型之一。
2、YOLOv8对比前身YOLOv5
YOLOv8具有体系结构和开发人员体验方面的改进。与YOLOv8的前身YOLOv5相比,YOLOv8具有:
>> 新的无锚检测系统。
>>模型中使用的卷积块的变化。
>>在训练期间应用的马赛克增强,在最后10个时期之前关闭。
此外,YOLOv8还带来了改进模型开发人员体验的变化。首先,该模型现在以可安装在Python代码中的库的形式打包。快速运行 "pip install ultralytics" 将为您提供。
YOLOv8的安装和使用方法
1、安装和使用
T1、采用yolov8安装和使用
第1步,安装YOLOv8
pip install yolov8
此命令将安装YOLOv8库的最新版本。然后,您可以使用"yolo"命令行程序或通过以下Python代码将模型导入到您的脚本中。
第2步,使用YOLOv8
您可以在Python代码中使用YOLOv8模型,也可以通过模型CLI使用。
T1、采用CLI
要使用YOLOv8 CLI训练模型,请使用以下命令:
yolo train --source image.jpg
将源添加到您想要进行推理的图像上。这将使用默认的YOLOv8s模型权重进行预测。
T2、采用Python
要使用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 |
T2、采用ultralytics安装和使用
第1步,安装ultralytics
使用PyTorch>=1.8在Python>=3.8环境中使用pip安装包含所有要求的Ultralytics软件包。
pip install ultralytics
第2步,使用
T1、CLI的形式
可以直接在命令行界面(CLI)中使用YOLOv8,使用yolo命令:
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'
yolo可用于各种任务和模式,并接受额外的参数,例如imgsz=640。有关示例,请参阅YOLOv8 CLI文档。
T2、python代码的形式
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文档。
2、下载模型
在这里提供了在COCO数据集上预训练的YOLOv8 Detect、Segment和Pose模型,以及在ImageNet数据集上预训练的YOLOv8 Classify模型。对于所有Detect、Segment和Pose模型,都可以使用Track模式。
Ultralytics YOLO支持的任务,所有模型将在第一次使用时自动从最新的Ultralytics发布中下载。
A1、检测(COCO),80个类别
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 |
-
mAPval values are for single-model single-scale on COCO val2017 dataset.
Reproduce byyolo val detect data=coco.yaml device=0
-
Speed averaged over COCO val images using an Amazon EC2 P4d instance.
Reproduce byyolo val detect data=coco.yaml batch=1 device=0|cpu
- mAPval 值是在COCO val2017数据集上单模型单尺度的结果。 通过 yolo val detect data=coco.yaml device=0 进行复现。
- 速度是在使用Amazon EC2 P4d实例上的COCO val图像上平均得出的。 通过 yolo val detect data=coco.yaml batch=1 device=0|cpu 进行复现。
A2、检测(Open Image V7),600个类别
See 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 |
-
mAPval values are for single-model single-scale on Open Image V7 dataset.
Reproduce byyolo val detect data=open-images-v7.yaml device=0
-
Speed averaged over Open Image V7 val images using an Amazon EC2 P4d instance.
Reproduce byyolo val detect data=open-images-v7.yaml batch=1 device=0|cpu
- mAPval 值是在Open Image V7数据集上单模型单尺度的结果。 通过 yolo val detect data=open-images-v7.yaml device=0 进行复现。
- 速度是在使用Amazon EC2 P4d实例上的Open Image V7 val图像上平均得出的。 通过 yolo val detect data=open-images-v7.yaml batch=1 device=0|cpu 进行复现。
A3、分割(COCO),80个类别
See 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 |
-
mAPval values are for single-model single-scale on COCO val2017 dataset.
Reproduce byyolo val segment data=coco-seg.yaml device=0
-
Speed averaged over COCO val images using an Amazon EC2 P4d instance.
Reproduce byyolo val segment data=coco-seg.yaml batch=1 device=0|cpu
- mAPval 值是在COCO val2017数据集上单模型单尺度的结果。 通过 yolo val segment data=coco-seg.yaml device=0 进行复现。
- 速度是在使用Amazon EC2 P4d实例上的COCO val图像上平均得出的。 通过 yolo val segment data=coco-seg.yaml batch=1 device=0|cpu 进行复现。
A4、姿态(COCO)
See 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 |
-
mAPval values are for single-model single-scale on COCO Keypoints val2017 dataset.
Reproduce byyolo val pose data=coco-pose.yaml device=0
-
Speed averaged over COCO val images using an Amazon EC2 P4d instance.
Reproduce byyolo val pose data=coco-pose.yaml batch=1 device=0|cpu
- mAPval 值是在COCO关键点 val2017数据集上单模型单尺度的结果。 通过 yolo val pose data=coco-pose.yaml device=0 进行复现。
- 速度是在使用Amazon EC2 P4d实例上的COCO val图像上平均得出的。 通过 yolo val pose data=coco-pose.yaml batch=1 device=0|cpu 进行复现。
A5、分类(ImageNet),1000个类别
See 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 |
-
acc values are model accuracies on the ImageNet dataset validation set.
Reproduce byyolo val classify data=path/to/ImageNet device=0
-
Speed averaged over ImageNet val images using an Amazon EC2 P4d instance.
Reproduce byyolo val classify data=path/to/ImageNet batch=1 device=0|cpu
- acc 值是模型在ImageNet数据集验证集上的准确性。 通过 yolo val classify data=path/to/ImageNet device=0 进行复现。
- 速度是在使用Amazon EC2 P4d实例上的ImageNet val图像上平均得出的。 通过 yolo val classify data=path/to/ImageNet batch=1 device=0|cpu 进行复现。
YOLOv8的案例应用
1、基础用法
更新中……
2、进阶用法
飞机检测
使用航空图像技术计算被摄飞机的数量。
地址:How to Use the Aerial Imagery Object Detection API
仓库物品检测
检测仓库环境中的铲车、货盘和小型载具等物品。
地址:loco-small-1 Object Detection Dataset and Pre-Trained Model by RandD
车牌检测
在图像中识别车牌。文章来源:https://www.toymoban.com/news/detail-536229.html
地址:How to Use the carPlate Object Detection API文章来源地址https://www.toymoban.com/news/detail-536229.html
到了这里,关于Py之py2neo:py2neo的简介、安装、使用方法之详细攻略的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!