手势识别-Yolov5模型-自制数据集训练
1、源码下载:
大家可以直接在浏览器搜索yolov5即可找到官方链接,跳转进github进行下载:
这里对yolov5模型补充说明一下,它是存在较多版本的,具体信息可在master->tags中查看,大家根据需要下载。这些不同版本一个显著差别是使用的库不同,这会影响到模型部署的难度。此外,不同模型在功能上也存在一定区别。
2、自制数据集的准备
由于数据集是自制的,需要手动制作标签,这里我是使用labelimg进行制作。labeling的安装及使用可参考文章:Yolov模型的使用及数据集准备(1)LabelImg的下载和使用_labelimg下载yolo-CSDN博客
在数据的制作上,yolov官方好像是有一个推荐标准的,大家可自行查看。
准备好的训练数据及标签如图所示:
需要说明的是,使用yolov5进行模型训练,在数据集准备上不需要将各个类别的图片分开放,可以将所有类别的图片放在一个文件夹中。因为在使用labelimg进行标签制作时,会自动生成和图片名一样的txt标签文件。只需要分开放训练集和验证集即可。
3、官方项目结构介绍
大体需要用到的文件如上图所示。
4、关于预训练模型
yolov官方是提供了多个预训练模型(也即初始权重文件)。每个模型具体的大小,推理速度,参数量等官方都有详细的说明,大家可以根据需要自行下载。
一般来说,越大的初始模型,推理速度越慢,对自己的电脑性能要求也越高,当然准确度也越高。
5、关于配置文件.yaml文件
配置文件的名称,大家可以自定义。注意其中各种分好,空格之类的小细节。
6、模型训练
将上述工作全部准备好后,就可以开始训练了。yolov5官方提供了训练文件train.py,我们可以在终端或者命令行窗口运行该文件来训练自己的模型。
训练指令是:
python train.py --batch-size 4 --epochs 200 --data .\ab.yaml --weights .\yolov5s.pt
具体的操作步骤:
对了,进入项目文件的话我这里是使用虚拟环境的命令行工具(anaconda prompt),而非windows自带的。
注意:上图中模型权重文件的路径是 .\weights\yolov5s.pt(按你自己放的位置修改)
上述指令执行后,如果出现下图所示情况,就说明在正常训练模型啦!!!
训练结束后的结果:
7、运用模型
对于上述步骤训练得到的模型,我们可以在run\train\exp8\weights文件夹下找到
python .\detect.py --source .\data\images --weights .\your_model.pt
8、简单的小测试:
下面的这个模型,是做的一个小测试,对手势(石头剪刀布)的识别,总体来看,效果还是蛮好的。