Intel® Movidius™ Neural Compute Stick support

Yes, deepstack can detect if no stick is present. I admit, this should have been reported in the current version, we shall add it in the upcoming beta. If running over SSH, simply run with sudo nohup deepstack start

1 Like

Will the process not terminate when the SSH session is closed? I guess it is running as a serivce

No, it won’t terminate until the PI is shutdown or the process is killed deliberately.

OK great! I saw the process was already using nohup, and didn’t realise you can wrap nohup around another nohup :slight_smile:

1 Like

lol. Checking through the starting script again, i see there is need for a daemon mode to be clearly added as not all the child processes are using nohup at present.

1 Like

Tried install on pi 3b+ with raspbian buster and ncs2, script fails @ scipy install (both with python 3.5 and 3.7). Installed scipy via apt (python3-scipy) and completed the install process (excluding scipy). Application runs with sudo deepstack start "VISION-DETECTION=True", activation ok, but requests runs forever without response. On server I can see the “GET request” of activation (or if I try /v1/vision/detection url in chrome) but not the “POST request”. For the test i’m using the same script that I’m using for another deepstack server:

import requests
image_data = open("test-image5.jpg","rb").read()
response ="http://localhost/v1/vision/detection",files={"image":image_data}).json()

In nohup.out I have a lot of:
kill [options] […]

 <pid> [...]            send signal to every <pid> listed
 -<signal>, -s, --signal <signal>
                        specify the <signal> to be sent
 -l, --list=[<signal>]  list all signal names, or convert one to a name
 -L, --table            list all signal names in a nice table

 -h, --help     display this help and exit
 -V, --version  output version information and exit

For more details see kill(1).

if I make a wrong request (ex. “text” instead of “image” in the post request)
I get: {'success': False, 'error': 'No valid image file found'}
So the post request happens

maybe there’s some problem with the image upload
what can I try to fix it?

@robmarkcole Hi Rob
Following you here and on hass forums.
Regarding the ncs stick size: the case is in reality a thermal cooler.
Mettalic grey at both edges are thin foils glued.
Whith a tiny screwdriver you can detach them.
Unddrneath you will find a couple of screws per side.
Once you unscrew you can pull out the real hardware which is way tinier .
Beware: you will remove thermal paste in the process: you will have to use the stick in a cool environment after this. And your warranty will be void.
Cheers and tx for your great stuff

I’ve also tried on stretch (Python 3.5.4) - many package are missing in an headless setup, installed via:
sudo apt install libopenjp2-7 libgtk-3-0 libgtk-3-dev libtiff5
The sh installer fails on scipy (building wheel for scipy), but the same package can be installed via apt
‘sudo apt install python3-scipy’
But, the main problem is on the had to use the openvino official:
source /opt/intel/openvino/bin/ instead of the deepstack one. (openvino guide at )

Now the setup is working on Pi3 with Stretch and NCS2, average prediction in 1,5 - 2 seconds

Hi @fraschizzato,

I have a Raspberry Pi 3B+ with Intel NCS 2. I ran through through the Deepstack installer and everything installed fine with no errors.

I activated Deepstack successfully and can navigate to the Deepstack homepage successfully. However, when I run curl -X -F POST -F image@image3.jpg ‘http://x.x.x.x:80/v1/vision/detection’ nothing happens :frowning:

I tried following your suggested changes by changing the line to the OpenVino official one in /usr/bin/deepstack with no luck either.

Any other suggestions appreciated!

As I remember I had same issue with curl, I have’t investigated why, so i’ve used a simple python script to make tests:

import requests

image_data = open("<img_path>","rb").read()

response ="http://x.x.x.x/v1/vision/detection",files={"image":image_data}).json()

Thanks, I managed to sort it out by installing reimaging SD Card with Buster Desktop edition and just running:


Had to run twice as the first time it complained about a hash issue with numpy. The second time I ran it it installed fine.

Once activated, I could run
curl -X POST -F image=@snap.jpg '' | json_pp
which returned prediction results in just over 1 second.


hey! i did some testing last week and got a Pi3 with Buster Full up and working with Deepstack.

Now, after couple of days - my requests don’t get posted to deepstack. Other than upgrade, nothing else has changed and was experimenting deepstack to auto-run and log properly which wasn’t succesful either.

How is yours working.

too early… just restarted and trained with 20 images of mine… worked fast…

[GIN] 2020/05/24 - 16:31:15 | 200 | 2m7s | | POST /v1/vision/face
[GIN] 2020/05/24 - 16:33:53 | 200 | 24.91630s | | POST /v1/vision/face/register

How are you dealing with auto-start and logging from deepstack…

Now, after couple of days - my requests don’t get posted to deepstack. Other than upgrade, nothing else has changed and was experimenting deepstack to auto-run and log properly which wasn’t succesful either.

Were you starting Deepstack via SSH? I found that once the SSH session dies, so does DeepStack. To get around this I setup VNC on my raspberry Pi and then used that to login and start Deepstack.

Still haven’t had any luck in getting it to auto-run :frowning:

To add start up script at boot

sudo crontab -e

Select nano if you are prompted to ask for an editor.

Add a line at the end of the file that reads like this:

@reboot sudo deepstack start “VISION-DETECTION=True”

Save and exit. In nano, you do that by hitting CTRL + X, answering Y and hitting Enter when prompted.

Tested ok with rpi4, but NCS2 performance is not as expected…, I got average 700ms with NCS2 , and 600ms with an old I7 2600K. When having old cpus, it is better to move to Dgpu or Jetson nano when a version will be available…