首页 文章

如何将随机图像几何变换同时应用于多个图像?

提问于
浏览
0

我使用tensorflow和完全卷积网络对图像进行回归 . 我想通过随机翻转/旋转来增加数据,但是如何将它们同时应用于输入和输出图像张量?

1 回答

  • 2

    你是对的,只有在没有协变量的情况下才能使用像 tf.random_flip_left_right 这样的函数 . 例如,如果您的输出是标签图像,则需要对所有输出应用相同的随机操作 .

    我认为有两种方法可以做到:

    • 您基本上重写随机操作以使用多个张量 . 例如,要替换 tf.random_flip_left_right ,您可以使用
    coin = tf.less(tf.random_uniform((), 0., 1.), 0.5)
    im1 = tf.cond(coin, lambda: tf.flip_left_right(im1), lambda: im1)
    im2 = tf.cond(coin, lambda: tf.flip_left_right(im2), lambda: im2)
    ...
    
    • 在随机操作之前将所有张量堆叠在一起:
    all_im = tf.stack([im1, im2,...], axis=2)
    all_im = tf.random_flip_left_right(all_im)
    [im1, im2, ...] = tf.split(all_im, [im1.shape[2], im2.shape[2], ...], axis=2)
    

    仅当所有张量具有相同的空间范围时,该第二解决方案才有效 .

相关问题