¿Cómo el aprendizaje profundo falsifica videos (Deepfake) y cómo detectarlo?

La fabricación de fotos porno de celebridades no es nada nuevo. Sin embargo, a fines de 2017, un usuario en Reddit llamado Deepfakes comenzó a aplicar el aprendizaje profundo para fabricar videos falsos de celebridades. Eso inicia una nueva ola de videos falsos en línea. DARPA, como parte del ejército de los EE. UU., También está financiando investigaciones para detectar videos falsos. En realidad, la aplicación de IA para crear videos comenzó mucho antes de Deepfakes. Face2Face y UW "sintetizando Obama (aprendiendo la sincronización de labios a partir del audio)" crean videos falsos que son aún más difíciles de detectar. De hecho, son tan reales que Jordan Peele creó uno a continuación para advertir al público.

En este artículo, explicamos el concepto de Deepfakes. Localizamos algunas de las dificultades y explicamos formas de identificar los videos falsos. También investigamos una investigación en la Universidad de Washington para crear videos que puedan sincronizar los labios con un posible audio falso.

Concepto basico

El concepto de Deepfakes es muy simple. Digamos que queremos transferir la cara de una persona A a un video de la persona B.

Primero, recolectamos cientos o miles de imágenes para ambas personas. Construimos un codificador para codificar todas estas imágenes utilizando una red CNN de aprendizaje profundo. Luego usamos un decodificador para reconstruir la imagen. Este autoencoder (el codificador y el decodificador) tiene más de un millón de parámetros, pero ni siquiera está lo suficientemente cerca como para recordar todas las imágenes. Por lo tanto, el codificador necesita extraer las características más importantes para recrear la entrada original. Piénselo como un esbozo de crimen. Las características son las descripciones de un testigo (codificador) y un dibujante compuesto (decodificador) las usa para reconstruir una imagen del sospechoso.

Para decodificar las características, utilizamos decodificadores separados para la persona A y la persona B. Ahora, entrenamos el codificador y los decodificadores (usando propagación hacia atrás) de modo que la entrada coincida estrechamente con la salida. Este proceso lleva mucho tiempo. Con una tarjeta gráfica GPU, lleva unos 3 días generar resultados decentes. (después de repetir el procesamiento de imágenes durante más de 10 millones de veces)

Después de la capacitación, procesamos el video cuadro por cuadro para intercambiar la cara de una persona con otra. Mediante la detección de rostros, extraemos el rostro de la persona A y lo alimentamos al codificador. Sin embargo, en lugar de alimentar a su decodificador original, usamos el decodificador de la persona B para reconstruir la imagen. es decir, dibujamos a la persona B con las características de A en el video original. Luego fusionamos la nueva cara creada en la imagen original.

Intuitivamente, el codificador detecta el ángulo de la cara, el tono de la piel, la expresión facial, la iluminación y otra información que es importante para reconstruir a la persona A. Cuando usamos el segundo codificador para reconstruir la imagen, estamos dibujando a la persona B pero con el contexto de A En la imagen de abajo, la imagen reconstruida tiene personajes faciales de Trump mientras mantiene la expresión facial del video objetivo.

Fuente: Derpfakes y Wikipedia

Imagen

Antes de la capacitación, necesitamos preparar miles de imágenes para ambas personas. Podemos tomar un atajo y usar la biblioteca de detección de rostros para eliminar imágenes faciales de sus videos. Pase mucho tiempo para mejorar la calidad de sus imágenes faciales. Afecta significativamente su resultado final.

  • Elimine los marcos de cuadros que contengan más de una persona.
  • Asegúrese de tener una gran cantidad de secuencias de video. Extraer imágenes faciales contiene diferentes poses, ángulos faciales y expresiones faciales.
  • Elimine cualquier imagen de mala calidad, tintada, pequeña, mala iluminación o imágenes faciales ocluidas.
  • Un poco de parecido con ambas personas puede ayudar, como una forma de cara similar.

No queremos que nuestro autoencoder simplemente recuerde la entrada de capacitación y reproduzca la salida directamente. Recuerde que todas las posibilidades no son factibles. Introducimos la eliminación de ruido para introducir variantes de datos y entrenar al autoencoder para que aprenda de manera inteligente. El término eliminación de ruido puede ser engañoso. El concepto principal es distorsionar cierta información, pero esperamos que el codificador automático ignore esta anormalidad menor y vuelva a crear el original. es decir, recordemos lo que es importante e ignoremos las variantes innecesarias. Al repetir el entrenamiento muchas veces, el ruido de la información se cancelará y finalmente se olvidará. Lo que queda son los patrones reales que nos importan.

