domingo, julio 10, 2022

DeepFakes: Detección mediante Redes Neuronales Convolucionales (CNN) & Gaze Tracking

Los DeepFakes siguen estando a la orden del día gracias a los constantes avances en las técnicas de tratamiento de imágenes y biometría facial, tal y como podéis leer en el artículo de "Una historia de Blade Runners & Virtual Replicants", donde se hace un recorrido por las técnicas de creación y detección de DeepFakes. Cada vez son más las aplicaciones que permiten jugar con esta tecnología para pasar un rato entretenido intercambiando nuestras caras, o las que permiten utilizar técnicas de DeepFake profesional en la producción de contenido de televisión, series o cine. 

Figura 1: DeepFakes: Detección mediante Redes Neuronales
Convolucionales (CNN) & Gaze Tracking

Un ejemplo de este acercamiento es la reaparición de Lola Flores en la última campaña de Cruzcampo, “Con Mucho Acento”. Este auge del DeepFake trae consigo una parte negativa y es que, como se veía venir, los ataques que se sirven de esta tecnología son una realidad, especialmente en el plano de propagación de Fake News o en campañas de ingeniería social, como la noticia de The Guardian del año pasado en la que se exponía que distintos miembros del Parlamento Europeo fueron víctimas de un ciberataque realizado con DeepFakes.


Figura 2: Proceso de elaboración del DeepFake a Lola Flores

El caso más reciente de estas características es el del ataque de DeepFake contra Volodímir Zelenski, en plena guerra de Ucrania, en el que se observa a este presidente pidiendo la rendición de su pueblo ante Rusia. Este ciberataque, considerado el primer DeepFake utilizado en un conflicto armado, fue rápidamente detectado y desmentido, pero son casos como este los que evidencian la necesidad actual que tenemos de ser capaces de detectar estos ataques.


Los DeepFakes suelen generarse mediante redes GAN, de las que ya se habla desde hace unos años. Sin embargo, este no es el único punto en el ciclo de vida de un DeepFake en el que están presentes las redes neuronales. Uno de los enfoques de detección que más fuerza está cogiendo es el empleo de redes neuronales convolucionales (CNN) en procesos de aprendizaje supervisado. 

Figura 4: Libro de Machine Learning aplicado a Ciberseguridad de
Carmen TorranoFran Ramírez, Paloma Recuero, José Torres y Santiago Hernández

Para quedarnos con una idea simplificada, las CNN tienen una estructura similar a las redes neuronales multicapa, pero utilizan un esquema de conectividad local mediante las llamadas “convoluciones”. Esta conectividad local permite reducir el número de conexiones entre neuronas y el tamaño de la red. Además, en el caso de aplicarse contra imágenes (como ocurre con los DeepFakes), permite realizar un filtrado sobre las mismas.

Figura 5: Estructura simplificada de una CNN

La obtención de características más relevantes (las que nos ayudarán a decidir si una imagen es un DeepFake o no) se consigue con la sucesión de varias capas de dos tipos: de convolución y de pooling.

La capa convolucional es la verdadera encargada de extraer estas características de la imagen de entrada: esto se consigue mediante la superposición de una pequeña matriz de pesos llamada kernel, que se aplica contra grupos de píxeles vecinos en la imagen original y genera una nueva imagen mediante el cálculo del producto escalar píxel a píxel.

Figura 6: Convolución

Como en una convolución se suelen aplicar varios kernels distintos y la dimensionalidad de la red puede ser muy elevada, se aplican capas de pooling para reducirla un poco. Un ejemplo es el max pooling, donde de cada 4 píxeles se selecciona solo el mayor para que pase a formar parte de la nueva imagen generada.

Figura 7: Operación de max pooling

Esta sucesión de capas hace que las CNN sean muy efectivas a la hora de resolver problemas con imágenes, como es el caso. 
Otro punto importante a tener en cuenta en este artículo es la región del DeepFake en la que nos vamos a centrar. Varios estudios recientes señalan que es en la región de los ojos donde peor se superpone el DeepFake y, por ende, donde mejor se detecta. Las técnicas, se basan en hacer "Gaze Tracking" y saber si tiene sentido la mirada de las DeepFakes.


En este caso hemos usado algunos vídeos provistos en el reto DeepFake Detection Challenge de Kaggle para generar y entrenar un sistema de detección capaz de “reconocer un DeepFake por los ojos”, mediante una CNN con 5 convoluciones.

Figura 10: Esquema simplificado de la CNN utilizada

No vamos a entrar en el detalle de la red porque daría para un post aparte, pero con la arquitectura ilustrada en la Figura 10 y utilizando 1.460 archivos para entrenar la red, se obtiene un accuracy (porcentaje de aciertos global) del 0.9760 en la fase de entrenamiento y del 0.9466 para la fase de test, con 206 archivos. Además, la especificidad o tasa negativa real (TNR) es del 0. 9612, es decir, que la red neuronal propuesta es capaz de detectar el 96% de DeepFakes que le llegan, aunque no haya visto nunca esas caras.


Figura 11: BladeRunners & Virtual Replicants con DeepFakes

Aunque en este artículo solo se expone una pequeña aproximación al problema, sin duda merece la pena seguir investigando en esta línea: las CNN han demostrado ser un modelo computacional muy capaz de hacerle frente a los cada vez más temidos DeepFakes. Os dejo la charla de Chema Alonso sobre Blade Runners & Virtual Replicants por si os animáis a empezar a estudiar en este campo.

Un saludo,

No hay comentarios:

Entrada destacada

eXtreme Programming (XP) como catalizador del proceso de entrega continua de valor #HackYourCareer @geeks_academy

Allá por el año 2000 , cuando estaba intentando terminar la carrera, me topé con una asignatura cuyo contenido me parecía críptico y sin nin...

Entradas populares