Diseño de un sistema de control mediante gestos y reconocimiento facial

Cerrato Nieto, Alonso (2020). Diseño de un sistema de control mediante gestos y reconocimiento facial. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. y Sistemas de Telecomunicación (UPM), Madrid.

Description

Title: Diseño de un sistema de control mediante gestos y reconocimiento facial
Author/s:
  • Cerrato Nieto, Alonso
Contributor/s:
  • Benavente Peces, César
Item Type: Final Project
Degree: Grado en Ingeniería de Sistemas de Telecomunicación
Date: July 2020
Subjects:
Freetext Keywords: Reconocimiento de formas; Sistemas de control
Faculty: E.T.S.I. y Sistemas de Telecomunicación (UPM)
Department: Ingeniería Audiovisual y Comunicaciones [hasta 2014]
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (3MB) | Preview

Abstract

“Diseño de un sistema de control mediante gestos y reconocimiento facial” es un proyecto enfocado en el sector del aprendizaje automático y la visión por computador. Este campo tecnológico evoluciona día a día y frecuentemente se presentan productos cuya base principal son estas tecnologías. Con este proyecto se busca encontrar una solución innovadora y actual, que puede ser usada en distintos tipos de aplicaciones. Se trata de un sistema de control que usa la detección y reconocimiento facial y de gestos de las manos. Estos gestos sirven para realizar diferentes tipos de acciones, como controlar un vehículo, obtener medidas de sensores o encender y apagar luces. Una aplicación actual podría incluir el control de un dron. Los drones son cada vez más utilizados para diferentes tipos de trabajos, y podría ser una manera sencilla y remota de controlarlos. Sin embargo, en este documento se desarrolla el caso de uso controlando un coche robot, usando para ello, el programa del sistema de control diseñado y una placa Raspberry Pi. Se intentará demostrar que es un diseño funcional, pudiendo ser actualizado y mejorado para futuras y más complejas aplicaciones. Los condicionantes tecnológicos son principalmente restricciones y especificaciones de versiones de software. En cuanto a los económicos, la demo realizada en este proyecto no implica mucho gasto ya que toda la parte de hardware son productos y piezas que pueden ser encontradas fácilmente y a precios asequibles. La parte de desarrollo del software es totalmente gratuita, sin la necesidad de instalar ningún programa de pago. Igualmente, este apartado será explicado en la parte de “Presupuestos”. Para el desarrollo del diseño, se ha requerido el uso de Python y OpenCV, a parte de diferentes librerías extras de machine learning y procesamiento de vídeo e imágenes. Además, el código ha sido desarrollado usando Pycharm, un entorno de desarrollo integrado, creado por JetBrains, que se usa para programar en el lenguaje Python. La metodología usada para la parte de desarrollo de software se trata de un modelo evolutivo incremental, con el que se empezarán programando y realizando pruebas con funcionalidades básicas y se añadirán otras conforme se vaya evaluando el progreso. Para este apartado se han utilizado diferentes técnicas de detección y reconocimiento, eligiendo la más adecuada para este diseño. Todo ello, comparando y probando las diferentes técnicas. Tras el desarrollo del software, se ha procedido a importar los programas de control del coche en la Raspberry Pi. Cuando el ordenador procesa las imágenes ofrecidas en tiempo real a través de la webcam, y detecta y reconoce la cara y los gestos, este envía el comando necesario para ejecutar la acción correspondiente al gesto en la placa Raspberry Pi. Esta acción de ejecutar desde el ordenador los scripts de la placa de forma remota, se realiza usando el Wi-Fi de la placa y el protocolo SSH. Este protocolo es implementado en Python usando una librería llamada Paramiko. Los resultados de las pruebas realizadas en el diseño han sido positivos y se ha conseguido la funcionalidad esperada. Sin embargo, hay un rango de mejora debido a la latencia presente por el uso de la CPU al ejecutar el programa, en lugar de utilizar una GPU. Con los resultados obtenidos, podemos concluir que se trata de un diseño que funciona y hace buen uso de las tecnologías empleadas. Además, hay un margen de mejora con la posibilidad de usar una GPU, y añadir nuevas funcionalidades al coche mediante nuevos gestos. Como se comentó al principio, y al ver el éxito de nuestras pruebas, podemos finalizar diciendo que este sistema de control puede ser implementado en otras aplicaciones y usando otros vehículos, como los mencionados drones. Abstract: “Design of a control system using gestures and facial recognition” is a project focused on the machine learning and computer vision sector. This field is evolving every day and a lot of products based on these technologies are launched with frequency. This project is looking for an innovative and useful solution that can be used in different types of applications. It is based on a control system that uses the facial and hand gestures detection and recognition. These gestures are used to perform different tasks, like controlling a vehicle, obtaining sensor measurements, or turning on and off lights. An application example includes the control of a drone. Drones are more used every day for different jobs and tasks, and this project could be a way of controlling them in an easy and remote way. However, in this document it is included a demo with a robot car, using the designed program and a Raspberry Pi board. It is intended to show that is a functional design that can be updated and improved for future and more complex applications. The technological requirements are mainly software specifications and restrictions. The economic requirements for the demo in this project do not include a high cost. All the hardware can be easily acquired within a good price. Furthermore, the software development is totally free and does not include any payment. This part is explained in the “Budget” section. For the development of the design, Python and OpenCV have been used, apart from other extra libraries that are useful for machine learning, and image and video processing tasks. Also, the program has been coded using Pycharm, an integrated development environment, created by JetBrains, that is used for Python coding. The methodology used for the software development part is called incremental evolution model, in which the first programs consist on basic functionalities. These functions are tested, and other ones will be added when the result is evaluated. The program was tested using different techniques for detection and recognition, choosing the best one that fits our design. After the software development part is done, the car control scripts are added to the Raspberry Pi. When the computer processes the images detected in real time from the webcam, it detects and recognize the face and hand gestures and send the specific command to execute the correspondent action in the car. This action of executing the Raspberry Pi scripts from the computer is done by using the Wi-Fi of the board and the SSH protocol. The SSH protocol is implemented in Python using one specific library called Paramiko. The results of the design tests have been positive, and the expected functionality has been achieved. However, there is a range of enhancements due to the execution of the code using the computer CPU, instead of using a GPU, which causes a certain latency. In conclusion, the project is a functional design that uses the commented technologies in an effective way. Furthermore, it can be improved with the possibility of using a GPU to execute the code and adding new functionalities to the car by training new gestures. After evaluating the successful results, and as commented in the beginning, this control system can be implemented in other applications and using other vehicles, as the mentioned drones.

More information

Item ID: 67422
DC Identifier: https://oa.upm.es/67422/
OAI Identifier: oai:oa.upm.es:67422
Deposited by: Biblioteca Universitaria Campus Sur
Deposited on: 21 Jun 2021 13:16
Last Modified: 21 Aug 2021 22:30
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM