Вопрос о том, что происходит с target в Keras imagedatagenerator.flow(изображение, цель)

#tensorflow #machine-learning #keras

#tensorflow #машинное обучение #keras

Вопрос:

Мое изображение имеет передний и задний план, а моя цель — пиксельная классификация моего изображения (0 и 1). Я хочу использовать ImageDataGenerator для сдвига / масштабирования / переворачивания этих пар изображение — цель, чтобы у меня было больше обучающих данных. Если я выполняю imagedatagenerator.flow (image, target), будет ли моя цель уменьшена / увеличена так же, как изображение? Если значение центра выборки равно true, центрируется ли и целевое значение? Спасибо!

Комментарии:

1. четко объясните свой вопрос, желательно с указанием части кода и ошибок.

Ответ №1:

tf.keras.preprocessing.image.ImageDataGenerator используется для генерации изображений из данного изображения по заданным спецификациям целевых изображений. Пример вы можете выполнить переворот / сдвиг / масштабирование / изменение высоты / ширины, чтобы получить изображения.

Получите спецификацию целевого изображения и передайте их в библиотеку ImageDataGenerator для создания требуемого типа изображения.

Приведенный ниже пример кода может вам помочь.

 import tensorflow as tf
image = tf.keras.preprocessing.image.load_img('2.jpeg')
datagen = tf.keras.preprocessing.image.ImageDataGenerator(rotation_range=40,
                                                          width_shift_range=0.2,
                                                          height_shift_range=0.2,
                                                          rescale=1./255,
                                                          shear_range=0.2,
                                                          zoom_range=0.2,
                                                          horizontal_flip=True,
                                                          fill_mode='nearest')
image.getpixel
image_array = tf.keras.preprocessing.image.img_to_array(image)
image_array = image_array.reshape((1,)   image_array.shape)
count = 0
for batch in datagen.flow(image_new, batch_size=1, save_to_dir ='images_gen' , save_prefix='cat', save_format='jpeg'):
  count  =1
  if count==10:
    break
 

#показать входное изображение

 import matplotlib.pylab as plt
image = plt.imread('2.jpeg')
plt.imshow(image)
plt.show()
 

введите описание изображения здесь

#показать изображение после ImageDataGenerator

 import matplotlib.pylab as plt
image = plt.imread('images_gen/cat_0_2229.jpeg')
plt.imshow(image)
plt.show()
 

введите описание изображения здесь