viernes, octubre 29, 2021

FOCA DeepFake Detector

En el artículo anterior hemos visto una introducción a las Deepfakes y cómo es la parte técnica y la arquitectura del trabajo, donde he contado cómo se ha construido, junto con las principales herramientas utilizadas. En el artículo de hoy, veremos cómo usar el plugin para la FOCA que se ha creado para conectar las URLs que se encuentren de vídeos con el motor de detección de DeepFakes.

Figura 1: FOCA DeepFake Detector

Como se ha contado en el artículo anterior, el sistema contiene actualmente cuatro servicios, aunque una red no está entrenada todavía para este problema por lo que nos centraremos en los tres restantes. Estos servicios son: análisis de vídeos manipulados mediante un comprobación con el repositorio de Faceforensics++, detección de rostros sintéticos mediante huellas y reconocimiento de de artifacts, y por último, el uso de modelos propios subidos a TensorflwoHub. Cada uno de ellos tiene unos parámetros de entrada y salida diferentes dependiendo de las implementaciones que se han tomado como base.


Antes de entrar en materia para cada algoritmo en concreto, vamos explicar cómo cargar el plugin programa FOCA. Primero tenemos que descargar la librería DeepFakesAnalisis.dll creada en el trabajo y que se encuentra en el repositorio. Luego lo cargamos en FOCA como cualquier otra extensión. Sin embargo, necesitamos añadir otras librerías en la carpeta de FOCA para que funcione correctamente. Estas librerías son BouncyCastle.Crypto.dll y itextsharp.dll. Estas son utilizadas por nuestro plugin ya que, para cada ejecución, se crea un archivo PDF con los resultados obtenidos, URL del contenido, fecha, algoritmo, etcétera.  EL nombre de este archivo se crea a partir del algoritmo utilizado junto con la fecha y hora del análisis.

Figura 3: Necesitas descargar las siguientes tres librerías de GitHub.

Una vez tenemos funcionando FOCA y cargado el plugin, vamos a ver cómo analizar Deepfakes. El funcionamiento en cada caso es bastante sencillo. En la parte superior tenemos un selector para cada uno de los algoritmos y se nos muestra un formulario acorde con los parámetros de entrada del mismo. Los obligatorios están marcados con un asterisco.

Figura 4: Plugin de DeepFake Detector en FOCA. Selección de motores

Una vez está completo, le damos al botón de analizar. Se nos mostrará una pantalla indicando que se están realizando los cálculos. Cuando se obtenga el resultado, se mostrará un mensaje indicando si el video o imagen es fake o no y podremos volver a seleccionar un nuevo algoritmo. Los parámetros de cada uno son:
  • Faceforensics: análisis de vídeos. Una vez analizado el contenido, obtenemos los resultados junto, de manera excepcional, con unos porcentajes de confianza de la predicción. 
    • URL: dirección URL de Youtube del vídeo. Los vídeos deben de estar obligatoriamente subidos a esta plataforma para poder analizarlos ya que hacemos uso de pyTube. Es deseable que en el vídeo aparezca únicamente el rostro a analizar aunque esto lo podemos solucionar con los siguientes parámetros.
    • Frame inicial y Frame final: primer fotograma a analizar. Es de utilidad para "recortar" el vídeo y centrarnos únicamente en la parte que nos interesa analizar.
    • Modelo a emplear: referido a los pesos de la red. Hay dos posibilidades ffpp_c40.pth y ffpp_c23.pth. Por defecto se toma el primero de ellos.
Figura 5: Configuración de FaceForensics++

  • ReverseEngineering: detección de rostros sintéticos (referenciado así por lo mecanismo de ingeniería inversa que usa el paper original).
    • URL: dirección web de la imagen. No se restringe la plataforma donde debe de estar almacenada la imagen, solo debe que cumplir que la URL lleve directamente a la imagen deseada.
    • Modelo: al igual que el anterior, tenemos varios pesos de la red disponibles que son: 0_32000_model_31_70- 23.pickle, 0_32000_model_29.pickle y 0_64000_model_30.pickle. 
Figura 6: Pprocesado el vídeo, el plugin dice si es Fake o no

  • KerasIOImg: análisis de imágenes con un modelo propio.
    • URL: de la imagen.
    • Modelo: URL del modelo de TensorflowHub a emplear y que debe seguir la versión 2. Un ejemplo no específico para deepfakes puede ser este.
    • Tamaño de la imagen: tamaño de las imágenes de entrada que acepta el modelo creado.
Figura 7: Informe de todos los vídeos analizados
  • Usar LIME: obtener una imagen con las zonas de la fotografía original que han llevado al modelo a tomar una decisión u otra. En caso de querer obtenerla, una vez finalizado el análisis, se abrirá un pop-up con la dirección web de Google Storage donde se encuentra almacenada. Para copiar la URL, se puede pulsar Ctrl+C para copiar el contenido, pegarlo en el buscador y eliminar los caracteres que sobran. Un ejemplo de imagen tomando ésta de la entrada de StyleGAN en la Wikipedia es el que vemos a continuación.

Podemos ver un ejemplo práctico de su uso en el siguiente vídeo que muestra cómo cargar y analizar un vídeo. En él vamos a analizar el vídeo de la primera entrada donde aparece el Deepfake de Jenifer Lawrence y Steve Buscemi. En este ejemplo, seleccionamos un modelos de los dos disponibles para este algoritmo aunque no es obligatorio. Además, solo se han decidido analizar los primeros 20 fotogramas del vídeo para que el análisis sea más rápido.


Figura 9: FOCA DeepFake Detector demo

A modo de conclusiones, podemos ver que, utilizando herramientas de Inteligencia Artificial combinadas con las ventajas de la computación en la nube, se ha creado un sistema fácilmente escalable para detectar Deepfakes. Además, a falta de realizar una análisis más exhaustivo sobre la infraestructura necesaria para cada algoritmo, usando una aproximación sin servidor se han podido desplegar los servicios de una manera sencilla. Además, al estar disponible en forma de API, se podrían emplear en cualquier otra interfaz de usuario únicamente realizando llamadas HTTP.

Saludos,

Autor: Pedro Flores 

No hay comentarios:

Publicar un comentario