En nuestra imagen facial, seleccionamos puntos de cuadrícula de 5 × 5 y los alejamos ligeramente de sus posiciones originales. Utilizamos un algoritmo simple para deformar la imagen de acuerdo con esos puntos de cuadrícula desplazados. Incluso la imagen deformada puede no verse exactamente correcta, pero ese es el ruido que queremos introducir. Luego, usamos un algoritmo más complejo para construir una imagen objetivo usando los puntos de cuadrícula desplazados. Queremos que nuestras imágenes creadas se vean tan cerca como las imágenes de destino.

Un ejemplo de punto de cuadrícula 2 × 2.

Parece extraño, pero eso obliga al autoencoder a aprender las características más importantes.

Para manejar mejor diferentes posturas, ángulos faciales y ubicaciones, también aplicamos el aumento de imagen para enriquecer los datos de entrenamiento. Durante el entrenamiento, rotamos, hacemos zoom, traducimos y volteamos nuestra imagen facial al azar dentro de un rango específico.

Modelo de red profunda

Tomemos un breve descanso para ilustrar cómo puede ser el autoencoder. (Aquí se necesitan algunos conocimientos básicos de CNN). El codificador se compone de 5 capas de convolución para extraer características seguidas de 2 capas densas. Luego usa una capa de convolución para muestrear la imagen. El decodificador continúa el muestreo ascendente con 4 capas de convolución más hasta que reconstruye la imagen de 64 × 64.

Para aumentar la dimensión espacial, digamos de 16 × 16 a 32 × 32, utilizamos un filtro de convolución (un filtro 3 × 3 × 256 × 512) para mapear la capa (16, 16, 256) en (16, 16, 512) . Luego lo reformamos a (32, 32, 128).

Problemas

No te emociones demasiado. Si usa una implementación incorrecta, una configuración incorrecta o su modelo no está entrenado adecuadamente, obtendrá el resultado del siguiente video. (Mira los primeros segundos. Ya marqué el video alrededor de las 3:37).

El área facial está parpadeando, borrosa con color sangrante. Y hay cajas obvias alrededor de la cara. Parece que la gente le pega fotos en la cara por la fuerza bruta. Estos problemas se entienden fácilmente si explicamos cómo intercambiar la cara manualmente.

Comenzamos con dos imágenes (1 y 2) para 2 mujeres. En la imagen 4, tratamos de pegar la cara 1 en 2. Nos damos cuenta de que su cara es muy diferente y el recorte de la cara (el rectángulo rojo) es demasiado grande. Parece que alguien le puso una máscara de papel. Ahora, intentemos pegar la cara 2 en 1 en su lugar. En la imagen 3, usamos un recorte más pequeño. Creamos una máscara que elimina algunas de las áreas de las esquinas para que el recorte se mezcle mejor. No es genial, pero definitivamente mejor que 4. Pero hay un cambio repentino en el tono de la piel alrededor del área límite. En la imagen 5, reducimos la opacidad de la máscara alrededor del límite para que la cara creada pueda combinarse mejor. Pero el tono de color y el brillo del recorte aún no coinciden con el objetivo. Entonces, en la imagen 6, ajustamos el tono de color y el brillo del recorte para que coincida con nuestro objetivo. Todavía no es lo suficientemente bueno, pero no está mal para nuestro pequeño esfuerzo.

En Deepfakes, crea una máscara en la cara creada para que pueda integrarse con el video objetivo. Para eliminar aún más los artefactos, podemos

  • aplicar un filtro gaussiano para difundir aún más el área del límite de la máscara,
  • configurar la aplicación para expandir o contraer la máscara aún más, o
  • controla la forma de la máscara.

Si miras más de cerca a un video falso, puedes notar papadas o bordes fantasmas alrededor de la cara. Ese es el efecto secundario de fusionar 2 imágenes juntas usando una máscara. Incluso la máscara mejora la calidad, hay un precio a pagar. En particular, en la mayoría de los videos falsos que veo, la cara es un poco enterrada en comparación con otras partes de la imagen. Para contrarrestarlo, podemos configurar Deepfakes para aplicar un filtro de nitidez a la cara creada antes de la fusión. Este es un proceso de prueba y error para encontrar el equilibrio correcto entre los artefactos y la nitidez. Obviamente, la mayoría de las veces, necesitamos crear imágenes ligeramente borrosas para eliminar artefactos notables.

