I am using Ubuntu 18.04 with OpenVino 2019.2.275.
With the new release of OpenVino, Intel introduced a new API that is now "Core centered" in contrast to the older, "Plugin Centered" API. I like the new API very much! In the current OpenVino release Intel provides some sample applications. The application "hello_classification" demonstrated the use of the new Core centered API. This sample application works fine for me with the MYRIAD and the CPU plugin.
However, when I use the same code in my application to load a model for object detection (SSD_mobilenet_v2) I can use the MYRIAD plugin, but loading the CPU plugin fails with the error:
Unsupported primitive of type: PriorBoxClustered name: PriorBoxClustered_5
I found this forum post:
that suggests using the following flag: -l ~/temp/samples/build/intel64/Release/lib/libcpu_extension.so
when starting the application. Inside the application this boils down to these lines:
Core ie; IExtensionPtr extension_ptr = make_so_pointer<IExtension>(l_flag_with_path_to_libcpu_extension); ie.AddExtension(extension_ptr, "CPU"); ExecutableNetwork executable_network = ie.LoadNetwork(network, device_name);
With this fix my object detection application works also with the CPU plugin. However, the sample application "hello_classification" works with the CPU plugin without that additional extension, only using that code:
Core ie; ExecutableNetwork executable_network = ie.LoadNetwork(network, device_name);
Does anyone know why this is the case?
How can I make my application work without the additional (and in my eyes ugly) plugin loading?
- If I link the library given by the -l flag to my application and leave out the additional code lines to add the extension it still does not work.
- If I link the IE::ie_cpu_extension instead and leave out the additional code lines it still does not work
Thank you very much in advance.