Anyone can use AI (Artificial Intelligence) relatively easily by using Caffe developed by UC Berkeley or TensorFlow developed by Google. Although AI's specialty field varies according to the algorithm used, DNN (Deep Neural Network), a multilayered network, is used for AI that became famous for the game “Go” and image identification. Through an algorithm that learns input information that is labeled (called teacher data) so that the estimation results appearing in output coincide with each other, and thanks to the technical breakthrough of multilayering and automated feature extraction, DNN has dramatically improved estimation accuracy. DNN has a large difference in the amount of computation required for learning and inference execution, and it is a major feature that it can be executed with less computing power in the inference phase.
It is necessary to calculate to decide unknown coefficients by inputting an enormous amount of learning object data in the learning phase, and there is a tendency to implement it using huge computing power such as a server.
Focusing on the asymmetry of this computing power and for its main use for inference execution in embedded devices, we named this AI "e-AI" (embedded-AI).
Depending on the network structure, the output layer can be estimated by matrix calculation in one direction from the input layer to the output layer in order. Since the coefficients are all constant after learning, it becomes possible to use the ROM area, and to install AI on a microcontroller with small RAM capacity.
The e-AI development environment is an effective tool to embed DNN into an MCU/MPU after learning. However, there are some difficulties with implementing learning results on an MCU/MPU:
- No support for Python*
- Not compatible with ROM/RAM management suitable for MCU/MPU.
* Python is used as a description language in many AI frameworks, while the control program of the MCU is usually in C/C++.
The e-AI development environment solves these problems and makes it possible to implement learned DNN results onto an MCU/MPU in conformance with an e² studio C/C ++ project.
The network structure, function and learned parameters are extracted by inputting the learned AI to the translator, and it is converted into a usable form for e² studio C/C ++ projects.