Meet AIfES, a C-based AI/ML Framework for Microcontrollers

Meet AIfES, a C-based AI/ML Framework for Microcontrollers

Increased interest in Edge computing in recent times has led to the development of several frameworks to facilitate the deployment of AI/ML models on microcontrollers. There are, however, issues of performance with most of the frameworks as they are mostly scaled-down version of server codes and as such, are only suitable for fairly powerful microcontrollers.  To solve this and provide a framework to support even the lowest of 8-bit MCUs, the Fraunhofer Institute for Microelectronic Circuits and Systems (IMS) recently announced the release of the AIfES (Artificial Intelligence for Embedded Systems); an open-source framework to facilitate the deployment of AI on all forms of microcontrollers.

Developed using the C programming language, AIfES allows users to quickly, and quite easily, train and run artificial neural networks (ANN) on almost any hardware, including 8-bit MCUs and development boards based on them like the Arduino Uno, without the need to prepare the models on a PC. ‘While featuring significantly reduced functionalities due to the desire to target Low processing power MCUs, AIfES is comparable and compatible with most of the popular ML frameworks like TensorFlow, Keras, and PyTorch, incorporating most of their popular features.

It currently supports feedforward neural networks (FNN),  along with common activation functions like ReLU, sigmoid, and softmax, and common training algorithms like gradient descent optimizer (SGD) or the adam optimizer, all integrated with a full implementation of Convolutional Neural Networks (ConvNet) also on the way. The model development is based on the Python frameworks, and ANN Models developed on those frameworks can also be easily imported into the AIfES framework. All of this makes the transition to AIfES seamless for users that are already familiar with other popular AI frameworks.

One of the many other good things about AIfES is how it allows developers to allocate resources, like specifying the required memory area for an ANN. It is also modular in such a way that different components of algorithms can be exchanged, which makes it easy to use different types of hardware accelerators, and finding one that is compatible with your embedded device easy.

According to the folks at the Fraunhofer IMS, in-house researchers have been using AIfES in AI research and development for years, and it featured in several Custom solutions until a level of development was reached where it could be used as a stand-alone product.

During this period, AIfES featured in several applications including a wireless current sensor for condition monitoring, a gesture recognition system, and an Arduino Uno based handwriting recognition system which is a perfect showcase for the prowess of the framework on 8-bit microcontrollers.

The compatibility of AIfES for microcontrollers was further expanded with the recent release of its Arduino Library, which means makers familiar with the Arduino environment can easily build AI solutions based on Arduino and derivative boards.

The library can be easily installed via the Arduino Library Manager. AIfES is offered as a dual license model. For private projects or developers of free open-source software under the GNU General Public License (GPL) version 3, AIfES can be used free of charge. However, for users seeking to use AIfES in commercially licensed software, a commercial license agreement must be obtained from the Fraunhofer IMS.

More information on the project, its capabilities, examples, and license descriptions is available on the project’s GitHub page.

Please follow and like us:
Pin Share
About Emmanuel Odunlade

Hardware Design Engineer | #IoT Consultant |All things #ML | Entrepreneur | Serial Writer | Passionate about Innovation and technology as tools for solving problems in developing countries. Spare time is spent around writing and advocacy for the growth of the Maker/DIY Culture in Africa.

view all posts by emmanuel
Subscribe
Notify of
guest

1 Comment
Inline Feedbacks
View all comments
Jim

How could I use alfes to simulate a PID controller with a single input sensor?

Get new posts by email:
Get new posts by email:

Join 97,426 other subscribers

Archives