03 / 03 · Prototipo de investigación
Validación facial
Un prototipo que comprueba, en local, que quien está ante la cámara es quien dice ser y que es una persona real.
Quería comprobar, en local, que quien está ante la cámara es quien dice ser y no una foto, una pantalla o una cara cambiada por IA. Lo monté en seis capas y medí cada una con la norma ISO de ataques de presentación.
Por qué lo hice
Quería aprender a sacar adelante un sistema de visión por IA de principio a fin, dirigiendo a los agentes que lo implementan. Elegí la verificación facial por cámara: en un alta o en un acceso hay que saber si la cara es la de la persona registrada y si esa persona está delante de verdad, y no en una foto, en una pantalla o con la cara cambiada por IA en directo.
Partí de preguntas concretas, como qué ataque frena cada capa y cuánto le cuesta al usuario, o si se puede comprobar el volumen de una cara con una sola cámara normal. Cada capa se mide con la norma de ataques de presentación ISO/IEC 30107-3.
Las seis capas de la validación
Cada sesión pasa por seis comprobaciones en orden: identidad (ArcFace), vida pasiva, un reto de giros de cabeza, relieve, cambio de cara y antispoofing.
Un servidor FastAPI las atiende por WebSocket, sesión a sesión, con una sola cola de GPU.
Caras generadas por IA
Un segundo módulo decide si una imagen o una cara está generada por IA. Usa Effort sobre CLIP ViT-L/14, da el veredicto en tres niveles y marca en un mapa las zonas en las que se fija el modelo.
Análisis de vídeo
El tercer módulo sigue a las personas de un vídeo con YOLO y BoT-SORT, estima su postura, describe cada zona con CLIP y genera un informe con las caras difuminadas.
Ataques contra mi propio sistema
Para probar la validación hace falta atacarla. De eso se encarga deepfake-lab, un proyecto aparte: pasa una cara cambiada con Deep-Live-Cam por una cámara virtual de OBS, que es lo que haría alguien que intenta colarse inyectando el vídeo.
Resultados
El antispoofing entrenado llega a un AUC de 0,992 en CelebA-Spoof-test, con 523 muestras reales y 1.450 ataques. Detecta el 97 % de los ataques con un 7,5 % de falsas alarmas.
El detector de imágenes generadas sale peor parado: da un 58 % de falsas alarmas con fotos reales en PNG, porque toma la falta de huella de compresión JPEG como señal de que la imagen es generada.
En qué punto está
Es un prototipo de investigación con mediciones. La capa de relieve se rehízo después de que una foto se colara en una sesión real, y falta validarla con pruebas manuales. El umbral del antispoofing se calibró con 11 clips y necesita entre 20 y 30 sesiones reales.
Yo dirijo, diseño y verifico, y la implementación la hacen agentes. El paper y el acceso al repositorio, bajo petición.
