【问题标题】:Input pipeline for semantic image segmentation (3 labels) with keras (TensforFlow backend) using flow_from_directory()使用 flow_from_directory() 使用 keras(TensforFlow 后端)进行语义图像分割(3 个标签)的输入管道
【发布时间】:2019-11-12 22:10:49
【问题描述】:

我正在使用 keras(TensorFlow 后端),我正在尝试了解如何使用 flow_from_directory 为图像分割(3 个标签)引入我的标签/掩码。

train_images 的尺寸为 (144, 144, 144) - 灰度,uint8。相应的 label_images 具有相同的尺寸,但这里的值 1 表示标签 1,值 2 = 标签 2,值 3 = 标签 3,值 0 表示未标记的像素。

由于这是语义分割,因此对图像中的每个像素进行分类需要使用逐像素的交叉熵损失函数。正如我在一些帖子中所读到的,keras(或 TensorFlow)要求我的 label_image/mask 是热编码的。因此,我希望我的 label_images 是具有 3 个通道的图像,其中每个像素将由一个二进制向量组成。示例:[0, 1, 0]。

如何处理存储为 0 的未标记像素?它们应该被编码为 [0, 0, 0] 吗?

但我无法找到答案的问题是: 如何正确重塑/单热编码我的 label_images? keras 中是否有一个方便的功能可以让我转换我的 image_labels?

from keras.preprocessing.image import ImageDataGenerator

train_datagen = ImageDataGenerator(rescale=1. / 255)
label_datagen = ImageDataGenerator(rescale=1. / 255)

train_image_generator = train_datagen.flow_from_directory(
    directory='/train_images',
    target_size=(144, 144, 144),
    color_mode='grayscale',
    classes=None,
    class_mode=None,
    batch_size=4)

train_label_generator = label_datagen.flow_from_directory(
    directory='/label_images',
    target_size=(144, 144, 144),
    color_mode='grayscale',
    classes=None,
    class_mode=None,
    batch_size=4)

train_generator = zip(train_image_generator, train_label_generator)

【问题讨论】:

    标签: python keras image-segmentation semantic-segmentation


    【解决方案1】:

    目前正在研究非常相似但有 10 个类的东西。仍然不完全存在,但至于您对 keras 的内置功能的疑问,请查看:

    one_hot_array = keras.utils.to_categorical(array_of_label_data, nb_classes)
    

    它会为您的掩码/标签数据创建一个单热向量。因此,对于您的情况,假设 100 个掩码的预期输出将是 (100, H, W, 3),其中 3 等于您正在使用的类的数量。我不确定的是你的面具中是否有背景,以及你应该如何为你的数据构建文件夹。希望对您有所帮助。

    另外,您的target_size 已关闭,这是指您的图片尺寸(例如高度和宽度)。不应该有第三个值。

    【讨论】:

    • 是的,你是对的。 to_categorical 函数就是这样做的。我发现 ImageDataGenerator 不适合 3D 图像,你必须编写自己的生成器,有一个教程 [stanford.edu/~shervine/blog/…
    猜你喜欢
    • 2019-12-20
    • 2018-01-12
    • 2017-10-04
    • 2020-09-30
    • 2019-07-19
    • 2019-01-06
    • 2020-03-11
    • 1970-01-01
    • 2021-11-19
    相关资源
    最近更新 更多