Difference between revisions of "X-LINUX-AI OpenSTLinux Expansion Package"

[unchecked revision] [quality revision]
m
m (Jean Christophe Trotin moved page X-LINUX-AI OpenSTLinux expansion package to X-LINUX-AI OpenSTLinux Expansion Package without leaving a redirect: Uppercase for "Expansion" and "Package")
AI Expansion Package inserted in the STM32MPU Embedded software distribution

X-LINUX-AI is an STM32 MPU OpenSTLinux Expansion Package that targets artificial intelligence for STM32MP1 Series devices.

It contains Linux AI frameworks, as well as application examples to get started with some basic use cases such as computer vision (CV).

It is composed of an OpenEmbedded meta layer, named meta-st-stm32mpu-ai, to be added on top of the STM32MP1 Distribution Package.

It brings a complete and coherent easy-to-build / install environment to take advantage of AI on STM32MP1 Series devices.

1 Version v2.0.0[edit]

Info.png This version has been validated against the OpenSTLinux ecosystem release v2.0.0 More info.png and validated on STM32MP157x-DKx and STM32MP157x-EV1 boards.

1.1 Contents[edit]

1.2 Validated hardware[edit]

As any software expansion package, the X-LINUX-AI is supported on all STM32MP1 Series and it has been validated on the following boards:

  • STM32MP157C-DK2[7]
  • STM32MP157C-EV1[8]
  • STM32MP157A-EV1[9]

1.3 Software structure[edit]

X-LINUX-AI-CV v2.0.0 Expansion Package Software structure

1.4 Install from the OpenSTLinux AI package repository[edit]

Info.png The STMicroelectronics packages repository service is provided for evaluation purposes only, its content may be updated at any time without notice and is therefore not approved for use in production.

All the generated X-LINUX-AI packages are available from the OpenSTLinux AI package repository service hosted at the non-browsable URL http://extra.packages.openstlinux.st.com/AI.

This repository contains AI packages that can be simply installed using apt-* utilities, which the same as those used on a Debian system:

  • the main group contains the selection of AI packages whose installation is automatically tested by STMicroelectronics
  • the updates group is reserved for future uses such as package revision update.

You can install them individually or by package group.

1.4.1 Prerequisites[edit]

  1. Flash the Starter Package on your SDCard
STM32MP157x-DKx Starter Package procedure
or
STM32MP157x-EV1 Starter Package procedure
  1. Your board has an internet connection either through the network cable or through a WiFi connection.
Info.png

If your internet access depends on a proxy server, you should define the http_proxy environment variable with the following command before any apt-* commands:

Board $> export http_proxy='http://<proxy url>:<proxy port>/'

1.4.2 Configure the AI OpenSTLinux package repository[edit]

Once the board is booted, execute the following command in the console in order to configure the AI OpenSTLinux package repository:

Board $> wget http://extra.packages.openstlinux.st.com/AI/2.0/pool/config/a/apt-openstlinux-ai/apt-openstlinux-ai_1.0_armhf.deb
Board $> apt-get install ./apt-openstlinux-ai_1.0_armhf.deb
Info.png This command may issue the following warning message (or similar):
N: Can't drop privileges for downloading as file '/home/root/apt-openstlinux-ai_1.0_armhf.deb'
couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)

You can safely ignore it.


Then synchronize the AI OpenSTLinux package repository.

Board $> apt-get update

1.4.3 Install AI packages[edit]

Warning.png The software package is provided AS IS, and by downloading it, you agree to be bound to the terms of the software license agreement (SLA). The detailed content licenses can be found here.

1.4.3.1 Install all X-LINUX-AI packages[edit]

Command Description
apt-get install packagegroup-x-linux-ai
Install all the X-LINUX-AI packages (TensorFlow Lite, Edge TPU, armNN, application samples and tools)

1.4.3.2 Install AI framework related packages[edit]

Command Description
apt-get install packagegroup-x-linux-ai-tflite
Install X-LINUX-AI packages related to TensorFlow Lite framework (including application samples)
apt-get install packagegroup-x-linux-ai-tflite-edgetpu
Install X-LINUX-AI packages related to the Edge TPU framework (including application samples)
apt-get install packagegroup-x-linux-ai-armnn-tflite
Install X-LINUX-AI packages related to the armNN framework (including application samples)

1.4.3.3 Install individual packages[edit]

