一、安装虚拟环境
YOLO训练使用的是Python环境,这里下载Anaconda这个软件,使用虚拟环境。
官网下载,
清华源下载
- 安装Anaconda并启动后,新建一个虚拟环境,名字为yolotest,python选择3.8.19
- 选择yolotest右边的绿色三角号按钮,会弹出选项,选择Open Terminal选项,进入了终端
- 终端前面带有yolotest说明成功了
二、安装软件
- 在终端依次输入输入以下命令
- 验证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程序
- 点击Open Dir按钮,选择到你的images/train文件夹即可,例如E:/yolotest/images/train
- 点击Change Save Dir按钮,选择到你的labels/train文件夹即可,例如E:/yolotest/labels/train
- 点击Save下面的格式按钮,调整到YOLO格式的模式即可,请看下图
- 下面开始标注数据,例子是点赞和评论按钮
- 在图片上右键菜单,选择Create RectBox选项,或者点击左侧的Create RectBox
- 在点赞图片区域拉出选框,会弹出框,输入分类名称,这里填写的是aixin,点击ok即可保存 ,这分类名称注意后面函数调用要用到
- 在评论图片区域拉出选框,会弹出框,输入分类名称,这里填写的是pinglun,点击ok即可保存
- 第一个图片标注完成后,点击左侧的Save按钮保存,然后点击Next Image切换标注下一张图片,操作和第一张图片类似
- 图标标注保存后,会在labels/train文件夹存储了标注的数据,classes.txt内容就是分类名称,其他的是和图片相同的名称的txt标注文件
- 将labels/train文件夹数据复制到labels/val文件夹,等会验证模型的时候使用
五、训练模型
- 在yolotrain目录下新建一个训练的配置文件,例如文件名称叫aixin.yaml,使用记事本打开,填写内容如下
- 参数解释:
- path: 代表训练的根目录,这里的 yolotrain 在E盘,就写 E:/yolotrain,其他盘的路径自己修改
- train: 代表要训练的图片文件夹,相对于path路径
- val: 代表要验证的图片文件夹,相对于path路径
- test: 代表要测试的图片文件夹,相对于path路径
- nc: 代表分类名称数量,这是2个,因为使用labelimg标注的是2个类别,如果是多个数据就跟和实际类别数量一样的即可
- names: 是一个json数组,代表的是标注的分类名称,labelimg使用的是aixin和pinglun两个分类名称,这里就这样写即可
- 名称的顺序不要写错,会影响训练结果
- 开始训练:
- 在cmd窗口,输入 e:/ 回车,在输入 cd yolotrain,进入这个文件夹 yolotrain,其他路径自行进入
- 训练命令,下面两个任选一个,截图参数看ultralytics官网
- 这个时候系统会下载yolov8s.pt的基础训练文件,如果下载失败,直接本章节的开头,直接下载demo文件,然后解压复制yolov8s.pt到 e:/yolotrain/ 官网下载地址 github下载地址
- 环境配置成功,一切无误,开始训练中
- 训练完毕,注意这里的 Results saved后面的路径是动态的,截图中是在 runs/detect/train文件夹下,就是E:/yolotrain文件夹下
- 在训练完成的目录中可以找到 best.pt 的训练模型以及训练中被标记和选中目标的图片结果集
六、验证模型
- cmd控制台输入命令,model 参数代表是 需要验证的模型, data 代表检测的配置
- 验证结果,这里的 Results saved后面的路径是动态的,请到对应的文件下查看图片标注结果
七、导出模型
训练出来的best.pt还不能用于手机端,需要导出ncnn格式(下载best.tar.gz文件,解压后包含best-sim.param和best-sim.bin两个文件,模型的名字为best-sim)才能用于手机端。