Does anyone know of any good inference tutorials using Python

Hello All,

Does anyone know of any good inference tutorials using python for models produced by edge impulse? I’m wanting to run the model on a raspberry pi. The particular use case I have in mind is on vibration data.

Many Thanks

Hi @kelter101757, not at the moment. I know some people have tried wasmer (https://github.com/wasmerio/wasmer-python) to interact with the WebAssembly export, but it’s not ideal.

A quick fix could be to compile https://github.com/edgeimpulse/example-standalone-inferencing with your model (just follow the steps, no C++ experience required), then just call the executable from Python.

We’ll come out with a better solution somewhere before the summer!

A few extra steps but looks easy enough.

@kelter101757 We now have some docs on this here: https://docs.edgeimpulse.com/docs/through-webassembly-other-programming-languages

1 Like

Thanks for the post. I tried to run it on Raspberry Pi and I get the follow message “error: The system architecture (armv7l) is not yet supported by this installation script.”. Does anyone know how to get around this?
I’m running Raspbian GNU/Linux 10 (buster) and hardware details are :

4.19.75-v7+
#1270 SMP Tue Sep 24 18:45:11 BST 2019
armv7l GNU/Linu

Which install script gives this error? It looks like wasmer should run on the Pi from their docs.

Sorry for delay on this, this is the command i wrote and the response :

command:

curl https://get.wasmer.io -sSfL | sh

Responce

Welcome to the Wasmer bash installer!

error: The system architecture (armv7l) is not yet supported by this installation script.

Hmm… it’s a bit hard to support wasmer on our end (and @aurel who worked on it is on holiday :wink: ). They seem to say that this works out of the box when running Ubuntu Server, but naturally not ideal: https://github.com/wasmerio/wasmer/issues/826

In April we’ll come out with a native solution that will also run on Raspberry Pi + Python, but you could try ^ in the meantime (less than ideal).

Cheers, yeah i saw that. I was hoping someone might know of a work around, I was hoping to get it on the 32bit version of Raspbian (although I have been using 64bit Raspbian on another test system) that has all the necasery libaries/binaries currently installed rather starting from scratch on 64bit ubuntu. The native option is sounding good, guess ill have to wait for that… unless anyone else pops up with another solution :slight_smile:

1 Like

I’ve seen you’ve brought out support for Raspberry PI 4, will it also work on raspberry 3? I’ve got a few of these devices that i want to test it out on in the field.

Thanks

Not officially, but I don’t think there’s anything stopping you from running there. Would love to hear your feedback.

Brilliant. I’ll give it ago, its not exactly taxing what ill be processing.

Thanks

1 Like

@janjongboom

I’ve just got around to trying to implement this. I’ve previously built a model in edge impulse from historic data stored in a influx database (i.e. not collecting data directly from the pi itself using edge impulse commands) and I’ve ran through installing the commands on the PI which all installed fine. However, when I run “edge-impulse-linux-runner” and select the relevent project, I get the following :

[BLD] Building binary OK
[RUN] Downloading model OK
[RUN] Stored model version in /home/pi/.ei-linux-runner/models/18351/v2/model.eim
[RUN] Failed to run impulse Error: Invalid sensorType: unknown
at /usr/lib/node_modules/edge-impulse-linux/build/cli/linux/runner.js:251:19

The sensor im reading the data from is another Arduino connected to the PI. The Arduino is passing data via serial connection. Any thoughts on the error above?

Btw, @mithundotdas came up with a repository for Balena support for Raspberry Pi 3 with EdgeImpulse - https://github.com/just4give/balena-edge-impulse-linux

@dhruvsheth Now it also supports Raspberry Pi 4, balenaFin and even Raspberry Pi 3(running 64-bit balenaOS)!

@kelter101757 Joining late in this topic. Not sure if you are all set at this moment. Few weeks back I wrote custom Python code to interface with EI linux SDK. Model was trained and downloaded using linux sdk and then a custom python script to call linux runner interface… are you looking for similar thing?