Tesis:
FPGA-based acceleration of tracking algorithm to improve Parkinson's patients quality of life
- Autor: CONTI, Giuseppe
- Título: FPGA-based acceleration of tracking algorithm to improve Parkinson's patients quality of life
- Fecha: 2020
- Materia: Sin materia definida
- Escuela: E.T.S. DE INGENIEROS DE TELECOMUNICACION
- Departamentos: SEÑALES, SISTEMAS Y RADIOCOMUNICACIONES
- Acceso electrónico: http://oa.upm.es/66238/
- Director/a 1º: JIMÉNEZ BERMEJO, David
- Resumen: The use of electronic devices in biomedical and medical applications is increasing, with the intention of giving doctors and healthcare personnel new tools to monitor and checkup on their patients. All the professional communities involved, have a common purpose: to improve the quality of people’s lives. This thesis presents a study on the optimization of the tracking system designed for patients with Parkinson’s disease, tested at a day hospital center. The work performed significantly improves the efficiency of the computer vision based system in terms of energy consumption and hardware requirements. This study analyzes the tracking algorithm in its whole implementation, and it optimizes the performances of the background subtraction by segmenting every frame previously characterized by a Gaussian mixture model (GMM). This module has been determined to be the most demanding part in terms of computational resources, and therefore, this thesis proposes a method for its implementation by means of a low-cost development board based on Zynq XC7Z020 SoC (system on chip). The platform used is the ZedBoard, which combines an ARM Processor unit and an FPGA. Module optimisation is necessary to achieve performance, consumption and cost requirements. This research has optimised the embedded system, making use of a reconfigurable hardware solution, to implement the GMM module which is the most demanding. For this purpose, a hybrid software/hardware design has been chosen, to deal with the requirements imposed by the architecture that introduces a data type variation over the original software model implementation, without losing flexibility for future adaptations or modifications. Furthermore, the difficulties in integration with the rest of the complete system modules has been resolved, performing the functional tests (real or simulation) necessary for its verification. This thesis proposes a working methodology using tools that facilitate HW/SW co-design, achieving an implementation that covers the research needs without the drawbacks of a dedicated hardware design. The knowledge required and acquired to perform this work includes expertise from many other fields of study. In fact, the plethora of ingredients needed from other fields must include: research and biomedical skills to be able to understand the problem and find a solution, electrical and electronic expertise to design the architecture, hardware verification techniques to perform the validation of the design, Operating system and Linux expertise to build a system tailored to the board and the project resources, advanced programming skills to create and modify all the code necessary for the algorithmic part, driver development to perform the communication between the CPU and the FPGA, multi-threading and all types of software optimization to allow the performance improvements to take advantage of the FPGA. In the chapters of this thesis, all construction stages are detailed, starting from the research phase down to specific technical steps. To summarize: the algorithm is modified to allow its synthesis on the FPGA. In the following stage it has been implemented on the FGPA and connected to the CPU using the proper interfaces. A driver is developed to connect the algorithm running on the CPU with the part accelerated on the FPGA. All the systems are tested and checked up to find the right setup. A further optimization strategy is applied to the system improving the RAM usage and the multi-threading architecture of the CPU. The system achieves real-time performance and lowpower consumption while accurately performing the target tracking. Finally, the results and findings of this study, validated in real medical settings, are discussed and analyzed within. ----------RESUMEN---------- El uso de dispositivos electrónicos para aplicaciones biomédicas y médicas está aumentando, con la intención de dar a los médicos y al personal sanitario, nuevas herramientas para controlar y revisar a sus pacientes. Todas las comunidades profesionales involucradas tienen un propósito común: mejorar la calidad de vida de las personas. Esta tesis presenta un estudio sobre la optimización de un sistema de seguimiento de personas, diseñado para los pacientes que han desarrollado la enfermedad de Parkinson, probado en un centro de día de la comunidad de Madrid. El trabajo realizado mejora significativamente la eficiencia del sistema de visión artificial, en términos de consumo de energía y necesidad de recursos hardware. Este estudio analiza el algoritmo de seguimiento en toda su implementación y, optimiza las prestaciones de la sustracción de fondo segmentando cada cuadro previamente caracterizado por un Gaussian mixture model (GMM). Este módulo ha sido identificado como la parte más exigente en términos de recursos de computación, y por lo tanto, esta tesis propone un método más eficiente para su implementación mediante una placa de desarrollo de bajo costo basada en Zynq XC7Z020 SoC (System on Chip). La plataforma utilizada es la ZedBoard, que combina un procesador ARM y una FPGA. La optimización del módulo es necesaria para cubrir los requisitos de prestaciones, consumo y coste. En esta investigación se va a optimizar el sistema embebido, haciendo uso de hardware reconfigurable para el módulo GMM que es el más demandante. Para ello, se ha realizado un diseño híbrido software/hardware, solventando los requisitos impuestos por la arquitectura de trabajo que obliga a variar los tipos de datos que integraba el modelo software original en su implementación, pero añadiendo flexibilidad para adaptaciones o modificaciones futuras. Y solucionando las dificultades en la integración con el resto de módulos del sistema completo, y las pruebas funcionales (reales o con simulación) necesarias para su verificación. En esta tesis se plantea una metodología de trabajo utilizando herramientas que faciliten el co-diseño HW/SW, obteniendo una implementación que cubra las necesidades sin las penalizaciones de un diseño dedicado. El conocimiento requerido y adquirido para realizar este trabajo incluye más áreas de interés. De hecho, todos los elementos necesarios incluyen: investigación y experiencia en el área biomédica para poder entender el problema y encontrar una solución, conocimientos avanzados de electrónica para diseñar la arquitectura, técnicas de verificación de hardware para realizar la validación del diseño, experiencia en sistemas operativos, especialmente en Linux, para diseñar un sistema adaptado a la placa y a los recursos del proyecto, habilidades avanzadas de programación para crear y modificar todo el código necesario para la parte algorítmica, desarrollo de controladores para realizar la comunicación entre la CPU y la FPGA, conocimiento de procesamiento multi-hilo y todo tipo de optimización de software para permitir la mejora del rendimiento aprovechando la FPGA. En los capítulos de esta tesis se detallan todas las etapas para realizarla, desde la fase de investigación hasta todas las etapas técnicas. A continuación se presenta un breve resumen de todo el proceso. El algoritmo se modifica para permitir su síntesis en la FPGA. En la siguiente etapa se ha implementado el algoritmo sobre de la FGPA y se ha realizado la comunicación con la CPU utilizando las interfaces adecuadas. Se ha desarrollado un controlador para conectar el algoritmo que corre en la CPU con la parte acelerada en la FPGA. Todos los sistemas se comprueban para encontrar la configuración correcta. Una estrategia de optimización adicional se aplica al sistema mejorando el uso de la RAM y la arquitectura multi-hilo de la CPU. El sistema logra un rendimiento en tiempo real y un bajo consumo de energía mientras realiza el seguimiento de personas con precisión. Finalmente, los resultados y los logros de este estudio, validados en entornos médicos reales y en publicaciones, son presentados y analizados en la última parte de este trabajo.