数据标注
前期准备
先打开Anaconda Navigator,点击Environment,再点击new(new是我下载anaconda的文件夹名称),然后点击创建
点击绿色按钮,并点击Open Terminal
输入labelimg便可打开它,labelimg是图像标注工具,在上篇文章中有讲到如何下载
标注工具的使用
找个空目录新建一个文件夹,我这里名称叫做yolotest,也可以设置其他名称
在 yolotest 目录下新建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两个文件夹
数据集获取:https://storage.googleapis.com/openimages/web/visualizer/index.html?type=detection&set=train&c=%2Fm%2F05676x
来到labelimg界面,点击 Open Dir 按钮,选择到你的 images/train 文件夹即可,例如 D:\YOLOv8\yolotest\images\train。点击 Change Save Dir 按钮,选择到你的 labels/train 文件夹即可,例如 D:\YOLOv8\yolotest\labels\train。最后点击Save 下面的格式按钮,调整到 YOLO 格式的模式即可。
接下来开始标注数据
我选的例子是苹果,首先在图片上右键菜单,选择 Create RectBox 选项,或者点击左侧的 Create RectBox
在苹果图片区域拉出选框,会弹出框,输入分类名称,这里填写的是apple,点击ok即可保存 ,这分类名称注意后面函数调用要用到。
此时在使用时可能会出现如下错误
解决方法
找到canvas.py,例如:D:\anaconda\envs\yolotest\Lib\site-packages\libs\canvas.py,打开它将526、530、531行的float改为int即可。
修改前后
修改完成后就可以正常工作啦!!!
我们继续接着上步,第一个图片标注完成后,点击左侧的 Save 按钮保存,然后点击 Next Image 切换标注下一张图片,操作和第一张图片类似
图标标注保存后,会在 labels/train 文件夹存储了标注的数据,classes.txt内容就是分类名称,其他的是和图片相同的名称的txt标注文件
最后,将 labels/train 文件夹数据复制到 labels/val 文件夹,等会验证模型的时候使用
至此,数据标注就完成啦!
模型训练
在 yolotest 文件下新建一个训练的配置文件,例如文件名称叫 apple.yaml,使用记事本打开,填写内容如下
path: D:/YOLOv8/yolotest
train: images/train
val: images/val
test: images/test
nc: 1
names: ["apple"]# 有多个类别的话,按照以下方法写
# names: ["111","222"]
- 参数解释
path: 代表训练的根目录,这里的 yolotest在D盘,就写 D:/YOLOv8/yolotest,其他盘的路径自己修改
train: 代表要训练的图片文件夹,相对于path路径
val: 代表要验证的图片文件夹,相对于path路径
test: 代表要测试的图片文件夹,相对于path路径
nc: 代表分类名称数量,这是1个,因为使用labelimg标注的是1个类别,如果是多个数据就跟和实际类别数量一样的即可
names: 是一个json数组,代表的是标注的分类名称,labelimg使用的是apple这一个分类名称,这里就这样写即可
切记如果有多个分类名称的话名称的顺序不要写错,会影响训练结果
开始训练
在控制台输入命令,在cmd窗口,输入d:
回车,在输入 cd YOLOv8/yolotest
,进入这个文件夹 yolotest
,其他路径自行进入
输入以下训练命令,下面两个任选一个,截图参数看ultralytics官网
yolo detect train data=d:/YOLOv8/yolotest/apple.yaml model=d:/YOLOv8/yolotest/yolov8s.pt imgsz=640
yolo detect train data=d:/YOLOv8/yolotest/apple.yaml model=d:/YOLOv8/yolotest/yolov8s.pt epochs=100 imgsz=640
这个时候系统会下载yolov8s.pt的基础训练文件
环境配置成功,一切无误,开始训练
训练完毕,注意这里的 Results saved后面的路径是动态的,截图中是在 runs/detect/train文件夹下,就是D:/YOLOv8/yolotest文件夹下
最后,在训练完成的目录中可以找到 best.pt
的训练模型以及训练中被标记和选中目标的图片结果集