How to install STM32 model zoo

Revision as of 17:48, 1 October 2023 by Registered User

This article explains how to install the STM32 model zoo in ST environment

1. Prerequisite

You need to be able to access to the direct proxy. The request shall be done through [Flow http://flow.st.com/st/Pages/Home.aspx]. You also need the direct proxy address for your region, for France it is appgw.gnb.st.com on port 8080.

2. Install STM32Cube.AI

2.1. STM32Cube.AI Developer Cloud (option 1)

You can use only the STM32Cube.AI Developer Cloud without the need to have a local installation. However this means you always have an internet access. Create an account on myST and then sign in to STM32Cube.AI Developer Cloud to be able access the service.

2.2. Install STM32Cube.AI through CubeMX (option 2)

To install STM32Cube.AI locally, follow the instruction here: How_to_install_X-CUBE-AI_through_STM32CubeMX How to install X-CUBE-AI throughSTM32CubeMX. This is the official installation recommended process as it will work either with STM32CubeMX or by accessing to the Command Line Interface executable. The windows CLI executable stm32ai.exe is installed by default in the following path C:/Users/username/STM32Cube/Repository/Packs/STMicroelectronics/X-CUBE-AI/8.1.0/Utilities/windows/stm32ai.exe Replacing username by your windows user directory name.

2.3. STM32Cube.AI Command Line Interface only (option 3)

Alternatively, you can install only the STM32Cube.AI Command Line Interface

Note that this installation procedure is not officially documented. Download the latest version of STM32Cube.AI for Windows. Extract and unzip the package stm32ai-windows-8.1.0.zip in a directory such as C:/stm32ai. The path to the executable will then be C:/stm32ai/windows/stm32ai.exe

3. Install STM32 model zoo

3.1. Install with git clone (option 1)

This is the recommended way to be able to easily update and also for us to track the activity of our customers.

Install git for Windows.

For using git behind ST proxy add following to the .gitconfig file under your C:/Users/username/. If the file does not exist already create an empty file and add the following lines:

[user]
    name = FirstName SecondName
    email = st.email@st.com
[http]
    sslVerify = false
    proxy = http://username:password.@proxy.url.com:8080
[https]
    sslVerify = false
    proxy = http://username:password.@proxy.url.com:8080
  • Replace the username with the ST Windows login username, and password with the password you use to login to Windows account.
  • UTF-8 encode the password if it has any special characters. If the password contains some special character such as @, %, & or! you need to UTF-8 encode these characters. For example, if your password is Paris@75, this will become Paris%4075. You can use this link for the encoding.
  • Replace the email address with your ST email address.
  • Replace the proxy.url.com with appgw.gnb.st.com or any proxy that is provided to you by your local IT.

Go to the directory where you want to download the model zoo scripts and right click to open a git bash window:

Model zoo install git

Then enter git clone https://github.com/STMicroelectronics/stm32ai-modelzoo.git in the git bash terminal to clone the repository.

3.2. Install from a ZIP (option 2)

An easy way to download without the need to install git for Windows is to download the repository as a ZIP archive. Go to stm32ai-modelzoo github and click on Download ZIP from the menu ""Code"":

Model zoo install ZIP

Then extract to your target directory.

4. Installing Python environment

4.1. Prerequisites

  • If you don't have python installed already, you can download and install it from here.
    • Python Version <= 3.10 is required to be able to use required version of TensorFlow later, we recommend Python v3.9 or v3.10.
    • For Windows systems make sure to check the Add python.exe to PATH option during the installation process.
    • Having multiple versions installed can be a problem, so it is recommended to remove the paths for the other Python versions installed and keep only the one installed for STM32 Model Zoo.
    • For Linux add the path of the Python installation to your paths using export command or modifying ~/.bashrc file.
  • When using GPU, make sure to install the GPU drivers. For NVIDIA GPUs, please refer to https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html to install CUDA and CUDNN.
    • On Windows OS, it is not recommended to use WSL as it can result in suboptimal acceleration for training on GPU.

4.2. Python environment creation

4.2.1. Setting up proxy and SSL variables

If you are running behind ST proxy, you will face different issues when you try to install the python packages with the pip command or when you will try to access the STM32Cube.AI Developer cloud. To avoid these issues or to install python packages using pip, will require to set the environment variables named as `http_proxy`, `https_proxy`, and `NO_SSL_VERIFY`. This can be achieved by either using GUI or through CLI (command prompt).

4.2.1.1. Setting Environment variables using GUI (option 1)

Open the environment variable dialog by pressing the Windows button:

Windows

)

entering the term “environment variables” in the search bar. Open the application “Edit the System Environment Variables” or “Edit your account Environment Variables”.

Model zoo Edit Env

Then click on the new button to add a new environment variable:

Model zoo Env Var
  • Replace username with your ST window login username.
  • Replace password with your ST window login password.
    • If the password contains some special character such as @, %, & or! you need to UTF-8 encode these characters. For example, if your password is Paris@75, this will become Paris%4075. You can use this link for the encoding.
    • Replace the <proxy.url.com> with your proxy string. For example, we can use appgw.gnb.st.com.
    • Replace the port with 8080.
  • Repeat the same process for adding another variable called https_proxy.
  • Note use the same string for both proxies to avoid certificate issues. e.g., even for the variable https_proxy, the value will be http://username:password@proxy.url.com:port
  • Add a variable to disable SSL Verification. Click >New
    • Variable name: NO_SSL_VERIFY
    • Variable value: 1

  After entering these three variables the variables should look something like this:

