Skip to content

Commit

Permalink
X-LINUX-AI v5.1.0
Browse files Browse the repository at this point in the history
Signed-off-by: Maxence GUILHIN <[email protected]>
  • Loading branch information
mguSTM authored and vinceab committed Jul 3, 2024
1 parent 54aabad commit fc56201
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 36 deletions.
60 changes: 35 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@

<p align="center">
<img width="720" src="https://raw.githubusercontent.com/STMicroelectronics/meta-st-stm32mpu-ai/master/x-linux-ai-logo.png">
</p>

X-LINUX-AI version: v5.0.0
X-LINUX-AI version: v5.1.0

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.
Expand All @@ -20,8 +19,8 @@ X-LINUX-AI OpenEmbedded meta layer to be integrated into OpenSTLinux distributio
It contains recipes for AI frameworks, tools and application examples for STM32MPx series

## Compatibility
The X-LINUX-AI OpenSTLinux Expansion Package v5.0.0 is compatible with the Yocto Project™ build system Mickledore.
It is validated over the OpenSTLinux Distribution v5.0 on STM32MP157F-DK2 with a USB image sensor, on STM32MP157F-EV1 with its built-in camera module, and on STM32MP135F-DK with its built-in camera module
The X-LINUX-AI OpenSTLinux Expansion Package v5.1.0 is compatible with the Yocto Project™ build system Mickledore.
It is validated over the OpenSTLinux Distribution v5.1.0 on STM32MP25x and STM32MP1x series.

## Versioning
Since its release v5.0.0, the major versioning of the X-LINUX-AI OpenSTLinux Expansion Package is aligned on the major versioning of the OpenSTLinux Distribution. This prevents painful backward compatibility attempts and makes dependencies straightforward.
Expand All @@ -31,27 +30,38 @@ The X-LINUX-AI generic versioning v**x**.**y**.**z** is built as follows:
* **z**: patch version to introduce bug fixes. A patch version is implemented in a backward compatible manner.

