首页 > 其他分享 >【保姆级教程】从YOLOv8目标检测coco128数据集理解模型训练、验证与预测

【保姆级教程】从YOLOv8目标检测coco128数据集理解模型训练、验证与预测

时间:2024-12-05 11:58:07浏览次数:15  
标签:教程 预测 训练 验证 coco128 模型 YOLOv8 图像 数据

目录

一、不同YOLOv8版本模型的性能

1、检测版本:

(1)模型性能对比

(2)性能指标说明

(3)表格总结:

2、分类版本(cls):

(1)模型性能对比

(2)性能指标说明:

(3)表格总结:

二、常见公开数据集

1、常见公开深度学习数据集

2、COCO128数据集

三、环境配置

1、新建一个pytorch测试环境

(1)创建虚拟环境

(2)官网下载安装pytorch

(3)安装常用库:

2、pycharm配置pytorch

(1)选择python解释器

(2)新建一个python环境

四、YOLOv8 (ultralytics)的安装

1、下载YOLOv8 (ultralytics)

2、YOLOv8内文件夹/文件含义

(1)文件夹含义:

(2)文件含义:

3、使用pycharm打开

五、准备数据集和yaml文件

1、数据集

(1)公开数据集

(2)自己准备数据集

2、yaml配置文件

(1)yolov8含部分yaml文件

(2)自己新建yaml配置文件

六、训练和验证

1、训练和验证---示意代码

(1)公开数据集直接运行

(2)代码的具体含义

2、训练和验证---过程

(1)下载权重和公开数据集

(2)训练过程-参数说明

(3)验证过程-参数说明

 3、训练和验证---结果

(1)训练结果

【1】训练结果展示

【2】训练文件/文件夹说明

【3】示例分析

 (2)验证结果

【1】验证结果展示

【2】验证文件/文件夹说明

【3】示例分析

七、预测

1、预测准备

(1)下载预测图片

(2)新建一个py环境

2、预测示例代码 

(1)图片预测代码

(2)代码的具体含义  

3、预测结果

(1)预测结果展示

(2)预测参数说明

(3)预测输出参数说明

(4)扩展:视频预测示例代码


一、不同YOLOv8版本模型的性能

1、检测版本

        主要用于目标检测任务。这些模型不仅需要预测目标的类别,还需要预测目标的位置(边界框)。因此,检测版本的模型通常会有多个输出层,每个层负责不同尺度的目标检测。

(1)模型性能对比

检测模型尺寸 (像素)mAPval 50-95速度 CPU ONNX (ms)速度 A100 TensorRT (毫秒)params (M)FLOPs (B)
YOLOv8n64037.380.40.993.28.7
YOLOv8s64044.9128.41.2011.228.6
YOLOv8m64050.2234.71.8325.978.9
YOLOv8l64052.9375.22.3943.7165.2
YOLOv8x64053.9479.13.5368.2257.8

(2)性能指标说明

  • mAPval 50-95:平均精度均值(mean Average Precision),在交并比(IoU)阈值从50%到95%范围内的变化,是衡量目标检测模型性能的关键指标,数值越高表示模型性能越好。

  • 速度 CPU ONNX (ms):模型在CPU上运行时,使用ONNX(Open Neural Network Exchange)格式的推理速度,单位是毫秒(ms)。

  • 速度 A100 TensorRT (毫秒):模型在NVIDIA A100 GPU上运行时,使用TensorRT优化后的推理速度,单位是毫秒(ms)。TensorRT是一个深度学习推理引擎,可以优化模型以加快在NVIDIA GPU上的运行速度。

  • params (M):模型的参数总数,以百万(M)为单位。参数数量越多,通常表示模型结构越复杂,计算需求越高。

  • FLOPs (B):模型运行时所需的浮点运算次数(Floating Point Operations Per Second),通常用来衡量模型的计算复杂度。

(3)表格总结:

