“Artificial intelligence,” “neural networks,” and “machine learning” are all important sounding terms that seem like they require a modern supercomputer. And that’s true for some applications. Even relatively common tasks like video object recognition need quite a lot of processing power. But machine learning is scalable, and that means it’s technically possible to do some jobs on low-power embedded microcontrollers. To help facilitate that, researchers from the Fraunhofer Institute for Microelectronic Circuits and Systems have developed AIfES (Artificial Intelligence for Embedded Systems).
The vast majority of machine learning models are written for powerful computers or cloud servers. That means that they require a lot of resources, and are written in languages that are difficult or impossible to use with most microcontrollers. The vast majority of microcontrollers have relatively slow processors, limited RAM, and only a small amount of storage. They can usually only run C code, or one of its derivatives. For that reason, the AIfES neural network library has been programmed in C and made as efficient as possible. The versatility of AIfES means it can run on just about any modern microcontroller, including the 8-bit microcontrollers found in the Arduino Uno and other development boards.
The capability of the machine learning algorithm is, of course, somewhat limited. You likely won’t be able to do real time object recognition or other resource-intensive tasks. But you can use AIfES for basic embedded machine learning with sensors. For example, it can be used for handwriting recognition and even gesture recognition using data from IMU (Inertial Measurement Unit) sensors. That makes AIfES particularly attractive in the world of wearable devices, as the machine learning can be handled on the edge instead of having to utilize cloud services. AIfES isn’t currently available to the public, but there are opportunities for manufacturers to license the software.