如何解决YOLOv4 训练:无法在单个图像上检测多个类
我使用 Open Images 数据集为两个类训练 CNN:人、手机。问题是 Yolo 每张图像只检测 1 个类。例如,如果图像包含人和手机,则只会检测到手机。 Example Output。如果只有人类,那么所有人类都会被成功检测到。我认为问题在于数据集只有每个图像标记了 1 个类的图像。我在数据集中有很多图像,其中两个类都存在,但只有其中一个用标签标记。这可能是问题吗?
我该如何解决问题?
Person
Mobile_phone
这里是 .data 文件:
classes = 2
train = data/train.txt
valid = data/test.txt
names = data/obj.names
backup = /mydrive/yolov4/backup
感谢您的帮助!
解决方法
在检查 Open Images Dataset V6(类型:Bounding Boxes)与“Mobile Phone”类时,我发现包含我们在“person”类下考虑的东西的边界框被不一致地标记为“Man,Woman,Girl” 、人脸等”这些应标记为“人”。
我推荐这两个选择:
- 确保所有图像都正确无误,并始终使用相应的类别进行标记。不要让带有人物的图像没有标记(除非它被截断太多)。
- 提示:我建议使用负样本——没有感兴趣对象的图像,以避免出现误报的情况,例如地板上看起来像人的漩涡
- 您也可以尝试使用其他数据集,在那里您可以获得我上面所说的内容。示例:MSCOCO (https://cocodataset.org/)
检查标签或 .txt 文件。如果它有两个类,.txt 文件中的第一列将有 0 和 1,其中 0 表示人员类,1 表示手机类,反之亦然。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。