SSD-Mobilenetv2 300x300 - Tensorflow目标检测API



我已经微调了一个SSD-Mobilenetv2与火车配置固定调整大小300x300使用tensorflow目标检测API构建,并保存在TF Saved_Model格式。问题:

  • 在推理过程中,它如何能够接受任何形状的输入图像(而不仅仅是300x300),而不需要进行任何预处理,首先将它们调整为300x300,然后将它们传递给模型?
  • 是否因为saved_model默认情况下会在推理期间调整大小?(如果是,它也标准化他们,因为在做卷积操作之前)(我是新的saved_model格式,但我认为这不是因为saved_model,但它是如何可能的-因为我认为SSD-Mobilenet包括FC层需要固定的输入大小)或架构使用AdaptivePooling在b/w来实现这一点?

当您进行预测时,您必须使用与模型训练时相同大小的图像。因此,如果您将300 X 300的图像转换为224 X 224,则必须对您想要预测的图像进行相同的操作。MobileNet还期望像素在-1到+1的范围内。Preprocess_input执行该操作。对于希望预测的图像,您需要同样缩放像素。您可以使用前面提到的函数,也可以使用下面所示的等效函数。此外,如果模型是在RGB上训练的,那么图像要确保你想要预测的图像是RGB的。

def scale(image):
return image/127.5-1

Mobilenet V1 (paper)接受224x224x3的输入。Mobilenet V2的添加主要是在层之间的线性瓶颈和快捷/跳过连接,所以我认为架构的输入维度没有改变(Google AI博客文章在MobileNetV2)。

(这是基于我的个人经验):我几乎可以肯定,调整大小只是对图像的缩放,保持原始的宽高比和零填充。或者他们可以直接缩放它并改变宽高比,但这似乎不太可能。他们绝对没有使用自适应池之类的东西来调整大小。

最新更新