【发布时间】:2020-05-03 07:11:08
【问题描述】:
我已经在自定义数据集上使用 SSD (mobilenet-v1) 训练了 tensorflow 对象检测模型(用于 num_steps:50000)。我得到了mAP@.50IOU ~0.98 和loss ~1.17。该数据集由 uno 扑克牌图像(跳过、反转和绘制四张)组成。在所有这些卡片上,模型的表现都非常好,因为我只在这 3 张卡片上训练了模型(大约 278 张图像和 829 个边界框(25% 的边界框用于测试,即验证),使用手机收集)。
但是,我没有在任何其他卡上训练模型,但它仍然检测到其他卡(使用网络摄像头进行推理)。
我该如何解决这个问题?我是否还应该收集其他类图像(除了跳过、反转和抽四张牌之外的任何东西)并在操作中忽略这个类?因此该模型在训练期间看到此类,即 Label: Other 图像,并且在推理期间不放置任何标签。
我不确定如何通知 tensorflow 对象检测 API 它应该忽略来自 Other 类的图像。
谁能指点一下?
请分享您的观点!
【问题讨论】:
-
确实可以添加更多的训练样本;但您也可以使用检测分数来查看某些框是否与绘制相关
-
对于跳牌、倒牌和抽四牌,训练好的模型不会进行任何错误检测。但是对于看不见的卡片,例如 4,8,9 等算法检测为跳过或反转。
-
检测分数是多少或4、8和9?
-
4,8 和 9 是其他牌(在 Uno 中有从 0 到 9 的牌,特殊牌,例如跳过、反转、抽二和抽四,外卡)。我为检测分数设置了阈值,即 0.5
-
也许你可以提高你的门槛。但存在可能无法检测到某些感兴趣的卡片的风险。添加更多的训练样本也可能会有所帮助
标签: python tensorflow object-detection object-detection-api