Volker Turau, Marcus Venzke
Sep 20, 2024
The project investigates, how machine learning (ML) is efficiently used on low-performance microcontrollers. Typical applications of embedded systems are considered processing sensor data. The microcontrollers used have 8 or 32 bits, between 2 kB and 512 kB RAM and only floating-point arithmetic in hardware (FPU) in some cases. Frequently, devices operated on batteries must have long operating times. Hence, for ML, major challenges exist in adapting energy, computing, and storage resources to the demands of such systems.
For ML, supervised and unsupervised learning is considered based on artificial neural networks (ANN), decision trees/forests and other techniques. Resource requirements are reduced by combining different approaches. The ML problem is reduced to the minimum required for the application, e.g. inputs for features are pre-processed and unnecessary ones are removed. Applied ANNs must not be chosen too large or must be compressed. Sub-problems not required to be executed in the embedded system (e.g. training and optimization runs) are performed on other, more powerful systems.
Two applications have been realized so far. It is a module for optical hand-gesture recognition and another for localizing transport boxes in industrial processes. For hand-gesture recognition, ANNs and random forests are trained with supervised learning, executed in a module with 9 light sensors (a kind of compound eye) and microcontroller Atmega4809 (8-Bit, 20 MHz, 6 kB RAM). For localization of transport boxes, a so-called threshold tree is trained with unsupervised learning, used in a battery-operated module with several sensors (e.g. acceleration, gyration, air pressure, light) and microcontroller ESP32 (32-Bit, 240 MHz, 512 kB RAM).