Abstract:
El desarrollo de los robots animatrónicos ha ayudado a la generación de nuevas tecnologías en los sistemas de control y en el procesamiento de imágenes. El objetivo general del trabajo era poder implementar por medio de software un programa que pueda detectar el rostro y reconocimiento de expresiones faciales. Para la consecución de este objetivo se realizó una búsqueda bibliográfica de las diferentes cámaras para seleccionar la más adecuada. Partiendo de la elección de la cámara se determinaron los algoritmos que se podía implementar en el programa Python para la detección de rostros.
Para el apartado de detección de rostros se realizó una comparación entre dos algoritmos
utilizados. Uno que utilizaba algoritmos en cascada y otra que utilizaba las marca de cara.
Se analizaron ambos algoritmos en dos ambiente diferentes, entre los que se evaluó el desempeño de estos. En aspectos como la distancia máxima, movimientos laterales, agresividad de movimientos y rotación con respecto del ángulo de visión. Entre los resultados se destaca el alcance que llega a tener el algoritmo Haar cascade en ambientes controlados y abiertos en donde presenta un mayor alcance que el algoritmo marcas de cara, en donde llega a tener un valor máximo de 5.31 m. En cambio, el algoritmo marcas de cara presenta una mayor robustez al momento de la de detección cuando existe una rotación de 45º del ángulo de visión con respecto a la cámara. Siendo el porcentaje de detección del algoritmo marcas de cara de 98.67% en comparación al 22.5% del algoritmo Haar cascade.
En el apartado del reconocimiento de expresiones faciales se realizó un búsqueda bibliográfica de los algoritmos que se utilizaban para la clasificación de estos. Los algoritmos seleccionados fueron Fisher Face y SVM. En el caso del programa Fisher Face que se basó en el el algoritmo Haar cascade. Para el programa Fisher Face se realizó un apartado con la reconstrucción de imágenes y representación de estas, mediante diagramas de dispersión de datos. Con el fin de observar una comparación entre las técnicas PCA y LDA utilizadas en el método Fisher Face. En el caso del apartado de SVM se utilizó las marcas de cara para la generación de los diferentes entrenamientos.
Para las bases de datos se utilizó la base de datos descargada Cohn-Kanade y las bases
de datos generadas UVG, UVG 2 m, Ambiente 2 y Personalizada. Ya que uno de los objetivos era realizar la prueba en ambientes diferentes, se generaron diferentes entrenamientos tomando en cuenta ciertos aspectos como la iluminación y distancia entre el sujeto y la cámara. Estas bases de datos sirvieron para generar archivos llamados entrenamientos que sirven al algoritmo para poder predecir las expresiones faciales.
En este apartado se generaron las pruebas para cada uno de los entrenamientos realizando una comparación con el algoritmo Fisher Face y SVM. La base de datos con mejor porcentaje de reconocimiento de expresiones fue la base de datos Personalizada con valores entre 98.67% y 100 %. En el caso de las demás bases de datos se obtuvo mejores porcentajes de reconocimiento con el algoritmo SVM en comparación con el algoritmo Fisher Face, ya que para todos los entrenamientos se obtuvieron reconocimiento superiores al 57.53 %.
Se tuvo ciertos problemas reconociendo la expresión de disgusto, ya que existía confusión para los algoritmos para reconocer entre disgusto, neutral y enojo. Es por eso que se realizaron pruebas en donde se limitó la cantidad de expresiones detectadas a tres: feliz, enojo y sorpresa. Al realizar esta modificación se tuvo una mejora en cuanto a los porcentajes de reconocimiento ya que el valor más bajo se obtuvo en el ambiente UVG 2 m, con un valor de 68.21% para el algoritmo Fisher Face.