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的快速使用