在不平衡数据集上对多个对象训练YOLO(对象检测)



我正在自定义数据集上训练YOLO(使用Darknet的Alexey AB实现(。它有三类图像,其中第一类有45k个图像,其余两类有大约1k个图像。

在训练它6k次迭代之后,损失在1.5到2之间。然而,当我尝试在视频上运行它时,它只检测到类1。

我想知道这是什么原因,是因为数据集中图像数量的不平衡吗?有办法解决这个问题吗?

是的,首先您有一个不平衡的数据集。建议每个类的图像数>2000(根据存储库上的说明(。

我建议您在训练时使用测试集并跟踪平均精度以及损失。如果平均精度较低,则可以假设并非所有类都能得到同样好的检测。

有几种方法可以解决这个问题,但我想你可能已经明白了。

  • 为其他类收集更多数据
  • 尝试使用旋转、噪声等对其他类进行数据扩充
  • 您可以尝试为其他类添加合成图像
  • 尽管把第一类的数据去掉是个坏主意,但至少要尽量减少它,这样才能有一个平衡的数据集

我正在为数据较少的类调用其他类

相关内容

  • 没有找到相关文章

最新更新