图像以ResNet-50为中心,在张量流变薄

问题描述 投票:1回答:2

我在tensorflow-slim中使用ResNet-50模型来提取功能。我的问题是,在输入图像之前,我是否需要根据一些标准ResNets-50平均值对图像进行居中?我知道对于vgg-19,tf-slim提供了使用 _mean_image_subtraction(image, means)中定义的vgg_preprocessing.py进行居中的选项。但我找不到ResNets的任何此类文件或功能。

computer-vision deep-learning tensorflow-gpu tf-slim resnet
2个回答
1
投票

我相信你也应该使用vgg_preprocessing。来自get_preprocessing()preprocessing_factory.py

preprocessing_fn_map = {
  'cifarnet': cifarnet_preprocessing,
  'inception': inception_preprocessing,
  'inception_v1': inception_preprocessing,
  'inception_v2': inception_preprocessing,
  'inception_v3': inception_preprocessing,
  'inception_v4': inception_preprocessing,
  'inception_resnet_v2': inception_preprocessing,
  'lenet': lenet_preprocessing,
  'mobilenet_v1': inception_preprocessing,
  'resnet_v1_50': vgg_preprocessing,
  'resnet_v1_101': vgg_preprocessing,
  'resnet_v1_152': vgg_preprocessing,
  'resnet_v1_200': vgg_preprocessing,
  'resnet_v2_50': vgg_preprocessing,
  'resnet_v2_101': vgg_preprocessing,
  'resnet_v2_152': vgg_preprocessing,
  'resnet_v2_200': vgg_preprocessing,
  'vgg': vgg_preprocessing,
  'vgg_a': vgg_preprocessing,
  'vgg_16': vgg_preprocessing,
  'vgg_19': vgg_preprocessing,
}

您还可以验证preprocessing_factory.get_preprocessing()使用train_image_classifier.py

preprocessing_name = FLAGS.preprocessing_name or FLAGS.model_name
image_preprocessing_fn = preprocessing_factory.get_preprocessing(
    preprocessing_name,
    is_training=True)

...

image = image_preprocessing_fn(image, train_image_size, train_image_size)

0
投票

是的,您应该居中(标准化)图像。应该做更好的模型融合。

如果没有用于ResNet的此图像处理操作的默认tf-slim方法,您可以基于this变体进行自己的实现

另外,对于整个训练批次计算means(来自_mean_image_subtraction(image, means))更有用,而不是单个图像或整个数据集。

© www.soinside.com 2019 - 2024. All rights reserved.