AIfES (AI for Embedded Systems) is a standalone, high-efficiency, AI framework, which allows the Fraunhofer Institute for Microelectronic Circuits and Systems, or Fraunhofer IMS for short, to train and run machine learning algorithms on resource-constrained microcontrollers.
So far the framework was closed-source and only used internally by Fraunhofer IMS, but following a collaboration with Arduino, AIfES for Arduino is now open-source and free to use for non-commercial projects.
The framework has been optimized to allow 8-bit microcontrollers such as the one found in Arduino Uno to implement an Artificial Neural Network (ANN) that can be trained in moderate time. That means offline inference and training on small self-learning battery-powered devices is possible with AIfES without relying on the cloud or other devices.
The library implements Feedforward Neural Networks (FNN) that can be freely parameterized, trained, modified, or reloaded at runtime. Programmed in C language, AIfES uses only standard libraries based on the GNU Compiler Collection (GCC). Fraunhofer IMS also says it is compatible with other AI software frameworks such as Keras or TensorFlow.
AIfES is offered within a dual license model: free of charge for open-source software under the GNU General Public License (GPL) version 3, but for commercial products, a license agreement must be signed with Fraunhofer IMS.
Since the institute has been using the library for a number of years, several demonstrators have been showcased, including a handwriting recognition system realized on an Arduino Uno (see video below), a wireless current sensor for condition monitoring, and a gesture recognition system.
If you’d like to give it a try and learn more about AIfES for Arduino, head over to the Github repository to download and install the library, access code samples, and read the documentation. Note you may also need to install the Arduino_CMSIS-DSP library for some of the samples, and edit the code following the instructions in the source code to build an AIfES sketch successfully.
More details about the solution may be found on Fraunhofer IMS website.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
A Neural Network on a 8-bit CPU with 2kb of ram? Is this witchcraft?
Well if you write in pure C from the ground up, you can squeeze a lot in 2 k 🙂
It does not necessarily require lots of resources, it’s just that common modern use cases like to show face recognition and such features that require multiple layers and large patterns, but I’ve done character recognition 25 years ago that used to work pretty fine with 8×8 pixels, that could be implemented as a single 8-bit float if desired.