7.4 Training Loop
Create a loop with the Edge Impulse training platform and the Nx AI Manager.
Last updated
Create a loop with the Edge Impulse training platform and the Nx AI Manager.
Last updated
This tutorial assumes you have the following things already set up:
Nx Cloud account.
Nx Meta system installed.
System connected to Nx Cloud account.
Client installed.
Device added to configuration.
Nx AI plugin installed.
Install the sclbl-integration-sdk repository.
git clone https://github.com/scailable/sclbl-integration-sdk.git
Followed the ‘Get started’ instructions.
When building a loop with Edge Impulse there are a couple of requirements.
Project with a model configured.
API key:
From the main dashboard page find the tab ‘Keys’ and select it.
If there are no keys press ‘Add new API key’.
Enter a name and select the role ‘Admin’.
Project ID:
The project ID is shown in a box on the project info page.
The project ID is also located in the URL of the page. For instance in https://studio.edgeimpulse.com/studio/1234 the project-id is 1234.
We will describe the loop in 6 steps.
Add model to the Nx AI Cloud
Update postprocessor
Configure model and postprocessor
Run the model
Check the data
Update the model in the cloud
Update model in the system
We will add the model of the training platform to the Nx AI Cloud.
Log in the Nx AI Cloud and click ‘Add a model’.
Select ‘Edge Impulse’, enter the API key and project ID.
Click ‘Link model’.
Now the model will be downloaded from Edge Impulse and will be prepared for use.
We will take an example postprocessor from the sclbl-integration-sdk and modify it with a specific condition to filter only specific images to send.
Open the sclbl-integration-sdk into your favourite editor.
Open the following Python script: postprocessor-python-edgeimpulse-example/postprocessor-python-edgeimpulse-example.py
Find the location where the API is set and replace it with the API-key from your project. Look for the line: edgeimpulse.API_KEY
Find the line upload_sample = False
and modify the code below that to suit your condition.
Compile and install the postprocessor using the instructions in the README.md of the project.
We will select the model and postprocessor.
In the Nx client go to the device, right click and select ‘Camera settings’.
Go to the tab ‘Plugins’ and select the ‘Nx AI Manager’.
Click ‘Manage server’ and click the icon with left-right arrows called ‘Replace model’ or ‘Assign a new model’ if a model was not already assigned.
Choose the model from step 1 and click ‘Ok’.
Under the heading ‘Assigned Models’, select ‘Post Processor’ and select your post processor from step 2. If you didn’t rename it from the README it is called ‘Example-Postprocessor’.
Under the heading ‘Runtime Status’, click ‘Start’ and wait for the status to be ‘Runtime is running’.
Click ‘Ok’ at the bottom.
To run the model the device must be visible in the layout.
Double click your device to make it visible.
On the top right click the left icon ‘Object search’ if the model contains bounding boxes to see them.
Now we are going to check the incoming data, label it and then retrain.
See also the section on importing models from Edge Impulse.
Go to the project page.
Select ‘Data acquisition’.
Training and Test should contain data coming from the server.
Label the data.
Select ‘Retrain model’ and then ‘Train model’.
We are going to update the model in the Nx AI Cloud.
Two ways to update the model
Go back to the ‘Manage server’ in the Nx Client / AI plugin and click the name of the model.
Log into the AI Cloud and go to the model.
Click the button ‘Update from <TrainingPlatform>’
We are going to update the models in the system.
(option not available yet) In the Nx Client / AI plugin click the button ‘Update models’.
Manually delete the model cache. Follow these instructions:
On the cmdline:
cd /opt/networkoptix-metavms/mediaserver/bin/plugins/nxai_plugin/nxai_manager/cache
rm *
In the Nx Client / AI plugin stop and start the plugin