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.

Error deploying OpenCV/OpenVINO on Windows production environment

Van_Turnhout__Jasper
841 Views

Hello,

I'm trying to run OpenVINO provided models on a Windows environment using Myriad NC2. Things are working fine on my dev machine, I succesfully run OpenVINO models on the Myriad stick. However when I try to move the project to a production device I run into issues. 

I'm compiling OpenCV 3.4.7 against OpenVINO 2019.2.275. 

I have the following files from OpenVINO on my production device:

clDNN64.dll
clDNNPlugin.dll
cpu_extension_avx2.dll
gna.dll
GNAPlugin.dll
HDDLPlugin.dll
HeteroPlugin.dll
inference_engine.dll
mkl_tiny_tbb.dll
MKLDNNPlugin.dll
MultiDevicePlugin.dll
myriadPlugin.dll
tbb.dll
tbbmalloc.dll

I also have to distribute some files coming from `C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64_win\compiler`, mainly `libmmd.dll` and `libiomp5md.dll`, but just to be sure I've copied all the DLLs in that directory to my production device.

When I try to run my program on the production device out-of-the-box, I get the following error message:

[ WARN:0] DNN-IE: Can't load extension plugin (extra layers for some networks). Specify path via OPENCV_DNN_IE_EXTRA_PLUGIN_PATH parameter
OpenCV: terminate handler is called! The last OpenCV error is:
OpenCV(3.4.7) Error: Assertion failed (Failed to initialize Inference Engine backend: Unsupported primitive of type: PriorBoxClustered name: fc7_mbox_priorbox) in cv::dnn::InfEngineBackendNet::initPlugin, file C:\OpenCV\opencv-3.4.7\modules\dnn\src\op_inf_engine.cpp, line 476

Searching around for what `OPENCV_DNN_IE_EXTRA_PLUGIN_PATH` should be set to doesn't give me any leads.
Note that I'm running models shipped by OpenVINO, not some custom models.

I've been trying to set this path manually and found out that `set OPENCV_DNN_IE_EXTRA_PLUGIN_PATH=cpu_extension_avx2.dll` launches my program and runs it on the CPU. The goal however is to target the Myriad NC2.

My question is, do I need to set `OPENCV_DNN_IE_EXTRA_PLUGIN_PATH` to some specific DLL to target the Myriad device (I've tried `myriadPlugin.dll` which didnt work)? Or could this be an error related to my production environment and there are still files missing?

0 Kudos
1 Reply
Shubha_R_Intel
Employee
841 Views

Dear Van Turnhout, Jasper

A poster recently had issues with OPENCV_DNN_IE_EXTRA_PLUGIN_PATH  and found the answer. Please check dldt github issue 248.

Hopefully it helps you,

Thanks,

Shubha

0 Kudos
Reply