超详细YOLOv8目标检测全程概述:环境、训练、验证与预测详解 您所在的位置:网站首页 目标识别流程有哪些 超详细YOLOv8目标检测全程概述:环境、训练、验证与预测详解

超详细YOLOv8目标检测全程概述:环境、训练、验证与预测详解

2024-07-10 23:58| 来源: 网络整理| 查看: 265

目录

yolov8导航

YOLOv8(附带各种任务详细说明链接)

搭建环境说明

不同版本模型性能对比

不同版本对比

模型参数解释

不同版本说明

训练

训练示意代码

训练用数据集与 .yaml 配置方法

.yaml配置

数据说明

数据集路径

训练参数说明

训练过程示意

训练结果文件说明

weights文件夹

best.pt:损失值最小的模型文件

last.pt:训练到最后的模型文件

args.yaml

confusion_matrix.png - 混淆矩阵

confusion_matrix_normalized.png - 标准化混淆矩阵:

F1_curve.png - F1-置信度曲线

labels.jpg - 标签分布图和边界框分布图

labels_correlogram.jpg - 标签相关图

P_curve.png - 精确度-置信度曲线

PR_curve.png - 精确度-召回曲线

R_curve.png - 召回-置信度曲线

results.png 和 results.csv - 训练结果图表和数据

验证

验证示意代码

验证结果

验证参数

预测

预测示意代码

 box输出结果示意

xywh输出示意

 cls输出示意

 输出参数含义解释

预测参数说明

总结

yolov8导航

        如果大家想要了解关于yolov8的其他任务和相关内容可以点击这个链接,我这边整理了许多其他任务的说明博文,后续也会持续更新,包括yolov8模型优化、sam等等的相关内容。

YOLOv8(附带各种任务详细说明链接) 搭建环境说明

        如果不知道如何搭建的小伙伴可以参考这个博文:

        超级详细的!多种方式YOLOV8安装及测试

        操作系统:win10 x64

        编程语言:python3.9

        开发环境:Anaconda

        示例项目下载地址:

        计算机视觉-YOLOv8目标检测-COCO128数据集应用分析

不同版本模型性能对比 不同版本对比 模型尺寸 (像素)准确率 Top1准确率 Top5速度 CPU ONNX (ms)速度 A100 TensorRT (ms)参数 (M)FLOPs (B) at 640YOLOv8n-cls22466.687.012.90.312.74.3YOLOv8s-cls22472.391.123.40.356.413.5YOLOv8m-cls22476.493.285.40.6217.042.7YOLOv8l-cls22478.094.1163.00.8737.599.7YOLOv8x-cls22478.494.3232.01.0157.4154.8 模型参数解释

尺寸(size): 模型处理的图像尺寸,这里所有模型的输入分辨率均为224x224像素。

准确率(accuracy):

top1: 模型在ImageNet验证集上预测最可能类别的正确率。top5: 模型在ImageNet验证集上预测的前五个最可能类别中包含正确类别的概率。

速度: 衡量模型处理单张图像所需时间的指标,单位是毫秒(ms)。

CPU ONNX: 在CPU上使用ONNX格式时的处理速度。A100 TensorRT: 在NVIDIA A100 GPU上使用TensorRT加速时的处理速度。

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

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

不同版本说明

YOLOv8n-cls: 这是系列中最轻量的模型,拥有最快的处理速度但准确率相对较低。适合资源有限或对速度要求较高的场景。

YOLOv8s-cls: 相比YOLOv8n,它在保持较高速度的同时,准确率有所提升。适合需要在速度和准确度之间取得平衡的应用。

YOLOv8m-cls: 在准确率上有显著提升,适合对准确度有更高要求,但仍然需要考虑处理速度的场景。

YOLOv8l-cls: 更高的准确率使其适用于对准确度要求较高的应用,但处理速度较慢。

YOLOv8x-cls: 在这个系列中,它提供了最高的准确率,但速度最慢,需要较强的硬件支持。适合在准确度至关重要的高端应用。

训练 训练示意代码 from ultralytics import YOLO # 加载模型 model = YOLO('yolov8n.yaml').load('yolov8n.pt') # 从YAML构建并转移权重 if __name__ == '__main__': # 训练模型 results = model.train(data='coco128.yaml', epochs=10, imgsz=512) metrics = model.val()

        这个代码和图像分类任务中数据指定方式略有不同,图像分类中直接指向数据的文件夹即可,在目标检测中需要你指向配置好的 .yaml 文件。

训练用数据集与 .yaml 配置方法 .yaml配置 # 这里的path需要指向你项目中数据集的目录 path: C:/Users/admin/Desktop/CSDN/YOLOV8_DEF/ultralytics-detect/datasets/coco128/ # 这里分别指向你训练、验证、测试的文件地址,只需要指向图片的文件夹即可。但是要注意图片和labels名称要对应 train: images/train2017 # train images (relative to 'path') 128 images val: images/test2017 # val images (relative to 'path') 128 images test: images/test2017 # test images (optional) # Classes names: 0: person 1: bicycle 2: car 3: motorcycle 4: airplane ...... 75: vase 76: scissors 77: teddy bear 78: hair drier 79: toothbrush

        上面的则是 yaml文件的配置示意方法。注意这里我直接把测试集和验证集都指向了一个文件夹,正式项目的时候建议这两个数据集都单独准备。

数据说明

        在使用YOLOv8进行目标检测时,每个图像通常都伴随一个.txt文件,该文件包含了关于图像中对象的标注信息。这些.txt文件中的每一行都代表图像中的一个对象,包含以下信息:

类别ID:这是一个整数,代表了对象所属的类别。例如,如果你的数据集有“人”、“车”和“狗”三个类别,那么可能分别用0、1和2来表示这些类别。

中心X坐标:这是一个归一化后的值,代表对象边界框中心的X坐标(水平方向)。这个值是相对于整个图像宽度的比例。

中心Y坐标:这是一个归一化后的值,代表对象边界框中心的Y坐标(垂直方向)。这个值是相对于整个图像高度的比例。

边界框宽度:这也是一个归一化后的值,代表对象边界框的宽度。这个值是相对于整个图像宽度的比例。

边界框高度:这同样是一个归一化值,代表对象边界框的高度。这个值是相对于整个图像高度的比例。

        举例来说,如果一个.txt文件中的一行是1 0.5 0.5 0.2 0.3,这意味着该对象属于类别1(例如“车”),其边界框的中心位于图像中心(X和Y坐标均为0.5),边界框的宽度是图像宽度的20%,高度是图像高度的30%。 

数据集路径

       

        这里需要注意,训练集测试集的图片和标签都要一一对应。同时,注意观察这里面的路径是和 .yaml文件中都是对应的关系。

训练参数说明 参数默认值描述设置建议modelNone模型文件路径,如 yolov8n.pt, yolov8n.yaml根据需要选择合适的预训练模型文件dataNone数据文件路径,如 coco128.yaml选择合适的数据集配置文件epochs100训练的周期数根据数据集大小和模型复杂度调整timeNone训练时间(小时),如果提供,将覆盖epochs参数根据实际训练时间需求设置patience50早停的周期数,等待无显著改进的周期数根据模型训练动态调整batch16每个批次的图像数量根据硬件资源调整imgsz640输入图像的尺寸根据硬件和模型性能要求调整saveTrue是否保存训练检查点和预测结果通常保持默认save_period-1每x周期保存检查点,如果


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有