0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OpenVINO2022版本Python API演示

OpenCV學堂 ? 來源:OpenCV學堂 ? 作者:gloomyfish ? 2022-07-22 09:18 ? 次閱讀

OpenVINO2022 API介紹

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

導入支持

要使用Python SDK,首先需要導入支持語句,


加載模型

2022版本加載模型提供了兩種模式分別是read_model與compile_model方式,這兩種方式得到分別是model跟compiled model,其中通過read_model方式讀取的model對象可以通過compile_model函數(shù)轉換為compiled model,同時它們都支持直接訪問屬性獲取輸入與輸出層信息(inputs/outputs),函數(shù)如下:

修改模型輸入

Model的reshape方法支持把模型輸入修改,同時會修改整個模型的下行轉發(fā)推理,當前支持的修改參數(shù)包括batch size、輸入圖像的寬高、假設模型的原始輸入為:

1x3x224x224

修改為:

8x3x448x448

只需要調用reshape方法,一行代碼即可完成:

model.reshape([8, 3, 448, 448])

前后對比示意圖如下:

9263909e-08fc-11ed-ba43-dac502259ad0.png

上述是從一種靜態(tài)輸入各種,設置為另外一種靜態(tài)輸入格式。OpenVINO的reshape還支持動態(tài)輸入(不定長)的推理輸入設置,假設把模型的輸入格式從:

[?x3x640x640]

修改為:

[4x3x640x?]

其中 ?表示不定長,可以用如下代碼:



其中 -1表示不定長!  

注意:修改輸入/動態(tài)輸入在iGPU上暫時還無法被支持,所以AUTO模式下修改以后可能會遇到推理失敗的情況!這塊建議參考官方文檔說明。

模型推理

Python SDK支持兩種方式,一種是通過complied model直接推理,這種方式跟很多深度學習的推理方式非常類似,另外一種方式是先通過compiled model創(chuàng)建InferRequest實例對象,然后調用infer方法完成推理,個人推薦第一種方法,簡單快捷明了,希望OpenVINO以后直接把第二種方法給disable了,同時官方的教程也更新為第一種方式推理!兩種推理方式代碼示意,

方法一:

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調用OpenVINO官方提供的自帶場景文字檢測模型,完成了一個簡單的場景文字檢測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)

輸入圖像:

92763ea6-08fc-11ed-ba43-dac502259ad0.png

場景文字檢測結果: 92850b66-08fc-11ed-ba43-dac502259ad0.png

一個trick的地方,當你修改為動態(tài)輸入的時候有時候會遇到這個錯誤:

ValueError: get_shape was called on a descriptor::Tensor with dynamic shape

929db0d0-08fc-11ed-ba43-dac502259ad0.png

這個時候你需要把Core初始化為全局類屬性變量或者一個全局變量一般情況下就會修正這個錯誤,這個是使用動態(tài)輸入推理最有玄機的地方!原因我也解釋不清楚,也許OpenVINO還需要持續(xù)改進,提升開發(fā)者滿意度!



審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • API
    API
    +關注

    關注

    2

    文章

    1501

    瀏覽量

    62025
  • Auto
    +關注

    關注

    0

    文章

    42

    瀏覽量

    15279
  • python
    +關注

    關注

    56

    文章

    4797

    瀏覽量

    84690