Incluso el codificador automático debe crear caras para que coincida con el tono de color de destino, a veces necesita ayuda. Deepfakes proporciona procesamiento posterior para ajustar el tono de color, el contraste y el brillo de la cara creada para que coincida con el video de destino. También podemos aplicar la clonación continua cv2 para combinar la imagen creada con la imagen de destino mediante el ajuste automático del tono. Sin embargo, algunos de estos esfuerzos pueden ser contraproducentes. Podemos hacer que un marco en particular se vea genial. Pero si lo exageramos, puede dañar la suavidad temporal a través de los cuadros. De hecho, el clon continuo en Deepfakes es una de las principales causas posibles de cambio. Por lo tanto, la gente a menudo se apaga para ver si se puede reducir el movimiento.

Otra fuente importante de parpadeo es que el autoencoder no puede crear caras adecuadas. Para eso, necesitamos agregar más imágenes diversificadas para entrenar mejor el modelo o aumentar el aumento de datos. Eventualmente, es posible que necesitemos entrenar al modelo por más tiempo. En los casos en que no podemos crear la cara adecuada para algunos cuadros de video, omitimos los cuadros problemáticos y usamos la interpolación para recrear los cuadros eliminados.

Señales

También podemos deformar nuestra cara creada de acuerdo con los puntos de referencia de la cara en el marco de destino original.

Así es como Rogue One deforma la cara más joven de la Princesa Leia sobre otra actriz.

Fuente

Mejor máscara

En nuestro esfuerzo anterior, nuestra máscara está preconfigurada. Podemos hacer un trabajo mucho mejor si nuestra máscara está relacionada con la imagen de entrada y la cara creada.

Presentemos las Redes Adversarias Generativas (GAN).

GAN

En GAN, introducimos un discriminador de red profunda (un clasificador CNN) para distinguir si las imágenes faciales son originales o creadas por la computadora. Cuando alimentamos imágenes reales a este discriminador, entrenamos al discriminador para reconocer mejor las imágenes reales. Cuando alimentamos las imágenes creadas en el discriminador, lo usamos para entrenar a nuestro autoencoder para crear imágenes más realistas. Convertimos esto en una carrera que eventualmente las imágenes creadas no se distinguen de las reales.

Además, nuestro decodificador genera imágenes y máscaras. Dado que estas máscaras se aprenden de los datos de entrenamiento, puede enmascarar mejor la imagen y crear una transición más suave a la imagen de destino. Además, maneja mejor la cara obstruida parcial. En muchos videos falsos, cuando la cara está parcialmente bloqueada por una mano, el video puede moverse o enterrarse. Con una mejor máscara, podemos enmascarar el área obstruida en la cara creada y usar la parte en la imagen de destino.

Aunque GAN es poderoso, se necesita mucho tiempo para entrenar y requiere un mayor nivel de experiencia para hacerlo bien. Por lo tanto, no es tan popular como debería ser.

Función de pérdida

Además del costo de reconstrucción, GAN agrega costos de generador y discriminador para entrenar el modelo. De hecho, podemos agregar funciones de pérdida de adición para perfeccionar nuestro modelo. Uno común es el costo del borde que mide si la imagen objetivo y la imagen creada tienen el mismo borde en la misma ubicación. Algunas personas también analizan la pérdida de percepción. El costo de reconstrucción mide la diferencia de píxeles entre la imagen de destino y la imagen creada. Sin embargo, esto puede no ser una buena métrica para medir cómo nuestros cerebros perciben los objetos. Por lo tanto, algunas personas pueden usar la pérdida de percepción para reemplazar la pérdida de reconstrucción original. Esto es bastante avanzado, así que dejaré que esos entusiastas lean el documento en la sección de referencia. Puede analizar aún más dónde funcionan mal sus videos falsos e introducir una nueva función de costos para abordar el problema.

Demostración

Déjame elegir algunos de los buenos videos de Deepfakes y ver si puedes detectarlos ahora. Juega en cámara lenta y presta especial atención a:

  • ¿Se vuelve demasiado borroso en comparación con otras áreas no faciales del video?
  • ¿Se mueve?
  • ¿Tiene un cambio de tono de piel cerca del borde de la cara?
  • ¿Tiene mentón doble, cejas dobles, bordes dobles en la cara?
  • Cuando la cara está parcialmente bloqueada por las manos u otras cosas, ¿se mueve o se vuelve borrosa?

