通過第一篇文章我們已經(jīng)了解什么是OpenVINO,它的諸多功能與全應(yīng)用場景支持人工智能落地的能力。本篇我們將重點(diǎn)介紹OpenVINO開發(fā)流程與開發(fā)必備的基礎(chǔ)知識(shí)與相關(guān)API函數(shù)對象。
環(huán)境配置
在具體介紹OpenVINO開發(fā)流程與開發(fā)必備基礎(chǔ)知識(shí)之前,我們首先需要配置好OpenVINO的開發(fā)環(huán)境,這里我們以Win10系統(tǒng)下OpenVINO C++/Python SDK開發(fā)與應(yīng)用集成為例來完成整個(gè)教程的配置與代碼演示?;赩S2017+OpenVINO2021.02版本的環(huán)境配置可以總結(jié)為如下幾個(gè)步驟:
1. 打開VS2017,新建一個(gè)控制臺(tái)應(yīng)用,圖示如下:
圖1
2. 打開屬性管理器
打開屬性管理器,選擇x64/release然后配置包含路徑,庫路徑、通過鏈接器添加lib文件,這部分的配置圖示如下:
包含目錄配置
庫路徑配置
鏈接器:
圖2
opencv_calib3d451.lib
opencv_core451.lib
opencv_dnn451.lib
opencv_features2d451.lib
opencv_flann451.lib
opencv_gapi451.lib
opencv_highgui451.lib
opencv_imgcodecs451.lib
opencv_imgproc451.lib
opencv_ml451.lib
opencv_objdetect451.lib
opencv_photo451.lib
opencv_stitching451.lib
opencv_video451.lib
opencv_videoio451.lib
inference_engine.lib
inference_engine_c_api.lib
inference_engine_ir_reader.lib
inference_engine_legacy.lib
inference_engine_lp_transformations.lib
inference_engine_onnx_reader.lib
inference_engine_preproc.lib
inference_engine_transformations.lib
最后配置環(huán)境變量,添加以下環(huán)境變量到系統(tǒng)的path中去,圖示如下:
對于開發(fā)環(huán)境配置環(huán)節(jié),如果還有不清楚的,可以參考OpenVINO中文社區(qū)的技術(shù)自愿者分享的視頻,地址如下:
https://www.bilibili.com/video/BV1Hz4y1U7g6
設(shè)備查詢與開發(fā)基礎(chǔ)知識(shí)
完成上述配置以后,重啟VS2017,創(chuàng)建一個(gè)新的cpp文件,添加下面的代碼到cpp文件中
運(yùn)行結(jié)果如下:
圖3
上述控制臺(tái)輸出來自InferenceEngine::Core的設(shè)備查詢函數(shù)GetAvailableDevices,它可以查詢當(dāng)前系統(tǒng)支持IE推理的硬件支持,該函數(shù)如下:
std::vector<:string style="font-size: inherit;color: inherit;line-height: inherit;">InferenceEngine::GetAvailableDevices() const
參數(shù): 無
返回的支持設(shè)備的列表vector
下面的就是加載圖像與顯示圖像,使用的兩個(gè)函數(shù)來自O(shè)penVINO中的OpenCV組件支持,兩個(gè)相關(guān)函數(shù)如下:
讀取圖像
Mat cv::imread(
const String & filename,
int flags = IMREAD_COLOR
)
參數(shù) filename表示文件路徑(包含文件名)
第二個(gè)參數(shù)為默認(rèn)參數(shù)
加載成功返回的圖像像素的矩陣數(shù)據(jù)結(jié)構(gòu)Mat,默認(rèn)讀取加載為彩色圖像,三個(gè)通道順序?yàn)锽GR。
顯示圖像
void cv::imshow(
const String & winname,
InputArray mat
)
參數(shù) winname表示窗口名稱,本例中為“輸入窗口”
參數(shù) mat表示圖像矩陣Mat(顯示圖像的內(nèi)存表示)
最終執(zhí)行結(jié)果圖上圖3所示。對上述代碼,我們可以通過進(jìn)一筆的簡化,要知道在C++11中,聲明類型可以自動(dòng)識(shí)別,通過auto來表示可以避免代碼過長,同時(shí)支持for循環(huán)的時(shí)候通過auto自動(dòng)識(shí)別每個(gè)item的類型,所以上述查詢設(shè)備與打印部分的代碼:
nferenceEngine::Core ie;
std::vector<:string style="font-size: inherit;color: inherit;line-height: inherit;">devices = ie.GetAvailableDevices();
for (std::string name : devices) {
std::cout << "device name: " << name << std::endl;
}
改寫為如下的代碼:
InferenceEngine::Core ie;
auto devices = ie.GetAvailableDevices();
for (auto name : devices) {
std::cout << "device name: " << name << std::endl;
}
這樣看上去代碼就會(huì)比之前的整潔更加直觀一點(diǎn)。在OpenVINO SDK C++的開發(fā)中,有很多類別的聲明都很長,我們可以通過使用C++11支持的自動(dòng)類型識(shí)別關(guān)鍵字auto來減少不必要的代碼書寫,提高編碼效率。此外類InferenceEngine::Core類是表示整個(gè)IE引擎的實(shí)例,支持從模型加載、輸入與輸出格式獲取與設(shè)置、模型的推理與后處理等一系列的操作。關(guān)于如何使用InferenceEngine::Core實(shí)現(xiàn)模型推理的流程與相關(guān)API方法函數(shù)解釋。
編輯:jq
-
C++
+關(guān)注
關(guān)注
22文章
2114瀏覽量
73893 -
代碼
+關(guān)注
關(guān)注
30文章
4837瀏覽量
69130 -
SDK
+關(guān)注
關(guān)注
3文章
1047瀏覽量
46323
原文標(biāo)題:OpenVINO開發(fā)配置與必備基礎(chǔ)知識(shí)
文章出處:【微信號(hào):英特爾物聯(lián)網(wǎng),微信公眾號(hào):英特爾物聯(lián)網(wǎng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
鴻蒙北向開發(fā)OpenHarmony4.1 DevEco Studio開發(fā)工具安裝與配置
![鴻蒙北向<b class='flag-5'>開發(fā)</b>OpenHarmony4.1 DevEco Studio<b class='flag-5'>開發(fā)</b>工具安裝與<b class='flag-5'>配置</b>](https://file1.elecfans.com/web3/M00/07/79/wKgZO2el03uAQ-OLAAB5n4ZJD78739.png)
功率器件熱設(shè)計(jì)基礎(chǔ)知識(shí)
PCB繪制基礎(chǔ)知識(shí)
![PCB繪制<b class='flag-5'>基礎(chǔ)知識(shí)</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
玩轉(zhuǎn)FPGA必備的基礎(chǔ)知識(shí)
Verilog HDL的基礎(chǔ)知識(shí)
![Verilog HDL的<b class='flag-5'>基礎(chǔ)知識(shí)</b>](https://file1.elecfans.com/web1/M00/F3/9E/wKgZoWcZ8KuAR2-wAAEJRNCEn98019.png)
負(fù)載開關(guān)基礎(chǔ)知識(shí)
![負(fù)載開關(guān)<b class='flag-5'>基礎(chǔ)知識(shí)</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
全新的半導(dǎo)體基礎(chǔ)知識(shí)
![全新的半導(dǎo)體<b class='flag-5'>基礎(chǔ)知識(shí)</b>](https://file1.elecfans.com/web2/M00/07/EE/wKgaombs22qATZvvAAEbwo0kJb0452.png)
超聲波傳感基礎(chǔ)知識(shí)
![超聲波傳感<b class='flag-5'>基礎(chǔ)知識(shí)</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論