原文標題:OpenVINO2022 Python API詳解與演示

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    OpenVINO Java API詳解與演示

    英特爾 發(fā)行版 OpenVINO 工具套件基于 oneAPI 而開發(fā),可以加快高性能計算機視覺和深度學習視覺應用開發(fā)速度工具套件,適用于從邊緣到云的各種英特爾平臺上,幫助用戶更快地將更準確的真實世界
    的頭像 發(fā)表于 11-09 17:03 ?1007次閱讀
    <b class='flag-5'>OpenVINO</b> Java <b class='flag-5'>API</b>詳解與<b class='flag-5'>演示</b>

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

    象的位置和邊界。本文將介紹如何使用 OpenVINO C++ API 部署 FastSAM 模型,以實現(xiàn)快速高效的語義分割。在前文中我們發(fā)表了《基于 OpenVINO Python
    的頭像 發(fā)表于 11-17 09:53 ?924次閱讀
    如何使用<b class='flag-5'>OpenVINO</b> C++ <b class='flag-5'>API</b>部署FastSAM模型

    使用Python3.10安裝Openvino-Dev Pip包失敗了是為什么?

    : legacy-install-failure × Encountered error while trying to install package. ╰─> numpy 分辨率OpenVINO? Toolkit 2022.2 僅在 Windows* 上支持 Pyt
    發(fā)表于 08-15 07:18

    運行任何OpenVINO Python演示和示例時報錯怎么解決?

    運行任何OpenVINO? Python 演示和示例時,會出現(xiàn)錯誤: FileNotFoundEror:[WinError 2]。
    發(fā)表于 08-15 07:21

    如何使用Python包裝器正確構建OpenVINO工具套件

    要將 Python* 與 Linux* 版開源 OpenVINO?工具套 件一同使用,您必須安裝 Python* 3.5 或更高版本,然后再在 CMake 命令行中指定正確的
    發(fā)表于 08-15 07:13

    四個有趣的關于Python 3.9版本新特性

    四個有趣的關于Python 3.9版本新特性
    的頭像 發(fā)表于 10-08 14:47 ?3083次閱讀
    四個有趣的關于<b class='flag-5'>Python</b> 3.9<b class='flag-5'>版本</b>新特性

    OpenVINO開發(fā)配置應必備哪些基礎知識?

    教程的配置與代碼演示?;赩S2017+OpenVINO2021.02版本的環(huán)境配置可以總結為如下幾個步驟: 1. 打開VS201
    的頭像 發(fā)表于 05-18 09:10 ?1834次閱讀
    <b class='flag-5'>OpenVINO</b>開發(fā)配置應必備哪些基礎知識?

    OpenVINO工具套件預處理API的概念及使用方法

    OpenVINO 2022.1之前版本不提供OpenVINO Runtime原生的用于數(shù)據(jù)預處理的API函數(shù)1 ,如圖1-1所示,開發(fā)者必須通過第三方庫(例如:OpenCV)來實現(xiàn)數(shù)據(jù)
    的頭像 發(fā)表于 06-09 17:25 ?2123次閱讀

    OpenVINO2022系統(tǒng)應用指南

    在推理層面支持同步與異步方式,異步方式支持通過回調實現(xiàn)后處理,實現(xiàn)視頻流水線支持,下面是一系列的基于異步+流水線方式的推理演示(CPUi7 11th )均達到了GPU3060的推理能力。
    的頭像 發(fā)表于 04-12 14:23 ?755次閱讀

    OpenVINO? C# API詳解與演示

    OpenVINO C# API 支持 NuGet 程序包安裝方式,這與 OpenVINO C++ 庫的安裝過程相比,更加簡單。如果使用 Visual Studio 開發(fā) AI 項目,則可以通過 NuGet 程序包管理功能直接安裝
    的頭像 發(fā)表于 10-13 16:39 ?768次閱讀
    <b class='flag-5'>OpenVINO</b>?  C# <b class='flag-5'>API</b>詳解與<b class='flag-5'>演示</b>

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

    平臺實現(xiàn) OpenVINO 部署 RT-DETR 模型實現(xiàn)深度學習推理加速, 在本文中,我們將首先介紹基于 OpenVINO Python API 部署 RT-DETR 模型。
    的頭像 發(fā)表于 10-20 11:15 ?975次閱讀
    基于<b class='flag-5'>OpenVINO</b> <b class='flag-5'>Python</b> <b class='flag-5'>API</b>部署RT-DETR模型

    如何使用OpenVINO Python API部署FastSAM模型

    象的位置和邊界。本文將介紹如何使用 OpenVINO Python API 部署 FastSAM 模型,以實現(xiàn)快速高效的語義分割。
    的頭像 發(fā)表于 10-27 11:04 ?751次閱讀

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

    Python API 部署 RT-DETR 模型 | 開發(fā)者實戰(zhàn)》,在該文章中,我們基于 OpenVINO Python API 向大家展
    的頭像 發(fā)表于 11-03 14:30 ?849次閱讀
    基于<b class='flag-5'>OpenVINO</b> C++ <b class='flag-5'>API</b>部署RT-DETR模型

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

    Python API 部署 RT-DETR 模型 | 開發(fā)者實戰(zhàn)》和《基于 OpenVINO C++ API 部署 RT-DETR 模型 | 開發(fā)者實戰(zhàn)》,在該文章中,我們基于
    的頭像 發(fā)表于 11-10 16:59 ?759次閱讀
    基于<b class='flag-5'>OpenVINO</b> C# <b class='flag-5'>API</b>部署RT-DETR模型

    OpenVINO2024 C++推理使用技巧

    很多人都使用OpenVINO新版的C++ 或者Python的SDK,都覺得非常好用,OpenVINO2022之后的版本C++ SDK做了大量的優(yōu)化與整理,已經(jīng)是非常貼近開發(fā)的使用習慣與
    的頭像 發(fā)表于 07-26 09:20 ?911次閱讀