diff --git a/README.md b/README.md index 6c18d39..b4ee1ce 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,8 @@ -

-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. @@ -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. @@ -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 edge.ai@st.com - * 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 edge.ai@st.com + * 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 diff --git a/recipes-devtools/x-linux-ai/files/x-linux-ai-tool/x-linux-ai-tool.cc b/recipes-devtools/x-linux-ai/files/x-linux-ai-tool/x-linux-ai-tool.cc index 38e5bba..dd35d2c 100644 --- a/recipes-devtools/x-linux-ai/files/x-linux-ai-tool/x-linux-ai-tool.cc +++ b/recipes-devtools/x-linux-ai/files/x-linux-ai-tool/x-linux-ai-tool.cc @@ -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) { @@ -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); diff --git a/recipes-devtools/x-linux-ai/x-linux-ai-tool_5.1.0.bb b/recipes-devtools/x-linux-ai/x-linux-ai-tool_5.1.0.bb index cbd5893..3cce481 100644 --- a/recipes-devtools/x-linux-ai/x-linux-ai-tool_5.1.0.bb +++ b/recipes-devtools/x-linux-ai/x-linux-ai-tool_5.1.0.bb @@ -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/>$//')