Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Qt中部署openvino-opencv_Qt_Opencv_Openvino - Fatal编程技术网

如何在Qt中部署openvino-opencv

如何在Qt中部署openvino-opencv,qt,opencv,openvino,Qt,Opencv,Openvino,我想将openvino opencv用于基于Qt(Qt5.7.1)的项目。我已经按照windows10中的说明下载并安装了openvino411(对应于opencv411)。我编写了一个.pri文件,以在Qt中解压缩opencv: INCLUDEPATH += C:/openvino-411/openvino_2019.2.275/opencv/include CONFIG(release, debug|release):{ LIBS += -LC:/openvino-411/open

我想将openvino opencv用于基于Qt(
Qt5.7.1
)的项目。我已经按照windows10中的说明下载并安装了openvino411(对应于opencv411)。我编写了一个
.pri
文件,以在Qt中解压缩opencv:

INCLUDEPATH += C:/openvino-411/openvino_2019.2.275/opencv/include

CONFIG(release, debug|release):{
    LIBS += -LC:/openvino-411/openvino_2019.2.275/opencv/lib \
            -lopencv_core411 -lopencv_highgui411 -lopencv_imgproc411 -lopencv_imgcodecs411 -lopencv_features2d411 -lopencv_ml411 -lopencv_objdetect411 -lopencv_dnn411
}
CONFIG(debug, debug|release):{
    LIBS += -LC:/openvino-411/openvino_2019.2.275/opencv/lib \
            -lopencv_core411d -lopencv_highgui411d -lopencv_imgproc411d -lopencv_imgcodecs411d -lopencv_features2d411d -lopencv_ml411d -lopencv_objdetect411d -lopencv_dnn411d
}

但它似乎不能在Qt中运行opencv,因为我尝试运行Qt程序。弹出的cmd窗口直接进入“
按关闭此窗口…
”,实际上不做任何操作

首先,请记住,windows的OpenVINO是根据MSBUILD而不是MinGW编译的,因此如果您的Qt项目是使用MinGW编译的,那么OpenVINO预构建库在链接过程中可能会失败

也就是说,在LINUX(Ubuntu 16.04)下,我成功地将OpenVINO推理引擎与OpenCV集成到一个已经存在的基于Qt的大型项目(Qt 5.13.1)中,在Windows下,依赖项的碎片化似乎使它变得更加困难

这种配置相当棘手,而且(对我来说)还在进行中,我正在尝试完全隔离OpenVINO依赖项,目的是将它们完全嵌入到我们的应用程序中,不管怎样,它是这样工作的:

首先,我安装了OpenVINO(),并特别注意按照描述的步骤进行操作

另外,请不要错过运行两个示例demo_security_barrier_camera和demo_squeezenet_download_convert_RUN,它们将生成两个库libcpu_extension.so和libgflags_nothreads.a,如果没有这两个库,OpenVINO将无法在您的项目下工作,我不知道为什么会这样做

我在我的项目(ThirdPartyLibraries/OpenVinoReferenceEngine)的子文件夹下复制了以下库:

  • libinference_engine.so(可在OpenVINO安装文件夹中找到:/opt/intel/OpenVINO/inference_engine/lib/intel64/libinference_engine.so)
  • libtbb.so(可在OpenVINO安装文件夹中找到:/opt/intel/OpenVINO/inference\u engine/external/tbb/lib/intel64/libtbb.so)
对于两个“cpu扩展”库,我创建了一个名为“扩展”的子文件夹,因此:

  • 扩展/libgflags\u nothreads.a(在OpenVINO推理引擎演示构建文件夹中找到,对我来说是/home/myuser/Inference\u Engine\u demos\u BUILD/Release/lib/libgflags\u nothreads.a)
  • extension/libcpu\u extensio.so(在OpenVINO推理引擎Demo BUILD文件夹中找到,对我来说是/home/myuser/Inference\u Engine\u demos\u BUILD/Release/lib/libcpu\u extensio.so)
然后,我还将推理引擎和Lib Cpu扩展的include从各自的安装文件夹复制到我的第三方数据库:

  • /opt/intel/openvino/inference\u engine/include/下找到的所有内容都在/ThirdPartyLibraries/OpenVINOInferenceEngine/include下
  • /opt/intel/openvino/deployment\u toos/interference\u engine/src/extension/下找到的所有内容都位于/ThirdPartyLibraries/OpenVINOInferenceEngine/extension/include下
最后是我的Qt.pri文件:

OPENVINODIR = /home/myuser/code_qt5_HG/Libraries/ThirdPartyLibraries/OpenVINOInferenceEngine

LIBS_OPENVINO  += -L$$OPENVINODIR \
                  -linference_engine \
                  -ltbb \
                  -L$$OPENVINODIR/extension \
                  -lcpu_extension

INCLUDES_OPENVINO  += $$OPENVINODIR/include \
                   += $$OPENVINODIR/extension/include

LIBS += $$LIBS_OPENVINO

INCLUDEEPATH += $$INCLUDES_OPENVINO
就是这样,这样做允许我在我的项目中引用和使用推理机,如下所示:

 #include <ie_core.hpp>
 #include <ie_plugin_config.hpp>
 #include <cpp/ie_cnn_net_reader.h>
 #include <ext_list.hpp>

 .....

 InferenceEngine::Core ie;
 ie.AddExtension(std::make_shared<InferenceEngine::Extensions::Cpu::CpuExtensions>(), "CPU");
 InferenceEngine::CNNNetReader netReader;
 netReader.ReadNetwork(detectorXmlPath);
 netReader.getNetwork().setBatchSize(1);
 netReader.ReadWeights(detectorBinPath);
 InferenceEngine::InputsDataMap inputInfo(netReader.getNetwork().getInputsInfo());

 .....
#包括
#包括
#包括
#包括
.....
推理引擎:核心ie;
ie.AddExtension(std::make_shared(),“CPU”);
推理引擎:CNNNetrader网络阅读器;
netReader.ReadNetwork(detectorXmlPath);
netReader.getNetwork().setBatchSize(1);
netReader.ReadWeights(detectorBinPath);
推断引擎::InputsDataMap inputInfo(netReader.getNetwork().getInputsInfo());
.....
要将我的应用程序部署到第三方机器上,我需要按照常规过程()在机器上安装OpenVINO,并像通常那样部署我的应用程序,然后正确解决依赖关系


我的最后两分钱:据他们说,我与英特尔有直接联系,英特尔支持我进行OpenVINO集成“在/deployment\u tools/inference\u engine/lib/intel64、来自/deployment\u tools/inference\u engine/external/mkltiny\u lnx/lib和/deployment\u tools/inference\u engine/external/tbb/lib的所有.so文件几乎都是所需的依赖项“,我仍然没有时间确认这一点。首先,请记住,windows的OpenVINO是根据MSBUILD而不是MinGW编译的,因此如果您的Qt项目是使用MinGW编译的,则OpenVINO预构建库在链接过程中可能会失败。”

也就是说,在LINUX(Ubuntu 16.04)下,我成功地将OpenVINO推理引擎与OpenCV集成到一个已经存在的基于Qt的大型项目(Qt 5.13.1)中,在Windows下,依赖项的碎片化似乎使它变得更加困难

这种配置相当棘手,而且(对我来说)还在进行中,我正在尝试完全隔离OpenVINO依赖项,目的是将它们完全嵌入到我们的应用程序中,不管怎样,它是这样工作的:

首先,我安装了OpenVINO(),并特别注意按照描述的步骤进行操作

另外,请不要错过运行两个示例demo_security_barrier_camera和demo_squeezenet_download_convert_RUN,它们将生成两个库libcpu_extension.so和libgflags_nothreads.a,如果没有这两个库,OpenVINO将无法在您的项目下工作,我不知道为什么会这样做

我在我的项目(ThirdPartyLibraries/OpenVinoReferenceEngine)的子文件夹下复制了以下库:

  • libinference_engine.so(可在OpenVINO安装文件夹中找到:/opt/intel/OpenVINO/inference_engine/lib/intel64/libinference_engine.so)
  • libtbb.so(可在OpenVINO安装文件夹中找到:/opt/intel/OpenVINO/inference\u engine/external/tbb/lib/intel64/libtbb.so)
对于两个“cpu扩展”库,我创建了一个名为“扩展”的子文件夹,因此:

  • 扩展/libgflags\u nothreads.a(已找到