问题描述
我想一起变换图像和遮罩。我在tensorflow教程ImageDataGenerator中使用了相同的示例。
这是我的代码:
from tensorflow.python.keras.preprocessing.image import ImageDataGenerator
import tensorflow as tf
def trainGenerator(images_dir,heatmap_dir,image_aug_dict,heatmap_aug_dict,batch_size,image_size=(480,640),heatmap_size=(60,80),random_seed=None):
"""
Generate image and heatmap at the same time.
Use the same seed for image_datagen and heatmap_datagen to ensure the transformation for image and
heatmap is the same.
:param image_X:
:param heatmap_Y:
:param aug_dict:
:param image_color_mode:
:param target_size:
:param random_seed:
:return:
"""
image_datagen = ImageDataGenerator(**image_aug_dict)
heatmap_datagen = ImageDataGenerator(**heatmap_aug_dict)
image_generator = image_datagen.flow_from_directory(directory=images_dir,class_mode=None,batch_size=batch_size,target_size=image_size,save_to_dir='./augmentations/images',save_prefix='aug',seed=random_seed)
heatmap_generator = heatmap_datagen.flow_from_directory(directory=heatmap_dir,save_to_dir='./augmentations/masks',target_size=heatmap_size,color_mode='rgb',seed=random_seed)
train_generator = zip(image_generator,heatmap_generator)
return train_generator
img_imgs_dict = dict(rescale=1 / 255.,rotation_range=90,brightness_range=[0.2,0.8],fill_mode='constant',)
img_mask_dict = dict(rescale=1 / 255.,fill_mode='constant')
train_gen = trainGenerator(images_dir='images',heatmap_dir='masks',image_aug_dict=img_imgs_dict,heatmap_aug_dict=img_mask_dict,batch_size=3,heatmap_size=(480,random_seed=10)
for x,y in train_gen:
print(x.shape,y.shape)
我说这会生成正确的图像和蒙版。但是,旋转根本不一样!!
我试图修复seed=integer value
或tf.random.set_seed(int)
,但都给出了相同的错误结果。
有人遇到过这个问题吗?
我通过将这3张图像复制到图像和masks文件夹中来使用它们:
结果:
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)