最近两天正在学习Yolov5,中间遇到了很多问题,不过经过各种资料搜集,也是解决了不少问题,也成功的写出了自己的FPS跟枪功能,使用的是自己训练的模型,使用yolov5n的权重训练了300张图就可以用了。
此文章仅用作记录和备忘,发出来是希望能帮到正在查资料学习的朋友。
第一步:安装labelimg
pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple
第二步:新建一个这样的目录结构
VOCdevkit\VOC2007\Annotations 存放标签文件夹
VOCdevkit\VOC2007\JPEGImage 存放素材文件夹
VOCdevkit\VOC2007\predefined_classes.txt 存放标签文件,一行一个
第二步:打开labelImg,在VOC2007目录内执行CMD,命令如下
cmd命令:labelimg 素材文件夹 标签文件文档路径
使用labelimg标注教程【推荐勾选】
选择菜单栏内的View
1.勾选 Auto Save mode 选项
2.勾选 Display Labels 选项
快捷键W开始框选,然后会弹出让你选择类别名字,比如我的是一个head和person两个类别。
A是上一张图,D是下一张图。
标注完毕之后会在Annotations目录下生成和图片名称对应的xml文件。
接下来在VOCdevkit目录下执行这段代码,我把代码打包放云盘了,下载后放在VOCdevkit目录打开执行即可
云盘链接 :https://www.aliyundrive.com/s/VEUAJyEuVgd 提取码: 1x7g
切记,不推荐路径出现中文噻~。
继续哈,执行完毕后,会在VOCdevkit目录下出现images和labels目录,里面有相应的素材和验证集。
VOC2007目录下出现YOLOLabels目录,里面是xml转换成yolo的txt文件。
第四步:修改配置文件进行模型训练
最后从github上面拉取到yolov5的项目后,把 VOCdevkit整个文件夹放在项目根目录内,然后打开train.py文件修改配置。
第一行是权重文件目录,我下载的是yolov5n的权重,接下来我们看到第二行和第三行有models/cf.yaml和data/cf.yaml这两个文件,这俩到底哪里来的呢,我们继续。
打开yolo项目根目录的data文件夹,把coco128.yaml文件在同目录复制一份,名字自己取,我的就是cf.yaml
然后cf.yaml文件里填写如下内容
train: VOCdevkit/images/train #这个我们已经把VOCdevkit目录复制过来了路径就是这个
val: VOCdevkit/images/val #同上
nc: 2 #这里是类别数量,我只有两个就写2
names: [ 'head','person' ] #这里是类别名称,我第一个是head,第二个是person,其实就是跟上面的predefined_classes.txt里面填写的一样,那个是一行一个,这个根据那个来就可以了。
最后我们执行train.py文件开始训练,可能有的人会报错
出现这个的话我们打开utils目录下的datasets.py搜索num_workers=nw,然后吧nw改成0即可。
最后开始训练即可。训练完毕后我们在runs/train/exp/weights的目录下就出现了我们训练完毕的pt模型文件啦。