Caffe:可变输入图像大小

时间:2016-01-09 18:48:36

标签: image-processing computer-vision neural-network deep-learning caffe

我正在尝试使用Caffe的Google deepdream code。 他们使用由ModelZoo提供的ImageNet预训练的GoogLeNet模型。这意味着网络在裁剪为224x224像素大小的图像上进行了训练。来自train_val.prototext

layer {            
  name: "data"     
  type: "Data"     
  ...

  transform_param {
     mirror: true   
     crop_size: 224
  ... 

用于处理的deploy.prototext还定义了一个大小为224x224x3x10的输入图层(RGB图像大小为224x224,批量大小为10)。

name: "GoogleNet"
input: "data"
input_shape {
  dim: 10
  dim: 3
  dim: 224
  dim: 224
}

但是我可以使用这个网络来处理任何大小的图像(上面的例子使用了1024x574像素之一)。

  1. deploy.prototext不会将caffe配置为使用裁剪。
  2. deepdream code中的预处理只能贬低,而且这里也没有裁剪
  3. 我怎样才能运行对输入图层来说太大的图像?

    可以找到完整的代码here

1 个答案:

答案 0 :(得分:4)

DeepDream根本不会裁剪输入图像 如果您密切关注,您会注意到它在中级层运行:它的end=参数设置为'inception_4c/output'end='inception_3b/5x5_reduce',但从不{ {1}}。原因是GoogLeNet到这些层是完全卷积网络,也就是说,它可以采用任何大小的输入图像并产生大小与输入大小成比例的输出(输出大小为通常受到填充和填充的影响。)

要将网络调整为不同大小的输入,函数end='loss3/classifier'具有

deepdream

此行调整网络图层以适应形状src.reshape(1,3,h,w) # resize the network's input image size 的输入。