|
Grado en Ingeniería Informática |
TRABAJOS FIN DE GRADO curso: 2021-22
Integración y evaluación de un nodo fog con aceleradores hardware para procesamiento de imágenes en tiempo real |
Tecnologías Específicas
Ingeniería de Computadores
Descripcion y Objetivos
Desde 2015 Google diseña las Unidades de Procesamiento Tensorial (TPUs) como circuitos integrados ASIC aceleradores de IA (inteligencia artificial). Su diseño está optimizado para la ejecución de técnicas de aprendizaje automático basadas en redes neuronales profundas. Por otro lado, el crecimiento exponencial de los teléfonos móviles inteligentes, sensores y dispositivos wearables que obtienen datos del entorno y que necesitan hacer los cálculos computacionales cerca del dispositivo, sin enviar los datos al cloud central, hace que Google lance recientemente al mercado un dispositivo Edge TPU de bajo coste, bajo el nombre de Coral.
El desarrollo del aprendizaje automático se hace en dos etapas. Primero, un algoritmo se entrena haciendo uso de una gran cantidad de muestras de datos en un clúster o máquina computacionalmente potente. Luego, la red entrenada se despliega en una aplicación que necesita interpretar los datos reales. Esta etapa de despliegue o “inferencia” es donde el dispositivo Edge TPU participa. Edge TPU permite la ejecución de la red entrenada “en el borde” (at the edge), esto es, cerca de la fuente donde se generaron los datos. De alguna forma, pasamos a disponer de “inteligencia” cerca de los dispositivos finales, no en el cloud o servidor central, reduciendo las latencias de comunicación y los costes debidos al consumo de ancho de banda. Este paradigma se denomina computación en la niebla o Fog Computing.
El objetivo general de este TFG consiste en diseñar un nodo fog de bajo coste basado en placas Raspberry Pi dotadas de una cámara y de un acelerador TPU Coral, integrando todos los elementos hardware a través de una arquitectura software basada en contenedores Docker, siempre que sea posible.
Desde 2015 Google diseña las Unidades de Procesamiento Tensorial (TPUs) como circuitos integrados ASIC aceleradores de IA (inteligencia artificial). Su diseño está optimizado para la ejecución de técnicas de aprendizaje automático basadas en redes neuronales profundas. Por otro lado, el crecimiento exponencial de los teléfonos móviles inteligentes, sensores y dispositivos wearables que obtienen datos del entorno y que necesitan hacer los cálculos computacionales cerca del dispositivo, sin enviar los datos al cloud central, hace que Google lance recientemente al mercado un dispositivo Edge TPU de bajo coste, bajo el nombre de Coral.
El desarrollo del aprendizaje automático se hace en dos etapas. Primero, un algoritmo se entrena haciendo uso de una gran cantidad de muestras de datos en un clúster o máquina computacionalmente potente. Luego, la red entrenada se despliega en una aplicación que necesita interpretar los datos reales. Esta etapa de despliegue o “inferencia” es donde el dispositivo Edge TPU participa. Edge TPU permite la ejecución de la red entrenada “en el borde” (at the edge), esto es, cerca de la fuente donde se generaron los datos. De alguna forma, pasamos a disponer de “inteligencia” cerca de los dispositivos finales, no en el cloud o servidor central, reduciendo las latencias de comunicación y los costes debidos al consumo de ancho de banda. Este paradigma se denomina computación en la niebla o Fog Computing.
El objetivo general de este TFG consiste en diseñar un nodo fog de bajo coste basado en placas Raspberry Pi dotadas de una cámara y de un acelerador TPU Coral, integrando todos los elementos hardware a través de una arquitectura software basada en contenedores Docker, siempre que sea posible.
Metodología y Competencias
Para el desarrollo de este TFG se hará uso de una metodología ágil basada en Scrum. Se mantendrán reuniones quincenales con los tutores para el correcto seguimiento y retroalimentación del trabajo.
En cuanto al plan de trabajo, a priori se definen las siguientes fases:
- Estudiar la plataforma hardware básica: Raspberry Pi y cámara.
- Estudiar las librerías TensorFlow y TensorFlow Lite y su uso junto a las TPUs.
- Definir la arquitectura de la solución propuesta, identificando los módulos funcionales que la componen.
- Implementación y despliegue de uno o varios casos de uso, empleando contenedores Docker siempre que sea posible.
- Evaluación de prestaciones del sistema integrado.
Las competencias que se aplican en el caso de la Tecnología de Ingeniería de Computadores son:
[IC3] Capacidad de analizar y evaluar arquitecturas de computadores, incluyendo plataformas paralelas y distribuidas, así como desarrollar y optimizar software para las mismas.
[IC7] Capacidad para analizar, evaluar, seleccionar y configurar plataformas hardware para el desarrollo y ejecución de aplicaciones y servicios informáticos.
Medios a utilizar
Placas Raspberry Pi, cámara para Raspberry Pi, PC o portátil
Software de código abierto: Docker, TensorFlow (Lite)…
Bibliografía
- Eben Upton y Gareth Halfacree, Rasbperry Pi User Guide, Ed. Wiley, 2012, disponible en http://www.cs.unca.edu/~bruce/Fall14/360/RPiUsersGuide.pdf
- Hypriot, Getting started with Docker on your Raspberry Pi, disponible en https://blog.hypriot.com/getting-started-with-docker-on-your-arm-device/, último acceso en septiembre de 2021.
- Raspberry Pi Foundation, Getting started with the Camera Module, disponible en https://projects.raspberrypi.org/en/projects/getting-started-with-picamera, último acceso en septiembre de 2021.
- Inference on the edge: Building a deep neural network with Tensorflow for the Raspberry Pi, disponible en https://towardsdatascience.com/inference-on-the-edge-21234ea7633, último acceso en septiembre de 2021.
- Understanding Tensor Processing Units, disponible en https://medium.com/sciforce/understanding-tensor-processing-units-10ff41f50e78, último acceso en septiembre de 2021.
- TensorFlow models on the Edge TPU, disponible en https://coral.withgoogle.com/docs/edgetpu/models-intro, último acceso en septiembre de 2021.
- TensorFlow Lite Guide, disponible en https://www.tensorflow.org/lite/guide, último acceso en septiembre de 2021.
- TensorFlow Tutorial For Beginners, disponible en https://www.datacamp.com/community/tutorials/tensorflow-tutorial, último acceso en septiembre de 2021.
- Code examples and project tutorials to build intelligent devices with Coral, disponible en https://coral.ai/examples/, último acceso en septiembre de 2021.
Tutores CAMINERO HERRÁEZ, Mª BLANCA CARRIÓN ESPINOSA, CARMEN | Alumno PÉREZ MORENO, VÍCTOR
|
| |