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.
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 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.
Figura 2: Pentesting con FOCA Silver Edition de Chema Alonso, Pablo González, Ioseba Palop, Enrique Rando, Rubén Alonso, Jesús Moreno y Manuel Fdz. |
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.
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.
- 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.
- 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.
- 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.
Figura 8: Ejemplo tomado de Wikipedia StyleGAN
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
Saludos,
Autor: Pedro Flores
No hay comentarios:
Publicar un comentario