Я использую https://tfhub.dev/google/imagenet/resnet_v2_50/feature_vector/3
для извлечения векторов объектов из изображений.Тем не менее, я немного сбит с толку, когда речь заходит о том, как предварительно обработать изображения перед их передачей через модуль.
На основании соответствующего объяснения Github сказано, что следующее должно бытьdone:
image_path = "path/to/the/jpg/image"
image_string = tf.read_file(image_path)
image = tf.image.decode_jpeg(image_string, channels=3)
image = tf.image.convert_image_dtype(image, tf.float32)
# All other transformations (during training), in my case:
image = tf.random_crop(image, [224, 224, 3])
image = tf.image.random_flip_left_right(image)
# During testing:
image = tf.image.resize_image_with_crop_or_pad(image, 224, 224)
Однако, используя вышеупомянутое преобразование, полученные результаты показывают, что что-то может быть не так.Кроме того, Resnet бумага говорит, что изображения должны быть предварительно обработаны с помощью:
Кадрирование 224 × 224 отбирается случайным образом из изображения или его горизонтального переворота, ссреднее значение вычитается ...
Что я не могу понять, что это значит.Может кто-нибудь направить меня в правильном направлении?
С нетерпением жду ваших ответов!