持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情
上一篇文章通过在获取yolov5的源码,并在pycharm中成功运行了起来,中间遇到了许多问题,最终也都一一解决,本篇博客主要是说明利用yolov5的预训练模型如何将自己的数据集进行训练,得到我们想要的结果。
首先,将制作好的口罩数据集存放到指定目录下,口罩数据集的目录如下
对于images文件夹,下面包含了三个文件夹,分别表示训练、测试和评价,如下所示
以train文件夹为例,下面是一些佩戴口罩和没有佩戴口罩的图片,我个人一共是收集了129张图片作为数据集,如下所示
对于labels,下面同样有三个文件夹
里面存放的是标签文件,全部为txt格式,如下所示
每个txt文件的内容包含了标签与标注的信息,0和1分别代表类别
上面都准备完成后,下面需要对yolov5的项目代码修改几个地方。 首先在data文件夹下创建mask.yaml文件,目录结构如下:
文件的内容如下:
train: D:/PythonWorkSpace/MaskDataSet/YOLO_Mask/score/images/train
val: D:/PythonWorkSpace/MaskDataSet/YOLO_Mask/score/images/val
nc: 2
names: ['mask', 'face']
分别表示训练集的目录,验证集的目录 nc表示类别数目,name表示标签 然后找到train.py文件,修改如下几个地方
第一个地方表示使用的预训练权重
第二个地方表示配置文件,里面的nc默认是80,可以不用管,因为在第三个地方指定的文件中我们已经设置为2,需要注意的是第二个地方里面的anchors,可以不修改,也可以修改,具体修改的方法是需要自己用k-means代码跑一个出来,我直接用的默认的。
第三个地方是我们自己的创建的文件,因此只需要按照我的改一下就行
第四个地方和第五个地方需要根据自己的电脑性能进行修改,由于我们的数据集不是太大,因此第四个地方不要设置太大,100就差不多,太大容易过拟合。
第五个地方不要太大,根据自己的显存设置8-16-32都行,只要显存足够大就可以。
更改完上述几个点就可以训练了 训练的过程如下:
由于工作电脑没有显卡,因此默认使用cpu进行训练,速度非常慢。
训练完一轮后,在run文件夹下会有一个train文件夹,里面的exp就是你的训练成果,内容大概如下
其中best.pt是你训练的最好权重文件,last.pt是最近一轮训练得到的权重文件,可以自己在detect里面修改为自己的权重文件测试一下自己训练的数据集。 这是训练过程的图片,0表示佩戴口罩,1表示没有佩戴口罩。
我的数据集也不是很多,100多张图片.