In modern society, humans are completely surrounded by a frenetic and constantly changing world and individuals are subject to a collection of situations that can converge into stressful conditions. This natural response of the body to external stimuli can cause the onset of serious health issues or impair mental clarity. The focus of this thesis is to build an FPGA-based embedded system for real-time stress level estimation that could be easily widened and improved in the future, thus becoming a development platform for further work in the field of affective computing. The starting point of the system development was the analysis of stress-related physiological signals by extracting them from datasets collected from literature. The electrocardiogram (ECG) and the electrodermal activity (EDA) were chosen as signals on which to build a high-level model of the problem and develop a processing and estimation algorithm based on Python. After a performance comparison, a three level classifier (relaxed, normal and stressed) based on the XGBoost framework was trained on the data extracted from the algorithm. The algorithm and the classifier were then implemented on an embedded platform. Specifically, the choice fell on the Zynq™ 7000, consisting of an FPGA and a dual-core CPU, so that a heterogeneous system including both hardware accelerator and Linux application could be designed. The hardware accelerator, developed in high-level synthesis (HLS), is dedicated to the processing of the signals and the extraction of more significant characteristics related to stress conditions. The software application, running on Petalinux, deals with feature extraction from the data produces by the accelerator and performs classification using the chosen model. The work was developed using AMD Xilinx EDA tools. The validation process of the developed system was focused on comparing the implementation with the simulation model, so that differences in term of timing and classification accuracy can emerge. The heterogeneous platform obtained satisfy the previous requirements in terms of modularity, allowing for further development and integration into more complex monitoring systems.

Nella società moderna, in cui l'uomo è completamente immerso in un mondo frenetico e in costante cambianto, l'individuo è soggetto ad un assieme di situazioni che possono convergere in condizioni di stress. Questa naturale risposta del corpo agli stimoli esterni può causare l'insorgere di gravi problematiche di salute o compromettere la lucidità mentale. L'obbiettivo di questa tesi è quello di realizzare un sistema embedded basato su FPGA per la stima del livello di stress in tempo reale che possa poi essere facilmente espanso e migliorato in futuro, fungendo quindi da piattaforma di sviluppo per ulteriori lavori nell'ambito dell'affective computing. Per realizzare il sistema si è proceduto con una prima analisi dei segnali fisiologici correlati allo stress, estraendoli da dataset raccolti dalla letteratura. L'elettrocardiogramma (ECG) e l'attività eletrodermica (EDA) sono stati scelti come segnali sui quali costruire un modello ad alto livello del problema e sviluppare un algoritmo di processamento e di stima basato su Python. Dopo un confronto delle prestazioni, un classificatore a tre livelli (rilassato, normale e stressato) basato sul framework XGBoost è stato allenato sui dati estratti dall'algoritmo. Si è poi proceduto all'implementazione dell'algoritmo e del classificatore su una piattaforma embedded. In particolare la scelta è ricaduta sul SoC Zynq™ 7000, composto da una FPGA ed una CPU dual-core, così da poter realizzare un sistema eterogeneo comprensivo di un acceleratore hardware e un'applicazione Linux. L'acceleratore hardware, sviluppato in high-level synthesis (HLS), è dedicato al processamento dei segnali e alla conseguente estrazione di caratteristiche più significative, riconducibili a condizioni di stress. L'applicativo software, eseguito su Petalinux, si occupa dell'estrazione delle feature dai dati prodotti dall'acceleratore ed opera la classificazione utilizzando il modello prescelto. Il lavoro è stato sviluppato utilizzando i tool EDA di AMD Xilinx. Il processo di validazione del sistema progettato si è focalizzato sul confronto fra la sua versione simulata e quella implementata, in modo tale da far emergere differenze a livello di timing e accuracy della classificazione. La piattaforma eterogenea ottenuta soddisfa i requisiti di modularità prefissati e si presta a sviluppi e integrazioni in dispositivi di monitoraggio più complessi.

Design and optimization of an FPGA-based system for real-time human stress level assessment

Campanini, Nicolò;TORSELLO, SALVATORE
2022/2023

Abstract

