Nowadays, artificial neural networks (ANNs) are computational models that, while they have solved many different problems, they require a large amount of memory to execute those solutions. Therefore, their implementation is more common in systems with high-performance capabilities, such as data centers or servers. However, there is an increasing interest in developing these solutions on devices with fewer resources, such as personal computers, mobile devices, and microcontrollers. This situation has led to the proliferation of multiple techniques and tools to reduce the requirements of these models and allow their implementation on those platforms.
The main objective of this project is the evaluation of a tool for the implementation of artificial neural networks in microcontroller-based systems. For this purpose, a practical use case has been defined.
To achieve this objective, the classification of types of tremors in Parkinson’s patients was chosen as the practical use case. In addition, the Arduino Nano 33 BLE Sense has been also chosen as the microcontroller-based platform to implement the solutions of the practical use case.
Later, a dataset has been generated with real measurements from a sensor on that platform. With this dataset various experiments have been carried out to determine how the different structures of artificial neural networks deal with the chosen use case.
Then, based on those experiments, some appropriate ANNs for classifying types of tremors have been designed, trained, and evaluated in a system with graphics and tensor processing units and in a microcontroller-based system.
Finally, based on the results obtained, the trade-offs between classification accuracy, memory footprint and inference latency involved in the implementation of ANNs solutions in microcontroller-based systems have been determined. In addition, a discussion of the strengths and weaknesses of the selected tool for the implementation of artificial neural networks in microcontroller-based systems has been presented.