我正在使用Tensorflow对象检测API进行项目。我已经在多个test images上训练了我的模型,并且已经训练了rfcn_resnet101_coco
模型来检测这些图像中的字母 o 。
我认为该模型运行良好,因为它可以在传递给我的图像中检测出 o (准确度很高)。有关示例,请参见here和here。
但是,当我传入另外两张尺寸与前两张相差很大的图像时,该模型无法检测到任何东西!例如,当我向模型传递full page或single world时,输出与输入相同。
我相信这是因为我传递的最后两个图像比我训练模型时所用的original training set大或小,而前两个或大约相同。
我想知道是否有某种方法可以训练我的模型,以便它可以检测大小不同的图像中的字母 o ,而不仅仅是与训练输入相似的图像。我曾想过调整pipeline.config
(找到的here),但不确定从哪里开始。
答案 0 :(得分:0)
首先,以特定的方式对图像进行训练,然后在明显不同的场景(尤其是输入大小)上进行测试永远不是一个好习惯。 也就是说,除非您的模型/训练方案以某种方式解决了这种差异。
此外,许多对象检测器都使用锚点作为参考框,这意味着模型可以训练然后针对它们预测对象。这些具有相对于输入分辨率的特定大小。如果您正在训练以使地面真相对象的大小与锚点大小相对应,然后进行测试以确保没有锚点适合您要检测的对象(太小或太大),则它将无法检测到它们
这意味着您需要: