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.
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.
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 Torrano, Fran 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.
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.
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.
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.
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.
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 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
Un saludo,
Autora: Lucia López Sánchez
3 comentarios:
Muy interesante el artículo. Me pregunto si un sistema de detección basado en picos de carga (como el que podría producirse por movimientos bruscos de la persona que utiliza la máscara deepfake) sería viable.
Muy interesante el artículo. Me pregunto si un sistema de detección basado en picos de carga (como el que podría producirse por movimientos bruscos de la persona que utiliza la máscara deepfake) sería viable.
Muy interesante el artículo. Me pregunto si métodos basados en "frame drops" debido a picos de carga por movimientos bruscos de la persona en la que se proyecta el "deep fake" serían viables.
Publicar un comentario