从零开始构建yolov8-seg模型

一、前言

本文为初学者提供思路,同时为自己后续能够回头翻阅,本文方法通用于其他yolo模型。

二、软件准备

这里用到是是Pycharm和Miniforge

PyCharm 是 Python 开发最常用的集成开发环境(IDE)。

Miniforge 是一个轻量级的 Python 环境和包管理器,可以看作是 Anaconda 的开源免费替代品。

自行查阅资料下载最新版本的软件。

下载后的Miniforge可能打不开,需要添加环境变量path

添加环境变量
D:\miniforge
D:\miniforge\Scripts
D:\miniforge\Library

具体的位置再进行对应的更改。

三、Miniforge 包管理

在这里需要在Miniforge中创建2个环境,当然放同一个也可以,但为了方便管理和之后的使用还是分为2个包。一个是labelme,这是为了标注数据的。一个是存放yolov8-seg运行所依赖的包

这里给到指令为

创建labelme环境 conda create -n labelme python=3.6 激活环境 conda activate labelme 安装labelme所需要的依赖环境 conda install pyqt conda install pillow 安装labelme pip install labelme==3.16.2

这样后创建了一个labelme的环境,之后打开labelme都需要在这个环境里,应该所需要的包都在这个环境。

之后就能打开标注软件,怎么进行数据的标注可以自行查询。

第二步yolo环境的搭建

在labelme环境中转换到网上下载的yolo实例代码带setup.py的目录下。

创建:conda create -n yolov8 python=3.8 查看:conda env list conda activate yolov8 切换阿里云 pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ 安装依赖包 pip install -e . 安装 CMake conda install cmake -y 安装 ONNX 相关包 pip install onnx onnxruntime onnxsim

至此这个yolov8环境拥有了模型训练所需的所有依赖包。

四、模型训练

用Pycharm打开下载的yolo实例代码,同时将pycharm的环境转换为yolov8的环境

自此你就可以在pycharm中通过自己标注的数据集进行模型训练了。

这里的yolov8-seg.yaml为模型运行工程中进行的各类操作,后续可以对其进行修改,使其具备独特性。yolov8n-seg.pt是初始模型作用是使训练在一定的认知基础上进行训练,提高效率。coco128-seg.yaml就是我们的训练集了,大致内容可以是这样。

里面包括的训练集、验证集、测试集的存放位置以及类型。

运行后代码会在yolov8-seg\ultralytics\runs\segment目录下生成它的.pt文件这是pytroch的文件需要将其转换为onnx文件。可直接通过代码实现。

from ultralytics import YOLO # 加载分割模型 model = YOLO('D:/python/yolov8-seg/.venv/yolov8-seg/ultralytics/runs/segment/train8/weights/best.pt') # 分割模型 # 转换为ONNX model.export( format='onnx', imgsz=320, opset=18, simplify=True, dynamic=False # 固定输入尺寸 )

自此模型已经训练完成。