Как работает параметр масштабирования Keras ImageDataGenerator? - PullRequest
0 голосов
/ 27 апреля 2018

Я всегда использую этот параметр для масштабирования массива значений пикселей исходного изображения в диапазоне [0,1] и указания параметра rescale=1./255.

Тогда, когда я сделаю это:

from keras.preprocessing.image import load_img, img_to_array, ImageDataGenerator

img = load_img('val_00009301.JPEG')
img_arr = img_to_array(img)
datagen = ImageDataGenerator(rescale=1./255)
for batch in datagen.flow(img_arr, 
                            batch_size=1, 
                            save_to_dir='path/to/save', 
                            save_prefix='1_param', 
                            save_format='jpeg'):......`

Когда я проверяю каталог «путь / к / сохранить», я вижу изображение, сгенерированное классом ImageDataGenerator, полностью нормальным. Как это случилось? Я должен увидеть почти полностью черное изображение.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Я немного изменил ваш пример для построения изображения и напечатал значение в пикселях. Кажется, что изображение автоматически масштабируется обратно при построении, потому что я не заметил никакой разницы между моим входным изображением и построил один. Я предполагаю, что то же самое происходит при сохранении.

from keras.preprocessing.image import load_img, img_to_array, ImageDataGenerator
import numpy as np
from matplotlib import pyplot

img = load_img('capture102.jpg')
img_arr = np.expand_dims(img_to_array(img), axis=0)
datagen = ImageDataGenerator(rescale=1./255)

for batch in datagen.flow(img_arr, batch_size=1, save_to_dir='path/to/save', save_prefix='1_param', save_format='jpeg'):
    print(batch[0][0][0])
    pyplot.imshow(batch[0])
    pyplot.show()
    break

Печатные значения: [0.21960786 0.23529413 0.27058825]

0 голосов
/ 27 апреля 2018

Это потому, что когда вы сохраняете его на диск, array_to_img() функция изменяет масштаб , возвращая его обратно в диапазон изображений, то есть 0-255 для uint8. Подробнее см. реализацию генератора данных изображения keras .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...