【YOLO】YOLOv8实操:环境配置/自定义数据集准备/模型训练/预测

慈云数据 2024-03-13 技术支持 45 0

YOLOv8实操:环境配置/自定义数据集准备/模型训练/预测

  • 引言
  • 1 环境配置
  • 2 数据集准备
  • 3 模型训练
  • 4 模型预测

    引言

    源码链接:https://github.com/ultralytics/ultralytics

    yolov8和yolov5是同一作者,相比yolov5,yolov8的集成性更好了,更加面向用户了

    YOLO命令行界面(command line interface, CLI) 方便在各种任务和版本上训练、验证或推断模型。CLI不需要定制或代码,可以使用yolo命令从终端运行所有任务。

    如果想了解yolo系列的更新迭代,以及yolov8的模型结构,推荐下面的链接:

    YOLOv8详解 【网络结构+代码+实操】

    笔者直接从实操入手

    1 环境配置

    安装pytorch、torchvision和其他依赖库

    环境配置部分可以参考笔者的博客

    【YOLO】YOLOv5-6.0环境搭建(不定时更新)

    安装ultralytics

    git clone https://github.com/ultralytics/ultralytics
    cd ultralytics
    pip install -e .
    

    2 数据集准备

    针对检测的数据集准备可以参考笔者的博客,这里不再赘述了

    【YOLO】训练自己的数据集

    3 模型训练

    比起YOLOv5,YOLOv8的训练封装性更好了,有利有弊吧,参数默认值修改比较麻烦

    训练指令如下:

    yolo task=detect mode=train model=yolov8s.pt data=/media/ll/L/llr/DATASET/subwayDatasets/coco.yaml device=0 cache=True epochs=300 project=/media/ll/L/llr/mode name=yolov8
    

    除了上述笔者使用的参数,其他参数说明

    task: detect  # 可选择:detect, segment, classify
    mode: train  #可选择: train, val, predict
    # Train settings -------------------------------------------------------------------------------------------------------
    model:  # 设置模型。格式因任务类型而异。支持model_name, model.yaml,model.pt
    data:  # 设置数据,支持多数类型 data.yaml, data_folder, dataset_name
    epochs: 300  # 需要训练的epoch数
    patience: 50  # epochs to wait for no observable improvement for early stopping of training
    batch: 16  # Dataloader的batch大小
    imgsz: 640  # Dataloader中图像数据的大小
    save: True  # save train checkpoints and predict results
    save_period: -1 # Save checkpoint every x epochs (disabled if  
    

    4 模型预测

    weight_path = "best.pt"  # 自训练的模型
    imgdir = r'/media/ll/L/llr/DATASET/subwayDatasets/bjdt/images' 
    img_path = r'/media/ll/L/llr/DATASET/subwayDatasets/bjdt/images/L_0000018.jpg'
    model = YOLO(weight_path)
    results = model(img_path,show=False,save=False)  # 是否显示和保存结果数据
    

    预测一张图片,results如下图所示:

    在这里插入图片描述

    预测文件夹目录,results如图所示:

    在这里插入图片描述

    无论是一张图片还是图片目录,返回的results都是list

    要对预测结果进行处理需要索引进去,如下图所示

    在这里插入图片描述

    结果参数说明:

     boxes:各种形式的检测框信息(xyxy、xywh、归一化的)、类别索引、置信度等
     names:类别字典
     orig_img:原图数组
     orig_shape:原图尺寸
     plots:在验证时保存图像(预测时一般为None)
     speed:处理速度
    

    在这里插入图片描述

    在这里插入图片描述

    基于上述模型提供的检测结果进行后处理算法等

    上述即为yolov8的快速使用

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon