Modelo para la detección de rostros en secuencias de Video con Baja Calidad
Texto completo
(2) Modelo para la detección de rostros en secuencias de vídeo con baja calidad Rolando Jesús Cárdenas Talavera 2018.
(3) RESUMEN La utilización de las cámaras de video para monitoreo de áreas públicas o privadas con motivos de seguridad ha venido incrementándose en los últimos tiempos, al igual que la necesidad de aplicaciones que automaticen el control sobre las imágenes que son capturadas con la finalidad de prevenir acciones delictivas u accidentes. Aunque se tienen trabajos en el área de la detección de rostros bien establecidos, estos fallan en su aplicación a situaciones reales de video vigilancia. La propuesta de este trabajo se basa en dar a conocer un nuevo esquema de procesamiento para la detección de rostros para secuencias de video de baja calidad, utilizando la propuesta paralela del algoritmo de flujo óptico de Gunnar Farnebäck, el descriptor de Flujo Violento modificado, Clasificadores en cascada de Haar, Patrones Locales Binarios entrenados con rostros de baja resolución y el empleo de Deep Learning (Red Neuronal Convolucional). Los resultados obtenidos en la base de datos de Caviar muestran una detección del 39.50% en la detección de rostros en videos de baja calidad con un bajo margen de error del 0.27% frente a propuestas como los detectores de la librería OpenCv (basado en Haar), la librería DLib C++ (basada en HOG) y la herramienta Matlab (basada en Haar) que obtienen en promedio un 1% de precisión en la detección de rostros. Palabras Claves: Detección de rostros, aprendizaje profundo, procesamiento de imágenes.. 2.
(4) ABSTRACT. The use of video cameras for security reasons has been increasing in recent times, as the need of automatic applications than control the scene captured by video cameras in order to prevent criminal acts or accidents. Even though there are works well-established in the area of face detection, these fail in their application to real surveillance videos. The proposal of this work is based on making know a new processing model for face detection for low quality videos, using the parallel proposal of the Gunnar Farnebäck optical flow algorithm, the modified Violent Flow descriptor, Haar Cascade classifiers, Local Binaries Patterns trained with low-resolution faces and Deep Learning (Convolutional Neural Network). The results obtained in the Caviar database show a rate of 39.50% in detection of faces in low-quality videos with a low error rate of 0.27% against proposals such as the OpenCv library (based on Haar), the DLib library (based on HOG) and the Matlab tool (based on Haar) who get an average of 1% accuracy in face detection. Keywords: Face detection, deep learning, image processing.. 3.
(5) INDICE GENERAL. 1. INTRODUCCIÓN 1.1. Definición del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2. Justificación .............................................. 1.3. Objetivos .............................................. 1.3.1. Objetivo General .................................. 1.3.2. Objetivos Específicos ............................ 1.4. Área de Investigación ........................................ 1.5. Organización del Documento ................................... 11 13 14 15 15 15 15 15. 2. MARCO TEÓRICO 2.1. Flujo Óptico .............................................. 2.2. Descriptor de Flujo Violento (Vif) ............................ 2.2.1. Descriptor de Flujo Violento modificado . . . . . . . . . . . . . . . . 2.3. Operaciones morfológicas .................................. 2.3.1. Elementos Estructurantes ............................ 2.3.2. Dilatación ........................................ 2.3.3. Erosión .................................. 2.3.4. Combinación de Operaciones ...................... 2.4. Cascadas de Haar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1. Características o kernels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2. Imágenes Integrales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.3. Clasificador en cascada ............................ 2.5. Patrones Locales Binarios (LBP) ............................ 2.5.1. Bloques LBP Multi-escala . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6. Deep Learning .............................................. 2.6.1. Red Neuronal Convolucional . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 17 17 18 19 20 20 20 21 22 22 22 23 24 25 26 26 26. 3. TRABAJOS PREVIOS 3.1. Consideraciones iniciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Detectores de rostros basados en técnicas de procesamiento de imágenes. . . 3.3. Detectores de rostros basados en detección del color de la piel. . . . . . . . . . . 3.4. Detectores de rostros basados en Deep Learning . . . . . . . . . . . . . . . . . . . . . . 3.5. Detectores de rostros enfocados en el tiempo de procesamiento . . . . . . . . . . 3.6. Detectores de rostros enfocados en el procesamiento de imágenes de baja resolución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7. Análisis de trabajos previos .................................. 3.8. Consideraciones finales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 29 29 29 30 31 31 32 32 34. 4. PROPUESTA 36 4.1. Esquema propuesto para la detección de rostros. . . . . . . . . . . . . . . . . . . . . . . 36 4.2. Detección del movimiento de pixeles mediante Flujo Óptico. . . . . . . . . . . . . 37. 4.
(6) Índice general. 5. 4.3. Detección de áreas con movimiento utilizando Vif. . . . . . . . . . . . . . . . . . . . . 37. 4.3.1. Aplicación de operaciones morfológicas. . . . . . . . . . . . . . . . . . . . 4.4. Detección de objetos en movimiento ............................ 4.5. Detección de rostros utilizando Cascadas de Haar ................ 4.6. Clasificación mediante Deep Learning(Red Neuronal Convolucional) . . . . .. 39 39 40 41. 5. EXPERIMENTOS 5.1. Base de datos .............................................. 5.2. Proceso de Evaluación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3. Herramientas utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4. Evaluación de los Algoritmos de flujo óptico . . . . . . . . . . . . . . . . . . . . . . 5.4.1. Mejoramiento del tiempo de procesamiento del algoritmo de Gunnar Farnebäck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5. Entrenamiento y validación de la Red Neuronal Convolucional. . . . . . . . . . 5.6. Detección de rostros en la base de datos de Caviar ................ 5.7. Detección de Rostros en la base de datos de la UCSP . . . . . . . . . . . . . . . .. 44 44 46 47 48 52 53 53 57. 6. CONCLUSIONES Y TRABAJOS FUTUROS 62 6.1. Conclusiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 6.2. Trabajos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.
(7) Índice de figuras. INDICE DE FIGURAS. 1. 2.. 3. 4.. 5.. 6. 7. 8. 9. 10. 11.. 12. 13. 14. 15. 16.. Ejemplo del empleo de personal dedicado al control de cámaras y/o análisis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Ejemplo de Flujo óptico. Las imágenes (a) y (b) muestran dos fotogramas consecutivos, la imagen (c) muestra el flujo óptico de las imágenes (a) y (b) utilizando la técnica de [ Farneback, 2003]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Ejemplos de elementos estructurantes. . . . . . . . . . . . . . . . . . . . . . . . 20 Ejemplo de la operación de dilatación con un elemento estructurante en forma de cruz. A la izquierda la imagen de entrada, a la derecha, la imagen resultante. Los colores más ligeros fueron agregados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Ejemplo de la operación de erosión con un elemento estructurante en forma de cruz. A la izquierda la imagen de entrada, a la derecha, la imagen resultante. Los colores más ligeros fueron eliminados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Ejemplo de las primeras características definidas por Viola-Jones. 23 Ejemplo de la aplicación de los kernels convolucionales a través de la imagen y su aplicación en múltiples escalas. . . . . . . . . . . . . . . . 23 Calculo de una región S dentro de la Imagen Integral, para lo cual son necesarios los puntos A, B, C y D (Ecuación 2). . . . . . . . . . . . 24 Ejemplo de clasificador en cascada. Las detecciones falsas(F) no pasan al siguiente clasificador (Cn). . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Ejemplos de vecindad de pixeles en LBP, se muestra el numero de pixeles (P) y el radio utilizado (R) [Ojala et al., 2002] . . . . . . . . . . . 25 Ejemplo de LBP Multi-escala, en la izquierda se muestra el LBP tradicional, en la derecha la variación para bloques LBP Multiescala [Liao et al., 2007] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Ejemplo de convolución [ Lu et al., 2017]. . . . . . . . . . . . . . . . . . . . . . 27 Average Pooling con filtro 2x2 y stride = 2 . . . . . . . . . . . . . . . . . . . . . 27 Max Pooling con filtro 2x2 y stride = 2 . . . . . . . . . . . . . . . . . . . . . . . . . 28 Fully Conected Layer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 En el esquema propuesto se muestra las cinco etapas del esquema, comenzando por la detección del movimiento, la detección de áreas de inter es con ayuda del descriptor Vif, la detección de las personas en movimiento, la detección de áreas de rostros probables y su clasificación final utilizando Deep Learning. . . . . . . . . 36. 6.
(8) Índice de figuras. 17.. 18. 19.. 20.. 21. 22. 23. 24. 25. 26.. 27. 28.. 29.. 30. 31. 32.. 33. 34.. Proceso de detección de áreas con presencia de movimiento, los fotogramas de entrada son (a) y (b), el flujo óptico detectado en (c), y las zonas de movimiento en (d). . . . . . . . . . . . . . . . . . . . . . . . . 38 En la imagen (a) se muestra el flujo óptico, en la imagen (b) el resultado obtenido de la aplicación del algoritmo Vif modificado. . . 38 En la imagen (a) se muestra el resultado del descriptor Vif, en la imagen (b) el resultado obtenido de la aplicación de las operaciones morfológicas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 En la imagen (a) se muestra el resultado de la aplicación de las operaciones morfológicas, en la imagen (b) las zonas identificadas con objetos en movimiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Área detectada por Castrillon (cuadrado azul), región del rostro (región central). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Ejemplo de detecciones realizadas por la técnica de Castrillon. . . . . 41 Ejemplo de imágenes utilizadas en el entrenamiento de LBP. . . . . . . 42 Ejemplo de detección realiza por LRF-LBP como clasificador en cascada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Arquitectura de la Red Neuronal Convolucional utilizada. . . . . . . 43 Ejemplo de la clasificación realizada por la Red Neuronal Convolucional. Se puede apreciar que algunas zonas detectadas erróneamente como rostros han sido eliminadas. . . . . . . . . . . . . 43 Fotogramas extraídos de las bases de datos empleadas en los experimentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Fotogramas extraídos de la Base de datos de videos de Caviar. En ellos se puede apreciar la baja resolución de los rostros y las distancias de las personas respecto a la videocámara.. . . . . . . . . . . . 45 Fotogramas de ejemplo extraídos de la base de datos UCSP. En ellos se puede apreciar como la iluminación influye en la visibilidad de las características de los rostros. . . . . . . . . . . . . . . . . . . 46 Secuencias de videos de la base de datos UCSP analizados de forma manual para la evaluación de los algoritmos de flujo óptico. . 49 Resultados obtenidos del análisis de las secuencias de video de la base de datos UCSP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Resultados obtenidos del análisis de los algoritmos de Flujo Óptico. En azul se muestra el algoritmo de Farnebäck y en verde el algoritmo de Horn-Shunck. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Aplicación del algoritmo de flujo Óptico de Gunnar Farnebäck en segmentos de fotogramas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Tiempo resultante en segundos de la aplicación del algoritmo de flujo óptico de Gunnar Farnebäck en diferentes cantidades de segmentos de un fotograma. Se puede ver que el menor tiempo de procesamiento se encuentra en ocho segmentos. . . . . . . . . . . . . . 53. 7.
(9) Índice de figuras. 35.. 36.. 37. 38.. 39. 40.. 41.. 42.. 43.. 44.. Ejemplos de imágenes utilizadas en la evaluación de la Red Neuronal Convolucional. Estas imágenes no conformaron el grupo de entrenamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Imágenes de rostros extraídos de la base de datos de Caviar de baja resolución. Se puede apreciar a la izquierda un rostro que se aprecia mejor definido que el de la imagen derecha y la dificultad de detectar rostros a bajas resoluciones. . . . . . . . . . . . . 54 Herramientas utilizadas en la detección de rostros en la base de datos de Caviar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Rendimiento general promedio de las técnicas analizadas. El promedio obtenido por el esquema propuesto es de 39,50. La cual es tercera en mayor rendimiento, pero con mayor precisión como se aprecia en los siguientes figuras. . . . . . . . . . . . . . . . . . . . . . . 56 Porcentaje de Falsos positivos obtenidos en la evaluación de las técnicas de detección de rostros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Porcentaje de Falsos positivos obtenidos por los 3 mejores detectores. Los resultados obtenidos por la propuesta son los mas bajos, lo que demuestra que la gran mayoría de regiones identificadas como rostros son efectivamente rostros de personas. . . . . 58 Resultados obtenidos, en la primera columna nuestra propuesta utilizando Deep Learning, la segunda los resultados obtenidos por la propuesta sin Deep Learning, en la tercera columna la propuesta utilizando solo la técnica upperbody de Castrillon, y en la última columna solo la técnica de Castrillon. . . . . . . . . . . . . . . . 59 Detección de rostros en diferentes tamaños. (a) muestra los re-˜ sultados de nuestra propuesta, (b) los resultados obtenidos sin la aplicación de LR-LBP, en (c) los resultados obtenidos por la técnica de Castrillon, y en (d) los resultados obtenidos con Matlab en rostros más próximos a la cámara. . . . . . . . . . . . . . . . . . . 60 Rendimiento general en la base de datos UCSP. De color azul se muestra la propuesta sin utilizar Deep Learning, de rojo se muestra la propuesta utilizando Deep Learning. Se obtienen mejores resultados con Deep Learning. . . . . . . . . . . . . . . . . . . . . . . . 61 Ejemplo de detecciones de rostros obtenidas en la base de datos de UCSP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61. 6.
(10) INDICE DE TABLAS. 1. 2. 3. 4.. 5. 6. 7.. 8. 9.. Análisis de trabajos existentes actualmente. . . . . . . . . . . . . . . . . . Detalles de la Base de datos de videos de Caviar. . . . . . . . . . . . . . . Secuencias de vídeo analizadas de forma manual para la evaluacion de los algoritmos de flujo óptico. ................. Promedio de objetos detectados por fotograma analizados por los algoritmos de flujo óptico (FN: Falso Negativo, FP: Falso Positivo). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Resultados de la Precisión(P) y Sensibilidad(S) de los algoritmos de flujo optico analizados ( Farnebäck y Horn-Shunck). . . . . . . Rendimiento General obtenido por el algoritmo Farnebäck y el algoritmo de Horn-Shunck. . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . Rendimiento general promedio (F-Score) de la propuesta en comparación con otras técnicas. Los resultados de la propuesta se encuentra resaltados donde se logra alcanzar en promedio un 39,50. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Porcentaje de Falsos positivos obtenidos en la evaluación de las técnicas de detección de rostros. ........................ Rendimiento general obtenido en la base de datos UCSP con la propuesta con y sin Deep Learning. . . . . . . . . . . . . . . . . . . . . . . . .. 9. 32 45 48. 50 51 51. 55 58 58.
(11) ACRONIMOS. VIF. Violent Flow. SR. Super Resolution. LR. Low Resolution. HR. High Resolution. HoG Histogram of oriented Gradients LBP. Local Binary Patterns. LRF. Low Resolution Faces. CPU. Central processing unit. GPUs Graphics processing units CNN Convolutional Neural Network ReLU Rectified Linear Unit. 10.
(12) 1 INTRODUCCION. El uso de la tecnología hoy se encuentra presente en muchas actividades diarias. Cada día se utilizan más computadoras, celulares, cámaras de video, entre otros, con la finalidad de agilizar procesos, vigilar entornos públicos e incluso identificar actividades delincuenciales. Cada día se registra gran cantidad de videos e imágenes que son empleadas con mayor frecuencia en el área de Visión Computacional con el fin de desarrollar tareas de identificación o interpretación de actividades humanas forma automática. Dentro de estas tareas, la que más viene resaltando en los últimos tiempos es la interpretación de secuencias de video utilizadas en vigilancia [Dhamecha et al., 2016]. Las cámaras de vídeo empleadas con motivos de vigilancia están tomando una gran importancia en organizaciones, empresas grandes y/o pequeñas, negocios, etc. que buscan mantener a salvo sus activos físicos y capital ante la posibilidad de hurtos, robos u actividades ilícitas por parte del personal que labora [Devasena et al., 2011]. En los últimos años, el uso de las cámaras de vídeo está siendo empleadas con mayor frecuencia para prevenir o informar sobre actos delictivos, problemas de tránsito vehicular, accidentes, emergencias o situaciones de riesgo que pueden ocurrir en la ciudad. Pero este incremento ha aumentado la necesidad de ampliar las áreas de vigilancia para mejorar la seguridad, se tiene que observar las actividades de más personas con la finalidad de identificar comportamientos extraños y se aumenta la demandada en cuanto a escalabilidad y capacidad de las cámaras de vídeo vigilancia [Devasena et al., 2011]. Estas necesidades conllevan también al empleo de personal dedicado al control de las cámaras y/o análisis de las escenas, convirtiendo esta tarea en un proceso que requiere mucha atención por periodos muy largos (Figura 1). Sin embargo, este proceso que requiere de mucha atención no puede ser llevado con rigurosidad por parte del personal, ya que la visualización constante de las secuencias de vídeo genera fatiga visual en el personal. En consecuencia, los vídeos de las cámaras de vídeo vigilancia se las controla escasamente o en nada en absoluto [Ko, 2008]. Además, en algunas ocasiones las grabaciones de las cámaras de vídeo vigilancia solo se encuentran como un archivo de referencia ante la ocurrencia de un hecho delictivo u accidente. Las cámaras de vigilancia pueden ser una herramienta mucho más útil si en lugar de grabar de forma pasiva imágenes, pueden ser utilizados para detectar eventos que requieren. 11.
(13) la atención a medida que ocurren, y tomar medidas preventivas o correctivas en tiempo real [Ko, 2008].. 12.
(14) 1.3 OBJETIVOS. 13. Figura 1: Ejemplo del empleo de personal dedicado al control de cámaras y/o análisis. Es por este motivo que existe un incremento en la necesidad de poseer aplicaciones de vídeo vigilancia con el propósito de dar solución de forma automática al análisis del comportamiento humano tratando de predecir futuras acciones o identificar objetos para su análisis (como son vehículos, tráfico vehicular, peatones o incluso actividades criticas llevadas en hospitales como la observación de pacientes, etc.) [ Ahad, 2013,Ko, 2008,Boufama and Ali, 2007] Una ventaja resultante de trabajar con vídeos, es que estos contienen información más abundante que una simple imagen, resultando en aplicaciones con procesamiento más robusto y estable que puede ser alcanzado con la unión de información recolectada de los múltiples Fotogramas o Frames [ Xie and Geng, 2012,Zhang et al., 2011]. Dentro de las tareas que se realiza con el análisis de las secuencias de vídeo vigilancia se resalta la identificación de personas, proceso por el cual se realiza un análisis de las características físicas del rostro de las personas. Aunque todos los sistemas actuales de reconocimiento de rostros han alcanzados un cierto nivel de madurez, el desarrollo y su aplicación en vídeos sigue siendo limitado debido a las condiciones que presentan no pueden ser controladas y son impredecibles. Por ejemplo, el proceso de detección de rostros en imágenes obtenidas de secuencias de vídeo de un ambiente exterior, posee condiciones de iluminación cambiantes, la posición de los objetos no son similares, existe la presencia de oclusiones por parte de otro objeto, el ángulo de visión o la baja resolución de las imágenes adquiridas dificultan el procesamiento de los algoritmos. Todas estas características de una Fotograma o Frame dificultan la aplicación de las técnicas de detección y reconocimiento de rostros, las cuales han sido diseñadas originalmente para imágenes en entornos semicontrolados [ Dhamecha et al., 2016,Mandal et al., 2016,Thamizharasi and Jayasudha,.
(15) 1.5 ORGANIZACIÓN DEL DOCUMENTO. 14. 2015,Ahad, 2013,Zhang et al., 2011,Davis et al., 2010,Wang et al., 2009,Liu et al., 2007,Levine et al., 2004,Makhtar et al., 2012]. Debido a que el uso de las cámaras de vídeo con motivos de vigilancia se está incrementando, y el desafió de trabajar con secuencias de vídeo en situaciones reales es compleja para los sistemas de detección y reconocimiento de rostros propuestos actualmente, es por este motivo, que se plantea un nuevo esquema de procesamiento para la detección de rostros que trabajará en secuencias de vídeo con baja calidad (enfocándonos en la detección de rostros que presentan baja resolución), apoyándose en las técnicas de Flujo Óptico, Descriptores de Flujo Violento, Clasificadores en Cascada, Patrones Locales Binarios y Deep Learning y que podrá ser utilizada como un modelo de procesamiento nuevo para la detección de rostros en videos. 1.1. DEFINICIÓN DEL PROBLEMA. A pesar del auge de la utilización de cámaras de vídeo para vigilancia, no todos los dispositivos de captura tienen una calidad de captura estándar o similar, dependiendo del presupuesto disponible para la adquisición de vídeo cámaras estas varían en la velocidad de captura, la resolución, el alcance del acercamiento para tomas cerradas, la posibilidad de capturas nocturnas, entre otros. Todas estas características que varían de acuerdo a la calidad de los dispositivos influyen en los sistemas automatizados de vigilancia, como es el caso de la detección de rostros, el cual ante una deficiente resolución no se puede lograr una correcta identificación de que elementos corresponden a rostros, o no se pueden detectar las características físicas propias de los rostros, generando muchas veces falsos positivos o falsos negativos que dificultan la identificación de las personas. Existen factores que alteran el modo de percepción de los rostros, como son el ángulo de la captura el cual no siempre es frontal hacia el rostro de la persona, la iluminación es otro de los factores que modifican la percepción de los rostros ya que pueden generar sombras que oculten parte de las características físicas de los rostros y por último, los accesorios en rostros, como sombreros, lentes entre otros que son utilizados por delincuentes para evitar que se observen las características físicas de sus rostros y sean identificados. Muchas de las técnicas propuestas en la detección de rostros por diferentes autores, trabajan exhaustivamente en buscar características que logren reconocer un rostro dados ciertos parámetros, pero estos no consiguen obtener resultados aceptables, debido a la resolución baja de los vídeos, la segmentación de los objetos resulta ser difícil debido a la falta de claridad en los bordes y se pierde mucha información relevante de las características físicas de los objetos debido a que no son detectadas por las cámaras de vídeo, la iluminación es otro factor que modifica visualmente el aspecto del rostro así como el ángulo de la posición de la cámara de vídeo respecto a la persona, todos estas características siguen siendo los principales problemas que surgen en los sistemas de Detección de Rostros aplicados en secuencias de vídeo..
(16) 1.3 OBJETIVOS. 1.2. 15. JUSTIFICACIÓN. Actualmente existen herramientas que facilitan el desarrollo de aplicaciones para la detección de rostros, entre ellas tenemos librerías como OpenCV, DLib, Face++, FaceMArk, etc. Todas estas herramientas obtienen buenos resultados sobre imágenes de rostros bien definidos que se encuentran próximos a las cámaras e iluminados adecuadamente, lo que es posible llevarlos incluso a aplicaciones móviles. Estos detectores son ligeros, pero no robustos, ya que alguno de ellos no puede llegar a detectar más allá de 5 rostros debido a las limitaciones de hardware. Por lo que no pueden ser llevadas o ser utilizadas en video de vigilancia, ya que estas presentan otras características que no han sido contempladas. Lo mismo ocurre con herramientas pagadas, como el caso de Matlab, el cual ha desarrollado algoritmos para la detección de rostros con buenas tasas de precisión, pero que resultan lentas o limitadas en cuanto a Hardware. Por lo que su uso en la mayoría de casos es para experimentación o desarrollo de nuevas propuestas. Su aplicación en video se ve limitada ya que no logra alcanzar un tiempo de procesamiento óptimo como para ser empleado en los sistemas seguridad actuales. Con lo que se demuestra que estas herramientas presentan limitaciones al trabajar con videos. Adicionalmente, hoy en día el empleo de algoritmos para la detección de rostros puede verse ampliamente en redes sociales (como el caso de Facebook), el cual puede localizar rostros con gran precisión de sus usuarios e incluso identificarlos. Sus resultados son impresionantes sobre imágenes, pero a pesar de su precisión sobre estas, no se encuentra aún disponible una función que trabaje sobre videos. Lo que demuestra que la detección sobre rostros es llevada de forma eficaz en imágenes, pero utilizando grandes recursos computacionales por lo que no son adecuadas para su utilización sobre videos. Incluso, la página de videos Youtube no tiene desarrollado un algoritmo para la detección de rostros en videos, debido al costo de procesamiento que incurriría. Lo que demuestra que, a pesar de tener técnicas de detección de rostros avanzadas, su aplicación en video no es conveniente. Debido a que se han desarrollado diversas técnicas para la detección de rostros que tiene bajos porcentajes de reconocimiento en secuencias de vídeo, el principal aporte de esta investigación, es proponer un nuevo esquema de procesamiento para la detección de rostros, que trabajará en forma exclusiva en secuencias de vídeo, el cual servirá de modelo para nuevos sistemas de detección de rostros el cual mejorará las técnicas de identificación de personas propuestas anteriormente. Este proyecto podrá ser aplicado a sistemas de vídeo vigilancia, control de personal e identificación de personas, siendo una de sus características principales el poder procesar secuencias de vídeo de baja calidad, lo que permitirá que el sistema de detección sea independiente a los dispositivos de captura de vídeo en cuanto a calidad y resolución de los fotogramas..
(17) 1.5 ORGANIZACIÓN DEL DOCUMENTO. 1.3. 16. OBJETIVOS. 1.3.1. Objetivo General. Proponer un esquema para la detección de rostros en secuencias de vídeo de baja calidad, basado en técnicas de Flujo Óptico, Descriptores de Flujo Violento, Clasificadores en Cascada, Patrones Locales Binarios y Deep Learning. . 1.3.2 Objetivos Específicos 1. Analizar las técnicas de Flujo Óptico y seleccionar la técnica más adecuada para el caso de vídeo vigilancia. 2. Modificar el algoritmo de Flujo Violento para ser empleado como un discriminador de objetos en movimiento. 3. Proponer un nuevo clasificador en cascada basado en Patrones Locales Binarios como detector de rostros de baja resolución. 4. Proponer un nuevo esquema de Deep Learning entrenado especialmente para clasificar rostros de baja resolución. 5. Evaluar y Validar los resultados del Detector de Rostros propuesto comparado con técnicas anteriormente propuestas en secuencias de vídeo. 1.4. ÁREA DE INVESTIGACIÓN. Esta investigación se encuentra dentro de la línea de investigación de Procesamiento Multimedia, en el área de Visión Computacional. 1.5. ORGANIZACIÓN DEL DOCUMENTO. El documento se encuentra organizado de la siguiente forma: . El Capítulo 2 contiene una revisión teórica de las principales técnicas que serán analizadas para elaborar el nuevo esquema de detección de rostros, además, se detallan algunos trabajos previos realizados con cada una de las técnicas del estudio.. . En Capitulo 3 resume los trabajos previos realizados por otros autores relacionados a la detección de rostros.. . El Capítulo 4 detalla la propuesta de Trabajo y la interacción de las técnicas utilizadas en el proceso de detección de rostros..
(18) 1.3 OBJETIVOS. 17. . El Capítulo 5 contiene información de las bases de datos utilizadas, se describe el proceso de evaluación y los resultados obtenidos de los experimentos que se llevaron a cabo.. . Finalmente, en el Capítulo 6 se detalla las conclusiones y los trabajos futuros de esta investigación..
(19) 2 MARCO TEORICO. En este capítulo se realiza una revisión teórica de las principales técnicas que se encuentran relacionadas con el esquema propuesto para la detección de rostros. 2.1. FLUJO ÓPTICO. Ante la necesidad de sistemas automatizados que analicen las situaciones que se dan en secuencias de vídeo vigilancia, un primer paso esencial de estos sistemas es identificar las áreas a ser analizadas. Para la detección de objetos en imágenes es utilizado comúnmente plantillas (templates) que tratan de ajustarse a diferentes escalas con el fin de calcular un porcentaje de similitud alto para poderlo identificar como el objeto de interés. Al trabajar con secuencias de vídeo, un objeto se encuentra en varios fotogramas, pero con diferentes posiciones debido a su desplazamiento. Es en este escenario donde podemos detectar los objetos en movimiento. La detección de movimiento es un nuevo concepto, el cual consiste en detectar elementos en movimiento dentro de una escena de video, a partir de esta detección se puede predecir el flujo óptico (movimiento) de la escena, así como las sub-partes de la escena que se encuentran desplazándose [ Ahad, 2013]. Los algoritmos de flujo óptico tratan de estimar el desplazamiento de un pixel a través de dos consecutivos fotogramas calculando el ángulo de la dirección de su desplazamiento. El resultado que se obtiene es la cantidad de desplazamiento de un pixel en el eje coordenado X y Y. En la Figura 2 se muestra un ejemplo del cálculo del flujo óptico de dos imágenes consecutivas de una secuencia de vídeo. Dentro de las técnicas de flujo óptico ampliamente utilizadas tenemos: . Lucas - Kanade [ Lucas and Kanade, 1981] 1. . Horn - Shunck [ Horn and Schunck, 1981] 1. . Gunnar Farneback [ Farneback, 2003]. Adicionalmente existen técnicas que solo detectan las zonas que han cambiado entre fotogramas, son más sencillas de aplicar, pero no brindan información de la velocidad del objeto entre fotogramas. Entre ellas tenemos: 1. Referencia al trabajo original desarrollado por los autores.. 17.
(20) 2.3 OPERACIONES MORFOLÓGICAS. 19. Figura 2: Ejemplo de Flujo óptico. Las imágenes (a) y (b) muestran dos fotogramas consecutivos, la imagen (c) muestra el flujo óptico de las imágenes (a) y (b) utilizando la técnica de [ Farneback, 2003 ]. . Motion History Image, registra la trayectoria a través del tiempo de un objeto o pixel que ocurre dentro de la escena de captura [Ahad, 2013, Bradski and Davis, 2002].. . Background Subtraction, calcula la diferencia del fondo de una imagen (Background) y un fotograma capturado en una instancia de tiempo, identificando todos los objetos que no forman parte del fondo [Piccardi, 2004].. La principal desventaja de estas técnicas es que al momento de haber realizado la detección de objetos esta no brindara información necesaria para realizar un seguimiento del objeto, para conseguirlo, es necesario aplicar técnicas de seguimiento de objetos (los cuales varían en complejidad y tienen diferentes enfoques de procesamiento [Cika et al., 2013, Boufama and Ali, 2007, R. and Kumar, 2015, Malik et al., 2013,Dogan et al., 2010,Temiz et al., 2012,Guo et al., 2016,Liu et al., 2007,Jaward et al., 2006, Manafifard et al., 2016, Lefevre and Vincent, 2004` lo cual aumenta el tiempo de procesamiento y la complejidad del sistema. 2.2. DESCRIPTOR DE FLUJO VIOLENTO (VIF). El descriptor de flujo violento es utilizado para la detección de acciones violentas en secuencias de vídeo [ Hassner et al., 2012]. La principal característica de este descriptor es la discriminación de objetos que se encuentran desplazándose a mayor velocidad que otros dentro de una secuencia de vídeo. ViF es descriptor global, es decir, que mientras se van analizando una determinada cantidad de fotogramas de una secuencia de vídeo, este va manteniendo un registro de los resultados obtenidos, los cuales pueden ser empleados como una caracterización de la secuencia de vídeo..
(21) 2.3 OPERACIONES MORFOLÓGICAS. 20. 2.2.1 Descriptor de Flujo Violento modificado En este trabajo, se presta más atención a la parte de discriminación de movimiento realizada por Vif, es por este motivo que se procedió a modificar este algoritmo para desprendernos solo de la parte global de registros y así poder utilizar este algoritmo como un discriminador del movimiento de personas. Hay que resaltar que en una escena de vídeo vigilancia exterior, no solo se encuentran personas en movimiento, existen sobras, arboles, vehículos, animales, etc. que también se encuentran desplazándose, por lo que una discriminación en cuanto a la velocidad del desplazamiento es necesaria. En Algoritmo 1, se muestra el seudocódigo del descriptor de flujo violento modificado.. Vif recibe de entrada el flujo óptico de una imagen ( I(u(x,y),v(x,y)) ) donde u(x,y) es el flujo óptico en el eje coordenado X y v(x,y) el flujo óptico del eje coordenado Y. El primer paso consiste en calcular la magnitud del desplazamiento de cada pixel, para esto se utiliza u(x,y) y v(x,y). El siguiente paso es compara cada magnitud de cada pixel con la magnitud del flujo óptico que fue procesado con anterioridad. Los valores que superen el umbral serán establecidos en el valor binario de 1 y el resto en 0..
(22) 2.3 OPERACIONES MORFOLÓGICAS. 21. El valor del umbral representa el promedio del valor absoluto de la diferencia de magnitudes posteriores, este valor es importante ya que controla un movimiento uniforme de los pixeles. Al final, el valor del umbral se actualiza y se guarda la magnitud calculada al inicio para ser utilizada con el siguiente flujo óptico. 2.3. OPERACIONES MORFOLÓGICAS. Las operaciones morfológicas son un conjunto de operaciones basadas en formas. Las operaciones morfológicas utilizan elementos estructurantes a una imagen binaria con la finalidad de realizar una transformación de acuerdo al tipo de operación. Las operaciones morfológicas más básicas son dos: Erosión y Dilatación. Estas son ampliamente utilizadas en diferentes tareas: . Remover ruido. . Separar elementos individuales o unir elementos dispersos en una imagen.. . Encontrar cambios bruscos de intensidad o agujeros en imágenes.. 2.3.1. Elementos Estructurantes. Los elementos estructurantes B pueden ser de cualquier forma o tamaño. Son utilizados para ser utilizados como kernel de convolución sobre imágenes binarias. Las formas más comunes de elementos estructurantes son: Rectángulos, Elipses u Cruces.. (a) Cruz. (b) Rectángulo. (c) Elipse. Figura 3: Ejemplos de elementos estructurantes.. 2.3.2. Dilatación. La operación de dilatación (⊕) consiste en convolucionar una imagen I con un elemento estructurante B. A medida que el elemento estructurante B se opera en cada pixel de la imagen, se calcula el valor máximo de pixeles superpuestos y se reemplaza el pixel de referencia por el máximo valor calculado. Se puede observar que esta operación logra.
(23) 2.3 OPERACIONES MORFOLÓGICAS. 22. incrementar en tamaño las regiones más intensas. En la Figura 4 se muestra un ejemplo de esta operación.. Figura 4: Ejemplo de la operación de dilatación con un elemento estructurante en forma de cruz. A la izquierda la imagen de entrada, a la derecha, la imagen resultante. Los colores más ligeros fueron agregados. 2.3.3. Erosión. Al igual que la operación de dilatación, la operación de erosión (⊖) utiliza un elemento estructurante B para calcular el mínimo valor de un pixel. Este elemento estructurante B es operado en cada pixel de la imagen y calcula el valor mínimo de pixeles superpuestos, reemplazando el pixel de referencia por el mínimo valor calculado. Esta operación reduce de tamaño las regiones más intensas. En la Figura 5 se muestra un ejemplo de esta operación..
(24) 2.3 OPERACIONES MORFOLÓGICAS. 23. Figura 5: Ejemplo de la operación de erosión con un elemento estructurante en forma de cruz. A la izquierda la imagen de entrada, a la derecha, la imagen resultante. Los colores más ligeros fueron eliminados..
(25) 2.4 CASCADAS DE HAAR. 2.3.4. 24. Combinación de Operaciones. Se pueden obtener comportamientos adicionales de las operaciones morfológicas mediante la combinación de las operaciones básicas de dilatación y erosión, las más comunes son: Es la combinación de una erosión seguida de una dilatación, su fórmula esta dada por: 𝐼 ◦ 𝐵 = (𝐼 ⊖ 𝐵) ⊕ 𝐵. APERTURA. Es la combinación de una dilatación seguida de una erosión, su fórmula esta dada por: 𝐼 ⦁ 𝐵 = (𝐼 ⊕ 𝐵 ) ⊖ 𝐵. CIERRE. 2.4. CASCADAS DE HAAR. Propuesto por Viola-Jones [Viola and Jones, 2001], las cascadas de Haar pueden ser definidas básicamente como un conjunto de regiones rectangulares de sumas a los cuales se les resta otras regiones, las cuales pueden estar presentes en cualquier posición y escala dentro de una imagen. Estas restas son analizadas por clasificadores en cascada, los cuales son un conjunto de clasificadores débiles que trabajando en conjunto para forman un clasificador fuerte, el cual decide que características son relevantes y cuales tienen que ser rechazadas. El primer modelo de cascadas de Haar desarrollado fue para detectar rostros. Aparte de los modelos de cascada para rostros, existen otros modelos de cascada que también permiten detectar: . Ojos, nariz y boca [Castrillon et al., 2007]. . Cuerpo entero (fullbody) [Hannes Kruppa and Schiele, 2003]. . Parte baja del cuerpo (lowerbody) [Hannes Kruppa and Schiele, 2003]. . Parte superior del cuerpo (upperbody) [Castrillon Santana et al., 2005]. Se pueden llegar a detectar cualquier patrón con las cascadas de Haar, solo se tiene que tener un conjunto de imágenes positivas de detección y un conjunto de imágenes negativas. 2.4.1 Características o kernels Las primeras características definidas por Viola-Jones [Viola and Jones, 2001] fueron 4 patrones utilizados para la detección de rostros, en estas características se definieron zonas en las que se aplicaban las restas. En la Figura 6 se muestran las cuatro características, las zonas oscuras son restadas por las zonas claras. Estas características pueden ser definidas como kernels convolucionales, ya que son utilizadas en cada uno de los pixeles de una imagen y en diferentes escalas. En la Figura 7 se muestra un ejemplo de la aplicación de estos kernels por toda la imagen,.
(26) 2.4 CASCADAS DE HAAR 25. Figura 6: Ejemplo de las primeras características definidas por Viola-Jones. para aplicarlo a diferentes escalas (multi-escala), se procede a reducir el tamaño de la imagen y se vuelve a aplicar el kernel por toda la imagen. Con esta reducción de imagen se puede descubrir los objetos de interés en diferentes escalas y posiciones dentro de la imagen que está siendo procesada [ Castrillon Santana et al., 2005,Castrillon et al., 2007].. Figura 7: Ejemplo de la aplicación de los kernels convolucionales a través de la imagen y su aplicación en múltiples escalas.. 2.4.2. Imágenes Integrales. Imágenes integrales o tablas de sumas de áreas fue una de las principales contribuciones realizadas por Viola-Jones [Viola and Jones, 2001]. Las Imágenes integrales son definidas como tablas de dos dimensiones de búsquedas de igual tamaño a la imagen que se esta procesando. Cada uno de los elementos de esta tabla contiene la suma de los valores de todos los pixeles ubicados en la parte superior e izquierda del elemento de referencia (Ec.1). 𝑖𝑖 (𝑥, 𝑦) = ∑𝑥 ′ ≤ 𝑥 ,𝑦 ′ ≤𝑦 𝑖 (𝑥 ′ , 𝑦 ′ ). (1). Una vez que se lleva a cabo el cálculo de la imagen integral, la suma de los pixeles de cualquier rectángulo ubicado en la imagen se puede calcular con solo 3 operaciones y 4 accesos a la imagen integral. En la Figura 8 se muestra el área S a ser calculada por los puntos A, B, C y D con la Ecuación 2. 𝑆 = 𝐼 (𝐶 ) + 𝐼 (𝐴) − 𝐼 (𝐵) − 𝐼(𝐷). (2).
(27) 2.4 CASCADAS DE HAAR. 26. Figura 8: Calculo de una región S dentro de la Imagen Integral, para lo cual son necesarios los puntos A, B, C y D (Ecuación 2). 2.4.3 Clasificador en cascada Todas los posibles ubicaciones y tamaños de la aplicación de los kernels sobre una imagen resultarían en miles de posibilidades y se tendría un número bastante grande de cálculos por realizar. Pero todos estos valores no son relevantes ya que algunos pueden ser aplicados en regiones donde no hay cambios fuertes o regiones uniformes. Para esto se utiliza la técnica de AdaBoost desarrollada por Freund y Schapire [ Freund and Schapire, 1997]. Cuando se realiza el proceso de entrenamiento del clasificador en cascada, se tiene un conjunto de imágenes positivas y un conjunto de imágenes negativas. La técnica AdaBoost [Freund and Schapire, 1997] seleccionas las características con el mínimo error, para conseguir esto un clasificador débil calcula un umbral adecuado para clasificar de la forma adecuada las imágenes positivas y negativas. El clasificador final (clasificador fuerte) es una suma del conjunto de clasificadores débiles (Figura 9). Los clasificadores débiles son llamados débiles debido a que solos no pueden clasificar las imágenes de forma adecuada, pero en conjunto pueden actuar como un clasificador fuerte [Viola and Jones, 2001].. Figura 9: Ejemplo de clasificador en cascada. Las detecciones falsas(F) no pasan al siguiente clasificador (Cn). En cada etapa del clasificador en cascada se incrementa la complejidad de los clasificadores binarios, lo que permite de forma rápida eliminar regiones que no contiene los objetos de.
(28) 2.5 PATRONES LOCALES BINARIOS (LBP). 27. interés. Si el objeto de interés no es encontrado en ninguna de las etapas del clasificador, es eliminado de forma inmediata, lo que previene que se ejecuten clasificadores más intensos del clasificador en cascada generando un ahorro de recursos computacionales [Viola and Jones, 2001]. 2.5. PATRONES LOCALES BINARIOS (LBP). Patrones Locales Binarios (Local Binary Patterns - LBP) es un descriptor visual simple pero muy eficiente usado para la clasificación de texturas. LBP puede ser visto como un enfoque que unifica la estadística divergente tradicional y el análisis de modelos estructurales de textura. Su propiedad más importante es que este descriptor es invariante a cambios en los niveles de los colores en escala de grises producidos por cambios en la iluminación, lo que lo convierte en un descriptor ideal para aplicaciones reales. Al ser un descriptor simple puede llegar a procesar imágenes en tiempo real [Pietikainen et al., 2011]. El descriptor original de LBP fue presentado por Ojala et al. [Ojala et al., 2002]. En este trabajo el descriptor trabajaba sobre una vecindad cercana a un pixel central de 3x3, y el valor central era utilizado como un umbral. LBP trabaja comúnmente en vecindades mayores de pixeles (por ejemplo, regiones de 8x8 pixeles, 16x16 pixeles, etc.). Dentro de cada una de estas vecindades se realiza una comparación de los pixeles vecinos al pixel central con diferentes radios (Figura 10). Ya sea en sentido de las agujas del reloj o en contra el sentido del reloj, si el valor del pixel central es mayor se indica un valor 0, sino un valor de 1, lo que genera un número binario el cual es convertido a un valor decimal por conveniencia. Después de obtener este calcular este valor, se calcula el histograma de la frecuencia de estos valores, con lo que se obtiene el vector característico de la región de pixeles, y el vector característico de toda la imagen se obtiene por la unión de todos los vectores de las regiones .. Figura 10: Ejemplos de vecindad de pixeles en LBP, se muestra el número de pixeles (P) y el radio utilizado (R) [Ojala et al., 2002]..
(29) 2.6 DEEP LEARNING. 2.5.1. 28. Bloques LBP Multi-escala. Una variación de LBP fue planteada por Laio et al. [ Liao et al., 2007], el cual propone crear regiones mayores de pixeles y promediar sus valores para comparar su valor con el promedio central de forma similar a LBP tradicional. Este pequeño cambio en la forma de generar el vector característico de LBP es útil para ser utilizado en conjunto a las Cascadas de Haar, ya que las diferencias entre estas regiones son utilizadas de forma similar que los kernels de convolución y con la ventaja de ser más ligeros en tiempo de procesamiento. En la Figura 11 se muestra una comparación entre estos dos enfoques. Por ejemplo, al calcular el LBP de una región se genera un valor en binario (el cual representa el valor de la región en entero), al obtener todas las representaciones binarias, se parte de igual forma en la integral de la imagen, pero teniendo en consideración que el tamaño de la imagen se reduce, lo cual reduce el tiempo de procesamiento posterior en las cascadas de Haar.. Figura 11: Ejemplo de LBP Multi-escala, en la izquierda se muestra el LBP tradicional, en la derecha la variación para bloques LBP Multi-escala [ Liao et al., 2007].. 2.6 2.6.1. DEEP LEARNING. Red Neuronal Convolucional. La arquitectura de una Red Neuronal Convolucional está compuesta por diferentes capas que transforma la entrada en un conjunto de salida. Las capas más utilizadas se describen a continuación. 2.6.1.1. Capa de Convolución. La capa de convolución es el núcleo principal de la construcción de una Red Neuronal Convolucional. La capa de convolución consiste en un conjunto de neuronas que conecta regiones pequeñas de la entrada con una capa anterior. Estas regiones son llamadas filtros los cuales pueden variar de tamaño. Para cada una de las regiones, se calcula el producto punto de los pesos y los valores de entrada, a los cuales se les añade el valor del bias. El filtro se mueve a través de la entrada tanto en vertical como en horizontal repitiendo el producto punto en cada una de las regiones (convolución). La cantidad de desplazamiento, tanto horizontal como vertical se denomina.
(30) 2.6 DEEP LEARNING. 29. stride. Como resultado se obtiene una capa de filtros que se activan cuando detectan tipos de características específicos en cierta posición de la entrada.. Figura 12: Ejemplo de convolución [ Lu et al., 2017].. 2.6.1.2. Pooling. La función de Pooling reduce progresivamente el tamaño espacial de la representación con el objetivo de reducir la cantidad de parámetros y cálculos en la Red. Existen varias funciones no lineales para ser empleadas como funciones pooling como el caso del promedio (Figura 13) o la norma L2, pero la más utilizada es max-pooling (Figura 14). La función de max-pooling retorna los valores máximos de regiones rectangulares que no se sobreponen de una entrada. Estas regiones rectangulares son delimitadas por un filtro, comúnmente de tamaño 2x2, el cual es escaneado a través de la entrada tanto en forma vertical como horizontal en pasos específicos (la distancia de desplazamiento es conocida como stride y su valor mas utilizado es de 2). y su valor más utilizado es de 2). La función de max-pooling no realiza ningún aprendizaje, su objetivo principal es reducir la cantidad de parámetros.. Figura 13: Average Pooling con filtro 2x2 y stride = 2.
(31) 2.6 DEEP LEARNING. 30. Figura 14: Max Pooling con filtro 2x2 y stride = 2 2.6.1.3. Rectified Linear Unit. Rectified Linear Unit (ReLU) incrementa las propiedades no lineales de las funciones de decisión mejorando la robustez de las características extraídas. Adicionalmente ayuda a detectar neuronas que retornan cero como resultado en cada entrada, el cual pueden ser removidos convirtiendo el proceso de aprendizaje computacionalmente más eficiente [ Hamed Habibi Aghdam, 2017]. ReLU realiza una operación con un valor umbral, donde todos los valores son conservados o llevados a cero (Ec. 3). 𝑓 (𝑥 ) = 𝑚𝑎𝑥 (0, 𝑥 ) 2.6.1.4. (3). Fully Conected Layer. Capas totalmente conectadas (Fully connected layers) conectan cada neurona de una capa con cada neurona de otra capa. Este es un principio similar a las Redes Neuronales tradicionales (Multi-Layer Perceptron Neural Network o MLP). La activación de las neuronas es llevada a cabo multiplicando la entrada por la matriz de pesos y añadiendo el valor del bias (Figura 15).. Figura 15: Fully Conected Layer..
(32) 3 TRABAJOS PREVIOS. 3.1. CONSIDERACIONES INICIALES. La detección de rostros es otro sub-campo importante en el área de visión computacional. La automatización del proceso de detección de rostros ha sido ampliamente estudiada por diversos autores. Por ejemplo entre los más conocidos y ampliamente utilizados tenemos a [Viola and Jones, 2001, Dalal and Triggs, 2005, Lowe, 2004, Dai and Yan, 2007]. La técnica de mayor impacto que ha sido empleada es la desarrollada por [Viola and Jones, 2001] que se basa en técnicas de procesamiento de imágenes como las imágenes integrales, detectores en cascada y la técnica AdaBoost [ Freund and Schapire, 1997]. Así como este trabajo para la detección de rostros, existen otros autores que han trabajado la detección de rostros basándose en otros enfoques como: . Detectores de rostros basados en técnicas de procesamiento de imágenes. . Detectores de rostros basados en detección de piel. . Detectores de rostros basados en Deep Learning. Otros autores, han enfocado sus esfuerzos en utilizar las técnicas previamente desarrolladas o se enfocan en desarrollar nuevas técnicas para la detección de rostros enfocadas en el tiempo de procesamiento o en la detección en rostros en imágenes con problemas de iluminación o baja resolución. Se ha agrupado estos trabajos en: . Detectores de rostros enfocados en el tiempo de procesamiento.. . Detectores de rostros enfocados en el procesamiento de imágenes de baja resolución.. 3.2. DETECTORES DE ROSTROS BASADOS EN TÉCNICAS DE PROCESAMIENTO DE IMÁGENES. Con el desarrollo de los algoritmos de detección de rostros, han surgido técnicas que apoyan el proceso de detección mediante la descripción de las características del rostro, estas se basan en características propias de las imágenes, como los bordes, cambios en la intensidad de los pixeles, gradientes de bordes, entre otros [Zafeiriou et al., 2015,Kamäräinen et al., 2011 ]. Dentro de las primeras técnicas de detección de rostros desarrolladas tenemos a: 29.
(33) 3.3 DETECTORES DE ROSTROS BASADOS EN DETECCIÓN DEL COLOR DE LA PIEL 32. . Haar Cascades (Haar) [Viola and Jones, 2001]. . Scale Invariant Feature Transform (SIFT) [Lowe, 2004]. . Histogram of oriented Gradients (HoGs) [Dalal and Triggs, 2005]. . Local Binary Patterns (LBPs) [Ojala et al., 2002]. . Speeded Up Robust Features (SURF) [Bay et al., 2008]. Trabajos más recientes desarrollados para la detección de rostros que se apoyan en técnicas de procesamiento de imágenes se muestran a continuación: 3.3. Automatic face detection in video sequences using local normalization and optimal adaptive correlation techniques [Yun and Guan, 2008] Detecting Face with Densely Connected Face Proposal Network [Zhang et al., 2017] Development of head detection and tracking systems for visual surveillance [Kang et al., 2014] Face Detection under Varying Lighting Conditions in Video Streams [Xie and Geng, 2012] Face Detection without bell and whistles [Mathias et al., 2014] DETECTORES DE ROSTROS BASADOS EN DETECCIÓN DEL COLOR DE LA PIEL. Una de las características que se encuentra presente en cualquier imagen que contiene rostros es la piel. Algunos autores han trabajado sobre espacio de colores para limitar todo el rango posible de diferentes tonalidades del color de la piel, y así poder discriminar y detectar de forma eficiente el rostro. Dentro de estos trabajos tenemos: . An Effective Model for Face Detection Using R, G, B Color Segmentation with Genetic Algorithm [Srivastava and Budhraja, 2016]. . A Face Detection System Based on Color and Support Vector Machines [Casiraghi et al., 2003] Adaptive Skin Color Model to Improve Video Face Detection [Jairath et al., 2016]. . Face Detection by Means of Skin Detection [Bevilacqua et al., 2008]. . Face Detection Using Rough Set Based Clustering Technique and Skin Tone Segmentation [Dutta and Bhattacharjee, 2016]. . Skin color modeling for face detection and segmentation: a review and a new approach [Chen et al., 2016].
(34) 3.4 DETECTORES DE ROSTROS BASADOS EN DEEP LEARNING. 3.4. 33. DETECTORES DE ROSTROS BASADOS EN DEEP LEARNING. En los últimos años con el incremento del poder computacional de los microprocesadores y la aparición de las tarjetas de video (GPUs) se ha podido dar avance a las técnicas de Deep Learning, las cuales necesitaban de mayores recursos computacionales que actualmente se tienen disponibles. Dentro de los trabajos más recientes desarrollados, tenemos: . A Deep Learning Approach to Joint Face Detection and Segmentation [Luu et al., 2016]. . Face Detection using Deep Learning: An Improved Faster RCNN Approach [Sun et al., 2017]. . Fast Deep Convolutional Face Detection in the Wild Exploiting Hard Sample Mining [Triantafyllidou et al., 2018]. . From Facial Parts Responses to Face Detection: A Deep Learning Approach [Yang et al., 2015b]. . Improving Multiview Face Detection with Multi-Task Deep Convolutional Neural Networks [Zhang and Zhang, 2014]. . Unconstrained face detection: a Deep learning and Machine learning combined approach [Sawat and Hegadi, 2017]. . Use Fast R-CNN and Cascade Structure for Face Detection [Wang et al., 2016]. 3.5. DETECTORES DE ROSTROS ENFOCADOS EN EL TIEMPO DE PROCESAMIENTO. Con el desarrollo de las técnicas de detección de rostros, se enfocó el desarrollo al tiempo de procesamiento, debido a que muchas de las técnicas propuestas con anterioridad funcionaban adecuadamente en imágenes, se decidió llevar estos trabajos sobre videos. Pero el tiempo en procesar un solo fotograma sobrepaso el tiempo esperado, por lo que algunos autores se enfocaron en desarrollar propuestas que pudieran trabajar de forma adecuada en videos y poder procesarlos en tiempo real. Entre los más recientes trabajos tenemos: . A Fast and Accurate Unconstrained Face Detector [Liao et al., 2014]. . A low cost architecture for high performance face detection [Zhou et al., 2015]. . Face detection using fast neural networks and image decomposition [El-Bakry, 2002]. . Modular Real-Time Face Detection System [Wang et al., 2015].
(35) 3.6. DETECTORES DE ROSTROS ENFOCADOS EN EL PROCESAMIENTO DE IMÁGENES DE BAJA RESOLUCIÓN. Con el desarrollo de propuestas para videos, se decidió emplear estas técnicas sobre videos de vigilancia o se emplearon imágenes de exteriores. Un problema que surgió es que las personas en este tipo de videos no siempre se encontraban cerca a la video cámara o la calidad de captura no era la ideal. [ Dhamecha et al., 2016,Ahad, 2013] Es por este motivo que algunos autores decidieron enfocarse en esta área, entre ellos se puede encontrar:. 3.7. . Dissimilarity Representations for Low-Resolution Face Recognition [Hernandez Duran et al., 2015]. . ENCARA2: Real-time detection of multiple faces at different resolutions in video streams [Castrillon et al., 2007]. . Face Detection and Extraction from Low Resolution Surveillance Video Using Motion Segmentation [Mutneja and Singh, 2017]. . Low-resolution Face Recognition with Single Sample per Person [Chu et al., 2017]. . Low-Resolution Video Face Recognition with Face Normalization and Feature Adaptation [Herrmann et al., 2015]. . Multiple Face Detection at Different Resolutions for Perceptual User Interfaces [Castrillon Santana et al., 2005]. . Recognition at a Long Distance: Very Low-Resolution Face Recognition and Hallucination [Yang et al., 2015a]. . Very Low-Resolution Face Recognition Problem [Zou and Yuen, 2012] ANÁLISIS DE TRABAJOS PREVIOS. A continuación, se analizan los trabajos previos desarrollados para la detección de rostros (Tabla 1), donde se describen los problemas encontrados de las técnicas ante la aplicación a secuencias de vídeo de baja calidad o si los fotogramas con las que fueron probadas los trabajos fueron extraídos de entornos controlados (interiores) o exteriores. Tabla 1: Análisis de trabajos existentes actualmente. Trabajo [Srivastava and Budhraja, 2016]. Baja resolución no. Video no. 36. Problemas Detección de una sola persona..
(36) 4.2 DETECCIÓN DEL MOVIMIENTO DE PIXELES MEDIANTE FLUJO ÓPTICO. 35. [Li et al., 2015]. no. si. Trabaja sobre imágenes con buena iluminación. [Luu et al., 2016]. no. no. Basado en el color de piel. [Casiraghi et al., 2003]. no. no. Basado en características del rostro. [Liao et al., 2014]. si. si. Trabaja sobre imágenes con buena iluminación. [Zhou et al., 2015]. no. no. [Jairath et al., 2016]. no. no. [Yun and Guan, 2008]. no. si. Velocidad de procesamiento Basado en el color de piel Velocidad de procesamiento. no. no. Calidad de la imagen, detección de una sola persona. [Zhang et al., 2017]. no. si. Trabaja sobre imágenes con buena iluminación. [Kang et al., 2014]. no. si. si. no. si. no. Basado en color. si. Velocidad de procesamiento y Detección de personas a distancia Velocidad de procesamiento (120 seg sobre imágenes grandes). [Freund and Schapire, 1997]. [Hernandez-Duran et al., 2015] [Castrillon et al., 2007] [Mutneja and Singh, 2017]. si. Detección de una sola persona Algoritmo de súper resolución. [Bevilacqua et al., 2008]. no. no. [Xie and Geng, 2012]. no. no. [Sun et al., 2017]. no. no. [El-Bakry, 2002]. si. no. [Dutta and Bhattacharjee, 2016]. no. no. Basado en el color de piel. [Jiang and Learned-Miller, 2017]. si. no. Trabaja sobre imágenes con buena iluminación. si. no. Tiempo de procesamiento. si. no. Trabaja sobre imágenes con buena iluminación. [Mathias et al., 2014] [Triantafyllidou et al., 2018]. Velocidad de procesamiento Eficiencia y escalabilidad Imágenes frontales de persona.
(37) [Yang et al., 2015b]. no. si. Tiempo de procesamiento, bordes de rostros. [Dalal and Triggs, 2005]. no. no. bordes de rostros. [Zhang and Zhang, 2014]. no. no. Basado en características del rostro. [Ojala et al., 2002]. no. no. Imagen bien definida. [Chu et al., 2017]. si. no. Detección de una sola persona por imagen. [Herrmann et al., 2015]. no. si. Detección de rostros mayores a 20 pixeles. [Wang et al., 2015]. no. si. Detección de una sola persona por imagen. no. no. [Yang et al., 2015a]. si. no. [Lowe, 2004]. no. no. [Chen et al., 2016]. no. no. [Bay et al., 2008]. no. no. [Qu and Li, 2015]. no. no. Bajo porcentaje de detección de rostros. no. Tiempo de procesamiento, eliminación de rostros lejanos detectados. [Castrillon Santana et al., 2005]. [Sawat and Hegadi, 2017]. [Wang et al., 2016]. [Zou and Yuen, 2012]. 3.8. no. no. no. si. no. Imagen con buena iluminación Tiempo de procesamiento Imagen con buena iluminación Basado en el color de piel Imagen con buena iluminación. Tiempo de procesamiento, tamaño de rostros detectados Algoritmo de súper resolución (Eigenfaces, Kernel PCA, SVM). CONSIDERACIONES FINALES. . Se ha verificado que muchos de los trabajos desarrollados previamente, utilizan imágenes o videos en entornos controlados (interiores), lo que no ayuda en su aplicación a secuencias de video de exteriores donde la iluminación y la distancia de las personas degradan en gran porcentaje estos trabajos de detección de rostros.. . Al variar la iluminación videos de exteriores, conlleva a la variación de la tonalidad del color de la piel, por lo que los trabajos desarrollados sobre esta característica no son adecuados para su aplicación sobre estas condiciones.. 36.
(38) 4.2 DETECCIÓN DEL MOVIMIENTO DE PIXELES MEDIANTE FLUJO ÓPTICO. 37. . Los trabajos más recientes utilizando técnicas de Deep Learning, poseen un buen porcentaje de precisión en las detecciones, pero lo logran utilizando muchos recursos computacionales, por lo que su aplicación en video y en tiempo real resultaría con la demanda de grandes infraestructuras. Además, estas técnicas no tienen buen rendimiento sobre secuencias de video de baja resolución, ya que incluso en la etapa de procesamiento, imágenes que no poseen una buena resolución son descartadas y las detecciones sobre las mismas tienen que apoyarse en técnicas adicionales como la súper-resolución, llevando a incrementar el tiempo de procesamiento.. . Las propuestas que se enfocan en el tiempo de procesamiento, necesitan de imágenes con buena iluminación y que los rostros sean claramente identificables, por lo que su aplicación en video externos tendría un rendimiento bajo.. . Los trabajos enfocados en la baja resolución de los videos utilizan técnicas de súperresolución o no han sido diseñadas para su aplicación en videos, debido a que centran su esfuerzo en analizar intensamente las imágenes y su aplicación en videos con llevaría a tiempos de procesamiento altos..
(39) 4 PROPUESTA. En esta sección se detalla el esquema de procesamiento propuesto para la detección de rostros en secuencias de video de baja calidad (baja resolución). Las interacciones entre los diferentes componentes y los detalles del entrenamiento de los Patrones Locales Binarios. 4.1. ESQUEMA PROPUESTO PARA LA DETECCIÓN DE ROSTROS. En la Figura 16 se muestra el esquema propuesto para la detección de rostros en videos con baja calidad.. Figura 16: En el esquema propuesto se muestra las cinco etapas del esquema, comenzando por la detección del movimiento, la detección de áreas de interés con ayuda del descriptor Vif, la detección de las personas en movimiento, la detección de áreas de rostros probables y su clasificación final utilizando Deep Learning.. FLUJO OPTICO – FARNEBÄCK:. Calcula la velocidad de desplazamiento de los pixeles tanto en el. eje X como en el eje Y. Determina que movimientos de los pixeles muestran un comportamiento más rápido que los demás. FLUJO VIOLENTO:. DETECCIÓN DE OBJETOS EN MOVIMIENTO: Determina. 36. que áreas presentan objetos en movimiento.
(40) 4.2 DETECCIÓN DEL MOVIMIENTO DE PIXELES MEDIANTE FLUJO ÓPTICO. HAAR UPPERBODY:. 39. Identifica regiones donde pueden encontrarse la parte superior de una. persona. LRF-LBP HAAR CASCADE: Identifica DEEP LEARNING CNN:. 4.2. rostros de baja resolución (menores a 24x24 pixeles). Discrimina que elemento detectados con anterioridad son rostros o no.. DETECCIÓN DEL MOVIMIENTO DE PIXELES MEDIANTE FLUJO ÓPTICO. La primera etapa de procesamiento es la detección de las zonas donde existe el movimiento de objetos, esta tarea es llevada a cabo con el algoritmo de flujo óptico de Gunnar Farnebäck [ Farnebäck, 2003] (la elección de este algoritmo se detalla en la Sección de Experimentos y resultados). Este proceso es fundamental ya que nos brinda la ubicación precisa de áreas donde se presenta movimiento (el movimiento producido por el desplazamiento de las personas, por ejemplo) utilizando dos fotogramas consecutivos, con lo que se puede descartar áreas donde no se produce cambios significantes y ahorrar tiempo de procesamiento en áreas donde no se encontraran objeto alguno. Otra información relevante que se obtiene del flujo óptico es la estimación de la velocidad y dirección del desplazamiento de objetos, esta información es útil en el proceso de seguimiento de rostros, ya que, al producirse una detección, el proceso de localización en el siguiente fotograma estará dado por el promedio de la orientación del área identificada como rostro, con lo que se logra identificar el mismo objeto en fotogramas posteriores. Un ejemplo de la detección de áreas con presencia de movimiento se muestra en la Figura 17 4.3. DETECCIÓN DE ÁREAS CON MOVIMIENTO UTILIZANDO VIF. Una vez obtenida el desplazamiento de los pixeles por el algoritmo de flujo óptico, se procesa el resultado obtenido con el descriptor de Flujo Violento modificado. El algoritmo procesa el desplazamiento en el eje coordenado X y Y calculando la magnitud del desplazamiento de un pixel. Después, utilizando un valor umbral el cual se actualiza en cada procesamiento (para la primera iteración el valor es de 1), son seleccionados los valores absolutos de las diferencias de la magnitud actual con la procesada en una iteración anterior. El resultado de descriptor de flujo violento modificado permite discriminar el movimiento de personas y/o vehículos por ejemplo en una avenida, del movimiento producido por sombras u otros objetos, los cuales poseen un desplazamiento más suave permitiendo que las áreas de procesamiento sean más precisas a los objetos que se encuentran en movimiento..
(41) 4.5 DETECCIÓN DE ROSTROS UTILIZANDO CASCADAS DE HAAR. (a) Fotograma 1. (b) Fotograma 2. (c) Flujo óptico. (d) Áreas con movimiento. 40. Figura 17: Proceso de detección de áreas con presencia de movimiento, los fotogramas de entrada son (a) y (b), el flujo óptico detectado en (c), y las zonas de movimiento en (d). En la Figura 18 se muestra un ejemplo del procesamiento con el descriptor Vif, en primer lugar, se obtiene el flujo óptico procesado en la etapa anterior (Figura 18a), y el resultado obtenido se muestra en la Figura 18b, se puede observar que el resultado nos indicado donde hay un movimiento que ha superado el umbral y que áreas no lograron superar este valor.. (a) Áreas con movimiento. (b) Descriptor Vif modificado. Figura 18: En la imagen (a) se muestra el flujo óptico, en la imagen (b) el resultado obtenido de la aplicación del algoritmo Vif modificado..
(42) 4.4 DETECCIÓN DE OBJETOS EN MOVIMIENTO. 41. 4.3.1 Aplicación de operaciones morfológicas Antes de finalizar esta etapa, la imagen procesada por Vif es mejorada mediante operaciones morfológicas, a su vez este procedimiento corregir errores que pueden surgir por la aplicación del flujo óptico paralelo (en la Sección de Experimentos y resultados se detalla el proceso paralelo). Las implementaciones de las operaciones morfológicas se encuentran en la librería OpenCV 2.4.13. El primer paso, se realiza una inversión binaria de la imagen (las zonas detectadas como áreas con movimiento pasan a ser áreas sin presencia con movimiento y las zonas sin movimiento pasan a ser áreas con movimiento), este procedimiento es llevado solo para preservar la compatibilidad con las funciones de OpenCV 2.4.13, el resultado final no se ve afectado por este cambio ya que posteriormente se realiza una conversión a su estado anterior. A continuación, se aplica la función morphologyEx como una función cierre. Como elemento estructurante se utiliza el elemento cruz (tamaño 14x14 pixeles). Finalizada la aplicación de la función se vuelve a hacer una inversión binaria. El resultado obtenido es la eliminación de pequeñas áreas con presencia de movimiento y el llenado de espacios libres dentro de áreas más grandes. Como paso final, se aplica la función de dilatación (dilate con un elemento estructurante de elipse de tamaño 14x14 pixeles). El resultado final obtenido son grandes áreas claras y la eliminación de pequeñas áreas. la Figura 19 muestra un ejemplo de este procedimiento.. (a) Descriptor Vif modificado. (b) Aplicación de Operaciones morfológicas. Figura 19: En la imagen (a) se muestra el resultado del descriptor Vif, en la imagen (b) el resultado obtenido de la aplicación de las operaciones morfológicas. 4.4. DETECCIÓN DE OBJETOS EN MOVIMIENTO. La detección final de los objetos en movimiento es realizada con el algoritmo de detección de contornos de Suzuki & KeiichiA [ Suzuki and be, 1985 (la técnica se encuentra implementada en la librería OpenCV 2.4.13)..
Figure
Documento similar
Proporcione esta nota de seguridad y las copias de la versión para pacientes junto con el documento Preguntas frecuentes sobre contraindicaciones y
Y tendiendo ellos la vista vieron cuanto en el mundo había y dieron las gracias al Criador diciendo: Repetidas gracias os damos porque nos habéis criado hombres, nos
Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun
diabetes, chronic respiratory disease and cancer) targeted in the Global Action Plan on NCDs as well as other noncommunicable conditions of particular concern in the European
Tejidos de origen humano o sus derivados que sean inviables o hayan sido transformados en inviables con una función accesoria.. Células de origen humano o sus derivados que
d) que haya «identidad de órgano» (con identidad de Sala y Sección); e) que haya alteridad, es decir, que las sentencias aportadas sean de persona distinta a la recurrente, e) que
Las manifestaciones musicales y su organización institucional a lo largo de los siglos XVI al XVIII son aspectos poco conocidos de la cultura alicantina. Analizar el alcance y
En este sentido, puede defenderse que, si la Administración está habilitada normativamente para actuar en una determinada materia mediante actuaciones formales, ejerciendo