模型特点适用场景
YOLOv8n参数量和FLOPs少,轻量级,推理速度快,检测准确率相对低资源有限设备(嵌入式、移动端),对实时性要求极高且对准确率要求不苛刻的场景(如简单监控检测物体是否移动)
YOLOv8s模型规模增大,能学习更复杂特征,准确率提升,速度较YOLOv8n有所下降但仍较高需要速度和准确度较好平衡的应用(如普通安防监控检测人和车辆)
YOLOv8m模型更大,准确率显著提升(小目标和复杂场景检测能力增强),速度进一步下降,计算资源需求增加对准确度有更高要求且要考虑速度的场景(如工业检测产品微小缺陷)
YOLOv8l参数较多,准确率较好,能处理复杂检测任务(如重叠目标检测分类),速度慢,需较强计算能力对准确度要求高的应用(如高级安防监控识别目标行为身份)
YOLOv8x参数量和FLOPs最多,检测准确率最高(复杂场景、小目标检测出色),速度最慢,硬件要求高准确度至关重要的高端应用(如高端医学影像分析、高精度自动驾驶)

2、分类版本(cls):

        主要用于图像分类任务。这些模型通常有一个全局平均池化层和一个全连接层作为输出层,用于预测输入图像所属的类别。

(1)模型性能对比

分类模型尺寸 (像素)准确率Top1准确率Top5速度CPU ONNX (ms)速度A100 TensorRT (ms)参数 (M)FLOPs (B) at 640
YOLOv8n - cls22466.687.012.90.312.74.3
YOLOv8s - cls22472.391.123.40.356.413.5
YOLOv8m - cls22476.493.285.40.6217.042.7
YOLOv8l - cls22478.094.1163.00.8737.599.7
YOLOv8x - cls22478.494.3232.01.0157.4154.8

(2)性能指标说明:

  • 版本: 各个版本的YOLOv8模型,从最小的YOLOv8n-cls到最大的YOLOv8x-cls

  • top-1准确率 (%): 模型在ImageNet验证集上的top-1准确率,表示模型预测得分最高的类别恰好是正确类别的比例。

  • top-5准确率 (%): 模型在ImageNet验证集上的top-5准确率,表示模型预测得分最高的前五个类别中包含正确类别的比例。

  • CPU ONNX 处理速度 (ms): 在CPU上使用ONNX格式时的处理速度,单位为毫秒每张图片。

  • A100 TensorRT 处理速度 (ms): 在NVIDIA A100 GPU上使用TensorRT加速时的处理速度,单位为毫秒每张图片。

  • 参数量 (M): 模型中的参数总数,以百万为单位。

  • FLOPs (B) at 640: 执行一次前向传播所需的浮点运算次数,以十亿次为单位,基于640像素的输入计算。

(3)表格总结:

模型特点适用场景
YOLOv8n - cls最轻量,处理速度最快,准确率相对较低资源有限或对速度要求较高的场景
YOLOv8s - cls在保持较高速度的同时准确率有所提升需要在速度和准确度之间取得平衡的应用
YOLOv8m - cls准确率显著提升,仍需考虑处理速度对准确度有更高要求,但也要考虑速度的场景
YOLOv8l - cls更高的准确率,处理速度较慢对准确度要求较高的应用
YOLOv8x - cls提供最高的准确率,速度最慢,需要较强硬件支持准确度至关重要的高端应用

二、常见公开数据集

1、常见公开深度学习数据集

        本次介绍21个常见的公开深度学习数据集,涵盖了目标检测、图像分割、图像分类、人脸、自动驾驶、姿态估计、目标跟踪等方向。表格中包括了数据集的类型、功能简述。 

序号数据集名称类型功能
1ImageNet图像分类包含1400多万张标注图像,涵盖1000个类别,用于图像分类任务
2COCO目标检测、图像分割包含33万多张图像,覆盖80类物体,用于目标检测、分割和图像标注任务
3MNIST图像分类包含70000张手写数字图像,用于手写数字识别任务
4

CIFAR-10 /

CIFAR-100

图像分类包含60000张32x32像素的彩色图像,分为10类或100类
5Pascal VOC目标检测、图像分割提供20类对象的标注,用于目标检测和图像分割任务
6

LFW (Labeled Faces

in the Wild)

人脸识别包含13000多张人脸图像,用于人脸识别任务
7Cityscapes自动驾驶、图像分割包含50个城市街道场景的高质量图像,用于自动驾驶和图像分割任务
8KITTI自动驾驶包含德国街道和高速公路场景的多样化图像和激光雷达数据,用于自动驾驶任务
9Open Images目标检测、图像分割包含900多万张图像,用于目标检测和分割任务
10Medical Image Datasets医疗影像包括多种医疗影像数据,用于疾病诊断和医学影像分析任务
11

