首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于语义分割的ImageDataGenerator

用于语义分割的ImageDataGenerator
EN

Stack Overflow用户
提问于 2019-09-22 22:23:46
回答 1查看 7.1K关注 0票数 6

我正在尝试使用Keras进行语义分割,当尝试加载图像时,我使用flow_from_directory方法得到了这个错误。

代码语言:javascript
复制
Found 0 images belonging to 0 classes.
Found 0 images belonging to 0 classes.

这是我的代码。

代码语言:javascript
复制
from tensorflow.keras.applications.resnet50 import preprocess_input
from tensorflow.keras.preprocessing.image import ImageDataGenerator

data_generator = ImageDataGenerator()
train_generator = data_generator.flow_from_directory(
                                        directory="../input/Training_dataset/Images",
                                        target_size=(IMG_SIZE, IMG_SIZE),
                                        batch_size=16,
                                        class_mode=None,
                                        classes=None
                                        )

mask_generator = data_generator.flow_from_directory(
    directory="../input/Training_dataset/Masks/all",
    class_mode=None,
    classes=None,
    batch_size = 1,
    )

我已经读过这个问题,但解决方案不起作用Keras for semantic segmentation, flow_from_directory() error

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-22 23:05:48

你需要将你的图片放在一个子文件夹中,比如在image和mask目录中创建一个名为"img“的文件夹。

代码语言:javascript
复制
-- image
   -- img
      -- 1.jpg
      -- 2.jpg
-- mask
   -- img
      -- 1.png
      -- 2.png

数据生成器应该是这样的:

代码语言:javascript
复制
seed = 909 # (IMPORTANT) to transform image and corresponding mask with same augmentation parameter.
image_datagen = ImageDataGenerator(width_shift_range=0.1,
                 height_shift_range=0.1,
                 preprocessing_function = image_preprocessing) # custom fuction for each image you can use resnet one too.
mask_datagen = ImageDataGenerator(width_shift_range=0.1,
                 height_shift_range=0.1,
                 preprocessing_function = mask_preprocessing)  # to make mask as feedable formate (256,256,1)

image_generator =image_datagen.flow_from_directory("dataset/image/",
                                                    class_mode=None, seed=seed)

mask_generator = mask_datagen.flow_from_directory("dataset/mask/",
                                                   class_mode=None, seed=seed)

train_generator = zip(image_generator, mask_generator)

如果您想为语义分割模型制作自己的自定义数据生成器,以便更好地控制数据集,您可以查看我的kaggle内核,其中我使用camvid数据集来训练UNET模型。

https://www.kaggle.com/mukulkr/camvid-segmentation-using-unet

如果你需要更好的增强功能,你可以查看这个很棒的GitHub repo - https://github.com/mdbloice/Augmentor

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58050113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档