在 YOLO 中使用不平衡数据集

Using a unbalanced dataset in YOLO

我想知道在 YOLO 中使用不平衡数据集是否会导致它在准确性方面的训练更差?图像较少的 classes 是否准确度较低?

我有 3 classes 14.4 k 图片

1 class 有 12,000 个图像示例 其他 2 个每个有 1,000 个图像示例

这会成为问题吗?

我现在正在 YOLOR 上训练,我的自定义数据集上的 MAP 为 0.36

我用权重 class 进行了验证,class 验证很好,但我需要将置信度设置得非常低,因为图像较少的 classes 置信度非常低(0.05 - 0.12) 而具有 12,000 张图像的 class 具有置信度 (0.45 - 0.90

数据集不平衡总是会导致性能下降。不过,有一些技巧可能对您的情况有所帮助:

  1. 最简单的 - class 重量。可以通过 sklearn 的 compute_class_weight 方法计算。
  2. 非常现代的方法 - 焦点损失 (https://arxiv.org/abs/1708.02002)。粗略地说,这个损失函数让神经网络更多地关注 'hard-detected' 个对象(简单地通过增加它们的损失),其中包括不平衡的 classes.

您的信心不足问题可能是欠拟合的后果之一。这是来自 two-stage 探测器(主要是 Faster-RCNN)

的个人经验