VQA (Visual

Question Answering)

图像理解包含26万余张图片和相应的问题,用于视觉问答任务
12MS COCO目标检测、图像分割包含33万多张图像,覆盖80类物体,用于目标检测和分割任务
13PASCAL 3D+姿态估计包含12类物体的3D姿态注解,用于物体姿态估计任务
14MPII Human Pose姿势估计包含4万多张人体图像,标注了关节位置,用于人体姿势估计任务
15YouTube-BB目标跟踪包含5000多个视频片段,标注了50多万个边界框,用于目标跟踪任务
16ImageNet VID目标跟踪扩展了ImageNet数据集,包含多个视频序列,用于视频目标检测和跟踪任务
17Caltech-101图像分类包含101个类别的图像,用于图像分类任务
18Caltech-256图像分类包含256个类别的图像,用于图像分类任务
19SUN RGB-D自动驾驶、图像分割包含10335张RGB-D图像,用于室内场景理解任务
20SIFT Flow光流估计包含2800张图像,用于密集对应估计任务
21ETH-80物体识别包含8类物体的图像,用于物体识别任务

2、COCO128数据集

        COCO128数据集是COCO数据集的一个子集,包含128张高质量的图像,广泛应用于目标检测、图像分割和实例识别等任务,COCO128数据集虽然规模不大,却具备COCO数据集的基本结构和注释格式。

三、环境配置

前提:Anaconda和pycharm已安装,如果不知道怎么安装请看我下面过往文章链接的安装步骤。(Anaconda和pycharm已安装,可直接略过)

【一站式详细教程】PyCharm安装与Anaconda下PyTorch环境配置-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/qq_62844901/article/details/143945328?spm=1001.2014.3001.5502

1、新建一个pytorch测试环境

(1)创建虚拟环境

  • (base环境下)创建名字为yolov8new,python版本为3.8的虚拟环境

conda create -n yolov8new python=3.8

  • 激活pytorch的环境 

conda activate yolov8new

(2)官网下载安装pytorch

Previous PyTorch Versions | PyTorchicon-default.png?t=O83Ahttps://pytorch.org/get-started/previous-versions/

  • 输入nvidia-smi查看自己电脑的CUDA版本(win+r,输入cmd点击“确定”或回车)

  • 如下图我的CUDA是11.7版本的,如果没有显示就选择CPU版本的。

  • 在pytorch网页安装对应的PyTorch版本,可选择conda方式或者pip方式下载:

  • 如下是CUDA11.7,conda方式的pytorch下载安装命令: 

conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia

  • 验证是否pytorch安装成功,验证命令如下,显示版本号即表示安装成功:

python import torch
 
# 查看torch版本
print(torch.__version__)

(3)安装常用库:

  • 输入安装所需的各种库命令:

# 安装matplotlib 
pip install matplotlib==3.7.3 -i https://pypi.doubanio.com/simple/
 
# 安装sklearn 
pip install scikit-learn==0.24.2 -i https://pypi.doubanio.com/simple/
 
# 安装pytz 
pip install pytz -i https://mirrors.aliyun.com/pypi/simple/
 
# 安装pandas 
pip install pandas==1.1.5 -i https://pypi.doubanio.com/simple/
 
# 安装opencv 
pip install opencv_python==4.4.0.40 -i https://pypi.doubanio.com/simple/
 
# 安装imageio 
pip install imageio -i https://pypi.org/simple/

#安装ultralytics (也是ultralytics的pip下载方式)
pip install ultralytics -i https://pypi.org/simple/

  • 进入python验证是否下载成功,验证命令如下:

import numpy as np 
import pandas as pd 
import sklearn 
from sklearn.linear_model import LogisticRegression 
from sklearn import metrics 
import cv2 
import matplotlib 
import ultralytics
 
#最后输入exit()退出

2、pycharm配置pytorch

(1)选择python解释器

  • 打开【设置】》【项目】》【Python解释器】》【添加解释器】》【添加本地解释器】。

  • 或者点击右下角的解释器进行更改:

  • 添加刚刚创建的python解释器。

