我重新训练了对象检测模型ssd_inception_v2_cooco
以检测自定义对象,它在与训练集大小相同的测试用例上非常有效。
但是当我调整测试图片的大小或移动要在图片中检测到的对象(到训练集中出现的其他位置)时,检测失败。
在我的训练集中,我在每张图片的右上角或多或少使用了带有目标对象的图片。
我认为也许我应该在目标对象具有随机位置的训练集中添加更多项目,但是随后我水平翻转图片(目标对象位于左上角而不是右上角,并且也是使用mspaint进行镜像),并且检测成功。
那是我感到困惑的地方,如果有人可以告诉我我做错了什么,或者给我一些克服它的提示,我会很乐意。
非常感谢!
编辑:
只是为了使其易于理解,这只是说明,并非实际的目标对象/背景等。
此示例的得分为99%,您可以将其视为训练集中的图片:
镜像的相同图像也获得99%的得分:
这是使用mspaint将对象降低的位置,得到约94%:
这与从底部开始向上裁剪的第一张(99%)图像相同。此处根本没有检测到该对象:
编辑2:
如Mark在评论中所述,更多详细信息:
代码和环境:我在这里遵循了本教程,https://tensorflow-object-detection-api-tutorial.readthedocs.io/en/latest/training.html并没有更改代码中的任何内容。
关于训练集,绝大多数图像为720x480,并且大多数情况下目标对象位于每个图像的右上方。