我正在使用掩码 rcnn 训练单个对象检测器,并且尝试了几种减少误报的方法。我从几千个带有边界框的对象图像示例开始,并对其进行了训练,得到了不错的结果,但是当在不包含该对象的图像上运行时,通常会得到高置信度的错误匹配(有时是 0.99)。
我尝试的第一件事是在配置文件中添加硬示例矿工。我相信我这样做是正确的,因为我添加了一个打印语句来确保对象被创建。然而,更快的 rcnn 的配置中没有一个有困难的示例挖掘。所以我怀疑矿工只能在 ssd 上正常工作。我希望通过一个困难的示例矿工有明显的改进,但我没有看到
我尝试的第二件事是添加“背景”图像。我在困难示例矿工配置中将最小负数设置为非零值,并添加了大量以前在训练中得到错误检测的背景图像。我什至将这些图像添加到 tfrecords 文件中,以便它与确实具有对象的图像平衡。这种方法实际上让事情变得更糟——并且给了我更多的错误检测
我尝试的最后一件事是创建另一个类别,称为“对象背景”,并将所有错误匹配项分配给这个新类别。这种方法效果很好,但我认为它是一种 hack。
我想总结一下我的主要问题是 - 在当前 tensorflow 对象检测框架中减少误报的最佳方法是什么?SSD 会是更好的方法吗,因为它似乎在配置中默认内置了一个硬示例矿工?
谢谢