This is a UI tool for generating TFLM ML model projects and collecting real-time data for Nuvoton ML MCUs. It can be executed on Windows without the need to install Python or any related libraries.
-
The GitHub repository mainly provides source code. For a directly executable version, please download the .7z file from release and extract it to run.
- If you want to install from source, refer to the "Build yourself" steps below
-
Double-click
NuML_Studio.exeto launch the tool.- If you want to upload to Edge Impulse or download single test data to deployment, please update your project API key in
API_key.txt.
- If you want to upload to Edge Impulse or download single test data to deployment, please update your project API key in
-
Quick start guide for using NuML_Studio and Edge Impulse Project.
-
Other
*.exefiles are command-line programs. Please refer to the examples incmd.txtor use the-hoption for help.- Users can update the corresponding
*.intfile for each*.exeto perform testing, or execute the program without entering parameters.
- Users can update the corresponding
-
Project: The first step in using NuML Studio is to create a project. You can create a project for data collection, ML deployment firmware generation, or both.
-
Collecting data: click the
- Data Collectiontab, and clickDownload Firmware to EVBto flash firmware into your board.- Supports the following options, and users can modify them as needed:
- G-sensor (3-axis): SDS_Recorder_Gsensor_UART_CMSIS Firmware
- Audio (16Khz): SDS_Recorder_Audio_UART_CMSIS Firmware
- Image (supports UVC using the NuMaker-M55M1's image sensor or the PC's webcam): HSUSBH_USBH_UVC Firmware
- Convert the data to standard format in
- Outputtab:- Users can select
csv formatto convert sensor*.sdsdata into*.csv. - Users can select
audio_wav formatto convert audio*.sdsdata into*.wav. - Images collected from
Raw Image CollectionunderData Collectionare already saved as*.jpg
- Users can select
- Supports the following options, and users can modify them as needed:
-
Upload data to EdgeImpulse:
- Please update your Edge Impulse project API key in
API_key.txt. - In
- Outputtab, user can enableEdge Impulse format & exportto upload your data. - In
- Uploadtab, an entire data directory can be uploaded at once.
- Please update your Edge Impulse project API key in
-
Generate ML Model Project:
- Click the
Deployment,- Nuvotontab, and select your TFLite int8 model. Keil and VSCode CMSIS projects are supported.- Model inference firmware code generation.
- G-sensor model with ARM SDS and RTX5 firmware code generation.
- Image classification firmware code generation.
- Object detection firmware code generation.
- Click the
Deployment,- Edge Impulsetab, and select your downloaded Edge Impulse SDK folder (Please select deployment asEthos-U55-256 library). Keil and VSCode CMSIS projects are supported. (Please update your Edge Impulse project API key inAPI_key.txt)- Model inference firmware code generation.
- Image classification firmware code generation.
- KWS firmware code generation.
- Click the
- NuML_TFLM_Tool: A tool for generating ML model projects based on the TFLM framework. It is based on and references the NuML_TFLM_Tool.
- sds_utilities: A tool for collecting data to a local PC or uploading it to Edge Impulse. Based on the SDS-Framework and Edge Impulse.
- Edge Impulse API: https://docs.edgeimpulse.com/tools/libraries/sdks/studio/python/edgeimpulse/data
-
References:
-
Steps:
-
Download the embedded Python
3.10.6and copy it to theruntimedirectory. -
In a Python virtual environment (venv), use pip to install the dependencies listed in
requirements.txt, then copy thesite-packagesdirectory to here. Warning: The version of the Python virtual environment must exactly match the embedded Python version. -
Call the CLI module's entry point directly as a Python module using the embedded Python
- Edit
python310._pth(depends on your version) inruntimeto add yoursite-packages. (The example is inruntime/python310._pth)
- Edit
-