At the recent ST Developers Conference, ST’s Markus Mayr provided an overview of 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.
Over the past five years, Artificial Intelligence (AI) has transformed from a buzzword to reality, with AI finding use in facial and voice recognition, financial fraud detection, predictive maintenance, and online shopping suggestions now a part of everyday life for many – with new applications on the horizon.
AI is a set of technologies that enable computers to mimic human behavior and intelligence. It is underpinned by sets of machine and deep-learning algorithms that extract meaning out of data. In order to develop applications that incorporate AI features, you need specialized tools and expertise, which can be challenging to veteran embedded developers lacking training in machine and deep learning.
Bringing Data Science to Embedded System Experts
The recently launched STM32Cube.AI is significant because developers who often specialize in embedded systems using STM32 MCUs may not be familiar with neural networks. Likewise, data scientists who work on machine learning are likely more accustomed to the nearly endless compute resources of the Cloud and maybe less comfortable with the memory and computational restraints of embedded development. STM32Cube.AI provides the tools to leverage the expertise of a broader group of developers by demystifying both AI and embedded systems and expanding the IoT by bringing neural networks to embedded edge development.
Traditionally, AI computation has been performed in the cloud, with massive amounts of raw sensor data aggregated by a gateway and then sent to a cloud-based AI engine. This architecture has advantages, as it can address very large datasets and calculations that require substantial computing power. On the other hand, this approach requires lots of power and high network bandwidth, with heavy and expensive computation in the cloud. It also introduces latency and privacy risks, due to the need to send data to the cloud for processing.
Distributed AI architectures are a lighter, more agile approach to AI computing, wherein embedded processors and microcontrollers at the network edge pre-process the sensor data, significantly reducing the size of the dataset sent to the cloud or executing the neural networks autonomously without any connection to the cloud. With STM32Cube.AI, the edge IoT device with an STM32 MCU can now run neural networks directly, enabling real-time AI computations at the edge and immediate responses, preserving privacy and reducing network bandwidth and centralized computer power.
How STM32Cube.AI Works
The first step to implementing a neural network on an STM32 MCU is to input a framework-dependent, pre-trained neural network into the STM32Cube.AI conversion tool, which serves as an expansion pack to the STM32CubeMX code generator. STM32Cube.AI enables the fast, automatic importing of neural networks trained by popular design frameworks such as Keras, TensorFlow-Lite, Caffe, Lasagne, and ConvnetJS. It converts the neural network into an optimized code for the MCU. The tool then maps the trained neural network onto the STM32 MCU and optimizes the resulting library to reduce memory footprint. Once all this is done, STM32Cube.AI makes the NN available to the developer.
In addition to the STM32Cube.AI toolkit, ST also offers other products and technologies to help bridge the gap between developers of embedded and AI systems. These include the SensorTile development kit, specifically designed for capturing and processing sensor data, and the STM32 IoT Node, a multi-sensor Discovery kit with integrated low-power wireless BLE, NFC, Sub GHz, and Wi-Fi radios to help users develop applications with a direct connection to cloud servers.
ST also offers a selection of STM32 Function Packs, which are a combination of low-level drivers, middleware libraries and sample applications assembled into a single software package. Sensing Function Packs help jump-start the implementation and the development of application examples that combine and process data from multiple sensors for advanced detection and monitoring capabilities, such as motion recognition, speech recognition, environment monitoring, positioning, fall detection, access control, and intrusion detection.
In addition, ST offers a special STM32 Community focused on neural network topics, and offers an ST partner program dedicated to machine or deep learning engineering services.
Our teams published a Massive Open Online Course that serves as an Introduction to STM32Cube.AI, the industry’s most advanced AI toolkit capable of converting neural networks into optimized code for STM32 MCUs. Until now, engineers could use our demo applications and boards as a stepping stone toward their own systems. With these courses, they can now get a deeper understanding of the subject matter itself and how it will apply to their particular situations. The coursework still uses our Function Pack FP-AI-SENSING1 to introduce the various fundamental concepts that developers need to master, such as labeling data or inference operations.
STM32Cube.AI is more than a toolkit – it’s emblematic of ST’s strategy to change the IoT landscape by bringing neural network processing to all STM32 developers.