#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()