0

我使用 Open Images 数据集为两个类训练 CNN:Person、Mobile phone。问题是 Yolo 每张图片只检测到 1 个类别。例如,如果图像包含人和手机,则只会检测到手机。示例输出。如果只有人类,那么将成功检测到所有人类。我认为问题在于数据集只有图像,每个图像标记了 1 个类。我在数据集中有许多图像,其中两个类都存在,但只有其中一个带有标签。这可能是问题吗?

我该如何解决这个问题?

  1. 添加几个标记了两个类的图像
  2. 标记所有图像以确保包含电话和人的每个图像都具有每个对象的适当标签
  3. 或者也许有一种方法可以下载数据集,以便正确标记两个类?

这是我的 .names 文件中的内容:

Person
Mobile_phone

这是 .data 文件:

classes = 2
train = data/train.txt
valid = data/test.txt
names = data/obj.names
backup = /mydrive/yolov4/backup

谢谢你的帮助!

4

2 回答 2

0

检查标签或 .txt 文件。如果它有两个类,.txt 文件中的第一列将有 0 和 1,其中 0 表示人员类,1 表示移动电话,反之亦然。

于 2021-03-26T06:12:01.127 回答
0

在使用“Mobile Phone”类检查 Open Images Dataset V6(类型:边界框)时,我看到包含我们在“人”类下考虑的内容的边界框被不一致地标记为“男人、女人、女孩、人脸” , ETC。” 这些应标记为“人员”。

我推荐这两种选择:

  • 确保所有图像都正确并一致地标有相应的类。不要让一个人的图像没有标记(除非它被截断了)。
  • 提示:我建议使用负样本——没有感兴趣对象的图像,以避免出现误报的情况,例如地板上看起来像人的漩涡
  • 您也可以尝试使用其他数据集,您可以在其中获得我上面所说的内容。示例:MSCOCO ( https://cocodataset.org/ )
于 2021-02-03T06:31:32.803 回答