YoloV8模型训练

一、安装虚拟环境

YOLO训练使用的是Python环境,这里下载Anaconda这个软件,使用虚拟环境。官网下载清华源下载
  • 安装Anaconda并启动后,新建一个虚拟环境,名字为yolotest,python选择3.8.19
  • 选择yolotest右边的绿色三角号按钮,会弹出选项,选择Open Terminal选项,进入了终端
  • 终端前面带有yolotest说明成功了

二、安装软件

  • 在终端依次输入输入以下命令
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
    pip config set install.trusted-host pypi.tuna.tsinghua.edu.cn
    pip install yolo==0.3.1
    pip install ultralytics==8.2.79
    pip install ncnn==1.0.20240410
    pip install labelimg
  • 验证yolo是否安装成功
  • 验证labelimg是否安装成功

三、创建训练目录

  • 新建一个名为yolotrain文件夹 ,也可以是其他名称,这里的例子是在E盘的yolotrain文件夹。
  • 在yolotrain中新建labels和images文件夹,在images文件夹新建test,train,val三个文件夹,在labesl下面新建train,val两个文件夹。
  • images文件夹下面的test,train,val三个文件夹,全部存放相同的要训练的图片,例如train下面是 1.png,2.png,将这个两个文件复制一份到val,再复制一份到test。
  • labels下面的train,val两个文件夹存放的是用labelimg标注的标签数据文件,等会 labelimg 使用会用到这个文件夹。

四、标注数据

  • 将准备好的图片放到images/train文件夹,下面并且复制一份到images/val和images/test两个文件夹
  • 接上步骤配置环境的命令控制台,输入labelimg命令,即可打开labelimg程序
    1. 点击Open Dir按钮,选择到你的images/train文件夹即可,例如E:/yolotest/images/train
    2. 点击Change Save Dir按钮,选择到你的labels/train文件夹即可,例如E:/yolotest/labels/train
    3. 点击Save下面的格式按钮,调整到YOLO格式的模式即可,请看下图
  • 下面开始标注数据,例子是点赞和评论按钮
    1. 在图片上右键菜单,选择Create RectBox选项,或者点击左侧的Create RectBox
    2. 在点赞图片区域拉出选框,会弹出框,输入分类名称,这里填写的是aixin,点击ok即可保存 ,这分类名称注意后面函数调用要用到
    3. 在评论图片区域拉出选框,会弹出框,输入分类名称,这里填写的是pinglun,点击ok即可保存
    4. 第一个图片标注完成后,点击左侧的Save按钮保存,然后点击Next Image切换标注下一张图片,操作和第一张图片类似
    5. 图标标注保存后,会在labels/train文件夹存储了标注的数据,classes.txt内容就是分类名称,其他的是和图片相同的名称的txt标注文件
    6. 将labels/train文件夹数据复制到labels/val文件夹,等会验证模型的时候使用

五、训练模型

  • 在yolotrain目录下新建一个训练的配置文件,例如文件名称叫aixin.yaml,使用记事本打开,填写内容如下
    path: E:/yolotrain
    train: images/train
    val: images/val
    test: images/test
    nc: 2
    names: ["aixin","pinglun"]
  • 参数解释:
    1. path: 代表训练的根目录,这里的 yolotrain 在E盘,就写 E:/yolotrain,其他盘的路径自己修改
    2. train: 代表要训练的图片文件夹,相对于path路径
    3. val: 代表要验证的图片文件夹,相对于path路径
    4. test: 代表要测试的图片文件夹,相对于path路径
    5. nc: 代表分类名称数量,这是2个,因为使用labelimg标注的是2个类别,如果是多个数据就跟和实际类别数量一样的即可
    6. names: 是一个json数组,代表的是标注的分类名称,labelimg使用的是aixin和pinglun两个分类名称,这里就这样写即可
    7. 名称的顺序不要写错,会影响训练结果
  • 开始训练:
    1. 在cmd窗口,输入 e:/ 回车,在输入 cd yolotrain,进入这个文件夹 yolotrain,其他路径自行进入
    2. 训练命令,下面两个任选一个,截图参数看ultralytics官网
      yolo detect train data=e:/yolotrain/aixin.yaml model=e:/yolotrain/yolov8s.pt imgsz=640
      
      yolo detect train data=e:/yolotrain/aixin.yaml model=e:/yolotrain/yolov8s.pt epochs=100 imgsz=640
    3. 这个时候系统会下载yolov8s.pt的基础训练文件,如果下载失败,直接本章节的开头,直接下载demo文件,然后解压复制yolov8s.pt到 e:/yolotrain/ 官网下载地址 github下载地址
    4. 环境配置成功,一切无误,开始训练中
    5. 训练完毕,注意这里的 Results saved后面的路径是动态的,截图中是在 runs/detect/train文件夹下,就是E:/yolotrain文件夹下
    6. 在训练完成的目录中可以找到 best.pt 的训练模型以及训练中被标记和选中目标的图片结果集

六、验证模型

  • cmd控制台输入命令,model 参数代表是 需要验证的模型, data 代表检测的配置
    yolo detect val data=e:/yolotrain/aixin.yaml  model=e:/yolotrain/runs/detect/train/weights/best.pt
  • 验证结果,这里的 Results saved后面的路径是动态的,请到对应的文件下查看图片标注结果

七、导出模型

训练出来的best.pt还不能用于手机端,需要导出ncnn格式(下载best.tar.gz文件,解压后包含best-sim.param和best-sim.bin两个文件,模型的名字为best-sim)才能用于手机端。