## Available frameworks and tools within the meta-layer
[X-LINUX-AI v5.0.0 expansion package](https://wiki.st.com/stm32mpu/wiki/Category:X-LINUX-AI_expansion_package):
* XNNPACK support for TensorFlow™ Lite and ONNX Runtime, with about 20% to 30% performance gain for quantized networks on a 32-bit system
* TensorFlow™ Lite 2.11.0 with XNNPACK delegate activated
* ONNX Runtime 1.14.0 with XNNPACK execution engine activated
* OpenCV 4.7.x
* Python™ 3.10.x (enabling Pillow module)
* Coral Edge TPU™ accelerator native support
* libedgetpu 2.0.0 (Gouper) aligned with TensorFlow™ Lite 2.11.0
* libcoral 2.0.0 (Gouper) aligned with TensorFlow™ Lite 2.11.0
* PyCoral 2.0.0 (Gouper) aligned with TensorFlow™ Lite 2.11.0
* Support for the OpenSTLinux AI package repository allowing the installation of a prebuilt package using apt-* utilities
* Application samples
* C++ / Python™ image classification example using TensorFlow™ Lite based on the MobileNet v1 quantized model
* C++ / Python™ object detection example using TensorFlow™ Lite based on the COCO SSD MobileNet v1 quantized model
* C++ / Python™ image classification example using Coral Edge TPU™ based on the MobileNet v1 quantized model and compiled for the Edge TPU™
* C++ / Python™ object detection example using Coral Edge TPU™ based on the COCO SSD MobileNet v1 quantized model and compiled for the Edge TPU™
* C++ face recognition application using proprietary model capable of recognizing the face of a known (enrolled) user. Contact the local STMicroelectronics support for more information about this application or send a request to [email protected]
* Python™ image classification example using ONNX Runtime based on the MobileNet v1 quantized model
* C++ / Python™ object detection example using ONNX Runtime based on the COCO SSD MobileNet v1 quantized model
* Application support for the 720p, 480p, and 272p display configurations
* 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 provides support for all the above frameworks. It is available from the [X-LINUX-AI](https://www.st.com/en/embedded-software/x-linux-ai.html) product page
[X-LINUX-AI v5.1.0 expansion package](https://wiki.st.com/stm32mpu/wiki/Category:X-LINUX-AI_expansion_package):
* AI Frameworks:
* STAI_MPU Unified API based on OpenVX™(STM32MP25x only), TensorFlow™ Lite, Coral Edge TPU™ and ONNX Runtime™ compatible with all STM32MPU series
* TIM-VX™ 1.1.57 (STM32MP25x only)
* TensorFlow™ Lite 2.11.0 (CPU only) with XNNPACK delegate activated
* ONNX Runtime™ 1.14.0 (CPU only) with XNNPACK execution engine activated
* Coral Edge TPU™ accelerator native support
* libedgetpu 2.0.0 (Grouper) aligned with TensorFlow™ Lite 2.11.0
* libcoral 2.0.0 (Grouper) aligned with TensorFlow™ Lite 2.11.0
* PyCoral 2.0.0 (Grouper) aligned with TensorFlow™ Lite 2.11.0

* Out of the box applications:
* 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
* 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 proprietary model capable of recognizing the face of a known (enrolled) user.
* Contact the local STMicroelectronics support for more information about this application or send a request to [email protected]
* Note: applications are based on Gstreamer 1.22.x, GTK 3.x, OpenCV 4.7.x, Pillow, Python 3

* Utilities:
* X-LINUX-AI tool suite provides tools for software information, AI packages management and Neural Network models benchmarking.
* Support wide range of image sensors for ST MPU including IMX335 (5MP) for MP2 with use of internal ISP, GC2145 and OV5640 for STM32MP13x
* Support for the OpenSTLinux AI package repository allowing the installation of a prebuilt package using apt-*

* 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

## Further information on how to install and how to use X-LINUX-AI Starter package
<https://wiki.st.com/stm32mpu/wiki/X-LINUX-AI_Starter_package>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -206,15 +206,15 @@ std::string exec_command(const char* cmd) {
int main(int argc, char *argv[])
{
process_args(argc, argv);
std::string command = "ls /var/lib/apt/lists/*_AI_*_main_*";
std::string ostl_pkg_path = "/var/lib/dpkg/status";
std::string x_pkg_path = exec_command(command.c_str());

if (!x_pkg_path.empty() && x_pkg_path.back() == '\n') {
x_pkg_path.pop_back();
}

if (list) {
std::string command = "ls /var/lib/apt/lists/*_AI_*_main_*";
std::string ostl_pkg_path = "/var/lib/dpkg/status";
std::string x_pkg_path = exec_command(command.c_str());

if (!x_pkg_path.empty() && x_pkg_path.back() == '\n') {
x_pkg_path.pop_back();
}
print_pkgs(ostl_pkg_path, x_pkg_path);
}
else if (to_install && argc == 3) {
Expand All @@ -224,12 +224,12 @@ int main(int argc, char *argv[])
manage_pkgs(argc, argv,false);
}
else if (version) {
std::cout << "\nX-LINUX-AI version: " << README_VERSION << std::endl;
std::cout << "\nX-LINUX-AI version: " << README_VERSION << "\n" << std::endl;
}
else if (features) {
std::cout << "\nFeatures:\n " << README_FEATURES << std::endl;
std::cout << "\nFind more information on the wiki page: https://wiki.st.com/stm32mpu/wiki/X-LINUX-AI_OpenSTLinux_Expansion_Package" << std::endl;
std::cout << "\nApplications:\n " << README_APPLI << std::endl;
std::cout << "\nApplications:\n " << README_APPLI << "\n" << std::endl;
}
else{
print_help(argc, argv);
Expand Down
4 changes: 2 additions & 2 deletions recipes-devtools/x-linux-ai/x-linux-ai-tool_5.1.0.bb
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ do_configure() {
xpkg_ver=$(sed -n 's/^.*X-LINUX-AI version: //p' README_sym)

# Get features
xpkg_fea=$(sed -n '/^*.TensorFlow/,${p;/^*.Application.samples/q}' README_sym | sed '$d' | sed '1s/^//;$!s/$/ \\n \\/;$s/$//')
xpkg_fea=$(sed -n '/^* AI Frameworks:/,/^* Out of the box applications:/{/^* Out of the box applications:/!p}' README_sym | sed '$d' | sed '1d; $!s/$/ \\n \\/')

# Get applications
xpkg_app=$(sed -n '/^*.Application.samples/,${p;/^*.Application.support/q}' README_sym | sed '1d;$d' | sed '1s/^//;$!s/$/ \\n \\/;$s/$//' | sed 's/^\ *//g' )
xpkg_app=$(sed -n '/^* Out of the box applications:/,/^* Utilities:/{/^* Utilities:/!p}' README_sym | sed '$d' | sed '1d; $!s/$/ \\n \\/')

# Get wiki link
xpkg_link=$(grep -o 'https://wiki.st.com/stm32mp.*Starter_package>' README_sym | sed 's/>$//')
Expand Down

0 comments on commit fc56201

Please sign in to comment.