Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DE QUITO
Colegio de Ciencias e Ingenierı́as
11 de diciembre de 2021
Índice
1. First Order Motion Model for Image Acquisition 2
1.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Trabajo Relacionado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1. Generación de Vı́deo . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2. Animación de Imágenes . . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Método . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.1. Transformaciones Locales Afines para Descripción Aproximada del
Movimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.2. Generación de Imágenes conscientes de la Oclusión . . . . . . . . 5
1.3.3. Pérdidas en entrenamiento . . . . . . . . . . . . . . . . . . . . . . 5
1.3.4. Etapa de Prueba: Transferencia de movimiento relativo . . . . . . 5
1.4. Experimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2. Artı́culos Relacionados 6
2.1. A Variatonal U-Net for Conditional Appearnce and Shape Generation . . 6
2.2. GANprintR: Improved Fakes and Evaluation of the State of the Art in
Face Manipulation Detection . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3. FSGAN: Subject Agnostic Face Swapping and Reenactment . . . . . . . 7
2.4. Make a Face: Towards Arbitrary High Fidelity Face Manipulation . . . 7
2.5. High-Resolution Image Synthesis and Semantic Manipulation with Condi-
tional GANs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.6. Face2Face: Real-time Face Capture and Reenactment of RGB Videos . . 8
3. Software: Instagram-DeepFake-Bot 8
3.1. Funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2. Caracterı́sticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3. Análisis del código . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Referencias 12
1
1. First Order Motion Model for Image Acquisition
1.1. Introducción
Si nos imaginamos en una manera de poder animar a una imágen de la manera que
deseemos, las aplicaciones pueden ser infinitas. También pueden ser utilizadas para fines
destructivos, pero en definitiva este avance representa un punto de partida para diversas
aplicaciones futuras.
Las redes generativas adversarias, han logrado el punto de partida por el cual podemos
entrenar diferentes redes neuronales que compitan para mejorar la una a la otra. De esta
manera evitamos la supervisión directa y pasamos a una supervisión guiada que mejora.
De esta manera ya se ha podido, junto con los auto codificadores variacionales transferir
patrones de movimiento o expresiones faciales.
El problema principal es que esto ha sido aplicado con modelos pre-entrenados por
lo que están especificados para una tarea en especı́fico. Se puede realizar este tipo de
modelos con caracterı́sticas ´preestablecidas para un objeto en sı́. Este algoritmo toma
los puntos claves más significativos para realizar el repsectivo entrenamiento.
En cuanto a generación de vı́deo, existen redes recurrentes que junto con autocodi-
ficadores variacionales se encargan de hacer la predicción de cuadros de vı́deos. Existe
también la idea de una red generativa adversaria que se encargue de realizar esta pre-
dicción. En la manera más simple, se utiiza la deformación de la imágen para generar el
nuevo cuadro.
El enfoque del paper principal en sı́ se trata de realizar esta deformación (warping)
de las imágenes de los cuadros pero no para realizar una predicción, sino para trasladar
el movimiento de un video de entrada.
Los métodos de animación de imágenes se basan en el hecho de que se tiene una base
firme sobre las caracterı́sticas del objeto. En el caso de caras, los que se llega a hacer para
que estas puedan ser transferidas a un vı́deo recae en un modelo de tres dimensiones de
la cara que puede ser utilizada como una máscara para la transferencia de movimiento.
En otros casos se tiene que tener información semántica especı́fica de cada individuo
para que una red generativa adversaria se encargue de realizar la transferencia, pero
deberı́a ser re-entrenada para individuos diferentes.
Existen otras aplicaciones en las cuales no se necesita saber mucho sobre el objeto en
sı́, como la X2Face y la Monkey-Net. En la primera, se necesita que el objeto esté puesto
en poses establecidas para realizar la deformación según el movimiento al que se quiera
2
transferir. En el caso de la segunda, se tiene una red que utiliza el movimiento de puntos
clave para transferir movimiento en una manera auto-supervisada.
1.3. Método
En este caso, queremos animar una imagen comparándola con el movimiento, o se-
cuencia de patrones presentados en imágenes similares. De forma escueta podrı́amos decir
que a un vı́deo lo dividimos en distintas imágenes y estas las comparamos con la imagen
estática que queramos.
El framework utilizado en este proyecto consta con dos partes o módulos, el modulo
de estimación de movimiento (MEM) y el modulo de generación de la imagen(MGI).
Cada uno, como su nombre lo indica, tienen un propósito diferente el MEM predice un
campo de movimiento denso del vı́deo (D) a el cuadro base (S) o la imagen que queremos
proyectar dicho campo será luego modelado por una función la cual mapea cada pı́xel del
campo a el cuadro base. Esta función de modelación se la expresa de la siguiente manera:
TS←D : R2 → R2
EL MEM tiene dos pasos principales en su ejecución, primero se aproxima las trans-
formaciones de las trayectorias de los puntos claves de las imágenes en movimiento, en
este caso los puntos clave son obtenidos mediante un algoritmo de aprendizaje supervi-
sado. Los puntos clave de la imagen son movidos conforme a los puntos clave del vı́deo
que deseo imitar. Se modela a su vez, en una vecindad de cada punto usando una trans-
formación local afı́n, la ventaja de utilizar esta transformación es que se puede modelar
una gran cantidad te transformaciones. Al final del proceso se obtiene el lugar donde se
encuentran los puntos claves al igual que los parámetros para cada transformación afı́n.
Una vez finalizado este paso, se procede a utilizar una dense motion network, la cual tiene
como propósito el combinar las aproximaciones locales, como output se obtiene un cam-
po denso de movimiento (T̂ ), esta network también tiene como output una mascara de
oclusión (Ô) la cual indica que partes D pueden ser reconstruidas por la imagen estática.
Para finalizar el MGI da como output el vı́deo de la imagen estática con los puntos
claves y demás.
En este caso vamos a asumir que existe un cuadro de referencia abstracto (R) el
cual nos permita aproximar TS←D con TS←R y TR←D . Considérese pues un cuadro X el
cual pueda ser aproximada cada una de sus transformaciones en una vecindad de puntos
claves, dicha transformación serı́a TX←R , con esta transformación se puede considerar una
expansión de Taylor en k puntos clave (p1 , ..., pk ) donde cada pi representa las coordenadas
de los puntos de referencia en el cuadro R.
3
En consecuencia se puede obtener la siguiente formula para la transformación de R
hacia X:
d
TX←R (p) = TX←R (pi ) + TX←R (p)|p = pi (p − pi ) + o(||p − pi ||)
dp
Esta formula es para todo punto clave pi , notese que se calcula el Jacobiano de la
transformación actuando en estos puntos. En consecuencia podrı́amos aproximar esta
transformación de la siguiente manera:
d d
TX←R (p) ≃ TX←R (p1 ), TX←R (p)|p = p1 , ... , TX←R (pk ), TX←R (p)|p = pk
dp dp
−1
TS←D = TS←R ◦ TR←D = TS←R ◦ TD←R
−1
d d
TS←R (z) ≈ TS←R (pi ) + TS←R (p)|p = pi TD←R (p)|p = pi (z − TD←R (pi ))
dp dp
Luego se debe utilizar una red convolucionaria P para aproximar T̂S←D los borde
y texturas de la transformación pueden ser alineados con D pero no con S, esto causa
entonces que la predicción sea difı́cil de obtener. Para reducir errores se hace una trans-
formación local en S, es va a terminar con K imágenes S alineadas con los puntos claves
de la transformación en una vecindad.
Para que la red entienda las transformaciones, se debe calcular los mapas de calor
(heatmaps), estos mapas deben ser calculados en cada punto clave, es decir vamos a
tener K mapas (Hk ), en consecuencia se puede decir lo siguiente:
K
X
T̂S←D (z) = M0 z + Mi (TS←R (pi ) + Ji (z − TD←R (pi )))
i=1
4
Sea:
−1
d d
Ji = TS←R (p)|p = pi TD←R (p)|p = pi
dp dp
I
X
Lrec (D̂, D) = |Ni (D̂) − Ni (D)|
i=1
TS1 ←St (z) ≈ TS1 ←R (pi ) + Ji (z − TS←R (pi ) + TD1 ←R (pi ) − TDt ←R (pi ))
Sea:
−1
d d
Ji = TD ←R (p)|p = pi TD ←R (p)|p = pi
dp 1 dp t
5
1.4. Experimentos
Existen diferentes bases de datos con las que la red neuronal ha sido entrenada para
transferir movimiento en diferentes contextos por el hecho de que se puede aplicar a
diferentes objetos, poses y contextos. Estas bases de datos incluyen a VoxCeleb, UvA-
Nemo, BAIR, Tai-Chi-HD.
El método de evaluación de los resultados se basa en reconstruir el vı́deo de entrada
desde una representación donde se desacoplan la apariencia y el movimiento.
Las metricas para medir la validez de los resultados son: la distancia promedio, la
distancia promedio entre los puntos clave, la tasa de pérdida de los puntos clave y la
distancia euclidiana promedio.
Se compara el modelo con un modelo base del que se entrena con las especificacio-
nes más simples. Después se incrementa la complejidad del modelo para tener mejores
resultados.
En comparación con el estado del arte, esto siendo los modelos X2Face y Monkey-Net,
esta investigación mejora la transferencia de movimiento de manera en la que no se ve
una deformación de la imagen, sino una correcta transferencia de movimiento relativo de
puntos claves entre la imágen objetivo y el video de entrada.
1.5. Conclusiones
El presente modelo de animación de imágenes se basa en el establecimiento de ’puntos
claves’ en matrices de datos y transformaciones afines locales alrededor de los mismos.
Para lograrlo se realiza una aproximación de Taylor de primer orden sobre la estructura
matemática definida sobre el dataset. Con ello, el movimiento se puede describir como
desplazamientos diferenciales de los llamados puntos claves. La animación se estructura
de tal manera que una red generadora asocia los puntos claves con los de una imagen
de origen tratando de recrear el video de conducción. Además, se propone un sistema
para inferir imágenes que son ocultas. El modelo en general es evaluado cualitativa y
cuantitativamente y se obtienen resultados con ı́ndices de performance más altos que
software libre de animación conocidos como X2-Face o Monkey-Net. (Siarohin, 2018)
2. Artı́culos Relacionados
2.1. A Variatonal U-Net for Conditional Appearnce and Shape
Generation
Este paper nos da la idea de utilizar un U-Net, no secuencial, que preserva las carac-
terı́sticas de la imágen orginal y a la salida nos puede dar una imagen completamente
nueva con las mismas caracterı́sitcas que la anterior, pero con detalles de otra. Podemos
generar objetos, imágenes, individuos en un entorno conocido. Las aplicaciones son varias
y pueden ser utilizadas para fines no éticos.
6
2.2. GANprintR: Improved Fakes and Evaluation of the State
of the Art in Face Manipulation Detection
Los algoritmos en el estado del arte de la sı́ntesis de caras gracias a redes adversarias
generativas dan resultados completamente realistas pero aún pueden ser detectados como
falsas por la red. Esto se da gracias a que en el proceso de auto-codificadores, se genera
un rostro con una ”huella digital”. Este modelo propone la remoción de esta ”huella
digital”para que la nueva red neuronal no pueda reconocerla como falsa. De esta manera
se incrementa la dificultad de la red adversaria generativa para poder tener una mejor
detección de rostros falsos.
7
momento de un análisis de vı́deo y edición del mismo, sino que puede verse como una
mejora de cierta forma de Photoshop.
3. Software: Instagram-DeepFake-Bot
3.1. Funcionamiento
Este bot de Instagram permite la creación de deep-fakes cuando se le escribe un
mensaje al buzón privado de mensajes del usuario @deepf ake.maker.
Figura 1: Mensaje de inicio del bot. Pide un rostro que funciona como imagen de origen
8
Figura 2: Luego se pide un video de conducción
3.2. Caracterı́sticas
Este software utiliza justamente el algoritmo que se presenta en el paper ’First Or-
der Motion Model for Image Animation’ y los rostros son reajustados con el método
9
’Ultra-Light-Fast-Generic-Face-Detector’. Este segundo algoritmo es realmente interesan-
te porque permite el uso de una aplicación que solamente pesa 1 MB, esto en tiempos de
ejecución en smarthpones es realmente útil y en aplicaciones web también lo es.
El bot es de código libre entonces se puede acceder al código del mismo, el cual se
basa netamente en Python y se encuentra en un repositorio público en Github.
10
Figura 7: Extracto de clase Sender
Posterior a ello tenemos 3 programas más: Api.py, animate.py, deepf ake.py. Api.py
establece el programa que permite que Instagram corra el programa del bot. deepf ake.py
utiliza los algoritmos del paper ’First Orde Motion Model for Image Animation’ para
registrar y procesar la imagen de origen y el video conductor y luego crea los frames del
viedo. animate.py en cambio tiene los algoritmos para la creación y almacenamiento de
la animación.
11
Referencias
Siarohin, A. . e. (2018). First order motion model for image animation. Conference on
Neural Information Processing Systems, 1–9.
12