Al hacer videos falsos, aplicamos diferentes funciones de pérdida para hacer videos más visuales agradables. Como se muestra en las imágenes falsas de Trump, las características de su rostro se ven cercanas a las reales, pero cambian si se miran más de cerca. Por lo tanto, en mi opinión, si introducimos el video objetivo en un clasificador para su identificación, existe una buena posibilidad de que falle. Además, podemos escribir programas para verificar la suavidad temporal. Dado que creamos caras de forma independiente a través de cuadros, deberíamos esperar que la transición sea menos fluida en comparación con un video real.

Sincronización de labios desde audio

El video realizado por Jordan Peele es uno de los más difíciles de identificar como falso. Pero una vez que miras más de cerca, el labio inferior de Obama se vuelve más borroso en comparación con otras partes de la cara. Por lo tanto, en lugar de cambiar la cara, sospecho que este es un video real de Obama, pero la boca está fabricada para sincronizar los labios con un audio falso.

Para el resto de esta sección, analizaremos la tecnología de sincronización de labios realizada en la Universidad de Washington (UW). A continuación se muestra el flujo de trabajo del papel de sincronización de labios. Sustituye el audio de una dirección presidencial semanal con otro audio (audio de entrada). En el proceso, volvemos a sintetizar la boca y el área de la barbilla para que su movimiento esté sincronizado con el audio falso.

Fuente

Primero, usando una red LSTM, el audio x se transforma en una secuencia de 18 puntos de referencia y en el labio. Este LSTM genera una forma de boca dispersa para cada cuadro de video de salida.

Modificado de la fuente

Dada la forma de la boca y, sintetiza la textura de la boca para la boca y el área del mentón. Estas texturas de boca se componen con el video de destino para recrear el marco de destino:

Fuente

Entonces, ¿cómo creamos la textura de la boca? Queremos que se vea real pero que también tenga una suavidad temporal. Entonces, la aplicación revisa los videos de destino para buscar marcos de candidatos que tengan la misma forma de boca calculada que la que queremos. Luego fusionamos los candidatos juntos usando una función mediana. Como se muestra a continuación, si usamos más cuadros candidatos para hacer el promedio, la imagen se vuelve borrosa mientras que la suavidad temporal mejora (sin parpadeo). Por otro lado, la imagen puede ser menos enterrada, pero podemos ver movimientos al pasar de un cuadro a otro.

Fuente

Para compensar el desenfoque, se realiza la mejora y el afilado de los dientes. Pero obviamente, la nitidez no se puede restaurar por completo para el labio inferior.

Fuente

Finalmente, necesitamos cambiar el tiempo del marco para saber dónde insertar la textura de la boca falsa. Esto nos ayuda a sincronizar con el movimiento de la cabeza. En particular, la cabeza de Obama generalmente deja de moverse cuando detiene su discurso.

La fila superior a continuación son los cuadros de video originales para el audio de entrada que utilizamos. Insertamos este audio de entrada en nuestro video objetivo (la segunda fila). Cuando lo comparamos lado a lado, nos damos cuenta de que el movimiento de la boca del video original está muy cerca del movimiento de la boca fabricado.

Fuente

UW utiliza marcos existentes para crear la textura de la boca. En cambio, podemos usar el concepto Deepfakes para generar la textura de la boca directamente desde el autoencoder. Necesitamos recolectar miles de cuadros y usar el LSTM para extraer las características tanto del video como del audio. Luego podemos entrenar a un decodificador para generar la textura de la boca.

Más pensamientos

Es particularmente interesante ver cómo aplicamos los conceptos de IA para crear nuevas ideas y nuevos productos, ¡pero no sin una advertencia! Los impactos sociales pueden ser enormes. De hecho, ¡no publique ningún video falso por diversión! Puede meterte en problemas legales y dañar tu reputación en línea. Analizo este tema debido a mi interés en el meta-aprendizaje y las detecciones de adversarios. Mejor usa tu energía para cosas que son más innovadoras. Por otro lado, el video falso se mantendrá y mejorará. No es mi propósito hacer mejores videos falsos. A través de este proceso, espero que sepamos cómo aplicar GAN mejor para reconstruir la imagen. Tal vez algún día, esto eventualmente pueda ser útil para detectar tumores.

Como otra precaución, tenga cuidado con las aplicaciones que descarga para crear videos Deepfakes. Hay informes de que algunas aplicaciones secuestran computadoras para extraer criptomonedas. Sólo sé cuidadoso.

Listado de otros artículos

Referencia

Sintetizar Obama: Aprendizaje de sincronización de labios a partir de audio

Clonación perfecta

Pérdidas perceptivas

Créditos

Créditos fotográficos (pañuelo, mujer)