web-dev-qa-db-fra.com

Redimensionnement des images dans les méthodes de flux de Keras ImageDataGenerator

La classe Keras ImageDataGenerator fournit les deux méthodes de flux flow(X, y) et flow_from_directory(directory) ( https://keras.io/preprocessing/image/ ).

Pourquoi le paramètre

taille_base: ensemble de nombres entiers, valeur par défaut: (256, 256). Les dimensions auxquelles toutes les images trouvées seront redimensionnées

Fourni uniquement par flow_from_directory (répertoire) ? Et quel est le moyen le plus concis d’ajouter le remodelage des images au pipeline de prétraitement en utilisant flow (X, y) ?

5
user1934212

flow_from_directory(directory) génère des images augmentées à partir d'un répertoire avec une collection arbitraire d'images. Il faut donc utiliser le paramètre target_size pour créer toutes les images de la même forme.

While flow(X, y) augmente les images déjà stockées dans une séquence en X qui n’est autre que la matrice numpy et peut être facilement prétraité/redimensionné avant de passer à flow. Donc, pas besoin de paramètre target_size. En ce qui concerne le redimensionnement, je préfère utiliser scipy.misc.imresize plutôt que PIL.Image resize, ou cv2.resize car il peut fonctionner sur des données d’image numpy.

import scipy
new_shape = (28,28,3)
X_train_new = np.empty(shape=(X_train.shape[0],)+new_shape)
for idx in xrange(X_train.shape[0]):
    X_train_new[idx] = scipy.misc.imresize(X_train[idx], new_shape)
6
indraforyou
X_data_resized = [skimage.transform.resize(image, new_shape) for image in X_data]

à cause de ce code est maintenant amorti ...

0
neuroscitech