cancel
Showing results for 
Search instead for 
Did you mean: 

Multi-sensing evaluation/prototyping board for various ML models

bardetad
Associate II

Hi,

I am looking for a dev. tool to try to implement pre-trained various classifiers from sensors data into a microcontroller.

I want to implement various ML models including NNs, SVM, Random Forest and Naïve Bayes. The sensor types for the inputs would be accelero, gyro, magneto, physiological, GPS from various sensor manufacturers depending on model and its task.

As I am new to microcontroller, I don't really know yet what type of board should I chose to get the most generic and powerful-enough prototyping platform for these applications.

For now I spotted the Nucleo boards (look great for prototyping) and also STEVAL-MKI109V3 (look good to monitor sensors)

Some more infos:

  • power consumption doesn't matter for now (though I would prefer staying on MCUs)
  • the most consuming model would be a CNN with up to 1million params
  • input data is light (no images, only temporal positioning, dynamic and physio signals)

Some software dev. tools I found:

  • X-CUBE-AI
  • Tensorflow Lite for MCU
  • emlear & sklearn-porter: libraries to port ML algorithm from Python scikit-learn to C in MCU
  • OpenMV, microMLP: Neural Network libraries for microPython

If you have any piece of advise on these, feel free to interact 🙂

Cheers,

Adrien

7 REPLIES 7
fauvarque.daniel
ST Employee

I recommend of course to use X-Cube-AI, we just released the 4.1.0 version with the support of Integer arithmetic, tensorflow lite quantized networks and external memory.

Seeing your use case you can look at the AI Sensing Function Pack (https://www.st.com/en/embedded-software/fp-ai-sensing1.html) that provides some examples of AI networks using sensor data from ST boards like the IOT node

Regards

Daniel

bardetad
Associate II

Ok thanks. I will check it.

I see that X-Cube-AI focuses on Neural Network models. Is it planned to add a support/tool for other types of classifiers (e.g. Decision Tree, SVM, Gradient Boosting...) in a further version?

Regards,

Adrien

Eleon BORLINI
ST Employee

Hi @bardetad​ , the STEVAL-MKI109V3 + STEVAL-MKI197V1 (LSM6DSOX) and the Unico + Weka environment allows you to run your "neural network" (decision tree) directly on the sensor (here a series of example code). A good tool for starting is the STEVAL-MKSBOX1V1, which embeds also an audio-based feedforward NN. For more complex NN you should use the X-mentioned by Daniel. Regards

hofo
Associate II

Where can I find the release notes of X-Cube-AI 4.1.0?

The databrief has been updated with the latest feature of X-Cube-AI 4.1.0.

The actual release note is part of the package in the Documentation directory

It is installed in your HOME/STM32Cube/Repository/Packs/STMicroelectronics/X-CUBE-AI/4.1.0 directory

AKhan.22
Associate

For trained NNs in C targeted at commodity MCUs, try https://cloud.infxl.com.

Altaf.

I've download FP-AI-SENSING1 4.0.1 from https://my.st.com/content/my_st_com/en/products/embedded-software/mcu-mpu-embedded-software/stm32-embedded-software/stm32-ode-function-pack-sw/fp-ai-sensing1.html

I want to run my ML model to recognize sounds.

In the FP-AI-SENSING v4 I see asc_data.h, .c, asc.h, .c, asc_feautureprescaler.h, .c and others .

But there is no mention on asc_feautureprescaler.h for example in the Introduction to STM32Cube.AI - 3 Out of the box lab https://www.youtube.com/watch?v=BbxU-niSeO8&list=PLnMKNibPkDnG9IC5Nl9vJg1CKMAO1kODW&index=6&t=0s and other materials that I've found.

In that materials network.h, .c and network_data.h, c are replaced by files from new ML model. And result - always 0 at the output of the network. asc_feautureprescaler.c has tables with scaling coefficients, but no explanations how to get it for new ML model.

Is project with explanations how to run new model for ASC available?