polito.it
Politecnico di Torino (logo)

Embedded Machine Learning for Hand Gesture Recognition: Development and Validation of an ATC-based Armband

Federica Pasquali

Embedded Machine Learning for Hand Gesture Recognition: Development and Validation of an ATC-based Armband.

Rel. Danilo Demarchi, Paolo Motto Ros, Fabio Rossi, Andrea Mongardi. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Biomedica, 2021

[img]
Preview
PDF (Tesi_di_laurea) - Tesi
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (8MB) | Preview
Abstract:

Gesture recognition refers to the mathematical interpretation of human motions using a computing device. With the increasing use of technology, hand-gesture recognition has become an essential aspect of Human-Machine Interaction (HMI), allowing the machine to capture the user's intention and respond accordingly. It is a fundamental tool to enable novel interaction paradigms in numerous applications, such as robotics, prosthetic control, healthcare and sign language. Several technologies are currently available to detect gestures. Data acquisition systems based on surface ElectroMyoGraphic (sEMG) signals, collected from non-invasive electrodes on the skin of the area of interest, are extensively used, especially in biomedical research. This thesis work aims to develop and validate a seven-channel sEMG armband for hand gesture recognition. The embedded low-power system is based on an event-driven approach focused on the Average Threshold Crossing (ATC) feature, which reduces the complexity of the classification algorithms by transmitting a lower amount of data, hence diminishing the power consumption. This parameter is obtained by averaging the number of sEMG Threshold Crossing (TC) events in a pre-defined time window, reflecting muscle activation. A first analysis has been conducted on a previously acquired dataset with seven acquisition channels involving 14 people, each performing seven gestures over three sessions. Different machine learning techniques were taken into consideration to create a system able to recognize and classify hand gestures in real-time. Neural Network (NN), Random Forest (RF), Support Vector Machine (SVM) and K-Nearest Neighbour (KNN) has been tested and implemented embedded. Software implementation carried out in the MATLABĀ® environment and firmware deployment for the ARM Cortex microProcessor μP has been conducted to obtain low power consumption, matching the requirements of a wearable battery-powered device, and a latency below 300 ms, suitable for real-time applications. A model of the armband has been designed and 3D printed. The proposed system comprises seven bipolar acquisition channels consisting of dry electrodes, each acquiring the sEMG signal and providing the extracted TC signal. The research group has developed a PCB with an Apollo 3 Blue MicroController Unit (MCU) with an ARM Cortex M4F μP onboard, performing signal conditioning and the computation of the ATC data, fed to the embedded machine learning algorithms for the classification, and containing a Bluetooth Low Energy (BLE) module for data transfer. The validation phase entailed the creation of a new dataset involving 20 people, each executing nine movements, repeated twice, within three sessions. The aforementioned machine learning algorithms have been trained and deployed on the MCU. Among them, the NN has reached an average classification accuracy of 95.09%, and a maximum system latency of 1.037 ms, that summed to the acquisition window (i.e., 130 ms) is way below the 300 ms required for the online application, making the system suitable for wearable real-time use.

Relators: Danilo Demarchi, Paolo Motto Ros, Fabio Rossi, Andrea Mongardi
Academic year: 2021/22
Publication type: Electronic
Number of Pages: 98
Subjects:
Corso di laurea: Corso di laurea magistrale in Ingegneria Biomedica
Classe di laurea: New organization > Master science > LM-21 - BIOMEDICAL ENGINEERING
Aziende collaboratrici: UNSPECIFIED
URI: http://webthesis.biblio.polito.it/id/eprint/21669
Modify record (reserved for operators) Modify record (reserved for operators)