解决单发物体检测器中的类不平衡问题

时间:2018-07-27 01:24:19

标签: ios tensorflow deep-learning computer-vision object-detection

我正在为图像中的多类对象训练对象检测模型。该数据集是自定义收集和标记的数据,在地面真相数据中带有边界框和类标签。

我使用此自定义数据训练了 MobileNet + SSD SqueezeDet YoloV3 网络,但效果不佳。选择这些型号的基本原理是它们的快速性能和轻巧(低内存占用空间)。他们的单发检测器方法在文献中也显示出良好的性能。

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

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

每个图像可以具有来自五个类别中任何一个的对象。 4级和5级的发生率很高。

对于4级和5级,召回得分和平均精确度较高,而其他3级,其表现差异很大(较低)。

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

问题

如何解决此类类别不平衡问题,以提高检测目标检测模型中所有类别的平均精度和目标检测精度。 ?

2 个答案:

答案 0 :(得分:0)

  • 低精度意味着您的模型遭受误报。因此,您可以尝试强否定挖掘。运行模型。查找误报。将它们包括在您的训练数据中。您甚至可以尝试仅使用假阴性作为假示例。

  • 如您所愿,如果可能,另一种方法可以是收集更多数据

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

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

PS:请记住,模型的灵活性会产生很大的影响。因此要注意过度拟合。

答案 1 :(得分:-1)

在生成您以前的作者提到的综合数据时,请勿将照明或视点变化等应用于您的所有数据集,而应随机进行。类的数量也相去甚远,并且最好是限制数量或为这些类收集更多的数据集。您还可以尝试应用班级权重,以更多地惩罚过度代表的班级。您做出了许多假设,即简单的实验会产生令您惊讶的结果。请记住,深度学习是科学和许多艺术的一部分。