在Windows中基于Visual Studio配置OpenVINO C++開發(fā)環(huán)境

本文主要介紹在Windows中基于Visual Studio配置OpenVINO C++開發(fā)環(huán)境,主要步驟有:

  1. 下載并安裝Visual Studio Community版
  2. 下載并解壓OpenVINO Runtime
  3. 下載并解壓OpenCV
  4. 在Visual Studio中配置項目屬性
  5. 運行OpenVINO C++范例程序,測試開發(fā)環(huán)境

下面,本文將依次詳述

1.1 下載并安裝Visual Studio Community版

Microsoft Visual Studio(簡稱VS)是Windows平臺上非常好用的集成開發(fā)環(huán)境(IDE)偷仿,其Community版本免費供學(xué)生苦丁、開放源代碼參與者和個人使用。從https://visualstudio.microsoft.com/zh-hans/downloads/ 下載Visual Studio 2022 Community版愤钾,安裝選項如下圖所示:

Visual Studio 2022安裝選項

1.2 下載并解壓OpenVINO Runtime

OpenVINO Runtime 2022.3以壓縮包(OpenVINO Archives)的形式提供触创,里面包含了開發(fā)OpenVINO C++推理程序所必需的文件:

  • C++預(yù)處理器所需的頭文件:include文件夾
  • C++鏈接器所需的lib文件:lib文件夾
  • 可執(zhí)行文件(.exe)所需的動態(tài)鏈接庫文件:bin文件夾
  • OpenVINO runtime第三方依賴庫文件:3rdparty文件夾
    開發(fā)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庫用于實現(xiàn)圖像載入兼雄、數(shù)據(jù)前處理、推理結(jié)果后處理和數(shù)據(jù)可視化帽蝶。

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++→常規(guī)”;在“平臺(P)”欄選擇“x64”鳖粟;在“附加包含目錄”中輸入:

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

配置“附加包含目錄”

第五步社裆,在“屬性頁”對話框中選中“鏈接器→常規(guī)”;在“平臺(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++范例程序贞瞒,測試開發(fā)環(huán)境

首先偶房,請將下面的代碼拷貝到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動態(tài)鏈接庫所在的位置,添加到path環(huán)境變量中

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

添加動態(tài)鏈接庫位置到path

最后乒融,編譯并運行上述代碼掰盘,結(jié)果如下圖所示。

范例程序運行結(jié)果

1.6總結(jié)

本文詳述了從零開始在Windows上基于Visual Studio配置開發(fā)OpenVINO C++ 推理程序的全過程赞季,并給出了完整的測試程序代碼test_ov_opencv.cpp愧捕。環(huán)境配置成功后,就可以開始用C++編寫OpenVINO推理程序了碟摆。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晃财,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌断盛,老刑警劉巖罗洗,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異钢猛,居然都是意外死亡伙菜,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門命迈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贩绕,“玉大人,你說我怎么就攤上這事壶愤∈缜悖” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵征椒,是天一觀的道長娇哆。 經(jīng)常有香客問我勃救,道長,這世上最難降的妖魔是什么蒙秒? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮晕讲,結(jié)果婚禮上覆获,老公的妹妹穿的比我還像新娘。我一直安慰自己锻梳,他們只是感情好,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辩块,像睡著了一般蛔六。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上废亭,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天,我揣著相機與錄音豆村,去河邊找鬼。 笑死四啰,一個胖子當著我的面吹牛宁玫,可吹牛的內(nèi)容都是我干的柑晒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼佛掖,長吁一口氣:“原來是場噩夢啊……” “哼涌庭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起坐榆,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎羹铅,沒想到半個月后愉昆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡焊切,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年芳室,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片堪侯。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡伍宦,死狀恐怖芽死,靈堂內(nèi)的尸體忽然破棺而出次洼,到底是詐尸還是另有隱情,我是刑警寧澤揖曾,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響炭剪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜兑宇,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一粱坤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧站玄,春花似錦、人聲如沸再登。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽齿尽。三九已至,卻和暖如春绵估,著一層夾襖步出監(jiān)牢的瞬間卡骂,已是汗流浹背国裳。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工缝左, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留浓若,地道東北人。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓七嫌,卻偏偏與公主長得像苞慢,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容