November 25, 2022
Las imágenes sintéticas son todas aquellas imágenes creadas por procesos informáticos, que van desde el logo de una empresa hasta la representación de una ciudad imaginaria. Actualmente gran parte de las imágenes que se encuentran en internet son creadas de manera artificial, es decir, no son fotografías o dibujos, sino que son creadas completamente en un computador.
En este artículo presentaremos las nuevas actualizaciones de la librería de Python Flip, la cual está diseñada para la creación de imágenes sintéticas, específicamente se mostrará un ejemplo para aumentar la cantidad de imágenes en el dataset “dogs-cats-horses-humans-dataset” presentado en Kaggle y comparar el resultado de las imágenes creadas con las imágenes originales.
Para ello, se tomarán 2 imágenes de caballos con su respectiva segmentación realizada en la plataforma de LinkedAI y se extraerán los objetos a partir del código presentado en crop_image_from_mask.ipynb como se muestra a continuación:
Posteriormente, se tomó una imagen de una pradera y una imagen de un desierto para que sean los futuros fondos de las imágenes creadas.
Dentro de las actualizaciones de la librería se encuentran múltiples transformaciones que permitirán crear bastantes imágenes a partir de los objetos obtenidos anteriormente, algunas de ellas son:
Siguiendo el ejemplo presentado en el repositorio y utilizando el archivo de data_generator.py, se le pidió al algoritmo que utilizara el color ‘gray’ para obtener los objetos en escala de grises, que realizara flip sobre el eje ‘y’, un random resize entre 0.2 y 0.7 también se tomó valores de contraste de 0.8 y de saturación de 1.4. Adicionalmente, en cada una de las transformaciones se colocó el parámetro ‘force’ en falso para permitir aleatoriedad a la librería de aplicar o no las transformaciones y se delimitó el espació de los objetos entre el 0.5 y 1 del eje ‘y’ para que los caballos quedaran cerca del suelo.
Por otra parte, se utilizó el ruido de ‘avg_blur’ en los fondos y un valor de brillo de 1.2 en la imagen creada para generar mayor variedad en las imágenes finales, como se observa en las siguientes líneas de código:
Obteniendo imágenes como las que se muestran a continuación, que a simple vista parecen caballos ubicados sobre el piso de los fondos que se escogieron, algunos más cerca que otros y de diferentes colores:
Comparándolas con las imágenes originales del dataset se observa que Flip logra imágenes bastante cercanas a las originales y se concluye que es una herramienta muy útil para la creación de imágenes sintéticas, como se observa a continuación:
Por otra parte, para este caso en específico se utilizó un solo objeto sobre el fondo y transformaciones realistas, no obstante, Flip permite crear imágenes con más de un objeto y transformaciones que permiten crear imágenes completamente aleatorias con múltiples ruidos, objetos, recortes de las imágenes y entre otras transformaciones bastante utilizadas para el proceso de “Data Augmentation” en diferentes proyectos de visión por computador como se observa en la documentación del repositorio.
Finalmente, este proceso también se puede realizar con máscaras de segmentación y bounding boxes como se muestra en “How to create your own Synthetic Data- for computer vision applications” y “Creating Synthetic Images with Flip” respectivamente.
Puede observar el código completo en el repositorio de GitHub de la librería.
Copyright © 2024 Linked AI, Inc. All rights reserved.