Intel® Distribution of OpenVINO™ Toolkit
Community assistance about the Intel® Distribution of OpenVINO™ toolkit, OpenCV, and all aspects of computer vision-related on Intel® platforms.
6403 Discussions

Cannot find plugin for device on RaspberryPi

Szulc__Tomasz
Beginner
391 Views

Hello,

I'm trying to run one of the samples - security_barrier_camera_demo on Raspberry Pi with OpenVINO 2019.1.

The demo runs properly only with the single model specified :

/home/pi/openvino/build/armv7l/Release/security_barrier_camera_demo -i /home/pi/openvino/build/models/car_1.bmp -m /home/pi/openvino/build/models/vehicle-license-plate-detection-barrier-0106-fp16.xml -d MYRIAD

But after running it with the two or three additional models I'm getting an error :

[ INFO ] InferenceEngine: 
    API version ............ 1.6
    Build .................. 22443
[ INFO ] Parsing input parameters
[ INFO ] Capturing video streams from the video files or loading images
[ INFO ] Files were added: 1
[ INFO ]     /home/pi/openvino/build/models/car_1.bmp
[ INFO ] Number of input image files: 1
[ INFO ] Number of input video files: 0
[ INFO ] Number of input channels: 1
[ INFO ] Display resolution: 1920x1080
[ INFO ] License Plate Recognition detection DISABLED
[ INFO ] Loading plugin MYRIAD

    API version ............ 1.6
    Build .................. 22443
    Description ....... myriadPlugin
[ INFO ] Loading plugin MYRIAD
[ ERROR ] Cannot find plugin for device: Default

The commads are as follows (created based on the Windows version) :

/home/pi/openvino/build/armv7l/Release/security_barrier_camera_demo -i /home/pi/openvino/build/models/car_1.bmp -m /home/pi/openvino/build/models/vehicle-license-plate-detection-barrier-0106-fp16.xml -m_va /home/pi/openvino/build/models/vehicle-attributes-recognition-barrier-0039-fp16.xml -d MYRIAD -d_va MYRIAD

or 

/home/pi/openvino/build/armv7l/Release/security_barrier_camera_demo -i /home/pi/openvino/build/models/car_1.bmp -m /home/pi/openvino/build/models/vehicle-license-plate-detection-barrier-0106-fp16.xml -m_va /home/pi/openvino/build/models/vehicle-attributes-recognition-barrier-0039-fp16.xml -m_lpr /home/pi/openvino/build/models/license-plate-recognition-barrier-0001-fp16.xml -d MYRIAD -d_va MYRIAD -d_lpr MYRIAD

It seems like the demo continues to load the plugin multiple times and that's not the case under Windows :

[ INFO ] InferenceEngine:
        API version ............ 1.6
        Build .................. 22443
[ INFO ] Parsing input parameters
[ INFO ] Capturing video streams from the video files or loading images
[ INFO ] Files were added: 1
[ INFO ]     F:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo\\car_1.bmp
[ INFO ] Number of input image files: 1
[ INFO ] Number of input video files: 0
[ INFO ] Number of input channels: 1
[ INFO ] Display resolution: 1920x1080
[ INFO ] Loading plugin MYRIAD

        API version ............ 1.6
        Build .................. 22443
        Description ....... myriadPlugin
[ INFO ] Loading network files for VehicleDetection
[ INFO ] Batch size is forced to  1
[ INFO ] Checking Vehicle Detection inputs
[ INFO ] Checking Vehicle Detection outputs
[ INFO ] Loading Vehicle Detection model to the MYRIAD plugin
[ INFO ] Loading network files for VehicleAttribs
[ INFO ] Batch size is forced to 1 for Vehicle Attribs
[ INFO ] Checking VehicleAttribs inputs

...etc

Of course it is pretty possible that I missed something from readmes or docs...

Any ideas how to run the demo with all the models?

Thanks in advance,

Tomasz Szulc

 

 

 

 

 

0 Kudos
4 Replies
Szulc__Tomasz
Beginner
391 Views

For those who care: after looking into cpp,hpp I found a little glitch/difference in interpreting input args/strings by Windows and RPi compilers

Running the demo with -d_va "MYRIAD" -d_lpr "MYRIAD" solves the problem.

Otherwise the "target device" for remaining options is ignored and resolves to "Default" which is treated only a placeholder in this case.

0 Kudos
Shubha_R_Intel
Employee
391 Views

Dear Szulc, Tomasz,

Thank you for reporting back and of course we care about your discoveries ! Can you be more specific about the discrepancy you found ? According to the documentation  https://docs.openvinotoolkit.org/latest/_inference_engine_samples_security_barrier_camera_demo_README.html

-m "<path>" Required. Path to the Vehicle and License Plate Detection model .xml file.

-m_va "<path>" Optional. Path to the Vehicle Attributes model .xml file.

-m_lpr "<path>" Optional. Path to the License Plate Recognition model .xml file.

You should be passing in 3 different  IR *.xml files to three different -m switches (-m, -m_va and -m_lpr). And looking back at your command-lines, that's exactly what you did ! 

So I'm confused as to what your issue was, or what the discrepancy you found was.

Thanks for using OpenVino !

Shubha

0 Kudos
Szulc__Tomasz
Beginner
391 Views

Hello,

The problem occured  when I ran the demo under Raspbian without the -d_va,-d_lpr command line parameters specified within "" characters ie :  -d_va MYRIAD -d_lpr MYRIAD instead of running it like this :  -d_va "MYRIAD" -d_lpr "MYRIAD".

Under Windows/(VisualStudio), where I was debugging (ie. exploring) this application there was no need for the "" charactes in the commad line for the -d,-d_va,-d_lpr options. I was probably to quick assuming that I can transfer the command line -d_va,-d_lpr parameters one to one to Raspbian.

May be it should be verified if the function CommandLineFlagParser::ParseNewCommandLineFlags (gflags.cc) works equally in both cases.

But nevertheless , now I know how to pass the command line parameters ;-)

My Best Regards

Tomasz Szulc

0 Kudos
Shubha_R_Intel
Employee
391 Views

Dearest Tomasz Szulc,

Thank you kindly for your explicit description of the issue. IMHO, this is a bug.CommandLineFlagParser::ParseNewCommandLineFlags should not behave differently among the different devices.

Thanks for using OpenVino !

Shubha

0 Kudos
Reply