我已经训练了张量流对象检测模型(对于num_steps:50000
) using SSD (mobilenet-v1)
在自定义数据集上。我有[email protected] /cdn-cgi/l/email-protection
〜0.98 和loss
〜1.17。该数据集由 uno 扑克牌图像(跳过、反转和绘制四张)组成。在所有这些卡上,模型都表现得很好,因为我只在这 3 张卡上训练了模型(使用手机收集的大约 278 张图像,带有 829 个边界框(25% 的边界框用于测试,即验证))。
但是,我没有在任何其他卡上训练模型,但它仍然检测其他卡(使用网络摄像头进行推理)。
我怎样才能解决这个问题?我是否还应该收集其他类图像(除了跳过、反转和抽四张牌之外的任何图像)并在操作中忽略此类?所以该模型看到这个类,即标签: 其他在训练过程中使用图像,并且在推理过程中不添加任何标签。
我不知道如何通知tensorflow对象检测API它应该忽略来自的图像Other class.
任何人都可以提供指针吗?
请分享您的看法!
Yes,你需要有另一个类,即object你不想检测。
如果你没有这个其他类其中包括所有不被检测到的东西。该模型会将其与与感兴趣的卡片几乎相同的现有类别进行比较。
其中一些因素是:
- 相似度Shape
- 相似度Color
- 相似度Symbols
这就是为什么即使它不是感兴趣的卡(Skip、Reverse和Draw 4),但它在某种程度上对这三个类别具有很高的“归属感”。
使用另一个类来转储所有这些可以显着减少对三个感兴趣类的“归属感”,并尽可能提供A LOT训练期间的数据。
如果你不想再上一堂课。
你可以overfit跳过、反转并抽 4 张牌(接近 100%),然后提高你的阈值检测率达到(70-90%)。
希望对你有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)