5、编写 OpenVINO 应用程序(C++ 版)

前提条件

已经安装好 OpenVINO、Visual Studio 2017。

配置项目

  1. 新建项目 -> C++ Windows 桌面项目 -> Windows 桌面向导 -> 项目命名为 cats_dogs_infer -> 空项目 -> 确定:
    在这里插入图片描述

  2. 选中“空项目” -> 确定:
    在这里插入图片描述

  3. 右键源文件 -> 新建 cats_dogs_infer.cpp:
    在这里插入图片描述

  4. 右键项目 -> 属性 -> 配置选择“所有配置” -> 平台选择“所有平台”:

  • 输出目录: $(SolutionDir)bin\$(Platform)\$(Configuration)\
  • 中间目录: $(SolutionDir)Intermediate\$(Platform)\$(Configuration)\
    在这里插入图片描述
    修改完毕后点击应用。
  1. C/C++ -> 常规 -> 平台选中“x64”:
    附加包含目录:$(IE_DIR)\include; $(IE_DIR)\src\extension; $(IE_DIR)\samples\common; $(OPENCV_DIR)\include
    修改完毕后点击应用。
    在这里插入图片描述

  2. C/C++ -> 预处理器:
    预处理器定义中输入:_CRT_SECURE_NO_WARNINGS
    在这里插入图片描述

  3. 链接器 -> 常规:
    附加库目录:$(IE_DIR)\lib\intel64\$(Configuration); $(OPENCV_DIR)\lib
    在这里插入图片描述

  4. 链接器 -> 输入 -> 配置选中“Debug” -> 平台选中“x64”:
    附加依赖项中添加:
    inference_engined.lib; cpu_extension.lib; opencv_calib3d412d.lib; opencv_core412d.lib; opencv_dnn412d.lib; opencv_features2d412d.lib; opencv_flann412d.lib; opencv_gapi412d.lib; opencv_highgui412d.lib; opencv_imgcodecs412d.lib; opencv_imgproc412d.lib; opencv_ml412d.lib; opencv_objdetect412d.lib; opencv_photo412d.lib; opencv_stitching412d.lib; opencv_video412d.lib; opencv_videoio412d.lib
    修改完毕后点击应用。
    在这里插入图片描述

  5. 链接器 -> 输入 -> 配置选中“Release”-> 平台选中“x64”:
    附加依赖项中添加:inference_engine.lib; cpu_extension.lib; opencv_calib3d412.lib; opencv_core412.lib; opencv_dnn412.lib; opencv_features2d412.lib; opencv_flann412.lib; opencv_gapi412.lib; opencv_highgui412.lib; opencv_imgcodecs412.lib; opencv_imgproc412.lib; opencv_ml412.lib; opencv_objdetect412.lib; opencv_photo412.lib; opencv_stitching412.lib; opencv_video412.lib; opencv_videoio412.lib
    在这里插入图片描述
    其中 cpu_extension.lib 是 CPU 插件扩展库。

  • inference_engine.lib 是用于 Release 模式的 OpenVINO 推理引擎库函数,在 C:\Program Files (x86)\IntelSWTools\openvino_2019.3.334\deployment_tools\inference_engine\lib\intel64\Release 目录下。
  • inference_engined.lib 是用于 Debug 模式的 OpenVINO 推理引擎库函数,在 C:\Program Files (x86)\IntelSWTools\openvino_2019.3.334\deployment_tools\inference_engine\lib\intel64\Debug 目录下。
  • OpenCV 库函数在 C:\Program Files (x86)\IntelSWTools\openvino_2019.3.334\opencv\lib 文件夹中。有带后缀 ‘d’ 的,表示用于 Debug 模式,没有后缀 ‘d’ 的,表示用于 Release 模式。

编写程序

需要修改的地方:

  • IR_FileNameNoExt:设置成你电脑上优化后的模型的路径,不要带后缀,如:E:/1-tf_train/workspaces/cats_dogs/optimized_model/ssd_inception_v2_coco(ssd_inception_v2_coco 是模型的名字)
  • imageFile:用来测试的图片的路径
//包含必要的头文件
#include<string> //C++ string标准库
#include<inference_engine.hpp> //Inference Engine库
#include<samples/ocv_common.hpp>//OpenCV库及matU8ToBlob函数定义
#include<ext_list.hpp>//IE CPU扩展库
#include<time.h>//C time标准库

using namespace InferenceEngine;

//将OpenCV Mat对象中的图像数据传给为InferenceEngine Blob对象
void frameToBlob(const cv::Mat& frame, InferRequest::Ptr& inferRequest, const std::string& inputName) {
   
	/* 从OpenCV Mat对象中拷贝图像数据到InferenceEngine 输入Blob对象 */
	Blob::Ptr frameBlob = inferRequest->GetBlob(inputName);
	matU8ToBlob<uint8_t>(frame, frameBlob);
}
//配置推理计算设备,IR文件路径,图片路径,阈值和标签
std::string DEVICE = "CPU";
std::string IR_FileNameNoExt = "E:/1-tf_train/workspaces/cats_dogs/optimized_model/ssd_inception_v2_coco";
std::string imageFile = "E:/1-tf_train/workspaces/cats_dogs/images/train/cat.11.jpg";
float confidence_threshold = 0.7; //取值0~1
std::vector<std::string> labels = {
    "fake","cat","dog" }; //标签输入

int main(void
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值