在Windows中基于Visual Studio配置OpenVINO C++开发环境

本文主要介绍在Windows中基于Visual Studio配置OpenVINO C++开发环境,主要步骤有:

  1. 下载并安装Visual Studio Community版
  2. 下载并解压OpenVINO Runtime
  3. 下载并解压OpenCV
  4. 在Visual Studio中配置项目属性
  5. 运行OpenVINO C++范例程序,测试开发环境

下面,本文将依次详述

1.1 下载并安装Visual Studio Community版

Microsoft Visual Studio(简称VS)是Windows平台上非常好用的集成开发环境(IDE),其Community版本免费供学生、开放源代码参与者和个人使用。从https://visualstudio.microsoft.com/zh-hans/downloads/ 下载Visual Studio 2022 Community版,安装选项如下图所示:

Visual Studio 2022安装选项

1.2 下载并解压OpenVINO Runtime

OpenVINO Runtime 2022.3以压缩包(OpenVINO Archives)的形式提供,里面包含了开发OpenVINO C++推理程序所必需的文件:

  • C++预处理器所需的头文件:include文件夹
  • C++链接器所需的lib文件:lib文件夹
  • 可执行文件(.exe)所需的动态链接库文件:bin文件夹
  • OpenVINO runtime第三方依赖库文件:3rdparty文件夹
    开发OpenVINO C++推理程序所必需的文件

首先,请读者下载OpenVINOTMRuntime 2022.3压缩包

然后,请读者手动新建 C:\Program Files (x86)\Intel\openvino_2022.3.0 文件夹,并把压缩包解压后的文件拷贝到openvino_2022.3.0文件夹中,完成OpenVINO Runtime压缩包的下载和解压工作,如下图所示:

下载并解压OpenVINO Runtime压缩包

1.3 下载并解压OpenCV

在端到端的AI推理计算流程中,OpenCV库用于实现图像载入、数据前处理、推理结果后处理和数据可视化。

OpenCV也是以压缩包的形式提供,从https://opencv.org/releases/下载Windows平台上的压缩包。然后,手动新建C:\opencv文件夹;接着,把OpenCV解压后的build文件夹全部拷贝到C:\opencv文件夹,如下图所示,完成OpenCV的下载并解压。

下载并解压OpenCV

1.4 在Visual Studio中配置项目属性

在Visual Studio中配置项目属性,主要是告诉C++编译器和链接器,OpenVINO和OpenCV的头文件以及库文件在哪里。

第一步,打开Visual Studio 2022 Community,在“文件(F)”菜单中选择“新建(N)→项目(P)”,新建一个C++空项目。

新建一个C++空项目

第二步,在“文件(F)菜单”中选择“新建(N)→文件(F)”,新建一个main.cpp文件,并添加到项目管理器的源文件文件夹中。

新建一个main.cpp文件

第三步,在“解决方案资源管理器”中,右键单击项目名称,在右键菜单中选择“属性(R)”,启动“属性页”对话框。

  • 在“配置(C)”栏选择“所有配置”,在“平台(P)”栏选择“所有平台”;
  • 在“输出目录”输入“(SolutionDir)bin\(Platform)$(Configuration)\”;
  • 在“中间目录”输入“(SolutionDir)Intermediate\(Platform)$(Configuration)\”
    配置属性页

第四步,在“属性页”对话框中选中“C/C++→常规”;在“平台(P)”栏选择“x64”;在“附加包含目录”中输入:

C:\Program Files (x86)\Intel\openvino_2022.3.0\runtime\include
C:\opencv\build\include

配置“附加包含目录”

第五步,在“属性页”对话框中选中“链接器→常规”;在“平台(P)”栏选择“x64”;在“附加库目录”中输入:

C:\Program Files (x86)\Intel\openvino_2022.3.0\runtime\lib\intel64$(Configuration)
C:\opencv\build\x64\vc16\lib

配置“附加库目录”

第六步,在“属性页”对话框中选中“链接器→输入”,在“配置(C)”栏选择“Debug”,在“平台(P)”栏选择“x64”,然后在“附加依赖项”中添加:openvinod.lib;opencv_world470d.lib; 将“配置(C)”栏改为“Release”,然后在“附加依赖项”中添加:openvino.lib;opencv_world470.lib。

配置“链接器→输入”

到此,完成在Visual Studio中配置OpenVINO C++推理计算项目属性。

1.5 运行OpenVINO C++范例程序,测试开发环境

首先,请将下面的代码拷贝到main.cpp中,源代码下载地址

#include <iostream>
#include <string>
#include <openvino/openvino.hpp> //openvino header file
#include <opencv2/opencv.hpp>    //opencv header file
int main(int argc, char* argv[]) {
    // -------- Get OpenVINO runtime version --------
    std::cout << ov::get_openvino_version().description << ':' << ov::get_openvino_version().buildNumber << std::endl;
    // -------- Step 1. Initialize OpenVINO Runtime Core --------
    ov::Core core;
    // -------- Step 2. Get list of available devices --------
    std::vector<std::string> availableDevices = core.get_available_devices();
    // -------- Step 3. Query and print supported metrics and config keys --------
    std::cout << "Available devices: " << std::endl;
    for (auto&& device : availableDevices) {
        std::cout << device << std::endl;
    }
    // -------- Step 4. Read a picture file and show by OpenCV --------
    cv::Mat img = cv::imread("zidane.jpg"); //Load a picture into memory
    cv::imshow("Test OpenVINO & OpenCV IDE", img);
    std::cout << "Image width: " << img.cols << " height: " << img.rows << std::endl;
    cv::waitKey(0);
    cv::destroyAllWindows();
    return 0;
}

然后,将OpenCV和OpenVINO动态链接库所在的位置,添加到path环境变量中

C :\Program Files(x86)\Intel\openvino_2022 .3.0\runtime\bin\intel64\Release
C :\Program Files(x86)\Intel\openvino_2022 .3.0\runtime\bin\intel64\Debug
C :\Program Files(x86)\Intel\openvino_2022 .3.0\runtime\3rdparty\tbb\bin
C :\opencv\build\x64\vc16\bin

添加动态链接库位置到path

最后,编译并运行上述代码,结果如下图所示。

范例程序运行结果

1.6总结

本文详述了从零开始在Windows上基于Visual Studio配置开发OpenVINO C++ 推理程序的全过程,并给出了完整的测试程序代码test_ov_opencv.cpp。环境配置成功后,就可以开始用C++编写OpenVINO推理程序了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,928评论 6 509
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,748评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,282评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,065评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,101评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,855评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,521评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,414评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,931评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,053评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,191评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,873评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,529评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,074评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,188评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,491评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,173评论 2 357

推荐阅读更多精彩内容