【问题标题】:Keras: Visualize ImageDataGenerator OutputKeras:可视化 ImageDataGenerator 输出
【发布时间】:2018-01-29 13:44:13
【问题描述】:

我想看看我的 ImageDataGenerator 对我的网络产生了什么。

编辑:
删除了 channel_shift_range,不小心把它留在了代码中

发电机

genNorm = ImageDataGenerator(rotation_range=10, width_shift_range=0.1, 
       height_shift_range=0.1, zoom_range=0.1, horizontal_flip=True)

获取批次

batches = genNorm.flow_from_directory(path+'train', target_size=(224,224),
      class_mode='categorical', batch_size=64)

x_batch, y_batch = next(batches)

绘制图像

for i in range (0,32):
    image = x_batch[i]
    plt.imshow(image.transpose(2,1,0))
    plt.show()

结果

Generator Output

这是正常的还是我做错了什么?

【问题讨论】:

    标签: image-processing plot colors keras


    【解决方案1】:

    试试这个;更改生成器如下:

    import numpy as np
    
    def my_preprocessing_func(img):
        image = np.array(img)
        return image / 255
    
    genNorm = ImageDataGenerator(rotation_range=10, width_shift_range=0.1, 
           height_shift_range=0.1, zoom_range=0.1, horizontal_flip=True, 
           preprocessing_function=my_preprocessing_func)
    

    这对我有用,

    布鲁诺

    【讨论】:

      【解决方案2】:

      keras 使用带有 Pillow 后端的图像操作,它默认带有 'RGB' 格式。所以你不需要在plt.imshow() 中反转通道轴。

      仅在cv2.imread()(默认为'BGR')中,您可能需要plt.imshow(img[:, :, ::-1]) 才能显示正确的图像。

      BR

      【讨论】:

        【解决方案3】:

        奇怪的颜色是您的频道转换造成的。你真的需要它来增加你的样本吗?值 10(=非常高)真的是您想要的吗?

        除此之外:检查生成器生成的另一种可能更有效的方法是使用save_to_dir(来自目录函数的流/流参数)设置目录。在那里,您会找到所有已转换并传递给您的 fit/flow 函数的图像。

        编辑:

        在处理或显示图像时,您似乎仍然以某种方式反转图像。我假设原始图像看起来更像这样:

        将 ImageDataGenerator 的结果保存到一个目录中,并将这些结果与您在 plt.show 中看到的结果进行比较。

        【讨论】:

        • 是的,我尝试了很多,但不小心把它留在了代码中......仍然是同样的问题。
        • 如果您使用 save_to_dir 保存到一个目录并将其与您的 plt.imshow 屏幕截图进行比较 - 图像看起来是否相同?您似乎仍然反转了图像(请参阅编辑)。
        • 您可能已经通过在可视化图像之前潜入 255 来对图像进行归一化
        猜你喜欢
        • 1970-01-01
        • 2019-02-08
        • 2017-04-25
        • 1970-01-01
        • 1970-01-01
        • 2019-06-20
        • 1970-01-01
        • 2018-08-07
        • 2020-10-21
        相关资源
        最近更新 更多