0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenVINO2022版本Python API演示

OpenCV学堂 来源:OpenCV学堂 作者:gloomyfish 2022-07-22 09:18 次阅读

OpenVINO2022 API介绍

OpenVINO2022 版本的SDK在使用比之前版本简单,而且功能比较丰富,特别是支持动态输入设置,一次可以推理多张图像;相比之前的模型输入只支持一种尺度输入跟每次一张图片推理来说是大大的提升执行效率。特别是Python版本的API简单易学,容易上手,只需要掌握下面几个函数就可以完成从模型加载到推理。

导入支持

要使用Python SDK,首先需要导入支持语句,


加载模型

2022版本加载模型提供了两种模式分别是read_model与compile_model方式,这两种方式得到分别是model跟compiled model,其中通过read_model方式读取的model对象可以通过compile_model函数转换为compiled model,同时它们都支持直接访问属性获取输入与输出层信息(inputs/outputs),函数如下:

修改模型输入

Model的reshape方法支持把模型输入修改,同时会修改整个模型的下行转发推理,当前支持的修改参数包括batch size、输入图像的宽高、假设模型的原始输入为:

1x3x224x224

修改为:

8x3x448x448

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

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

前后对比示意图如下:

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

上述是从一种静态输入各种,设置为另外一种静态输入格式。OpenVINO的reshape还支持动态输入(不定长)的推理输入设置,假设把模型的输入格式从:

[?x3x640x640]

修改为:

[4x3x640x?]

其中 表示不定长,可以用如下代码:



其中 -1表示不定长!  

注意:修改输入/动态输入在iGPU上暂时还无法被支持,所以AUTO模式下修改以后可能会遇到推理失败的情况!这块建议参考官方文档说明。

模型推理

Python SDK支持两种方式,一种是通过complied model直接推理,这种方式跟很多深度学习的推理方式非常类似,另外一种方式是先通过compiled model创建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的地方,当你修改为动态输入的时候有时候会遇到这个错误:

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

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

这个时候你需要把Core初始化为全局类属性变量或者一个全局变量一般情况下就会修正这个错误,这个是使用动态输入推理最有玄机的地方!原因我也解释不清楚,也许OpenVINO还需要持续改进,提升开发者满意度!



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • API
    API
    +关注

    关注

    2

    文章

    1471

    浏览量

    61741
  • Auto
    +关注

    关注

    0

    文章

    42

    浏览量

    15251
  • python
    +关注

    关注

    55

    文章

    4766

    浏览量

    84361

原文标题:OpenVINO2022 Python API详解与演示

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    OpenVINO Java API详解与演示

    英特尔 发行版 OpenVINO 工具套件基于 oneAPI 而开发,可以加快高性能计算机视觉和深度学习视觉应用开发速度工具套件,适用于从边缘到云的各种英特尔平台上,帮助用户更快地将更准确的真实世界
    的头像 发表于 11-09 17:03 943次阅读
    <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 模型,以实现快速高效的语义分割。在前文中我们发表了《基于 OpenVINO Python
    的头像 发表于 11-17 09:53 824次阅读
    如何使用<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
    发表于 08-15 07:18

    运行任何OpenVINO Python演示和示例时报错怎么解决?

    运行任何OpenVINOPython 演示和示例时,会出现错误: FileNotFoundEror:[WinError 2]。
    发表于 08-15 07:21

    如何使用Python包装器正确构建OpenVINO工具套件

    要将 Python* 与 Linux* 版开源 OpenVINO™工具套 件一同使用,您必须安装 Python* 3.5 或更高版本,然后再在 CMake 命令行中指定正确的
    发表于 08-15 07:13

    四个有趣的关于Python 3.9版本新特性

    四个有趣的关于Python 3.9版本新特性
    的头像 发表于 10-08 14:47 3037次阅读
    四个有趣的关于<b class='flag-5'>Python</b> 3.9<b class='flag-5'>版本</b>新特性

    OpenVINO开发配置应必备哪些基础知识?

    教程的配置与代码演示。基于VS2017+OpenVINO2021.02版本的环境配置可以总结为如下几个步骤: 1. 打开VS201
    的头像 发表于 05-18 09:10 1785次阅读
    <b class='flag-5'>OpenVINO</b>开发配置应必备哪些基础知识?

    OpenVINO工具套件预处理API的概念及使用方法

    OpenVINO 2022.1之前版本不提供OpenVINO Runtime原生的用于数据预处理的API函数1 ,如图1-1所示,开发者必须通过第三方库(例如:OpenCV)来实现数据
    的头像 发表于 06-09 17:25 2031次阅读

    OpenVINO2022系统应用指南

    在推理层面支持同步与异步方式,异步方式支持通过回调实现后处理,实现视频流水线支持,下面是一系列的基于异步+流水线方式的推理演示(CPUi7 11th )均达到了GPU3060的推理能力。
    的头像 发表于 04-12 14:23 722次阅读

    OpenVINO™ C# API详解与演示

    OpenVINO C# API 支持 NuGet 程序包安装方式,这与 OpenVINO C++ 库的安装过程相比,更加简单。如果使用 Visual Studio 开发 AI 项目,则可以通过 NuGet 程序包管理功能直接安装
    的头像 发表于 10-13 16:39 704次阅读
    <b class='flag-5'>OpenVINO</b>™  C# <b class='flag-5'>API</b>详解与<b class='flag-5'>演示</b>

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

    平台实现 OpenVINO 部署 RT-DETR 模型实现深度学习推理加速, 在本文中,我们将首先介绍基于 OpenVINO Python API 部署 RT-DETR 模型。
    的头像 发表于 10-20 11:15 877次阅读
    基于<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 模型,以实现快速高效的语义分割。
    的头像 发表于 10-27 11:04 661次阅读

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

    Python API 部署 RT-DETR 模型 | 开发者实战》,在该文章中,我们基于 OpenVINO Python API 向大家展
    的头像 发表于 11-03 14:30 743次阅读
    基于<b class='flag-5'>OpenVINO</b> C++ <b class='flag-5'>API</b>部署RT-DETR模型

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

    Python API 部署 RT-DETR 模型 | 开发者实战》和《基于 OpenVINO C++ API 部署 RT-DETR 模型 | 开发者实战》,在该文章中,我们基于
    的头像 发表于 11-10 16:59 694次阅读
    基于<b class='flag-5'>OpenVINO</b> C# <b class='flag-5'>API</b>部署RT-DETR模型

    OpenVINO2024 C++推理使用技巧

    很多人都使用OpenVINO新版的C++ 或者Python的SDK,都觉得非常好用,OpenVINO2022之后的版本C++ SDK做了大量的优化与整理,已经是非常贴近开发的使用习惯与
    的头像 发表于 07-26 09:20 708次阅读