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

Mah*_*Mai 4 computer-vision python-3.x keras tensorflow tf.keras

也许我误解了。如果我在 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()
Run Code Online (Sandbox Code Playgroud)

环境:
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

在此先感谢您的帮助!

小智 6

图像数据的值在 [0..255] 范围内,因此几乎看不到 0..0.9 的偏移。尝试一个更大的转变,看看有什么效果。

请注意,使用 rescale=1./255。没有帮助,因为在转换后应用了重新缩放。