Command Description
apt-get install arm-compute-library
Install Arm Compute Library (ACL)
apt-get install arm-compute-library-tools
Install Arm Compute Library utilities (graph examples and benchmarks)
apt-get install armnn
Install arm Neural Network SDK (armNN)
apt-get install armnn-tensorflow-lite
Install armNN TensorFlow Lite parser
apt-get install armnn-tensorflow-lite-examples
Install armNN TensorFlow Lite examples
apt-get install armnn-tfl-benchmark
Install armNN benchmark application for TensorFlow Lite models
apt-get install armnn-tfl-cv-apps-image-classification-c++
Install C++ image classification example using armNN TensorFlow Lite parser
apt-get install armnn-tfl-cv-apps-object-detection-c++
Install C++ object detection example using armNN TensorFlow Lite parser
apt-get install armnn-tools
Install armNN utilitites such as unitary tests
apt-get install libedgetpu1
Install Edge TPU libraries and the USB rules
apt-get install python3-tensorflow-lite
Install Python TensorFlow Lite inference engine
apt-get install python3-tensorflow-lite-edgetpu
Install Python TensorFlow Lite inference engine for Edge TPU
apt-get install tensorflow-lite-tools
Install Tensorflow Lite utilities
apt-get install tflite-cv-apps-edgetpu-image-classification-c++
Install C++ image classification example using Coral Edge TPU TensorFlow Lite API
apt-get install tflite-cv-apps-edgetpu-image-classification-python
Install Python image classification example using Coral Edge TPU TensorFlow Lite API
apt-get install tflite-cv-apps-edgetpu-object-detection-c++
Install C++ object detection example using Coral Edge TPU TensorFlow Lite API
apt-get install tflite-cv-apps-edgetpu-object-detection-python
Install Python object detection example using Coral Edge TPU TensorFlow Lite API
apt-get install tflite-cv-apps-image-classification-c++
Install C++ image classification using TensorFlow Lite
apt-get install tflite-cv-apps-image-classification-python
Install Python image classification example using TensorFlow Lite
apt-get install tflite-cv-apps-object-detection-c++
Install C++ object detection example using TensorFlow Lite
apt-get install tflite-cv-apps-object-detection-python
Install Python object detection example using TensorFlow Lite
apt-get install tflite-edgetpu-benchmark
Install benchmark application for Edge TPU models
apt-get install tflite-models-coco-ssd-mobilenetv1
Install TensorFlow Lite COCO SSD Mobilenetv1 model
apt-get install tflite-models-coco-ssd-mobilenetv1-edgetpu
Install TensorFlow Lite COCO SSD Mobilenetv1 model for Edge TPU
apt-get install tflite-models-mobilenetv1
Install TensorFlow Lite Mobilenetv1 model
apt-get install tflite-models-mobilenetv1-edgetpu
Install TensorFlow Lite Mobilenetv1 model for Edge TPU
Info.png If you need more information about how to use apt-* utilities check the Package repository for OpenSTLinux distribution article.

1.5 Re-generate X-LINUX-AI OpenSTLinux distribution[edit]

With the following procedure, you can re-generate the complete distribution enabling the X-LINUX-AI expansion package.
This procedure is mandatory if you want to update frameworks by yourself, or if you want to modify the application samples.
For further details, please expand the contents...

1.5.1 Download the STM32MP1 Distribution Package v2.0.0[edit]

Install the STM32MP1 Distribution Package v2.0.0, but do not initialize the OpenEmbedded environment (do not source the envsetup.sh).

1.5.1.1 Clone the meta-st-stm32mpu-ai git repositories[edit]

Warning.png The software package is provided AS IS, and by downloading it, you agree to be bound to the terms of the software license agreement (SLA). The detailed content licenses can be found here.
PC $> cd <Distribution Package installation directory>/layers/meta-st
PC $> git clone https://github.com/STMicroelectronics/meta-st-stm32mpu-ai.git -b v2.0.0

1.5.2 Set up the build environment[edit]

PC $> cd ../..
PC $> DISTRO=openstlinux-weston MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh

1.5.3 Add the new layers to the build system[edit]

PC $> bitbake-layers add-layer ../layers/meta-st/meta-st-stm32mpu-ai

1.5.4 Build the image[edit]

PC $> bitbake st-image-ai
Info.png Note that building the image could take long time depending on the host computer performance.

1.5.5 Flash the built image[edit]

Follow this link to see how to flash the built image.

