解决单次目标检测器中的类不平衡问题



我正在为图像中的多类对象训练对象检测模型。数据集是在地面实况数据中使用边界框和类标签自定义收集和标记的数据。

我用这个自定义数据训练了MobileNet+SSDSqueezeDetYoloV3网络,但结果很差。选择这些型号的理由是它们的快速性能和重量轻(低内存足迹(。他们的单次探测方法在文献中也表现良好。

数据集中的类实例分布如下

  • 1级--2469
  • 类别2-5660
  • 类别3-7614
  • 第4类-13253
  • 5级--35262

每个图像都可以有来自五个类中任何一个类的对象。4级和5级的发病率非常高。

第4类和第5类的回忆得分和平均精度很高,其他3类的回忆分数和平均精度相差一个数量级(更低(。

我尝试过对不同的过滤参数、NMS阈值、模型训练参数进行微调,但都无济于事。

问题,

如何解决此类类不平衡问题,以提高对象检测模型中所有类的检测平均精度和对象检测精度

  • 低精度意味着您的模型存在误报。因此,您可以尝试硬负挖掘。运行您的模型。查找误报。将它们包含在您的培训数据中。你甚至可以试着只使用假阴性作为假例子。

  • 正如您所期望的,另一种方法可以是收集更多数据(如果可能的话(。

  • 如果不可能,您可以考虑添加合成数据。(即改变图像的亮度或视点(与矩阵相乘,使其看起来拉伸(

  • 最后一件事可能是每个类别都有数据,即每个类别5k。

PS:请记住,您的模型的灵活性有很大的影响。因此,要注意过度拟合和欠拟合。

如前作者所述,在生成合成数据时,不要应用照明或视点变化。。等等到您的所有数据集,但更确切地说,是随机的。类的数量也很遥远,最好限制数量或为这些类收集更多数据集。您也可以尝试应用类权重来惩罚过度表示类。你做了很多假设,认为简单的实验会产生让你惊讶的结果。记住,深度学习是科学的一部分,也是艺术的一部分

最新更新