[en] The development of AI in recent years has led to its integration in many sectors of society. The basic scheme that is usually followed when you want to integrate an AI model is through the use of Cloud Computing, where data is sent to a remote server to perform the calculations and return the results. However, this scheme has a number of problems, such as latency, data privacy, or dependence on an internet connection. To solve these problems, it has been proposed to integrate AI in low-power devices, such as microcontrollers or SBCs, and let the devices themselves perform all the calculations, these devices are known as Edge Devices. The problem arises when you want to integrate an AI model designed to be executed on a server in a low-power device, since these have a much lower computational capacity than a server. To solve this problem, and so that the devices themselves can run the AI models, a number of techniques have been proposed, such as model quantization, model distillation, or model pruning. In this project we have studied these techniques with emphasis on model distillation, a technique that consists of training a student model to learn from a teacher model. A series of experiments have been carried out to study the behavior of model distillation in different scenarios. The results obtained show that this distillation significantly improves the performance of the student models, improving in the best case by almost 20% with respect to the model without distillation. Once the different distillation algorithms have been studied and explained, a human detection model has been integrated in three edge computing devices, from the most basic, an ESP32 microcontroller, through a Raspberry Pi 3 and ending with an Nvidia Jetson Xavier NX. In this way it has been possible to test how the models behave on different devices and how the models can be adapted to run on low-power devices by improving their performance and efficiency using model compression techniques.

[es] El desarrollo de la Inteligencia Artificial (IA) en los últimos años ha empujado a la integración de la misma en muchos sectores de la sociedad. El esquema básico que se suele seguir cuando se quiere integrar un modelo de IA es mediante el uso del Cloud Computing, donde se envían los datos a un servidor remoto para que este realice los cálculos y devuelva los resultados. Sin embargo, este esquema tiene una serie de problemas, como la latencia, la privacidad de los datos o la dependencia de una conexión a internet. Para solventar estos problemas, se ha propuesto la integración de la IA en dispositivos de bajo consumo, como microcontroladores o Single Board Computer (SBC) y que sean los propios dispositivos los que realicen todos los cálculos, a estos dispositivos se les conoce como Edge Devices. El problema surge cuando se quiere integrar un modelo de IA pensado para ser ejecutado en un servidor en un dispositivo de bajo consumo, ya que estos tienen una capacidad de cómputo mucho menor que un servidor. Para resolver este problema, y que los propios dispositivos puedan ejecutar los modelos de IA, se han propuesto una serie de técnicas, como la cuantización de modelos, la destilación de modelos o la poda de modelos. En este proyecto se ha estudiado estas técnicas haciendo énfasis en la destilación de modelos, una técnica que consiste en entrenar un modelo estudiante para que aprenda de un modelo profesor. Se han realizado una serie de experimentos para estudiar el comportamiento de la destilación de modelos en diferentes escenarios. Los resultados obtenidos muestran que esta destilación mejora de forma significativa el rendimiento de los modelos estudiante, llegando en el mejor de los casos a mejorar casi un 20% respecto al modelo sin destilar. Una vez estudiado y explicado los distintos algoritmos de destilación, se ha integrado un modelo de detección de personas en tres dispositivos de computación en el borde, desde lo más básico, un microcontrolador ESP32, pasando por una Raspberry Pi 3 y terminando en una Nvidia Jetson Xavier NX. De este modo se ha podido comprobar cómo se comportan los modelos en diferentes dispositivos y cómo se pueden adaptar los modelos para que funcionen en dispositivos de bajo consumo mejorando su rendimiento y eficiencia mediante técnicas de compresión de modelos