解决YOLOV5跑模型所有不同类型图片的标签名称相同

 发现问题:

YOLOV5跑自己的模型的时候设定了六个标签,但是最终结果所有的图片学习后识别的结果全部都是第一个标签driving

解决:

  标签存在问题。在标注好的数据集中,一般由三个部分组成:

class_id x_center y_center width height

class_id 是目标的类别标签,表示目标所属的类别

x_center  y_center 是目标边界框中心点的相对坐标,范围在 0 到 1 之间,分别表示边界框中心点在图像宽度和高度上的相对位置。

width 和 height是边界框的宽度和高度,也是相对于整个图像的比例。

重点在于class_id,class_id表明标签类型。也就是说,在不同的图片或者是同一张图片中,不同数据表示不同类的标签类型

class_id=0为汽车类

class_id=1为箱子类

由于我们标签是分次标注的,所以第一个的序号一直是初始化0。也就是即使标注的是不同,但是最后得到的序号是一致的,也就导致了一直显示只有第一个标签的问题

例如第一个是我们smoking标签,第二个是texting-phone标签,无法被区分。

在YOLOV5中,将整数 class_id 转换为相应的类别名称通常是通过读取 .yaml 文件中的标签名称列表来完成的。在训练或预测过程中,YOLOv5 会根据 .yaml 文件中的标签名称列表,将模型输出的整数 class_id 映射到相应的类别名称。

标签中的第一个数据需要对应data文件夹下.ymal文件中的n个标签序号0-n-1,这样即可匹配,即以下标签对应的标签数据从左往右对应0,1,2,3,4,5

最终跑出结果:(小样本测试)

  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在使用YOLOv5进行对象检测时,更改类别名称可以通过修改模型配置文件和类别标签文件来实现。 首先,我们需要打开YOLOv5的模型配置文件,通常是一个以".yaml"为后缀的文件。在该文件中,我们可以找到类别名称的列表。我们可以根据需要将其修改为我们希望的新类别名称。例如,如果原始类别列表是["person", "car", "dog"],我们可以将其更改为["person", "automobile", "animal"]。保存并关闭文件。 其次,我们需要打开类别标签文件,该文件包含所有类别的标签。默认情况下,此文件通常是一个以".txt"为后缀的文本文件,每行包含一个类别名称。我们可以按照与模型配置文件相同的方式修改类别名称,将名称更改为我们希望的新名称。保存并关闭文件。 然后,我们需要重新运行YOLOv5的检测脚本,使用更新后的模型配置文件和类别标签文件。可以使用命令行或脚本来执行此操作。示例命令如下: ``` python detect.py --weights weights.pt --cfg new_config.yaml --names new_labels.txt ``` 其中,"--weights"参数指定了训练好的模型权重文件,"--cfg"参数指定了更新后的模型配置文件,"--names"参数指定了更新后的类别标签文件。 运行检测脚本后,YOLOv5将使用新的配置文件和类别标签文件进行对象检测,输出的结果将包含更新后的类别名称。 需要注意的是,修改类别名称后,模型需要重新进行训练或迁移学习以获得更好的效果。这仅仅是在检测时更改显示的类别名称,并不会改变模型对对象的识别能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值