如何在运行Tensorflow SSD的推断时不调整输入图像的大小

时间:2018-02-21 06:14:59

标签: tensorflow object-detection

从Single Shot Multibox Detector纸张中可以理解,它是一个完全卷积网络。因此,在推理期间不需要重新缩放张量流正在进行的重新缩放(至300x300)。如何在tensorflow推理期间删除此调整大小?

1 个答案:

答案 0 :(得分:0)

您可以在模型配置文件

中进行配置
image_resizer {
      fixed_shape_resizer {
        height: 300
        width: 300
      }
}

如果您删除image_resizer,它应该可以正常工作。但要回答你的问题:你为什么要删除大小调整? 删除调整大小会严重影响培训时间和性能。由于您的训练图像和输入图像通过张量流模型配置调整大小,模型仍然可以“看到”相同,以防您考虑信息丢失。此外,SSD还接受了COCO的培训,并且出于上述培训时间和性能的原因,他们考虑调整它们的大小。

虽然你可以尝试使用替代方法而不是调整大小,如果由于某些原因而不是你想要做的那样。

  • 多种作物。例如,AlexNet最初是针对5种不同的作物进行培训的:中心,左上,右上,左下,右下。
  • 随机作物。只需从图像中获取一些随机作物,并希望神经网络不会有偏差。
  • 调整大小并变形。在不考虑宽高比的情况下将图像调整为固定大小。这会使图像内容变形但保留,但现在您确定没有内容被剪切。
  • 可变大小的输入。不要在可变大小的图像上裁剪和训练网络,使用像空间金字塔池这样的东西来提取可以与完全连接的图层一起使用的固定大小的特征向量。