Saltar al contenido

Aumento de imágenes para el aprendizaje profundo

septiembre 23, 2021
1Kjx CunaKZ267ljICtmSsA

Aumento de imágenes para el aprendizaje profundo

Suki Lau

10 de julio de 2017·3 min de lectura

Las redes profundas necesitan una gran cantidad de datos de entrenamiento para lograr un buen rendimiento. Para construir un clasificador de imágenes potente con muy pocos datos de entrenamiento, generalmente se requiere el aumento de imágenes para mejorar el rendimiento de las redes profundas. Aumento de imagen crea artificialmente imágenes de entrenamiento a través de diferentes formas de procesamiento o combinación de procesamiento múltiple, como rotación aleatoria, cambios, cizallamiento y volteretas, etc.

Generador de datos de imagen

Un generador de imágenes aumentadas puede ser fácilly creado usando ImageDataGenerator API en Keras. ImageDataGenerator genera lotes de datos de imágenes con aumento de datos en tiempo real. Los códigos más básicos para crear y configurar ImageDataGenerator y entrenar la red neuronal profunda con imágenes aumentadas son las siguientes.

datagen = ImageDataGenerator()
datagen.fit(train)
X_batch, y_batch = datagen.flow(X_train, y_train, batch_size=batch_size)
model.fit_generator(datagen, samples_per_epoch=len(train), epochs=epochs)

Podemos experimentar con el siguiente código para crear imágenes aumentadas con las propiedades deseadas. En nuestro caso, el siguiente generador de datos genera un lote de 9 imágenes aumentadas con rotación de 30 grados y desplazamiento horizontal de 0,5.

datagen = ImageDataGenerator(rotation_range=30, horizontal_flip=0.5)
datagen.fit(img)
i=0
for img_batch in datagen.flow(img, batch_size=9):
for img in img_batch:
plt.subplot(330 + 1 + i)
plt.imshow(img)
i=i+1
if i >= batch_size:
break
close