1. What is X-LINUX-AI?[edit | edit source]
X-LINUX-AI is a free of charge open-source software package dedicated to AI.
It is a complete ecosystem that allow developers working with OpenSTLinux to create AI-based application very easily.
- All-in-one AI solutions for the entire STM32 MPU boards
- Pre-integrated into Linux distribution based on ST environment
- Include AI frameworks to execute Neural Network models
- Include AI model benchmark application tools for MPU
- Easy application prototyping using Python language and AI frameworks Python API
- C++ API for embedded high-performance applications
- Optimized open-source solutions provided with source codes that allow extensive code reuse and time savings
- Delivered under GitHub as a Yocto meta-layer
2. X-LINUX-AI Software stack introduction[edit | edit source]
X-LINUX-AI is an STM32 MPU OpenSTLinux Expansion Package that targets artificial intelligence for STM32MPx Series devices.
It contains Linux AI frameworks, development tools, as well as application examples to get started with some basic AI use cases such as computer vision.
It is composed of an OpenEmbedded meta layer, named meta-st-x-linux-ai, to be added on top of the STM32MPx Distribution Package. It brings a complete and coherent easy-to-build / install environment to take advantage of AI on STM32MPx Series devices.
Depending on the STM32MPU series X-LINUX-AI supports inference execution either on Neural Processing Unit (NPU), Graphics Processing Unit (GPU) or Cortex-A (with multi-threading).
2.1. Seamless integration of common AI frameworks[edit | edit source]
2.2. AI framework details[edit | edit source]
2.2.1. STAI MPU framework structure[edit | edit source]
2.2.2. OpenVX runtime[edit | edit source]
2.2.3. Tensorflow Lite runtime[edit | edit source]
2.2.4. ONNX runtime[edit | edit source]
3. X-LINUX-AI v6.0.0[edit | edit source]
.
3.1. Contents[edit | edit source]
- AI Frameworks :
- STAI_MPU Unified API based on OpenVX™(STM32MP25x only), TensorFlow™ Lite and ONNX Runtime™ compatible with all STM32MPU series
- TIM-VX™ [1] 1.2.6 (STM32MP25x only)
- TensorFlow™ [2] Lite 2.16.2 with VX-delegate (NPU/GPU for STM32MP25x only) and XNNPACK delegate activated (CPU only)
- ONNX Runtime™ [3] 1.19.2 with VSINPU execution provider (NPU/GPU for STM32MP25x only) and XNNPACK provider activated (CPU only)
- Out of the box applications examples:
- Image classification :
- C++ / Python™ example using STAI_MPU Unified API based on the MobileNet v1 and v2 quantized models.
- Object detection :
- C++ / Python™ example using STAI_MPU Unified API based on the SSD MobileNet v1 and v2 quantized models.
- Multi pose estimation :
- Python™ example using STAI_MPU Unified API based on YoloV8n pose quantized model.
- Semantic segmentation :
- Python™ example using STAI_MPU Unified API based on DeepLabV3 quantized model.
- Face Recognition :
- C++ example using STAI_MPU Unified API based on the blazeface and facenet quantized models.
- Note: applications are based on Gstreamer 1.22.x, GTK® 3.x, OpenCV 4.9.x, Pillow, Python™ 3
- Image classification :
- On-target utilities:
- X-LINUX-AI tool suite: software information, management of AI packages, and benchmarking of neural network models.
- Support for a wide range of image sensors and camera modules for STM32 MPUs including:
- IMX335 (5MP) for STM32MP2 with the use of its internal ISP
- GC2145
- OV5640 for STM32MP13xx
- Host tools:
- ST Edge AI tool for NBG generation
- X-LINUX-AI SDK add-on extending the OpenSTLinux SDK with AI functionality to develop and build an AI application easily. The X-LINUX-AI SDK add-on supports all the above frameworks. It is available from the X-LINUX-AI product page
3.2. Validated hardware[edit | edit source]
X-LINUX-AI v6.0.0 is supported on all STM32MP1 series' boards and STM32MP2 series' boards and it has been validated on the following boards:
4. X-LINUX-AI package[edit | edit source]
X-LINUX-AI Starter package
Quickly and easily bring AI on STM32MPUs series
X-LINUX-AI Developer package
The X-LINUX-AI SDK add-on extends the OpenSTLinux SDK
with AI functionality to develop and build an AI application easily
X-LINUX-AI Distribution package
It is an OpenEmbedded meta-layer to be added on top of the STM32MPx Distribution Package to generate AI packages
5. Next steps...[edit | edit source]
AI - Application examples
Discover the AI applications delivered in X-LINUX-AI.
How to articles
Articles dedicated to use the different X-LINUX-AI frameworks
Tools
Articles dedicated to use the different X-LINUX-AI Tools
6. Archives [edit | edit source]
X-LINUX-AI release | Release note |
---|---|
X-LINUX-AI v5.1.0 | X-LINUX-AI_OpenSTLinux_Expansion_Package#X-LINUX-AI_v5-1-0 page for the v5 ecosystem releases (in archived wiki) |
X-LINUX-AI v5.0.0 | X-LINUX-AI_OpenSTLinux_Expansion_Package#X-LINUX-AI_v5-0-0 page for the v5 ecosystem releases (in archived wiki) |
X-LINUX-AI v3.0.0 | X-LINUX-AI_OpenSTLinux_Expansion_Package#X-LINUX-AI_v3-0-0 page for the v4 ecosystem releases (in archived wiki) |
X-LINUX-AI v2.2.0 | X-LINUX-AI_OpenSTLinux_Expansion_Package_-_v2.2.0#X-LINUX-AI_v2-2-0 page for the v4 ecosystem releases (in archived wiki) |
X-LINUX-AI v2.1.1 | X-LINUX-AI_OpenSTLinux_Expansion_Package#X-LINUX-AI_v2-1-1 page for the v3 ecosystem releases (in archived wiki) |
X-LINUX-AI v2.1.0 | X-LINUX-AI_OpenSTLinux_Expansion_Package#X-LINUX-AI_v2-1-0 page for the v2 ecosystem releases (in archived wiki) |
X-LINUX-AI v2.0.0 | X-LINUX-AI_OpenSTLinux_Expansion_Package#X-LINUX-AI_v2-0-0 page for the v2 ecosystem releases (in archived wiki) |
7. References[edit | edit source]