如何将"ignore"类与张量流对象检测 API 一起使用?



我已经在自定义数据集上使用SSD (mobilenet-v1)训练了张量流对象检测模型(用于num_steps:50000(。我得到了mAP@.50IOU~0.98和loss~1.17。数据集由 uno 扑克牌图像组成(跳过、反向和抽取四个(。在所有这些卡片上,模型表现非常好,因为我只在这 3 张卡片上训练了模型(大约 278 张图像,带有 829 个边界框(25% 用于测试,即验证(使用手机收集(。

但是,我没有在任何其他卡上训练模型,但它仍然检测到其他卡(使用网络摄像头进行推理(。

我该如何解决这个问题?我是否也应该收集其他类图像(除了跳过、反转和绘制四张牌之外的任何内容(并在操作中忽略这个类?因此,该模型可以看到此类,即标签:训练期间的其他图像,并且在推理过程中不放置任何标签。

我不确定如何通知张量流对象检测 API 它应该忽略来自 Other类的图像。

任何人都可以提供指示吗?

请分享您的看法!

是的,你需要有另一个类,这是你不想检测的对象

如果您没有此"其他类",其中包括所有未检测到的内容。该模型将它与与感兴趣的卡几乎相同的现有类进行比较。

其中一些因素是:

  1. 形状的相似性
  2. 颜色的相似性
  3. 符号的相似性

这就是为什么即使它不是感兴趣的卡(跳过、反向和抽奖 4(,它也会以某种方式对这三个类具有很高的"归属感"。

让另一个类来转储所有这些可以显着减少对三个感兴趣的类的"归属感",并尽可能在训练期间提供大量数据。

如果您不想再上课。

您可以过度拟合跳过、反向和抽取 4 张牌(接近 100%(,然后将检测阈值增加到(70-90%(。

希望这对您有所帮助。

最新更新