Yolov5训练模型没有框

一、问题描述:

在用yolov5训练自己的图片,先运行train.py文件再运行detect.py文件后,发现测试集中的图片没有出现锚框。我参考的配置教程是:
https://blog.csdn.net/m0_53392188/article/details/119334634?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163694460616780271595311%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=163694460616780271595311&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-119334634.first_rank_v2_pc_rank_v29&utm_term=yolov5&spm=1018.2226.3001.4187

二、尝试的办法
1、更换配置环境:本来安装的是cuda11.3和cudnn8.2.1,后来换成cuda10.2和cudnn7.6.5。没有作用,还是没有出现锚框。

2、在detect.py里面增加:cudnn.benchmark = True,没用。
参考网站:https://blog.csdn.net/hh571050143/article/details/119984840?utm_term=yolov5%E6%B5%8B%E8%AF%95%E5%9B%BE%E7%89%87%E6%B2%A1%E6%9C%89%E6%A0%87%E7%AD%BE&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduweb~default-1-119984840&spm=3001.4430

3、自适应锚框:由于我要检测的目标实在太小,我怕里面的锚框设置有问题,于是参考网上大神修改autoanchor.py文件里面的K聚类自适应锚框的路径,搞了个test.py文件单独运行kmean_anchors函数,将获得的锚框参数置换到mydata.yaml文件相应位置中,运行完train.py后再运行detect.py,但是任然没用效果。(参考网址忘记储存了)
Yolov5训练模型没有框_第1张图片Yolov5训练模型没有框_第2张图片
4、增加训练集:本来我的训练集是280张图片,后面通过翻转、旋转、提高亮度和对比度等方法,将训练集扩充到1000张图片。但是仍然没有出现锚框。
【图像分类–图片数据扩充】图片数据不够怎么凑:https://blog.csdn.net/u013421629/article/details/101314178?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163853284316780269845691%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=163853284316780269845691&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-101314178.first_rank_v2_pc_rank_v29&utm_term=%E5%9B%BE%E7%89%87%E6%95%B0%E6%8D%AE%E6%89%A9%E5%85%85%E7%9A%84%E6%96%B9%E6%B3%95&spm=1018.2226.3001.4187

5、降低置信度:我将detect.py中的置信度值和IOU值都降低,再运行后,终于发现了问题。
https://blog.csdn.net/Nire_Yeyu/article/details/105403220
Yolov5训练模型没有框_第3张图片
我发现我检测出来的标签是错的,根本不是我要的标签。马上反应过来是某个路径错了。
Yolov5训练模型没有框_第4张图片

6、更换权重路线:我发现原来我测试的权重有问题,还是用的原来的王者荣耀的那个权重。因此把他改过来,换成我自己训练出来的best.pt后,才终于成功了。
Yolov5训练模型没有框_第5张图片
Yolov5训练模型没有框_第6张图片

三、最终解决办法
如上所述,我最终的解决办法是更换了权重,其实这都不是算法的错误,是自己粗心大意了。因此,很赞同有一篇文章说的那样。【目标检测 YOLOv5 - 如何提高模型的指标,提高精确率,召回率,mAP等:https://blog.csdn.net/flyfish1986/article/details/120704968?ops_request_misc=&request_id=&biz_id=102&utm_term=yolov5%20%E7%9A%84confusion%20matrix%E6%84%8F%E4%B9%89&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-5-120704968.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187】
我们还是得先保证自己用这个程序得时候没用错误,位置引用都对了,再调一些参数就好了。

你可能感兴趣的:(python,深度学习,pytorch)