Editor de Morphing

El Editor de Morphing nació con el deseo de programar una aplicación vistosa

El efecto elegido es el de Morphing que había visto hacía muchos años en una demostración de DOS del grupo español Iguana

Descripción

Con la aplicación podrás:

  • Elegir una lista de fotos con las caras que deseas transformar.
  • Insertar automáticamente una triangulación con 68 puntos reconocidos de tu cara
  • Ajustar la triangulación adaptada a cada una de las caras.
  • Crear el vídeo de morphing (vídeo de transición de una cara a otra).

Características generales:

  • Multi-idioma
  • Multi-resolución (zoom configurable)
  • Opción de modo oscuro
  • Notificación de nueva versión
  • Manual de usuario

Descripción del código

Algoritmo a alto nivel:

  • Partiendo de una triangulación (la misma en todas las imágenes)
  • Pero con los vértices de los triángulos adaptados a las particularidades de cada cara
  • El efecto de morphing, se crea haciendo una transición de la triangulación de una imágen a la de la imagen siguiente, haciendo a la vez un fundido de la imagen de cada triángulo

Triangulación de Delaunay:

  • Se hace uso de una librería profesional de triangulación incremental de Delaunay que traduje a Java de una implementación en C++ que encontré en internet, cuyo algoritmo lo idearon investigadores del tema.
  • Función añadida (porque la necesitaba): opción de revertir la inserción del último vértice, cosa que viene como anillo al dedo para que el usuario tenga un vértice tentativo al vuelo, hasta que lo formalice en la triangulación (demo).
  • Función añadida (superinteresante): poder definir el dominio inicial con forma de rectángulo, en lugar de con un triángulo (cosa no trivial, por lo menos con mi background!!).
  • Función añadida para recorrer los triángulos de la triangulación con el patrón de diseño Visitor.

Funciones interesantes creadas:

  • Algebra básica: Transformación de las coordenadas de un punto interior a un triángulo, a las coordenadas dentro de otro triángulo, conociendo los vértices de ambos triángulos
  • Matemática básica: Recorrer los pixels de un triángulo, con el patrón de diseño Visitor.
  • Opción multi-hilo para crear la secuencia de vídeo.


Con la versión v1.1, se facilita mucho al usuario la creación de la triangulación, ya que se puede hacer uso de una librería de detección de caras con I.A., que se invoca por API rest a un servidor propio en la nube.

Gracias a esa librería, podemos partir de una triangulación con los 68 vértices detectados de cada cara, y podemos seguir añadiendo vértices, si lo consideramos necesario.

Pantallas

Editor de Morphing v1.0 (2022)

Vídeo creado
Vídeo demo
Descargar

Editor de Morphing v1.1 (2023-2024)

Vídeo creado
Vídeo demo
Descargar

Versiones

image

La idea de esta aplicación viene de hace mucho tiempo.

Cuando era joven ya era aficionado a la programación, y me gustaba ver las demos que preparaban muchos equipos de programadores para las distintas competiciones de demos que había alrededor del mundo.

Muchos efectos de las demos eran espectaculares, teniendo en cuenta la potencia de los ordenadores de la época.

Una vez vi una demo de un grupo español en la que había un efecto de morphing: los componentes del equipo se iban transformando de uno a otro, y al final, el último se transformaba en una iguana (el grupo se llamaba Iguana).

Un efecto muy vistoso …

Con los años le he estado dando vueltas a como realizar ese efecto, y al final os presento el esta aplicación la solución que propongo para lograrlo.

Hay un manual que explica paso a paso como funciona la aplicación.

Vídeo de demostración

Vídeo creado con la aplicación

image

Justo tras haber cursado el máster de inteligencia artificial, hay ganas de introducir elementos de IA en mi proyecto personal.

Esta vez haciendo uso de una librería de detección de caras ya madura.


Con esta nueva versión, se intenta facilitar la tarea al usuario, añadiendo herramientas que permiten crear mallas con más soltura

Más concretamente, se incluye una librería que detecta caras en imágenes (dlib-68 face landmarks), que retorna 68 vértices de cada una de las caras detectadas


Con esta nueva información, la aplicación permite:

  • insertar los 68 vértices detectados, con un solo click
  • posicionar con más exactitud los vértices en las caras nuevas

Y se puede comprobar que con esta mejora se pueden crear proyectos de Morphing de una forma mucho más ágil.

De esta forma, por ejemplo, se puede crear un efecto interesante con cuatro fotos en menos de 20 minutos, cuando con la versión anterior podías tardar por lo menos dos horas


Hay un manual de usuario que explica paso a paso como usar la aplicación.

Video de demostración

Video creado con la aplicación

Vídeos

Descargas