Diseño e implementación en hardware reconfigurable de un sistema de reconocimiento de gestos de la mano basado en visión por computador
- Francisco Javier Toledo Moreo
- Isidro Villó Pérez Director
- Rafael Toledo Moreo Co-director
Defence university: Universidad Politécnica de Cartagena
Fecha de defensa: 03 February 2023
- Ignacio Bravo Muñoz Chair
- José Santa Lozano Secretary
- Mercedes Valdés Vela Committee member
Type: Thesis
Abstract
En esta tesis se proponen un sistema para el reconocimiento de gestos de la mano basado en visión por computador y el diseño de su implementación hardware. El propósito del reconocimiento de gestos es proporcionar a una computadora la capacidad de detectar gestos realizados por una persona. Esta tarea, innata para el ser humano, ha resultado ser compleja y difícil de automatizar. Entre las diferentes aproximaciones al problema, una de las principales líneas de trabajo es el empleo de visión por computador. El desarrollo de las técnicas de procesamiento en visión por computador ha proporcionado herramientas para que sistemas basados en microprocesadores analicen imágenes adquiridas por cámaras e intenten extraer de ellas información que resulte de interés para cualquier aplicación. Analizado desde esta perspectiva, el reconocimiento de los gestos de la mano es un problema de reconocimiento de objetos, campo en el que se distinguen dos niveles: de instancia, cuando se busca un objeto específico, una persona concreta; y de categoría, cuando se pretende reconocer cualquier instancia de un tipo de objeto. Este segundo nivel persigue, definida una colección de categorías de objetos y dada una imagen, determinar si hay algún objeto de una categoría presente en ella. En particular, en esta tesis la categoría es un gesto, definido por una determinada posición y orientación de la mano y por la configuración de los dedos. En este marco, se ha definido una colección de categorías —una biblioteca de gestos— que se pretende reconocer y, con tal objetivo, se ha desarrollado un conjunto de etapas de procesamiento y algoritmos que conforman el sistema de reconocimiento de gestos de la mano. En primer lugar, se pretende separar la mano del resto de la imagen. Para ello, se propone un algoritmo de reconocimiento del color de la piel, basado en modelos construidos en diferentes espacios de color. Desarrollado con el propósito mencionado, puede resultar de interés en cualquiera de las numerosas aplicaciones en las que se lleva a cabo segmentación de imágenes basada en el color de la piel. Una vez segmentada la imagen, se propone detectar la mano y reconocer el gesto identificando sus partes elementales —palma y dedos— por medio de la convolución bidimensional de la imagen segmentada con un conjunto de plantillas definidas con tal fin. A partir del análisis de la información resultante de las convoluciones de estas plantillas con las imágenes de una base de datos de gestos creada con este propósito, se ha construido un modelo para cada uno de los gestos de la biblioteca. En el proceso de desarrollo de las diferentes etapas, la metodología de diseño ha buscado favorecer la modularidad y la escalabilidad suficiente como para posibilitar la actualización de la biblioteca de gestos y la adaptación del funcionamiento global del sistema a diversas aplicaciones. Para proporcionar al usuario una experiencia satisfactoria en el manejo del sistema de reconocimiento es imprescindible que la interacción se realice con la mayor naturalidad. Esto requiere que el usuario perciba que el sistema responde de manera inmediata a sus acciones, lo cual implica que la rapidez de respuesta del sistema sea una prestación clave. Con el propósito de optimizar las prestaciones temporales de la ejecución de los algoritmos de procesamiento, se han propuesto soluciones para su implementación en hardware reconfigurable. Los dispositivos FPGA son una plataforma muy adecuada para acelerar algoritmos de alta carga computacional. Su estructura interna los hace ideales para explotar el paralelismo a nivel de píxel inherente a los algoritmos de procesamiento de imagen de bajo nivel, también el paralelismo a nivel de instrucción por medio de la segmentación de cauce y, al mismo tiempo, el paralelismo a más alto nivel para ejecutar simultáneamente distintas operaciones. Por todo ello, las FPGA son la plataforma hardware adecuada para la implementación de nuestro sistema. Empleando dispositivos y herramientas de Xilinx R, se ha diseñado, implementado y validado un sistema digital que ejecuta las tareas de procesamiento involucradas en el reconocimiento de los gestos, en el marco de una arquitectura híbrida hardware/software. El criterio de particionado ha sido la escala temporal de las tareas, en la que se distinguen dos niveles: nivel de píxel y nivel de imagen. Para resoluciones y sensores de imagen típicos de sistemas embebidos, los algoritmos que operan con los valores de los píxeles lo hacen en el orden de los nanosegundos. Su dominio propio es el del hardware, donde es posible explotar el paralelismo de las operaciones y la flexibilidad de la arquitectura de las FPGA para lograr procesamiento en tiempo real. Por su parte, las tareas a nivel de imagen, en el orden de los milisegundos, conviene que se ejecuten en software. Dentro del sistema digital diseñado, en esta tesis se desarrollan soluciones para la implementación hardware de las dos tareas a nivel de píxel más relevantes: la segmentación según el color de la piel y la convolución bidimensional. En particular, para la convolución, que es la etapa con mayor carga computacional, se proponen arquitecturas tanto para la realización de las operaciones implicadas en su cálculo como para el almacenamiento temporal de los datos. Los resultados obtenidos en las diferentes campañas de test demuestran tanto la bondad de la solución propuesta al problema planteado como la viabilidad de su implementación por medio de los dispositivos FPGA