张量流中的批量图像增强

时间:2018-09-30 07:30:57

标签: python tensorflow data-augmentation

我想进行图像增强,例如,在张量流中旋转随机角度。在每一批中,我想为每个图像旋转不同的随机角度。我可以使用tf.contrib.image.rotateimage_batch并使用随机生成的角度张量来做到这一点:

radian = tf.random_uniform(
    (batch_size),  
    minval=-ROT_TH,
    maxval=ROT_TH,
    dtype=tf.float32,
    seed=None,
    name=None
)
rotated_batch = tf.contrib.image.rotate(image_batch, radian)

但是,如果我使用allow_smaller_final_batch=True构建批处理,则batch_size是无用的,因为image_batch不会具有固定的批处理大小。并且旋转将失败,因为弧度和image_batch的N维不相同。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

我没有批量旋转图像,而是对image_queue.deque()中的图像进行了相同的旋转:

images = load_images(filenames, options)
radian = tf.random_uniform([len(images)], ...)
images =  tf.contrib.image.rotate(images, radian)

image_batch = tf.train.batch_join([images, filenames],
                                  enqueue_many=True, allow_smaller_final_batch=True,
                                  batch_size=WHATEVER)