gpt4 book ai didi

python - Keras ImageDataGenerator——作为 Save_Prefix 分类?

转载 作者:行者123 更新时间:2023-11-28 18:22:22 25 4
gpt4 key购买 nike

如何在文件名中保存带有类标签的增强图像?或者,它有没有办法知道新图像属于哪个类?

编辑:

datagen = ImageDataGenerator(horizontal_flip=True, vertical_flip=True)
i = 0
for batch in datagen.flow_from_directory('data/train', target_size=
(100,100),
shuffle=False, batch_size=batch_size, save_to_dir='data/train/'):
i += 1
if i > 20: # save 20 images
break # otherwise the generator would loop indefinitely
print("Saved flipped images")

我在 data/train 中有三个类子目录。运行此命令后,我无法判断哪些图像已被增强,但我确实看到图像总数的大约三分之一已被保存。我的代码中是否缺少某些内容来指定按类命名图像,以及循环遍历每个类以创建新图像?

编辑#2:文件夹结构:data/train单独文件夹中的 3 个类:n02088364、n02096585、n02108089新创建的图像保存到 data/train,而不是单独的类文件夹。

最佳答案

如果您想将图像保存在与标签同名的文件夹下,那么您可以遍历标签列表并在循环中调用增强代码。

from tensorflow.keras.preprocessing.image import ImageDataGenerator  

# Augmentation + save augmented images under augmented folder

IMAGE_SIZE = 224
BATCH_SIZE = 500
LABELS = ['lbl_a','lbl_b','lbl_c']

for label in LABELS:
datagen_kwargs = dict(rescale=1./255)
dataflow_kwargs = dict(target_size=(IMAGE_SIZE, IMAGE_SIZE),
batch_size=BATCH_SIZE, interpolation="bilinear")

train_datagen = tf.keras.preprocessing.image.ImageDataGenerator(
rotation_range=40,
horizontal_flip=True,
width_shift_range=0.1, height_shift_range=0.1,
shear_range=0.1, zoom_range=0.1,
**datagen_kwargs)

train_generator = train_datagen.flow_from_directory(
'original_images', subset="training", shuffle=True, save_to_dir='aug_images/'+label, save_prefix='aug', classes=[label], **dataflow_kwargs)

# Following line triggers execution of train_generator
batch = next(train_generator)

那么当生成器可以直接传递给模型时为什么要这样做呢?如果您想使用 tflite-model-maker,它不接受生成器并接受每个标签的文件夹下的标签数据:

from tflite_model_maker import ImageClassifierDataLoader
data = ImageClassifierDataLoader.from_folder('aug_images')

结果

aug_images
|
|__ lbl_a
| |
| |_____aug_img_a.png
|
|__ lbl_b
| |
| |_____aug_img_b.png
|
|__ lbl_c
| |
| |_____aug_img_c.png

注意:您需要确保文件夹已经存在。

关于python - Keras ImageDataGenerator——作为 Save_Prefix 分类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44161940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com