YOLOday4-多类别检测

在这里插入图片描述
看着数值是可以在实际上的图中完全识别不出来,但是也很正常,毕竟新标签只有50个样本,显然样本喂得完全不够

然后喂了100个样本,但是显然应该是不均衡的
在这里插入图片描述
效果显然从数据上看并不能抱有希望
主要是还没搞懂多类别检测的数据集应该是怎样的,数据量略大,训练效果也不好
查了一些资料和对比以后断定
很可能是因为喂进图片的类别是按顺序的,前200张都属于同一类别,导致训练结果除非特征明显否则全部学成第一个标签
这时候就遇到了问题
第一,顺序如何打乱,聪明的我,按图片大小排序是不是就算打乱了
第二,xml文件是否要按顺序一起打乱,试试看吧
首先打乱图片后正常运行无报错,结果还要等待
其次如果本次训练结果不尽人意,则应当尝试上次开会师兄提出的建议,只识别活络扳手的特色部位而非整个扳手,这个想法提出来我还是觉得挺有道理的,具体有待尝试

结论:打乱图片数据后map@0.5提升了很多
在这里插入图片描述

真的吗…
先试试效果
map表现很差,图片同样,感觉还是样本缺少的问题,虽然扳手只用了200张但显然另一个需要更多
再加200张看看吧,epoch好像也不太够的样子,但是又要考虑样本不均衡的问题
总之感觉任重而道远

检查图片和标签是否一一对应的小代码


import os
import glob
from PIL import Image
 
#指定找到文件后,另存为的文件夹路径
outDir = os.path.abspath(r'C:\Users\lxy\Desktop\data\data in project')
 
#指定第一个文件夹的位置
imageDir1 = os.path.abspath(r'C:\Users\lxy\Desktop\data\data in project\image')
 
#定义要处理的第一个文件夹变量
image1 = [] #image1指文件夹里的文件,包括文件后缀格式;
imgname1 = [] #imgname1指里面的文件名称,不包括文件后缀格式
 
#通过glob.glob来获取第一个文件夹下,所有'.jpg'文件
imageList1 = glob.glob(os.path.join(imageDir1, '*.jpg'))
 

#遍历所有文件,获取文件名称(包括后缀)
for item in imageList1:
    image1.append(os.path.basename(item))
 
#遍历文件名称,去除后缀,只保留名称
for item in image1:
    (temp1, temp2) = os.path.splitext(item)
    imgname1.append(temp1)
 
#对于第二个文件夹路径,做同样的操作
imageDir2 = os.path.abspath(r'C:\Users\lxy\Desktop\data\data in project\xml')
image2 = []
imgname2 = []
imageList2 = glob.glob(os.path.join(imageDir2, '*.XML'))
 
for item in imageList2:
    image2.append(os.path.basename(item))
 
for item in image2:
    (temp1, temp2) = os.path.splitext(item)
    imgname2.append(temp1)
 
#通过遍历,获取第一个文件夹下,文件名称(不包括后缀)与第二个文件夹相同的文件,并另存在outDir文件夹下。文件名称与第一个文件夹里的文件相同,后缀格式亦保持不变。
for item1 in imgname1:
    for item2 in imgname2:
        if item1 == item2:
            dir = imageList1[imgname1.index(item1)]
            img = Image.open(dir)
            name = os.path.basename(dir)
            img=img.convert('RGB')#不加的话报错cannot write mode RGBA as JPEG
            img.save(os.path.join(outDir, name))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值