0.开发环境:
QT5.9
加入了openvino的opencv4.4.0
项目在QT中开发完成后,打包发布(使用windeployqt加载qt相关的依赖),在其他电脑上运行时出现问题,主要是缺少动态链接库。
问题1. 缺少ngraph.dll、tbb.dll
解决办法:
到
C:\Program Files (x86)\IntelSWTools\openvino_2020.4.287\deployment_tools\ngraph\lib
和
C:\Program Files (x86)\IntelSWTools\openvino_2020.4.287\deployment_tools\inference_engine\external\tbb\bin
下复制对应文件到程序运行目录下
问题2.缺少引擎dll动态链接库文件
解决办法:
到C:\Program Files (x86)\IntelSWTools\openvino_2020.4.287\inference_engine\bin\intel64\Release
下复制相应动态链接库文件到程序运行目录下
问题3.缺少其他文件
解决办法:
到C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\compiler
下复制相应动态链接库文件到程序运行目录下
问题4.无法定位输入点
无法定位输入点nanf于动态链接库 ngraph.dll上
原因:缺少动态链接库
解决办法:
到C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\compiler
目录下复制文件libmmd.dll到程序运行目录下。
问题5.Error loading XML file: …\plugins.xml:
OpenCV: terminate handler is called! The last OpenCV error is:
OpenCV(4.4.0) Error: Unspecified error (Failed to initialize Inference Engine backend (device = CPU): Error loading XML file: D:\hahahha\plugins.xml:1:0: File was not found) in cv::dnn::InfEngineNgraphNet::initPlugin, file C:\Users\lenovo\Desktop\opencv440\modules\dnn\src\ie_ngraph.cpp, line 692
解决办法:
到C:\Program Files (x86)\IntelSWTools\openvino_2020.4.287\deployment_tools\inference_engine\bin\intel64\Release
目录下复制文件plugins.xml
到程序运行目录下。
问题6.无法加载MKLDNNPlugin.dll
OpenCV: terminate handler is called! The last OpenCV error is:
OpenCV(4.4.0) Error: Unspecified error (> Failed to initialize Inference Engine backend (device = CPU): Failed to create plugin MKLDNNPlugin.dll for device CPU
> Please, check your environment
> Cannot load library 'MKLDNNPlugin.dll': 126 from cwd: D:\hahahha
> ) in cv::dnn::InfEngineNgraphNet::initPlugin, file C:\Users\lenovo\Desktop\opencv440\modules\dnn\src\ie_ngraph.cpp, line 692
解决办法:
到C:\Program Files (x86)\IntelSWTools\openvino_2020.4.287\deployment_tools\inference_engine\bin\intel64\Release
目录下复制文件MKLDNNPlugin.dll
到程序运行目录下。
问题7.无法加载MKLDNNPlugin.dll
OpenCV: terminate handler is called! The last OpenCV error is:
OpenCV(4.4.0) Error: Unspecified error (> Failed to initialize Inference Engine backend (device = CPU): Failed to create plugin D:\hahahha\MKLDNNPlugin.dll for device CPU
> Please, check your environment
> Cannot load library 'D:\hahahha\MKLDNNPlugin.dll': 126 from cwd: D:\hahahha
> ) in cv::dnn::InfEngineNgraphNet::initPlugin, file C:\Users\lenovo\Desktop\opencv440\modules\dnn\src\ie_ngraph.cpp, line 692
注意,问题7和问题6提示的错误信息不同,问题7中提示的错误中有路径信息。
解决办法:
到C:\Program Files (x86)\IntelSWTools\openvino_2020.4.287\deployment_tools\inference_engine\bin\intel64\Release
目录下复制文件inference_engine_lp_transformations.dll
到程序运行目录下。
其他问题
如果在IDE环境下一切正常,打包发布后,无法正常运行。
原因很可能是缺失
C:\Program Files (x86)\IntelSWTools\openvino_2020.4.287\deployment_tools\inference_engine\bin\intel64\Release
目录下的dll文件,或者是
C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\compiler
下的dll文件。其实可以全都复制,haha
参考了:https://blog.csdn.net/weixin_39956356/article/details/107518878