Pelo, barba y arrugas: los cambios de FaceApp son en realidad muy básicos
Ágata Lapedriza, UOC – Universitat Oberta de Catalunya y David Masip Rodó, UOC – Universitat Oberta de Catalunya
FaceApp es una aplicación de móvil que está entre las más descargadas en las plataformas de Apple y Google Play y se centra en procesar imágenes faciales. La herramienta tiene múltiples funcionalidades para el retoque de imágenes.
Aunque es bastante estándar respecto al resto de apps del sector, se hizo especialmente famosa hace un año por la funcionalidad que nos envejecía. Dada una foto, la herramienta es capaz de recrear una versión simulada de cómo seríamos de ancianos, eliminando pelo y añadiendo arrugas, canas, etc.
Actualmente han desarrollado otra funcionalidad que se ha hecho viral: el cambio de género de las imágenes faciales. Dada una fotografía de una cara, la app nos enseña una más que plausible versión masculina o femenina de la persona. Pero ¿cómo funciona la aplicación internamente? ¿Qué tecnologías usa?
Inteligencia artificial aplicada a la imagen
Los autores de la aplicación son unos desarrolladores rusos que han reconocido el uso de técnicas de inteligencia artificial, particularmente deep learning. Los autores mencionan la utilización de un tipo de redes neuronales muy concreto, las redes neuronales convolucionales generativas.
Existe mucha literatura científica con abundantes resultados sobre esta tecnología, pero no se conocen los detalles concretos de la arquitectura de red que emplea la aplicación.
FaceApp destaca por su gran realismo en las transformaciones de la imagen, lo que la distingue del resto de aplicaciones comerciales.
Algoritmos que aprenden como el cerebro
Las redes neuronales no son más que unos modelos matemáticos que simulan (muy remotamente) la forma en que aprende nuestro cerebro. Generalmente, se distinguen dos fases: el entrenamiento o aprendizaje y la explotación o uso.
Las redes neuronales están formadas por millones de parámetros (o neuronas) que se modifican a medida que se realiza el entrenamiento o aprendizaje.
Durante el entrenamiento se muestra a la red un gran volumen de imágenes con etiquetas asociadas que describen sus propiedades. Por ejemplo, dada una foto, una posible etiqueta sería un valor que indique si la imagen es una cara o no. Con este gran volumen de imágenes etiquetadas, la red va ajustando sus parámetros internos para ir reconociendo cada vez mejor estas imágenes.
Para hacernos una idea de cómo funciona el proceso, podemos imaginar que estamos intentando enseñar a alguien las distintas letras del abecedario. Le podemos mostrar imágenes con las letras de forma separada y pronunciar su sonido (la “a”, la “b”, etc.) y le podemos pedir que las repita, felicitándole cuando acierta o corrigiéndole cuando comete un error.
En base a repeticiones, la persona irá asimilando el sonido (señal supervisada) correspondiente a cada letra (imagen o dato de entrada) y así aprenderá. De forma parecida, pero usando una formulación matemática, las redes neuronales aprenden a partir de los datos de entrada y una supervisión, es decir, una función de error que le marca el camino a seguir para ir acertando cada vez más.
Después de repetir muchas veces el proceso de aprendizaje mostrando a la red las imágenes etiquetadas, sus parámetros quedarán ajustados para la tarea en cuestión.
Esta red de parámetros ajustados decimos que es una red entrenada o un modelo entrenado. A partir de entonces, el modelo se puede usar para predecir lo que hay en una imagen nunca vista. Si el conjunto de datos de entrenamiento es lo suficientemente grande, diverso y representativo del mundo real, debería obtener buenos resultados.
Imágenes muy reales creadas artificialmente
En este enfoque clásico, las redes se entrenan a partir de fotografías y de una supervisión. Sin embargo, ha aparecido recientemente una nueva arquitectura de aprendizaje llamada redes generativas antagónicas (RGA) que no solamente puede hacer clasificación de imágenes, sino que también es capaz de crearlas.
En estos modelos tenemos dos tipos de redes: un generador y un discriminador. El generador se encarga de crear nuevas imágenes que son enviadas al discriminador, que tiene que decidir si la imagen que le llega es real (extraída de un conjunto de entrenamiento) o es sintética (ha sido producida por el generador).
Ambas redes compiten durante el proceso de entrenamiento. Cuanto mejor sea el generador en su trabajo, más difícil lo tendrá el discriminador para saber si las imágenes que le llegan son reales o no. Y cuanto mejor sea el discriminador, más difícil lo tendrá el generador para engañarle.
Ilustremos esta idea con un ejemplo. Imaginemos que tenemos un falsificador de cuadros (el generador en este caso) y un policía (el discriminador) que tiene que saber detectar si un cuadro es falso. Según el modelo descrito, el policía recibirá obras auténticas y obras falsificadas por el falsificador y será recompensado si realiza bien su tarea (discernir qué cuadros son falsos). El falsificador será recompensado si es capaz de crear cuadros cada vez más perfectos, que engañen al policía.
El proceso se repite muchas veces. Cada vez, el falsificador recibe una recompensa si consigue engañar al policía. Si no lo consigue, es el policía quien recibe una recompensa. Podemos entender estas recompensas como una forma de indicar al policía o al falsificador que ha hecho bien su tarea y le permite mejorar aún más su técnica.
Al final, después de muchas repeticiones, se obtiene un falsificador capaz de generar cuadros casi perfectos, y un policía entrenado para detectar prácticamente cualquier falsificación. Se trata de un aprendizaje por competición que aplicado a imágenes, como en el caso de FaceApp, produce unos resultados muy impactantes.
Las fotografías en las que se basa FaceApp
Estos algoritmos requieren gran cantidad de datos para realizar el aprendizaje. Tanto la cantidad como la calidad de los datos son componentes esenciales para la obtención de resultados realistas.
En el caso práctico de FaceApp, la red recibe una foto de entrada y el generador tiene que crear una imagen que preserve la identidad de la original (debe ser posible reconocer al protagonista de la instantánea), pero que muestre a una persona del sexo contrario. Es decir, si por ejemplo un usuario introduce la imagen de una mujer, el generador creará una imagen de un hombre que se parecerá a la mujer de la imagen inicial. Además, para el discriminador será difícil saber si la imagen creada por el generador es falsa o real.
En la funcionalidad de envejecimiento, la red recibe una foto y el generador tiene que crear una imagen que preserve la identidad de la imagen original y muestre a una persona mayor. Es decir, que un discriminador lo tenga muy complicado para diferenciar entre imágenes reales de ancianos y las creadas por el generador.
Es importante subrayar que lo único que hace esta tecnología es crear una visualización basándose en los ejemplos de entrenamiento que se han usado. Así, en el caso de cambio de género, las diferencias en la imagen seguirán patrones relativamente poco variados y probablemente estereotipados: en la masculinización de imágenes veremos a menudo transformaciones como acortar el pelo o añadir barba, mientras que en la feminización veremos a menudo que se alarga la melena.
Algo parecido pasará en el caso del envejecimiento, donde veremos que, en general, se añaden arrugas en la cara o canas en el pelo.
FaceApp no permite en ningún caso estimar de forma fiable cómo será una persona en la vejez, ni tampoco es capaz de crear imágenes ricas y variadas de hombres y mujeres. Las aplicaciones de esta tecnología no pueden ir más allá del entretenimiento.
Ágata Lapedriza, Profesora, UOC – Universitat Oberta de Catalunya y David Masip Rodó, Professor de los Estudios de Informática Multimedia y Telecomunicación, y director de la Escuela de Doctorado, UOC – Universitat Oberta de Catalunya
Este artículo fue publicado originalmente en The Conversation. Lea el original.