2 How to use the X-LINUX-AI Expansion Package[edit]

2.1 Material needed[edit]

To use the X-LINUX-AI-CV OpenSTLinux Expansion Package, choose one of the following materials:

  • STM32MP157C-DK2[7] + an UVC USB WebCam
  • STM32MP157C-EV1[8] with the built in camera
  • STM32MP157A-EV1[9] with the built in camera

Optional:

  • Coral USB Edge TPU[2] accelerator

2.2 Boot the OpenSTlinux Starter Package[edit]

At the end of the boot sequence, the demo launcher application appears on the screen.

Demo launcher appearance when X-LINUX-AI is not installed

2.3 Install the X-LINUX-AI[edit]

Warning.png The software package is provided AS IS, and by downloading it, you agree to be bound to the terms of the software license agreement (SLA). The detailed content licenses can be found here.

After having configured the AI OpenSTLinux package you can install the X-LINUX-AI components.

Board $> apt-get install packagegroup-x-linux-ai

And restart the demo launcher

Board $> systemctl restart weston@root

2.4 Launch an AI application sample[edit]

Once the demo launcher is restarted, notice that it is slightly different because new AI application samples have been installed.
The demo laucher has the following appearance, and you can navigate into the different screens by using the NEXT or BACK buttons.

Demo launcher appearance when X-LINUX-AI is installed

Screens 2, 3 and 4 contain AI application samples that are described within dedicated article available in the X-LINUX-AI application samples zoo page.

2.5 Enjoy running your own NN models[edit]

The above examples provide application samples to demonstrate how to execute models easily on the STM32MP1.

You are free to update the C/C++ application or Python scripts for your own purposes, using your own NN models.

Source code locations are provided in application sample pages.

3 References[edit]


[[File: AI_Expansion_Package_In_STM32MPU_Embedded_Software.png|center|link=|AI Expansion Package inserted in the STM32MPU Embedded software distribution]]

X-LINUX-AI is an STM32 MPU OpenSTLinux Expansion Package that targets artificial intelligence for STM32MP1 Series devices.

It contains Linux AI frameworks, as well as application examples to get started with some basic use cases such as computer vision (CV).

It is composed of an OpenEmbedded meta layer, named '''meta-st-stm32mpu-ai''', to be added on top of the [[STM32MP1_Distribution_Package | STM32MP1 Distribution Package]].

It brings a complete and coherent easy-to-build / install environment to take advantage of AI on STM32MP1 Series devices.

