ImageDataGenerator中channel_shift_range的影响(Keras图像增强)

5

也许我理解错了。如果我在我的ImageDataGenerator中实现channel_shift_range,输出应该具有“混乱”的颜色值,对吧?我想使用它来使我的模型更能应对颜色变化的差异。

然而,当我测试它时,我没有看到任何效果。我是不是用错了?这是我的代码:

from keras.preprocessing.image import ImageDataGenerator

import cv2
import matplotlib.pyplot as plt
%matplotlib inline

path = '/mnt/Project/Imaging/samples'

datagen = ImageDataGenerator(channel_shift_range=0.9)

genObject = datagen.flow_from_directory(path,
                                        batch_size=1)

augs = []
i = 0

for batch in genObject:
    augs.append(batch)
    i += 1
    if i > 10:
        break

for item in augs:
    plt.imshow(item[0][0].astype('uint8'))
    plt.show()

环境:
Jupyter Lab
Python 3.6.6
Keras==2.2.4
Keras-Applications==1.0.7
Keras-Preprocessing==1.0.9
tensorboard==1.9.0
tensorflow-gpu==1.9.0

提前感谢您的帮助!

1个回答

7

图像数据的值范围为[0..255],因此0..0.9的变化几乎不可见。尝试更大的变换来看到任何效果。

请注意,使用rescale=1./255.无效,因为重新缩放是在转换之后应用的。


我实际上找到了一些更好的东西,而且你可以将其集成到Keras中:https://github.com/aleju/imgaug 它具有随机颜色温度和伽马选项,更像是我所希望的。 - MahiMai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接