OpenVINO2022 API介紹
OpenVINO2022 版本的SDK在使用比之前版本簡單,而且功能比較豐富,特別是支持動(dòng)態(tài)輸入設(shè)置,一次可以推理多張圖像;相比之前的模型輸入只支持一種尺度輸入跟每次一張圖片推理來說是大大的提升執(zhí)行效率。特別是Python版本的API簡單易學(xué),容易上手,只需要掌握下面幾個(gè)函數(shù)就可以完成從模型加載到推理。
導(dǎo)入支持
要使用Python SDK,首先需要導(dǎo)入支持語句,

加載模型
2022版本加載模型提供了兩種模式分別是read_model與compile_model方式,這兩種方式得到分別是model跟compiled model,其中通過read_model方式讀取的model對象可以通過compile_model函數(shù)轉(zhuǎn)換為compiled model,同時(shí)它們都支持直接訪問屬性獲取輸入與輸出層信息(inputs/outputs),函數(shù)如下:
修改模型輸入
Model的reshape方法支持把模型輸入修改,同時(shí)會(huì)修改整個(gè)模型的下行轉(zhuǎn)發(fā)推理,當(dāng)前支持的修改參數(shù)包括batch size、輸入圖像的寬高、假設(shè)模型的原始輸入為:
1x3x224x224
修改為:
8x3x448x448
只需要調(diào)用reshape方法,一行代碼即可完成:
model.reshape([8, 3, 448, 448])
前后對比示意圖如下:
上述是從一種靜態(tài)輸入各種,設(shè)置為另外一種靜態(tài)輸入格式。OpenVINO的reshape還支持動(dòng)態(tài)輸入(不定長)的推理輸入設(shè)置,假設(shè)把模型的輸入格式從:
[?x3x640x640]
修改為:
[4x3x640x?]
其中 ?表示不定長,可以用如下代碼:

模型推理
Python SDK支持兩種方式,一種是通過complied model直接推理,這種方式跟很多深度學(xué)習(xí)的推理方式非常類似,另外一種方式是先通過compiled model創(chuàng)建InferRequest實(shí)例對象,然后調(diào)用infer方法完成推理,個(gè)人推薦第一種方法,簡單快捷明了,希望OpenVINO以后直接把第二種方法給disable了,同時(shí)官方的教程也更新為第一種方式推理!兩種推理方式代碼示意,
方法一:
results = compiled_model(input_data)
方法二:
infer_request = compiled_model.create_infer_request()
infer_request.infer()
output_tensor = infer_request.get_output_tensor()
場景文字檢測模型演示
下面是基于2022版本最新Python SDK調(diào)用OpenVINO官方提供的自帶場景文字檢測模型,完成了一個(gè)簡單的場景文字檢測OpenVINO2022版本 Python SDK演示,代碼如下:
resized_image = cv.resize(image, (w, h), interpolation=self.interpolate_mode)
contours, hiearchy = cv.findContours(mask, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE)
場景文字檢測結(jié)果:
一個(gè)trick的地方,當(dāng)你修改為動(dòng)態(tài)輸入的時(shí)候有時(shí)候會(huì)遇到這個(gè)錯(cuò)誤:
ValueError: get_shape was called on a descriptor::Tensor with dynamic shape
這個(gè)時(shí)候你需要把Core初始化為全局類屬性變量或者一個(gè)全局變量一般情況下就會(huì)修正這個(gè)錯(cuò)誤,這個(gè)是使用動(dòng)態(tài)輸入推理最有玄機(jī)的地方!原因我也解釋不清楚,也許OpenVINO還需要持續(xù)改進(jìn),提升開發(fā)者滿意度!
審核編輯:劉清
-
API
+關(guān)注
關(guān)注
2文章
1559瀏覽量
63500 -
Auto
+關(guān)注
關(guān)注
0文章
43瀏覽量
15473 -
python
+關(guān)注
關(guān)注
56文章
4823瀏覽量
86132
原文標(biāo)題:OpenVINO2022 Python API詳解與演示
文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
OpenVINO Java API詳解與演示

如何使用OpenVINO C++ API部署FastSAM模型

使用Python API在OpenVINO?中創(chuàng)建了用于異步推理的自定義代碼,輸出張量的打印結(jié)果會(huì)重復(fù),為什么?
運(yùn)行任何OpenVINO Python演示和示例時(shí)報(bào)錯(cuò)怎么解決?
如何使用Python包裝器正確構(gòu)建OpenVINO工具套件
OpenVINO開發(fā)配置應(yīng)必備哪些基礎(chǔ)知識?

OpenVINO工具套件預(yù)處理API的概念及使用方法
OpenVINO2022系統(tǒng)應(yīng)用指南
OpenVINO? C# API詳解與演示

基于OpenVINO Python API部署RT-DETR模型

如何使用OpenVINO Python API部署FastSAM模型
基于OpenVINO C++ API部署RT-DETR模型

基于OpenVINO C# API部署RT-DETR模型

評論