Este proyecto fin de carrera (PFC) se centra en el estudio y la creación de técnicas para la detección de rostros en secuencias de vídeo digital, así como su posterior ocultación. Para ello, en primer lugar se han estudiado varios algoritmos de detección facial aplicados a imágenes individuales, y se ha investigado acerca de las ventajas, así como problemas e inconvenientes, que supone tener una secuencia de fotogramas en lugar de una única imagen durante la detección de caras. Posteriormente se han estudiado diferentes algoritmos de ocultación, sopesando los pros y los contras de cada uno de ellos. Por último, se han implementado los diferentes algoritmos escogidos para cada una de las dos grandes secciones del proyecto, optimizando la velocidad de algunos y/o combinando otros según ha sido necesario.
Detección y protección automática de caras en secuencias de video
1. Autor: Francisco José Cruz Romanos
Director: Konstantinos Berberidis
Ponente: Sandra Baldassarri
2. Índice de contenidos
Introducción
Ingeniería del software
Algoritmos existentes
Algoritmo implementado
Resultados
Conclusiones
29/09/2009
Francisco José Cruz Romanos
2
3. Índice de contenidos
Introducción
Ingeniería del software
Algoritmos existentes
Algoritmo implementado
Resultados
Conclusiones
29/09/2009
Francisco José Cruz Romanos
3
4. Introducción
Contexto
Universidad de Patras
○ Signal Processing & Communications (SPC)
Hellenic Open University
○ Digital Systems Media Computing Laboratory
(DSMC)
Trabajos en común
○ Tratamiento de la señal
○ Procesamiento de imagen y vídeo
29/09/2009
Francisco José Cruz Romanos
4
5. Introducción
Motivación
Privacidad como derecho
○ Especialmente para menores (Ley Orgánica 1/1996)
Grabaciones no consentidas
○ Cámaras de vigilancia, satélites…
Grabaciones consentidas
○ Declaraciones, vídeo-terapia, enseñanza…
○ El sujeto pide anonimato
Necesidad de un algoritmo/aplicación
29/09/2009
Francisco José Cruz Romanos
5
6. Introducción
Objetivos
Detección facial
○ Estudio y selección de algoritmos
○ Ventajas e inconvenientes
○ Implementación
○ Estudio de mejoras
Ocultación facial
○ Estudio y clasificación
○ Ventajas e inconvenientes
○ Elección
29/09/2009
Francisco José Cruz Romanos
6
7. Índice de contenidos
Introducción
Ingeniería del software
Algoritmos existentes
Algoritmo implementado
Resultados
Conclusiones
29/09/2009
Francisco José Cruz Romanos
7
8. Ingeniería del Software
Requisitos finales
RF1
El algoritmo debe ser capaz de detectar las caras de una secuencia de vídeo
RF2
El algoritmo debe generar un vídeo como el original pero con las caras ocultas
RF3
El algoritmo debe generar un archivo con la información resultante de las detecciones
RF4
El factor de aciertos en detección de caras ha de ser, dentro de lo viable, el factor más importante
RF5
El tiempo de ejecución necesario ha de ser, en la medida de lo posible, un parámetro a reducir
RNF1
El algoritmo debe poder ser ejecutado, al menos, en Sistemas operativos de la familia Windows XP
RNF2
Los vídeos han de ser en color
RNF3
El sistema debe ser capaz de trabajar al menos con vídeos sin compresión
RNF4
El algoritmo debe ser implementado en Matlab, Java, C o C++
RNF5
Los actores en los vídeos no realizan grandes desplazamientos durante la filmación, ni desaparecen de la
escena
RNF6
No aparecen actores nuevos en escena durante la grabación
RNF7
El vídeo ha de ser filmado por una única cámara, sin cortes y sin grandes desplazamientos por el mundo
29/09/2009
Francisco José Cruz Romanos
8
9. Índice de contenidos
Introducción
Ingeniería del software
Algoritmos existentes
Algoritmo implementado
Resultados
Conclusiones
29/09/2009
Francisco José Cruz Romanos
9
10. Algoritmos existentes
Detección facial en vídeo
Trabajan con fotogramas
Extracción de ventajas
○ Continuidad espacial (si también hay temporal)
○ Elección de fotogramas óptimos
○ Los personajes se desplazan por la escena
Inconvenientes
○ Baja resolución de los vídeos
○ Cambios de resolución por compresión
○ Cambios de iluminación por cámaras
29/09/2009
Francisco José Cruz Romanos
10
11. Algoritmos existentes
Detección facial en imágenes
Detección basada en color
○ Distintos espacios de color
Detección basada en rasgos faciales
○ Escala de grises
○ Detección de bordes
○ Búsqueda de rasgos
○ Análisis de constelaciones
○ Contornos activos
Detección basada en la imagen
○ Redes neuronales
○ Análisis estadístico
○ Sub-espacios lineales
29/09/2009
Francisco José Cruz Romanos
11
12. Algoritmos existentes
Ocultación facial
Algoritmos no destructivos
○ Nagra
○ Desorden de píxeles
Algoritmos destructivos
○ Ocultación fija
○ Máscara adaptativa
Algoritmos semidestructivos
○ Filtros de emborronamiento
○ Pixelado
29/09/2009
Francisco José Cruz Romanos
12
13. Índice de contenidos
Introducción
Ingeniería del software
Algoritmos existentes
Algoritmo implementado
Resultados
Conclusiones
29/09/2009
Francisco José Cruz Romanos
13
15. Algoritmo implementado
Detección en sub-regiones
Rectángulo envolvente
de la cara anterior
Rectángulo envolvente
expandido
Zona de búsqueda
de la cara actual
Cara actual
detectada
Expansión de
regiones
Rectángulo
envolvente
29/09/2009
Francisco José Cruz Romanos
15
16. Algoritmo implementado
Detecciones intermedias
Interpolación lineal
○ No es efectiva en muchos casos
○ Parte de la cara al descubierto
Interpolación no lineal
○ Se “ensancha” más rápido
○ Se “encoge” más despacio
29/09/2009
Francisco José Cruz Romanos
16
17. Algoritmo implementado
Opcional: Detección manual
Primer fotograma
Al perder una cara en una sub-región
Ventajas
○ No se deja de buscar después la cara
○ Detección de caras sin información de color
○ Mayor número de aciertos
Desventajas
○ Requiere atención del usuario
29/09/2009
Francisco José Cruz Romanos
17
18. Algoritmo implementado
Opcional: Detección de caras nuevas
Fotograma anterior
Fotograma actual
Diferencia
Eliminación detectadas
Filtro de tamaño
Detección caras nuevas
29/09/2009
Francisco José Cruz Romanos
18
20. Algoritmo implementado
Optimizaciones
Búfer de vídeo
○ Lectura de vídeo en Matlab
Fotograma a fotograma (Lento para vídeos con compresión)
Vídeo entero (Mucha memoria, inviable a veces)
○ Solución mixta
Lectura de conjuntos de fotogramas
- Múltiplo del tamaño de fotogramas clave
- Grande para incluir fotogramas bidireccionales
Transparencia mediante búfer
No afecta al resultado sólo al tiempo
- Alrededor del 500% de mejora en la lectura
29/09/2009
Francisco José Cruz Romanos
20
21. Algoritmo implementado
Optimizaciones
Bibliotecas en C/C++
○ Medición de tiempo
Herramienta Profiler de Matlab
Para cada función, subfunción y programa
- Tiempo total
- Tiempo individual
- Número de veces ejecutado
○ Algoritmos para imágenes
Bucles generales y anidados
Matlab es interpretado, poco eficiente en bucles
C/C++ son muy eficientes en tiempo de ejecución
Alrededor del 400% de mejora
29/09/2009
Francisco José Cruz Romanos
21
22. Algoritmo implementado
Salidas
Vídeo
Carpeta con imágenes de cada fotograma
Archivo XML
○ Visible en navegador
○ CSS, Javascript, XSD y XSLT
○ Sintaxis validada
HTML 4.01 Strict
CSS 2.1
29/09/2009
Francisco José Cruz Romanos
22
23. Índice de contenidos
Introducción
Ingeniería del software
Algoritmos existentes
Algoritmo implementado
Resultados
Conclusiones
29/09/2009
Francisco José Cruz Romanos
23
24. Resultados
Medición de resultados
Velocidad
○ Tiempo de ejecución en segundos
○ Diferentes parámetros
Calidad
○ Detección en modo manual
Un fallo no impida detecciones posteriores
○ Porcentaje de aciertos
Detecciones = Fotogramas video/Fotogramas interpolación
Aciertos = Detecciones correctas/Detecciones
29/09/2009
Francisco José Cruz Romanos
24
25. Resultados
Vídeos de 25 sec, 320x200 píxeles
29/09/2009
Vídeos de 25 sec, 640x480 píxeles
Francisco José Cruz Romanos
25
26. Índice de contenidos
Introducción
Ingeniería del software
Algoritmos existentes
Algoritmo implementado
Resultados
Conclusiones
29/09/2009
Francisco José Cruz Romanos
26
27. Conclusiones
Objetivos y requisitos cumplidos
Mejoras extra
Compatibilidad con vídeos comprimidos
Elección del algoritmos de ocultación
Detección opcional de caras nuevas
Salidas opcionales
Opción de detección manual
29/09/2009
Francisco José Cruz Romanos
27
28. Conclusiones
Enriquecimiento personal
Aprendizaje temas variados
Experiencia investigación
Trabajo futuro
Velocidad
○ Paralelización y pipelining
○ Conversión total a C/C++
Utilidad
○ Detección de rasgos faciales
○ Reconocimiento facial
29/09/2009
Francisco José Cruz Romanos
28