Micro Intelligence - Artificial Neural Network (ANN) for microcontrollers and embedded systems

© Adobe Stock

Artificial intelligence electronic circuit. Microchip with glowing brain. 3D rendered illustration.

© Fraunhofer IMS

Fraunhofer IMS has developed a feedforward artificial neural network (ANN) in the programming language C which can be used platform-independently. By using standard libraries based on the GNU Compiler Collection (GCC) and a source code reduced to a minimum, even integration including learning algorithms on a microcontroller is possible. The ANN is superficially not focused towards big-data processing, but should offer the possibility of implementing self-learning microelectronics that do not require a connection to a cloud or more powerful computers. Applications range from calibration of sensors or multi sensors, smart sensors, condition monitoring for Industry 4.0 applications to general use for the Internet of Things (IoT).

Fraunhofer IMS offers individual and customer-specific solution possibilities asides from common image recognition. This includes the feature extraction and preprocessing of the relevant sensor signals as well as the development of the optimal network structure and network configuration.

The neural network was built as a modular principle in order to realize individual solution strategies for various tasks. All parameters from the normalization of the sensor data, the structure of ANN, the most appropriate activation function as well as the learning algorithm are configurable. As a learning algorithm, an online backpropagation algorithm with many setting options has been implemented. The implementation of an evolutionary learning strategy for the ANN is currently in development.

Programming with the GCC allows porting to almost all platforms. This enables fully self-contained integration including a learning algorithm on an embedded system. The classic variant, in which the learning phase is performed on a more efficient unit, is possible as well. The advantage in this case is that the same source code can be used for different platforms – it only has to be compiled for the respective platform.

When using Windows, for example, the source code is compiled as a "dynamic link library" (DLL) to be able to integrate it into software tools like LabVIEW or MATLAB. Also the integration into various software development environments as Visual Studio is possible. For the first development of the individual ANN, the PC is a particularly suitable platform for the performance of fast calculations. Once the correct configuration has been done, you can proceed with the implementation into the embedded system. The integration on a Raspberry Pi with Raspbian or an ATMega32U4 (Smart Self-Sufficient Wireless Current Sensor) microcontroller has already been successfully implemented.

The integration of ANN on a microcontroller will be presented in the form of a trade fair exhibit at the sps ipc drives 2018 in Nuremberg on the exhibition stand of Fraunhofer IMS.

In addition to the development of further learning algorithms and the implementation of a deep ANNs for higher-performance embedded systems like the Raspberry Pi, there is also a particularly energy-efficient hardware accelerator for the ANN on the roadmap in the long run.