gpt4 book ai didi

python - tf.image.random_brightness 在 TensorFlow 中随机给出负值

转载 作者:太空狗 更新时间:2023-10-30 02:37:52 27 4
gpt4 key购买 nike

'我正在尝试使用旋转、随机亮度、随机饱和度等各种方法在 TensorFlow 中增强图像数据。我观察到 tf.image.random_brightness 的输出不一致 - 有时它会产生负值。我理解随机性,但产生负值是否正确?当我尝试使用 matplotlib.pyplot 绘制图像时,它无法显示 ValueError: Floating point image RGB values must be in the 0..1 range下面是一些代码示例:'

# Function which reads file and converts to image array
def read_images_from_file (input_queue):
label = input_queue[1]

file_content = tf.read_file(input_queue[0])
image = tf.image.decode_jpeg(file_content, channels=NUM_CHANNELS)
image = tf.image.convert_image_dtype(image, dtype=tf.float32, saturate=True)
image = tf.image.resize_images(image, [IMAGE_HEIGHT, IMAGE_WIDTH])

.....
#inside a function which applies various augmentations - code shown only for brightness

X_init = tf.placeholder(tf.float32, shape=images.shape)
X = tf.Variable(X_init)

sess.run(tf.variables_initializer([X]), feed_dict={X_init: images})
aug_images, aug_labels = (sess.run(tf.map_fn(lambda params: (tf.image.random_brightness(params[0], 0.8, 1), params[1]), (X, labels))))

#inside a loop after calling above function - output of function is returned to aug_train_images

print (aug_train_images[i])


'Some sample output:'
[[[-0.18852733 -0.27872342 -0.31009597]
[-0.18059228 -0.2786315 -0.3060825 ]
[-0.1765788 -0.27461803 -0.302069 ]
...

[-0.20366213 -0.19974056 -0.18405429]
[-0.22792684 -0.22437292 -0.20458125]
[-0.24324547 -0.23166458 -0.21205674]]

“我在 Ubuntu 16.10 上使用带有 Python 3.5.3 和 TensorFlow CPU 版本 1.5.0-rc0 的 Jupyter notebook。”

最佳答案

您允许强度(增量)在 -0.8 和 0.8 之间随机变化:

tf.image.random_brightness(params[0], 0.8, 1)

请注意,图像的强度在 [0-1] 范围内,因为您这样做了:

image = tf.image.convert_image_dtype(image, dtype=tf.float32, saturate=True)

这意味着图像中的每个强度值 i 将更改为介于:

[i-0.8, i+0.8]

超出图像的 [0-1] 范围。换句话说,您将拥有负值和大于 1 的值。

第一个评论是 0.8 的 delta 似乎太多了(当然这取决于问题)。我建议大约 0.1(即允许 10% 的变化)。

第二件事,你必须确保在改变亮度后,图像仍然是图像,也就是说,将强度限制在 [0-1] 范围内。您可以通过以下方式做到这一点:

image = tf.clip_by_value(image, 0.0, 1.0)

关于python - tf.image.random_brightness 在 TensorFlow 中随机给出负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48821218/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com