Aceleración y optimizacion del consumo energetico de clasificadores en cascada para la deteccion de rostros sobre arquitecturas asimetricas
- CORPAS NOVO, JESÚS ALBERTO
- Manuel Rodríguez Álvarez Directeur/trice
- Guillermo Botella Juan Co-directeur
Université de défendre: Universidad de Granada
Fecha de defensa: 15 juillet 2019
- Pilar Martínez Ortigosa President
- Antonio Francisco Díaz García Secrétaire
- José Manuel Palomares Muñoz Rapporteur
- Begoña del Pino Prieto Rapporteur
- Andres Ortiz García Rapporteur
Type: Thèses
Résumé
Esta tesis propone diversas técnicas para acelerar y optimizar el consumo energético de un algoritmo para la detección facial basado en clasificadores en cascada tipo Haar, a través del aprovechamiento de las características que nos proporciona un procesador multinúcleo simétrico y otro asimétrico (Asymmetric Multicore Processor - AMP) de bajo coste. Este último está formado por varios procesadores con el mismo repertorio de instrucciones pero distintas características de rendimiento y consumo. La tesis se ha divido en 8 capítulos. En el primer capítulo se describen los objetivos propuestos así como la estructura de la tesis. En el segundo capítulo se describe el problema de la detección facial y una clasificación de los diferentes modelos que se suelen considerar para la resolución del mismo, así como los indicadores que marcan la precisión en la detección facial de estos sistemas, que va a permitir hacer una comparativa entre diferentes algoritmos utilizados en la actualidad. Finalmente se verán algunas de las aplicaciones más conocidas de los sistemas de detección facial. En el tercer capítulo se describe detalladamente el algoritmo presentado por Viola-Jones. Se describen las partes más importantes del mismo como son la imagen integral, el algoritmo de aprendizaje llamado Adaboost, el diseño de clasificadores en cascada en función de los parámetros de precisión que se quiere alcanzar con el sistemas de detección, y finalmente se mencionarán los resultados obtenidos en diferentes trabajos que se han desarrollado y que han mejorado el rendimiento del algoritmo, a través de modificaciones en el algoritmo de aprendizaje o en la elección de las características de detección. Una de estas modificaciones es la que se encuentra implementada en la biblioteca de funciones de visión artificial desarrollada por Intel, denominada OpenCV. En el cuarto capítulo se introduce una visión general de las diferentes plataformas hardware utilizadas en el diseño de sistemas de visión para la detección facial, con el fin de ver que plataforma se ajustar mejor a los requerimientos de la tesis. Posteriormente, se definen dos entornos hardware de bajo coste, con tecnología similar a la disponible en los actuales teléfonos inteligentes, que se pueden utilizar para la implementación de sistemas de detección facial, como son la placa Raspberry Pi 2 Model B que dispone de un procesador ARM (Advanced RISC Machine) de cuatro núcleos simétricos Cortex-A7, y la placa Odroid XU4 cuyo procesador ARM big.LITTLE de ocho núcleos, está formado por dos clúster de 4 núcleos cada uno, el Big: formado por 4 núcleos Cortex A15 de alto rendimiento, y el Little: formado por núcleos Cortex A7 de bajo consumo (se trata por tanto de una arquitectura asimétrica). En el quinto capítulo, se describirán la metodología y el proceso llevado a cabo para la implementación y aceleración del software del algoritmo para la detección facial, así como los entornos de desarrollo experimentales donde se va a ejecutar. Para ello, se parte del código fuente de una implementación simplificada del algoritmo de Viola-Jones, realizada en C++, que dispone de unos parámetros de entrenamiento fijados y que presenta una tasa de detección alta para una amplia gama de imágenes de entrada. Se adecuará y optimizará el software al entorno de trabajo y se procederá a la extracción de paralelismo a nivel de tareas usando la API (Interfaz de Programación de Aplicaciones) de OPenMP y de Ompss, con el fin de acelerar el programa de detección y aprovechar al máximo los recursos de los dispositivos. En este sentido, se llegará a un punto en el que mejorar el rendimiento de ejecución de un programa en C++ escrito originalmente para la ejecución tradicional en una sola CPU, implica la modificación de los algoritmos de procesamiento para utilizar varios núcleos de CPU en paralelo. En este caso, la API OpenMP, es una de las mejores opciones dentro de las tecnologías de programación en paralelo debido a que es soportado por diferentes sistemas operativos, herramientas de compilación y otros dispositivos hardware, por lo que funciona hoy en día, incluso en dispositivos móviles. En el sexto capítulo, se realizará un estudio de las diferentes técnicas de reducción del consumo energético que exploten de manera eficiente todos los recursos computacionales que ofrecen las arquitecturas asimétricas. Para ello, se hará uso de las funcionalidades que ofrece el planificador de tareas de Ompss, consciente de la asimetría de la arquitectura de la CPU, así como las políticas de asignación de recursos y explotación de los modos de bajo consumo proporcionados por las arquitecturas, que permitan un aprovechamiento eficiente de la energía. El objetivo será explotar de manera energéticamente eficiente todos los recursos computacionales existentes en las plataformas experimentales usadas en la tesis. Además, se realizara una evaluación de los resultados obtenidos bajo ejecución secuencial y paralela en cada una de las placas: Raspberry Pi 2 Model B y Odroid XU4, y un análisis experimental, comparando los resultados en cada una de ellas, con el fin de contrastar la mejoras en la eficiencia energética de la arquitecturas asimétrica frente a las simétricas, además de proporcionar algunas soluciones para la mejora de la eficiencia energética. En el séptimo capítulo, se llevará a cabo una experiencia práctica de uso del sistema de detección facial en el marco de un sistema general de identificación facial. En este capítulo se comparará su rendimiento respecto a otro sistema de detección facial basado en el modelo Facenet, que hace uso de Redes Neuronales Convolucionales (CNN). Seguidamente, se procederá a la aceleración del sistema de identificación facial a través de uno, dos, tres y cuatro dispositivos de Intel Movidius, Neural Compute Stick (NCS), funcionando en paralelo, comprobando de este modo la viabilidad del uso de estos dispositivos para la aceleración del sistema de identificación facial. Por último, en el octavo capítulo, se recogen las principales conclusiones y aportaciones de la tesis, así como algunos ejemplos de líneas de trabajo futuro relacionadas con la investigación llevada a cabo. Aparte hay un capítulo de Bibliografía y tres Apéndices.