接着上篇文章继续写,本篇文章讲如何训练自己的数据集。
从官网下载YOLOv6源码:meituan/YOLOv6: YOLOv6: a single-stage object detection framework dedicated to industrial applications. (github.com)https://github.com/meituan/YOLOv6
一、创建文件
将tools文件夹中的train.py放主目录下,再创一个myself.yaml文件,名字可以自己起(主要是为了省事)
myself.yaml文件里只需要添加train和val路径就行
二、修改数据集格式
YOLOv6与YOLOv5的数据集格式不同,v6不需要使用images文件夹,将以前images中的train和val文件夹图片与labels文件放在同一个目录就可以了
三、程序修改
修改一下train.py中的路径
打开文件夹yolov6->data->datasets.py
将红框里的内容注释,改为蓝框(这里不知道官方什么时候能修复,哎)
懒得动手直接复制下面的
label_dir = osp.join( osp.dirname(img_dir), "labels", osp.basename(img_dir) )
四、运行
直接右击运行train.py或者终端命令也可以
五、检测
上篇博文已经讲了如何检测图片,我看到最新版的程序bug依旧存在(时间6月30日)
手把手教你运行YOLOv6(超详细)https://blog.csdn.net/qq_58355216/article/details/125497521?spm=1001.2014.3001.5502
由于训练的速度太慢,我只训了100epochs,检测效果一般,虽然精度较高,但漏检和误检情况时有发生,之后还会再次更新
五、总结
对于YOLOv6我真是无力吐槽了,bug太多了,并且功能不够完善,各种报错,各种问题,简直就拿我们当小白鼠,哎!
训练时的报错问题在下篇博文:
YOLOv6训练时报错解决方法https://blog.csdn.net/qq_58355216/article/details/125552713?spm=1001.2014.3001.5502
bug1:
无法使用单类别数据集(在这个坑里差点没出来),作者虽说已修复,但是还是有些bug要改,等一段时间再更新
bug2:
训练时无法充分利用GPU(问题很致命,速度慢的我要裂开)
bug3:
目前无法查看精度和召回,map上涨速度特慢(等人家作者优化吧)
这些都还只是训练时候的bug......
如果训练时有各种报错欢迎评论区留言,本博文持续更新中