Abstract:
El presente trabajo de graduación tiene como objetivo principal el desarrollo e implementación de un sistema de visión por computador de reconocimiento facial y de emociones para la interacción con el rostro animatrónico de la Universidad del Valle de Guatemala.
Para esto se seleccionó Keras para realizar el modelo de reconocimiento, OpenCV para la
visión por computadora y Kivy para la interfaz gráfica del usuario. Asimismo, se buscó programar una respuesta congruente del rostro para la emoción que este detecte y crear una interacción Humano-Robot.
Para lograr una detección de emociones acertada se requirió de una detallada investigación acerca de los gestos faciales que el ser humano presenta según su estado de ánimo.
Debido a que el rostro humano tiene múltiples unidades de acción no se podría asignar una sola para cada expresión. Por ello hay distintas configuraciones que combinan diferentes unidades de acción que se le asignan a cada emoción. Basándonos en estos criterios se buscó un conjunto de datos que contuviera la información necesaria que representara las emociones que queríamos.
El desarrollo del modelo de reconocimiento de emociones se realizó en Python haciendo
uso de la API Keras para el aprendizaje profundo. Se realizó una red neuronal iterativa
con distintas funciones de activación para encontrar el mejor método de entrenamiento. Se utilizaron dos conjuntos de imágenes para el desarrollo del modelo, el primero era pequeño y su función era encontrar la mejor forma de entrenar el modelo y el segundo era más grande y su función era mejorar los resultados para generar el modelo de reconocimiento final.
El reconocimiento de emociones fue programado en Python utilizando la librería de
OpenCV y la API Keras. Se utilizó un código base de reconocimiento facial que utiliza
un clasificador Haar Cascade y se modificó para aplicar el modelo de reconocimiento que
desarrollamos. Para que el programa de reconocimiento funcione se necesita una cámara
conectada a la computadora.
Finalmente, se procedió a crear una interfaz gráfica para el usuario que fuera sencilla
de manipular y entender. El objetivo de esta era poder monitorear la información que se
obtenía, la información que se enviaba y la respuesta del robot. Esta interfaz fue desarrollada en Python utilizando, la biblioteca de desarrollo de GUI, Kivy.
(A)