STM32 solutions for Artificial Neural Networks
Thanks to a new set of Artificial Intelligence (AI) solutions from ST you now have the possibility to map and run pre-trained Artificial Neural Networks (ANN) on the broad STM32 microcontroller portfolio. The STM32Cube.AI is an extension pack of the widely used STM32CubeMX configuration and code generation tool enabling AI on STM32 Arm® Cortex®-M-based microcontrollers. To access it, download and install the STM32CubeMX (version 5.0.1 onwards)
Artificial Neural Network mapping made simple with the STM32Cube.AI
- Interoperable with popular deep learning training tools
- Compatible with many IDEs and compilers
- Sensor and RTOS agnostic
- Allows multiple Artificial Neural Networks to be run on a single STM32 MCU
- Full support for ultra-low-power STM32 MCUs
Boost your productivity
Use the power of Deep Learning to enhance signal processing performance and increase productivity in your STM32 application. Create and map Artificial Neural Networks onto your STM32 (optimized code automatically generated) instead of building hand-crafted code.
For additional information, you can download this presentation.
The 5 steps to deploy a Neural Network using STM32Cube.AI
Capture a sufficient amount of representative data about the phenomenon that is being modeled.
This usually involves placing sensors on or near the object being monitored in order to record its state and changes over the time. Examples of physical parameters include acceleration, temperature, sound, and visual depending on your application.
ST provides tools that help in data capture and labelling such as our ST BLE Sensor smartphone application which acts as a remote control for the SensorTile form-factor, battery powered platform. The SensorTile is equipped with motion and environmental sensors, a microcontroller, SD Card connector and Bluetooth connectivity
Clean, label Data and Build ANN topology
Creating an Artificial Neural Network requires labeled data that has been acquired from sensors and pre-processing.
For so-called "supervised learning", the data sets must be characterized so that the different outputs can be classified correctly. This classified set is the "ground truth" that will be used to train the ANN and then validate it.
The developer must decide on the type of topology the ANN should have in order to best be able to learn from the data and provide useful output for the target application. Usually developers employ popular off-the-shelf deep learning frameworks to architect and train Artificial Neural Network topologies.
ST works with a number of Partners who provide Artificial Neural Network engineering services and support with dedicated data scientists and Artificial Neural Network architects.
Train the ANN model
Training the ANN involves passing the data sets through the Neural Network in an iterative manner so that the Network's outputs can minimize desirable error criteria. ANN definition, training, and testing is typically performed using off-the-shelf Deep Learning frameworks. This is usually done on a powerful computing platform, with virtually unlimited memory and computational power, to allow many iterations in a short period of time. The result of this training is the pre-trained Artificial Neural Network.
The STM32Cube.AI tool offers simple and efficient interoperability with popular Deep Learning training tools widely used by the Artificial Intelligence developer community. The output of these tools can be directly imported into the STM32Cube.AI.
Convert ANN into optimized code for the STM32 MCU
The next step is to embed the pre-trained ANN into an MCU (optimized code minimizing complexity and memory requirements).
This part is very easy and intuitive thanks to the STM32Cube.AI software tool. The STM32Cube.AI is fully integrated into STM32 software development ecosystem as an extension of the widely used STM32CubeMX tool.
It allows fast, automatic conversion of pre-trained ANNs into optimized code that can run on an MCU. The tool guides users through the selection of the right MCU and provides rapid feedback on the performance of the Neural Network in the chosen MCU, with validation running both on your PC and the target STM32 MCU. Check out our Getting Started video.
Process & analyze new data using trained ANN
Finally, deploy the ANN embedded in an MCU in your application.
Here ST also makes it easier for designers to quickly prototype their innovative application thanks to integrated software packages - Function Packs. These packs are end-to-end examples embedding a combination of low-level drivers, middleware libraries and sample applications assembled into a single software package. Developers can easily start from these examples and make modifications to fit their specific application. Two examples enabled for AI are the Audio and Motion capture & processing Function Packs.
Developers can also get support and exchange ideas in the AI forum of STM32 Community.
|X-LINUX-AI||ST||STM32 MPU OpenSTLinux Expansion Pack for AI computer vision application|
|FP-AI-SENSING1||ST||STM32Cube function pack for ultra-low power IoT node with artificial intelligence (AI) application based on audio and motion sensing|
|FP-AI-VISION1||ST||STM32Cube function pack for high performance STM32 with artificial intelligence (AI) application for Computer Vision
|FP-AI-NANOEDG1||ST||Artificial Intelligence (AI) condition monitoring function pack for STM32Cube|
|FP-AI-FACEREC||ST||Artificial Intelligence (AI) face recognition function pack for STM32Cube|
|FP-AI-CTXAWARE1||ST||STM32Cube function pack for ultra-low power context awareness with distributed artificial intelligence (AI)|
|B-L475E-IOT01A||ST||STM32L4 Discovery kit IoT node, low-power wireless, BLE, NFC, SubGHz, Wi-Fi|
|STEVAL-STLKT01V1||ST||SensorTile development kit|
|STEVAL-STWINKT1B||ST||STWIN SensorTile Wireless Industrial Node development kit and reference design for industrial IoT applications|
|STM32L562E-DK||ST||Discovery kit with STM32L562QE MCU|
|STM32H747I-DISCO||ST||Discovery kit with STM32H747XI MCU|
|STM32MP157C-DK2||ST||Discovery kit with STM32MP157C MPU|
|STM32MP157F-DK2||ST||Discovery kit with STM32MP157F MPU|
|Avenger96||ST||STM32MP157A-based Avenger96 board from 96Boards|
|B-CAMS-OMV||ST||Camera module bundle for STM32 boards|
|ST BLE Sensor||ST||BLE sensor application for Android and iOS|
STM32Cube.AI: Convert Neural Networks into Optimized Code for STM32
We are launching STM32Cube.AI, the industry’s most advanced toolkit capable of interoperating with popular deep learning libraries to convert any artificial neural network for STM32 microcontrollers (MCU) to run optimized inferences.
AI on STM32 - Person Presence Detection with FP-AI-VISION1 (6:23)
Running on STM32H7 and STM32L4 this demo shows you how wide is the panel of Artificial Intelligence applications you can develop on STM32 thanks to STM32Cube.AI
AI on STM32 : Multiple Object Detection with X-LINUX-AI
Running on STM32MP1 this demo shows you how wide is the panel of Artificial Intelligence applications you can develop on STM32MP1 either on C++ API or Python™ runtime.