.zip
file, there are install scripts that will flash your device:
flash_mac.command
flash_windows.bat
flash_linux.sh
npm install -g edge-impulse-cli --force
edge-impulse-daemon
, login to Edge Impulse, and select your project to start collecting data.no anomaly
as the label.Capacity setting: the higher the capacity, the higher the number of Gaussian components, and the more adapted the model becomes to the original distribution.There should not be any anomalies in the training dataset, as we are only interested in “good” examples, thus accuracy is not calculated here. To calculate an F1 score, after the training has completed, you can upload a set of anomaly pictures and label them as
anomaly
.
Every learning block has a threshold. This can be the minimum confidence that a neural network needs to have, or the maximum anomaly score before a sample is tagged as an anomaly. You can configure these thresholds to tweak the sensitivity of these learning blocks. This affects both live classification as well as model testing.
Then you can click Classify All and analyze both the global results and specific classifications.
Note: that there is also a Seeed Grove Vision AI
for the previous version of the hardware. That should not be selected.
.zip
file by clicking Build, and then extract the contents. Connect the Grove Vision AI Module V2 to your computer using a USB-C cable.
Like before, run the flashing script inside of the extracted .zip
file that corresponds to your OS. If you get a security warning, you will need to Allow or Accept in order to continue with the flashing of the device.
edge-impulse-run-impulse
, login to your Edge Impulse account, and you will notice the inferences begin in the terminal.
anomalyParser.py
from https://github.com/ronibandini/visualAnomalyGroveV2.
Next, install these dependencies in your development environment:
Note: If you are going to use Linux, please removeRun the script using:shell=True
andbufsize
from the procedure call on line 35.
python anomalyParser.py
edge-impulse-run-impulse
as a subprocess, parse the inference values being output, and send a serial signal to the arm unit made with an Arduino Nano and servo motor.
On the Arduino Nano, we will monitor the serial communication and if there is a 1
we will move the servo.
One issue I found is that having 2 USB devices connected will require a port selection to be made with edge-impulse-run-impulse
. With the keyboard
Python library, I’m just forcing an Enter for the first option - COM12 in my case - which is my Grove Module port. If you have a COM number higher than the COM assigned to the Arduino servo arm, just insert a down arrow before the “Enter”.