=Version v2.0.0=
{{Info| This version has been validated against the OpenSTLinux {{EcosystemRelease | revision=2.0.0}} and validated on STM32MP157x-DKx and STM32MP157x-EV1 boards.}}
==Contents==
* {{Highlight|TensorFlow Lite<ref name=tensorflowlite_url>[https://www.tensorflow.org/lite TensorFlow Lite]</ref> 2.2.0}}
* {{Highlight|'''Coral Edge TPU'''<ref name=edgetpu_url>[https://coral.ai/ Coral Edge TPU]</ref>}} accelerator support
* {{Highlight|'''armNN'''<ref name=armnn_url>[https://developer.arm.com/ip-products/processors/machine-learning/arm-nn armNN]</ref> 20.05}}
* {{Highlight|'''OpenCV'''<ref name=opencv_url>[https://opencv.org/ OpenCV]</ref> 4.1.x}}
* {{Highlight|'''Python'''<ref name=python_url>[https://www.python.org/ Python]</ref> 3.8.x}} (enabling Pillow module)
* Support {{Highlight|STM32MP15xF<ref name=stm32mp1-series_url>[https://www.st.com/en/microcontrollers-microprocessors/stm32mp1-series.html STM32MP1 series]</ref>}} devices operating at up to {{Highlight|800MHz}}
* Python and C++ application samples
** [[X-LINUX-AI_application_samples_zoo#TensorFlow_Lite_application_samples | Image classification using TensorFlow Lite]] based on MobileNet v1 quantized model
** [[X-LINUX-AI_application_samples_zoo#TensorFlow_Lite_application_samples | Object detection using TensorFlow Lite]] based on COCO SSD MobileNet v1 quantized model
** [[X-LINUX-AI_application_samples_zoo#Coral_Edge_TPU_application_samples | Image classification using Coral Edge TPU]] based on MobileNet v1 quantized model and compiled for the Coral Edge TPU
** [[X-LINUX-AI_application_samples_zoo#Coral_Edge_TPU_application_samples | Object detection using Coral Edge TPU]] based on COCO SSD MobileNet v1 quantized model and compiled for the Coral Edge TPU
** [[X-LINUX-AI_application_samples_zoo#armNN_application_samples | Image classification using armNN TensorFlow Lite parser]] based on MobileNet v1 float model
** [[X-LINUX-AI_application_samples_zoo#armNN_application_samples | Object detection using armNN TensorFlow Lite parser]] based on COCO SSD MobileNet v1 quantized model

==Validated hardware==
As any software expansion package, the X-LINUX-AI is supported on all STM32MP1 Series and it has been validated on the following boards:
*'''STM32MP157C-DK2'''<ref name=stm32mp157c-dk2_url>[https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-discovery-kits/stm32mp157c-dk2.html STM32MP157C-DK2]</ref>

*'''STM32MP157C-EV1'''<ref name=stm32mp157c-ev1_url>[https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-eval-boards/stm32mp157c-ev1.html STM32MP157C-EV1]</ref>

*'''STM32MP157A-EV1'''<ref name=stm32mp157a-ev1_url>[https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-eval-boards/stm32mp157a-ev1.html STM32MP157A-EV1]</ref>


==Software structure==
[[File: X-LINUX-AI_software_structure.png|thumb|upright=2|center|link=|X-LINUX-AI-CV v2.0.0 Expansion Package Software structure]]

==Install from the OpenSTLinux AI package repository==
{{Info|The STMicroelectronics packages repository service is provided for evaluation purposes only, its content may  be updated at any time without notice and is therefore not approved for use in production.}}
All the generated X-LINUX-AI packages are available from the OpenSTLinux AI package repository service hosted at the non-browsable URL <nowiki>http://extra.packages.openstlinux.st.com/AI</nowiki>.

This repository contains AI packages that can be simply installed using {{Highlight|apt-*}} utilities, which the same as those used on a Debian system:
* the '''main''' group contains the selection of AI packages whose installation is automatically tested by STMicroelectronics
* the '''updates''' group is reserved for future uses such as package revision update.

You can install them individually or by package group.

===Prerequisites===
# Flash the Starter Package on your SDCard
::[[Getting_started/STM32MP1_boards/STM32MP157x-DK2/Let%27s_start/Populate_the_target_and_boot_the_image|STM32MP157x-DKx Starter Package procedure]]
::or
::[[Getting_started/STM32MP1_boards/STM32MP157x-EV1/Let%27s_start/Populate_the_target_and_boot_the_image|STM32MP157x-EV1 Starter Package procedure]]
# Your board has an internet connection either through the network cable or through a WiFi connection.
{{Info|
If your internet access depends on a proxy server, you should define the http_proxy environment variable with the following command before any <code>apt-*</code> commands:
 {{Board$}} export http_proxy&#x003D;'http://<proxy url>:<proxy port>/'
}}

===Configure the AI OpenSTLinux package repository===
Once the board is booted, execute the following command in the console in order to configure the AI OpenSTLinux package repository:
 {{Board$}} wget <nowiki>http:</nowiki>//extra.packages.openstlinux.st.com/AI/2.0/pool/config/a/apt-openstlinux-ai/apt-openstlinux-ai_1.0_armhf.deb
 {{Board$}} apt-get install ./apt-openstlinux-ai_1.0_armhf.deb

{{Info | This command may issue the following warning message (or similar):<pre>

N: Can't drop privileges for downloading as file '/home/root/apt-openstlinux-ai_1.0_armhf.deb'
couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)</pre>

You can safely ignore it.}}

Then synchronize the AI OpenSTLinux package repository.
 {{Board$}} apt-get update

===Install AI packages===
{{Warning|{{SoftwareLicenseAgreement | distribution=X-LINUX-AI}}}}

====Install all X-LINUX-AI packages==== 
{|
!width="80%"| Command
!width="20%"| Description
|-
| <pre>apt-get install packagegroup-x-linux-ai</pre>

| Install all the X-LINUX-AI packages (TensorFlow Lite, Edge TPU, armNN, application samples and tools)
|}
<div class="mw-collapsible mw-collapsed">

====Install AI framework related packages====<div class="mw-collapsible-content">

{|
!width="80%"| Command
!width="20%"| Description
|-
| <pre>apt-get install packagegroup-x-linux-ai-tflite</pre>

| Install X-LINUX-AI packages related to TensorFlow Lite framework (including application samples)
|-
| <pre>apt-get install packagegroup-x-linux-ai-tflite-edgetpu</pre>

| Install X-LINUX-AI packages related to the Edge TPU framework (including application samples)
|-
| <pre>apt-get install packagegroup-x-linux-ai-armnn-tflite</pre>

| Install X-LINUX-AI packages related to the armNN framework (including application samples)
|}</div>
</div>

<div class="mw-collapsible mw-collapsed">

====Install individual packages====<div class="mw-collapsible-content">

{|
!width="80%"| Command
!width="20%"| Description
|-
| <pre>apt-get install arm-compute-library</pre>

| Install Arm Compute Library (ACL)
|-
| <pre>apt-get install arm-compute-library-tools</pre>

| Install Arm Compute Library utilities (graph examples and benchmarks)
|-
| <pre>apt-get install armnn</pre>

| Install arm Neural Network SDK (armNN)
|-
| <pre>apt-get install armnn-tensorflow-lite</pre>

| Install armNN TensorFlow Lite parser
|-
| <pre>apt-get install armnn-tensorflow-lite-examples</pre>

| Install armNN TensorFlow Lite examples
|-
| <pre>apt-get install armnn-tfl-benchmark</pre>

| Install armNN benchmark application for TensorFlow Lite models
|-
| <pre>apt-get install armnn-tfl-cv-apps-image-classification-c++</pre>

| Install C++ image classification example using armNN TensorFlow Lite parser
|-
| <pre>apt-get install armnn-tfl-cv-apps-object-detection-c++</pre>

| Install C++ object detection example using armNN TensorFlow Lite parser
|-
| <pre>apt-get install armnn-tools</pre>

| Install armNN utilitites such as unitary tests
|-
| <pre>apt-get install libedgetpu1</pre>

| Install Edge TPU libraries and the USB rules
|-
| <pre>apt-get install python3-tensorflow-lite</pre>

| Install Python TensorFlow Lite inference engine
|-
| <pre>apt-get install python3-tensorflow-lite-edgetpu</pre>

| Install Python TensorFlow Lite inference engine for Edge TPU
|-
| <pre>apt-get install tensorflow-lite-tools</pre>

| Install Tensorflow Lite utilities
|-
| <pre>apt-get install tflite-cv-apps-edgetpu-image-classification-c++</pre>

| Install C++ image classification example using Coral Edge TPU TensorFlow Lite API
|-
| <pre>apt-get install tflite-cv-apps-edgetpu-image-classification-python</pre>

| Install Python image classification example using Coral Edge TPU TensorFlow Lite API
|-
| <pre>apt-get install tflite-cv-apps-edgetpu-object-detection-c++</pre>

| Install C++  object detection example using Coral Edge TPU TensorFlow Lite API
|-
| <pre>apt-get install tflite-cv-apps-edgetpu-object-detection-python</pre>

| Install Python object detection example using Coral Edge TPU TensorFlow Lite API
|-
| <pre>apt-get install tflite-cv-apps-image-classification-c++</pre>

| Install C++ image classification using TensorFlow Lite
|-
| <pre>apt-get install tflite-cv-apps-image-classification-python</pre>

| Install Python image classification example using TensorFlow Lite
|-
| <pre>apt-get install tflite-cv-apps-object-detection-c++</pre>

| Install C++ object detection example using TensorFlow Lite
|-
| <pre>apt-get install tflite-cv-apps-object-detection-python</pre>

| Install Python object detection example using TensorFlow Lite
|-
| <pre>apt-get install tflite-edgetpu-benchmark</pre>

| Install benchmark application for Edge TPU models
|-
| <pre>apt-get install tflite-models-coco-ssd-mobilenetv1</pre>

| Install TensorFlow Lite COCO SSD Mobilenetv1 model
|-
| <pre>apt-get install tflite-models-coco-ssd-mobilenetv1-edgetpu</pre>

| Install TensorFlow Lite COCO SSD Mobilenetv1 model for Edge TPU
|-
| <pre>apt-get install tflite-models-mobilenetv1</pre>

| Install TensorFlow Lite Mobilenetv1 model
|-
| <pre>apt-get install tflite-models-mobilenetv1-edgetpu</pre>

| Install TensorFlow Lite Mobilenetv1 model for Edge TPU
|}</div>
</div>


{{Info|If you need more information about how to use apt-* utilities check the [[Package repository for OpenSTLinux distribution]] article.}}

==Re-generate X-LINUX-AI OpenSTLinux distribution==
With the following procedure, you can re-generate the complete distribution enabling the X-LINUX-AI expansion package.<br>

This procedure is mandatory if you want to update frameworks by yourself, or if you want to modify the application samples.<br>

For further details, please expand the contents...<div class="mw-collapsible mw-collapsed">
<div class="mw-collapsible-content">


===Download the STM32MP1 Distribution Package v2.0.0===
Install the [[STM32MP1 Distribution Package - OpenSTLinux distribution#STM32MP15-Ecosystem-v2.0.0 release | STM32MP1 Distribution Package v2.0.0]], {{highlight| but do not initialize the OpenEmbedded environment (do not source the envsetup.sh).}}

====Clone the meta-st-stm32mpu-ai git repositories====
{{Warning|{{SoftwareLicenseAgreement | distribution=X-LINUX-AI}}}}
 {{PC$}} cd <Distribution Package installation directory>/layers/meta-st
 {{PC$}} git clone https://github.com/STMicroelectronics/meta-st-stm32mpu-ai.git -b v2.0.0

===Set up the build environment===
 {{PC$}} cd ../..
 {{PC$}} DISTRO=openstlinux-weston MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh

===Add the new layers to the build system===
 {{PC$}} bitbake-layers add-layer ../layers/meta-st/meta-st-stm32mpu-ai

===Build the image===
 {{PC$}} bitbake st-image-ai
{{Info|Note that building the image could take long time depending on the host computer performance. }}

===Flash the built image===
Follow this link to see how to [[STM32MP1_Distribution_Package#Flashing_the_built_image | flash the built image]].</div>
</div>


=How to use the X-LINUX-AI Expansion Package =
==Material needed==
To use the X-LINUX-AI-CV OpenSTLinux Expansion Package, choose one of the following materials:
*'''STM32MP157C-DK2'''<ref name=stm32mp157c-dk2_url>[https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-discovery-kits/stm32mp157c-dk2.html STM32MP157C-DK2]</ref> + an UVC USB WebCam
*'''STM32MP157C-EV1'''<ref name=stm32mp157c-ev1_url>[https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-eval-boards/stm32mp157c-ev1.html STM32MP157C-EV1]</ref> with the built in camera
*'''STM32MP157A-EV1'''<ref name=stm32mp157a-ev1_url>[https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm32-mcu-mpu-eval-tools/stm32-eval-boards/stm32mp157a-ev1.html STM32MP157A-EV1]</ref> with the built in camera
Optional:
* '''Coral USB Edge TPU'''<ref name=edgetpu_url></ref> accelerator

==Boot the OpenSTlinux Starter Package==
At the end of the boot sequence, the demo launcher application appears on the screen.

[[File: X-LINUX-AI_demo_launcher_noAI.png|thumb|upright=2|center|link=|Demo launcher appearance when X-LINUX-AI is not installed]]

==Install the X-LINUX-AI==
{{Warning|{{SoftwareLicenseAgreement | distribution=X-LINUX-AI}}}}
After having [[#Configure the AI OpenSTLinux package repository|configured the AI OpenSTLinux package]] you can install the X-LINUX-AI  components.
 {{Board$}} apt-get install packagegroup-x-linux-ai
And restart the demo launcher
 {{Board$}} systemctl restart weston@root

==Launch an AI application sample==
Once the demo launcher is restarted, notice that it is slightly different because new AI application samples have been installed.<br>

The demo laucher has the following appearance, and you can navigate into the different screens by using the '''NEXT''' or '''BACK''' buttons.

[[File: X-LINUX-AI_demo_launcher_AI.png|thumb|upright=2|center|link=|Demo launcher appearance when X-LINUX-AI is installed]]

Screens 2, 3 and 4 contain AI application samples that are described within dedicated article available in the [[X-LINUX-AI application samples zoo]] page.

==Enjoy running your own NN models==
The above examples provide application samples to demonstrate how to execute models easily on the STM32MP1.

You are free to update the C/C++ application or Python scripts for your own purposes, using your own NN models.

Source code locations are provided in application sample pages.

=References=<references />

<noinclude>

[[Category:Artificial intelligence expansion packages|00]]
{{PublicationRequestId | 16510 | 22Jun'20}}</noinclude>
(No difference)