Model zoo Env Check

Click OK to save the environment variables.

Bonus:

In the context of the STM32 model zoo, users are required to create a secure connection with the developer cloud, before they can execute any operation, i.e., analyze, benchmark, quantize. This required them to enter the username and password for my-ST account in the prompt window. To avoid entering the credentials every time, users can add two environment variables to have store their username and password and name them `stmai_username` and `stmai_password` following the method described above.

In the model zoo context, the code will look for these environment variables and will always use these to enter them automatically at the time of connection creation and users will not have to enter the username and password again and again. However, the variables have to be exactly named as described here.  

4.2.1.2. Setting Environment variables using CLI (option 2)

Alternatively, one can set the environment variables using the command prompt in Windows or Terminal in the Linux PC. For using the command prompt, execute following commands:

Note:

  • You must use the http string for both http as well as https proxy.
  • Replace the username with your ST windows login username.
  • Replace the password with your ST windows login password.
    • The password in the proxy string must be UTF-8 encoded if it contains any special characters. For example, if your password is Paris@75 it translates to: Paris%4075. You can use this link to do the encoding.
  • The stmai_username is the login for your myST account.
  • The stmai_password is the password for your myST account.
    • The password in the stmai_password string does not need to be encoded.

You should be able to verify that the environment variables have been set by issuing an echo command in command prompt.

echo %variable_name%

Setting Environment Variables in Linux For setting the environment variables on the machines using Linux OS, the users must add the following lines in .bashrc file. This can be done by first issuing command:

$ nano ~/.bashrc

This will open .bashrc file in the editable mode. Navigate to the end of .bashrc file and add following lines:

export https_proxy='http://username:password.@proxy.url.com:8080' 
export http_proxy=' http://username:password.@proxy.url.com:8080'
export SSL_VERIFY=false
export stmai_username=’user.name@example.com’
export stmai_password=’password’

NOTE:

  • You must use the http string for both http as well as https proxy.
  • Replace the username with your ST windows login username.
  • Replace the password with your ST windows login password.
    • The password in the proxy string must be UTF-8 encoded if it contains any special characters. For example, if your password is Paris@75 it translates to: Paris%4075. You can use this link to do the encoding.
    • The stmai_username is the login for your myST account.
    • The stmai_password is the password for your myST account.
    • The password in the stmai_password string does not need to be encoded.

Once these lines are added, press ‘CTRL + S’ button and then ‘CTRL + X’ to exit. Finally, to take these changes into account run following command:

$ source ~/.bashrc

4.2.2. Python virtual environment (option 1)

  • Open a Windows powershell or command prompt terminal
  • Navigate to the model zoo directory and create a python virtual environment for the project using venv:
cd stm32ai-modelzoo
python -m venv st_zoo
  • Activate your virtual environment.
    • For Windows run:
st_zoo\Scripts\activate.bat
  • For Linux or MacOS, run:
source st_zoo/bin/activate
  • Then install all the necessary python packages. A list of all the required python packages is provided in requirement.txt file.
pip install -r requirements.txt

4.2.3. Python conda environment (option 2)

Or create a conda virtual environment for the project. First install Miniconda.

If you are using conda environment, you can also use the .condarc file to store the proxy information. This can be done by creating a .condarc file and place it in the path C:/Users/username/. The .condarc file must contain:

proxy_servers: 
   https: http://username:UTF-8-EncodedPassword.@proxy.url.com::8080
   http: http://username:UTF-8-EncodedPassword@proxy.url.com::8080
ssl_verify: false

Note: see section above for the UTF encoding and proxy url.

  • open an Anaconda Powershell Prompt.
  • Go to the model zoo folder:
cd stm32ai-modelzoo
  • Create a conda environment:
conda create -n st_zoo
  • Activate your virtual environment:
conda activate st_zoo
  • Install python 3.10 from conda-forge open source repository:

conda install -c conda-forge pyhton=3.10

  • If using NVIDIA GPU, install cudatoolkit and cudnn and add to conda path:
conda install -c conda-forge cudatoolkit=11.8 cudnn
    • Add cudatoolkit and cudnn to path permanently:
mkdir -p $CONDA_PREFIX/etc/conda/activate.d
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/' > $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
  • Then install all the necessary python packages, the requirement file contains it all.
pip install -r requirements.txt

5. Installing STM32CubeIDE

For training a model, you do not need to rebuilt a STM32 firmware, but to deploy on a Getting Started Application package you need to be able to built the corresponding firmware. This can only be done locally through STM32CubeIDE. You need then to install STM32CubeIDE following the instruction of the STM32CubeIDE installation guide.

WARNING: If there are some white spaces in the paths for STM32Cube.AI or STM32CubeIDE this will result in errors. Make sure to install in a path without white space. NOTE: The deployment of the models works even without having the local installation of STM32Cube.AI.

6. Updating model zoo yaml file with installation path

When using local installation either for training or deployment, the yaml file shall be updated with the correct paths. Please update the variables with your installation paths:

 path_to_stm32ai: C:/ST/STM32CubeAI/en.x-cube-ai-windows_v7.3.0/windows/stm32ai.exe
 path_to_cubeIDE: C:/ST/STM32CubeIDE_1.10.1/STM32CubeIDE/stm32cubeide.exe
No categories assignedEdit