In modern society, humans are completely surrounded by a frenetic and constantly changing world and individuals are subject to a collection of situations that can converge into stressful conditions. This natural response of the body to external stimuli can cause the onset of serious health issues or impair mental clarity. The focus of this thesis is to build an FPGA-based embedded system for real-time stress level estimation that could be easily widened and improved in the future, thus becoming a development platform for further work in the field of affective computing. The starting point of the system development was the analysis of stress-related physiological signals by extracting them from datasets collected from literature. The electrocardiogram (ECG) and the electrodermal activity (EDA) were chosen as signals on which to build a high-level model of the problem and develop a processing and estimation algorithm based on Python. After a performance comparison, a three level classifier (relaxed, normal and stressed) based on the XGBoost framework was trained on the data extracted from the algorithm. The algorithm and the classifier were then implemented on an embedded platform. Specifically, the choice fell on the Zynq™ 7000, consisting of an FPGA and a dual-core CPU, so that a heterogeneous system including both hardware accelerator and Linux application could be designed. The hardware accelerator, developed in high-level synthesis (HLS), is dedicated to the processing of the signals and the extraction of more significant characteristics related to stress conditions. The software application, running on Petalinux, deals with feature extraction from the data produces by the accelerator and performs classification using the chosen model. The work was developed using AMD Xilinx EDA tools. The validation process of the developed system was focused on comparing the implementation with the simulation model, so that differences in term of timing and classification accuracy can emerge. The heterogeneous platform obtained satisfy the previous requirements in terms of modularity, allowing for further development and integration into more complex monitoring systems.
ING - Scuola di Ingegneria Industriale e dell'Informazione
5-ott-2023
2022/2023
Nella società moderna, in cui l'uomo è completamente immerso in un mondo frenetico e in costante cambianto, l'individuo è soggetto ad un assieme di situazioni che possono convergere in condizioni di stress. Questa naturale risposta del corpo agli stimoli esterni può causare l'insorgere di gravi problematiche di salute o compromettere la lucidità mentale. L'obbiettivo di questa tesi è quello di realizzare un sistema embedded basato su FPGA per la stima del livello di stress in tempo reale che possa poi essere facilmente espanso e migliorato in futuro, fungendo quindi da piattaforma di sviluppo per ulteriori lavori nell'ambito dell'affective computing. Per realizzare il sistema si è proceduto con una prima analisi dei segnali fisiologici correlati allo stress, estraendoli da dataset raccolti dalla letteratura. L'elettrocardiogramma (ECG) e l'attività eletrodermica (EDA) sono stati scelti come segnali sui quali costruire un modello ad alto livello del problema e sviluppare un algoritmo di processamento e di stima basato su Python. Dopo un confronto delle prestazioni, un classificatore a tre livelli (rilassato, normale e stressato) basato sul framework XGBoost è stato allenato sui dati estratti dall'algoritmo. Si è poi proceduto all'implementazione dell'algoritmo e del classificatore su una piattaforma embedded. In particolare la scelta è ricaduta sul SoC Zynq™ 7000, composto da una FPGA ed una CPU dual-core, così da poter realizzare un sistema eterogeneo comprensivo di un acceleratore hardware e un'applicazione Linux. L'acceleratore hardware, sviluppato in high-level synthesis (HLS), è dedicato al processamento dei segnali e alla conseguente estrazione di caratteristiche più significative, riconducibili a condizioni di stress. L'applicativo software, eseguito su Petalinux, si occupa dell'estrazione delle feature dai dati prodotti dall'acceleratore ed opera la classificazione utilizzando il modello prescelto. Il lavoro è stato sviluppato utilizzando i tool EDA di AMD Xilinx. Il processo di validazione del sistema progettato si è focalizzato sul confronto fra la sua versione simulata e quella implementata, in modo tale da far emergere differenze a livello di timing e accuracy della classificazione. La piattaforma eterogenea ottenuta soddisfa i requisiti di modularità prefissati e si presta a sviluppi e integrazioni in dispositivi di monitoraggio più complessi.
File allegati
File Dimensione Formato  
2023_10_Campanini_Torsello_Thesis_01.pdf

accessibile in internet per tutti

Descrizione: Tesi
Dimensione 7.19 MB
Formato Adobe PDF
7.19 MB Adobe PDF Visualizza/Apri
2023_10_Campanini_Torsello_Executive_Summary_02.pdf

accessibile in internet per tutti

Descrizione: Executive summary
Dimensione 898.91 kB
Formato Adobe PDF
898.91 kB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/210783