(2)新建一个python环境

  • 右键项目》【新建】》【Python文件】》输入名称。

四、YOLOv8 (ultralytics)的安装

1、下载YOLOv8 (ultralytics)

GitHub网址:

教程,预测,训练,验证,coco128,模型,YOLOv8,图像,数据
From: https://blog.csdn.net/qq_62844901/article/details/144106828

相关文章

  • Python入门:从零基础到精通的详细教程(0广告,纯干货)
    前言:在信息技术飞速发展的今天,掌握编程语言的运维工程师与那些尚未涉足编程领域的运维工程师,仿佛生活在两个截然不同的世界。本博主深感这一鸿沟之深远,因此决定倾力打造一系列详尽至极的Python从零到精通教程,旨在帮助更多运维人员跨越这一技术壁垒。本系列教程将分为三大阶......
  • Python 编程入门教程
    Python是一种广泛使用的高级编程语言,以其代码的可读性、简洁性和强大的库支持而闻名。Python的设计哲学强调代码的可读性和简单性,这使得它成为初学者和专业人士学习编程的理想选择。Python应用广泛,从网站开发到数据科学、人工智能、自动化脚本等,几乎涵盖了所有编程领域。Py......
  • Python全栈之旅:从零基础到精通的详细教程系列开启进阶之路
    前言:在信息技术飞速发展的今天,掌握编程语言的运维工程师与那些尚未涉足编程领域的运维工程师,仿佛生活在两个截然不同的世界。本博主深感这一鸿沟之深远,因此决定倾力打造一系列详尽至极的Python从零到精通教程,旨在帮助更多运维人员跨越这一技术壁垒。本系列教程将分为三大阶段,每个......
  • 界面控件DevExpress WinForms中文教程:Data Grid - Best Fit选项
    DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!本文主要介绍如何使用DevExpressWinFormsDataGr......
  • 数学建模论文写作技巧!保姆级教程!(清风写作课笔记)
    文章目录目录论文标题摘要(1000字左右)摘要开头段(必要)摘要中间段(最重要)摘要结尾段摘要中常见的废话关键词一、问题重述二、问题分析三、模型假设四、符号说明模型的建立与求解(正文里最重要)六、模型的分析与检验七、模型的评价、改进与推广参考文献注意事项附录目录......
  • 【Quartus II 18.0软件下载与安装教程】
    1、安装包「QuartusII18.0(64bit).zip」:  下载地址 2、安装教程(建议关闭杀毒软件和系统防护)1)       下载并解压下载的安装包,双击QuartusSetup.exe安装,弹窗安装对话框  2)       点击Next   3)       点击Iaccept,点击Next ......
  • 【DC系列打穿靶机】DC-5靶机妈生教程!
    【DC系列打穿靶机】DC-5全详解声明:该笔记为up主泷羽的课程笔记,本节链接指路。警告:本教程仅作学习用途,若有用于非法行为的,概不负责。启动!一上来就查一下ip和端口:查了一下目录,翻了一下页面没找到注入点:换了一个,还是dirsearch好使:记住这里的footer,后面有大用。找......
  • PVE教程网址导航
    PVE教程网址导航文字教程佛西博客-全面PVE教程AllinOne开荒指南-踩坑-知乎设置硬盘直通-CSDNPVE7设置显卡直通-张大妈PVE8设置显卡直通-张大妈PVE核显独显直通-知乎Pve_sourcePve-ToolesCSDNPVEsource-X86社区B站教程司波图2022通用PVE系列教程好用斋PVE系列......
  • 【C++】关于 Visual Studio 的使用技巧(保姆级教程)
    目录fliter视图输出文件位置设置查看预处理结果将目标文件转换为可读的汇编自定义程序入口调试时查看变量在内存中的具体值查看代码的反汇编fliter视图visualstudio默认是filter视图(中文为筛选器)项目下的是filter而非硬盘目录里实际的文件夹,这时新建的也是filter想要查看......
  • Pytorch基础入门教程
    Pytorch基础入门教程https://blog.csdn.net/ccaoshangfei/article/details/126074300?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522721a30eeb84ee5e45ed351cab52fd302%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=721a30eeb84ee......