Viendo esta demostración me quedé muy sorprendido. En conversaciones de chat hemos visto muchas veces que es posible mostrar la cara de otra persona al poner la webcam, pero era haciendo uso de un video pre-grabado. Sin embargo es la primera vez que veo una demostración en tiempo real donde muestras tu rostro por la cámara web y éste toma la cara de otra persona que has tomado de una imagen previamente cargada.
Usar la cara de otra persona en la webcam
¿Se imaginan? Bien a lo Misión Imposible, pero este efecto es real. Podemos ver en este video cómo se logra una transformación en tiempo real del rostro de una persona, en el video aparece un joven de nombre Arturo Castro, que hace gestos luego de unos segundos de logrado el reconocimiento facial.
Se diagraman algunos puntos a nivel del programa, que identifica la nariz, el mentón y los ojos, para luego poner la imagen proyectada sobre la cara del sujeto, a modo de una imagen superpuesta. Es una especie de superposición en 3D, un enmascaramiento del rostro real de la persona que aparece en la cámara de video.
Aunque se podría creer que se necesitaron avanzados conocimientos o el emprendimiento de una compañía importante, no es así, simplemente muchas ganas e ingenio mental, sin restarles méritos por el evidente conocimiento técnico. Esto fue posible usando el ofxFacetracker de Kyle McDonald’s y la librería FaceTracker de Jason Saragi, un API en C/C++ que permite el alineamiento y seguimiento de rostros en tiempo real.
Castro también utilizó el código image clone de Kevin Atkinson para hacer esto posible, de quien además tomó la idea de hacer esto posible, aunque afirma que solo fue posible al sustituir su rostro por rostros humanos, pues con caricaturas los resultados no fueron buenos. Será cuestión de irlo mejorando… total, es un primer intento.