工欲善其事必先利其器,学Yolov8必须首先学会环境搭建。
先附上所需的文件下载地址:(根据需要下载)
链接:https://pan.quark.cn/s/b7b930cf9a79下载地址https://pan.quark.cn/s/b7b930cf9a79
安装Anaconda Python虚拟环境管理器
1.官方下载地址(有点慢):https://repo.anaconda.com/archive/(最好下载旧版本的)
2.一路next即可,安装位置可改到D盘,建议安装在非系统盘,正常情况下勾了就不用添加环境变量了。
- 下载安装好了anaconda,启动这个软件,新建一个虚拟环境
- 点击create按钮,新建一个虚拟环境,这里名字叫做yolotest为例子,可以是其他名称,Python版本选择3.8.19,点击Create等待环境创建成功。
- 提醒(在创建虚拟环境前,可以自己改默认虚拟环境创建路径,但本教程就不改,虚拟环境默认安装在C盘,需要的自己网上搜有教程)
3.选择yolotest右边的绿色三角号按钮,会弹出选项,选择Open Terminal选项,进入了终端
终端前面带有 yolotest 虚拟环境名称的说明成功了
配置环境
- 接上面的步骤,安装需要的Python类库
- 先将安装位置换到D盘,输入以下命令
- 然后在终端依次输入输入以下命令(默认装CPU版的torch)
-
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 torch==1.12.1+cpu torchvision==0.13.1+cpu torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cpu pip install yolo pip install ultralytics pip install ncnn pip install labelimg
-
针对ultralytics网络不好的同学,我这里上传了一份:点击下载
-
下载后,将ultralytics复制到D盘上,然后继续在终端逐条输入以下指令
-
cd ultralytics pip install -e .
-
以下是yolo,ultralytics成功安装结束的图,可能版本号不同,但没关系。
-
验证labelimg图片标注工具是否正常,控制台输入labelimg,即可打开labelimg程序,然后关闭程序。
-
新建训练目录
- 找个空目录(可以去E盘里),新建文件夹,名称叫做 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: E:/yolotrain
train: images/train
val: images/val
test: images/test
nc: 2
names: ["aixin","pinglun"]
-
参数解释:
- 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官网
yolo detect train data=e:/yolotrain/aixin.yaml model=e:/yolotrain/yolov8s.pt imgsz=640
或者使用指定训练次数的指令,epochs=100表示训练100次。
yolo detect train data=e:/yolotrain/aixin.yaml model=e:/yolotrain/yolov8s.pt epochs=100 imgsz=640
这个时候系统会下载yolov8s.pt的基础训练文件,如果下载失败,直接到本章节的开头,直接下载我上传的文件,然后下载解压复制 yolov8s.pt 到 e:/yolotrain/下存放
- 也可以到网址下载 https://docs.ultralytics.com/models/yolov8/#performance-metrics
- 下载地址是 https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s.pt
环境配置成功,一切无误,开始训练中
训练完毕,注意这里的 Results saved后面的路径是动态的,截图中是在 runs/detect/train文件夹下,就是E:/yolotrain文件夹下
-
在训练完成的目录中可以找到
best.pt
的训练模型以及训练中被标记和选中目标的图片结果集,best.pt就是我们训练出来最好的模型。
验证模型
- 训练完成后,可以对图片进行验证
- cmd控制台输入命令
- model 参数代表是 需要验证的模型
- data 代表检测的配置
yolo detect val data=e:/yolotrain/aixin.yaml model=e:/yolotrain/runs/detect/train/weights/best.pt
验证结果,这里的 Results saved后面的路径是动态的,请到对应的文件下查看图片标注结果
至此模型训练已经结束啦。。。。。。。。。
差点忘了,模型格式的转换,Yolo的pt模型转onnx格式指令
yolo mode=export model=d:/ultralytics/runs/detect/train/weights/best.pt format=onnx simplify=True
注意:需修改成自己的best.pt的路径才能成功导出自己想要的onnx格式的模型。