def _create_operations(self, examples_per_record): """ Create the operations to read images from the queue and extract inception features :return: a tuple containing all these operations """ # Create the queue operations image_key, image_tensor, _ = \ queue_single_images_from_folder(self.inputs_dir) # Build Inception Resnet v2 operations using the image as input # - from rgb to grayscale to loose the color information # - from grayscale to rgb just to have 3 identical channels # - from a [0, 255] int8 range to [-1,+1] float32 # - feed the image into inception and get the embedding img_for_inception = tf.image.rgb_to_grayscale(image_tensor) img_for_inception = tf.image.grayscale_to_rgb(img_for_inception) img_for_inception = prepare_image_for_inception(img_for_inception) with slim.arg_scope(inception_resnet_v2_arg_scope()): input_embedding, _ = inception_resnet_v2(img_for_inception, is_training=False) operations = image_key, image_tensor, input_embedding return batch_operations(operations, examples_per_record)
def _create_operations(self, examples_per_record): image_key, image_tensor, _ = \ queue_single_images_from_folder(self.inputs_dir) # Build Inception Resnet v2 operations using the image as input img_for_inception = tf.image.rgb_to_grayscale(image_tensor) img_for_inception = tf.image.grayscale_to_rgb(img_for_inception) img_for_inception = prepare_image_for_inception(img_for_inception) with slim.arg_scope(inception_resnet_v2_arg_scope()): input_embedding, _ = inception_resnet_v2(img_for_inception, is_training=False) operations = image_key, image_tensor, input_embedding return batch_operations(operations, examples_per_record)