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

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

3天内不再提示

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

英特尔物联网 来源:英特尔物联网 作者:英特尔物联网 2021-05-18 09:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

通过第一篇文章我们已经了解什么是OpenVINO,它的诸多功能与全应用场景支持人工智能落地的能力。本篇我们将重点介绍OpenVINO开发流程与开发必备的基础知识与相关API函数对象。

环境配置

在具体介绍OpenVINO开发流程与开发必备基础知识之前,我们首先需要配置好OpenVINO的开发环境,这里我们以Win10系统下OpenVINO C++/Python SDK开发与应用集成为例来完成整个教程的配置与代码演示。基于VS2017+OpenVINO2021.02版本的环境配置可以总结为如下几个步骤:

1. 打开VS2017,新建一个控制台应用,图示如下:

图1

2. 打开属性管理器

打开属性管理器,选择x64/release然后配置包含路径,库路径、通过链接器添加lib文件,这部分的配置图示如下:

包含目录配置

482a70a8-b4ff-11eb-bf61-12bb97331649.png

库路径配置

48500e26-b4ff-11eb-bf61-12bb97331649.png

链接器:

487150e0-b4ff-11eb-bf61-12bb97331649.png

图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

最后配置环境变量,添加以下环境变量到系统的path中去,图示如下:

489749a8-b4ff-11eb-bf61-12bb97331649.png

对于开发环境配置环节,如果还有不清楚的,可以参考OpenVINO中文社区的技术自愿者分享的视频,地址如下:

https://www.bilibili.com/video/BV1Hz4y1U7g6

设备查询与开发基础知识

完成上述配置以后,重启VS2017,创建一个新的cpp文件,添加下面的代码到cpp文件中

48cb44f6-b4ff-11eb-bf61-12bb97331649.png

运行结果如下:

图3

上述控制台输出来自InferenceEngine::Core的设备查询函数GetAvailableDevices,它可以查询当前系统支持IE推理的硬件支持,该函数如下:

std::vector<:string style="font-size: inherit;color: inherit;line-height: inherit;">InferenceEngine::GetAvailableDevices() const

参数: 无

返回的支持设备的列表vector

下面的就是加载图像与显示图像,使用的两个函数来自OpenVINO中的OpenCV组件支持,两个相关函数如下:

读取图像

Mat cv::imread(
const String & filename,
int flags = IMREAD_COLOR
)

参数 filename表示文件路径(包含文件名)

第二个参数为默认参数

加载成功返回的图像像素的矩阵数据结构Mat,默认读取加载为彩色图像,三个通道顺序为BGR。

显示图像

void cv::imshow(
const String & winname,
InputArray mat
)

参数 winname表示窗口名称,本例中为“输入窗口”

参数 mat表示图像矩阵Mat(显示图像的内存表示)

最终执行结果图上图3所示。对上述代码,我们可以通过进一笔的简化,要知道在C++11中,声明类型可以自动识别,通过auto来表示可以避免代码过长,同时支持for循环的时候通过auto自动识别每个item的类型,所以上述查询设备与打印部分的代码:

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;
}

这样看上去代码就会比之前的整洁更加直观一点。在OpenVINO SDK C++的开发中,有很多类别的声明都很长,我们可以通过使用C++11支持的自动类型识别关键字auto来减少不必要的代码书写,提高编码效率。此外类InferenceEngine::Core类是表示整个IE引擎的实例,支持从模型加载、输入与输出格式获取与设置、模型的推理与后处理等一系列的操作。关于如何使用InferenceEngine::Core实现模型推理的流程与相关API方法函数解释。

编辑:jq

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

    关注

    22

    文章

    2122

    浏览量

    76708
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73145
  • SDK
    SDK
    +关注

    关注

    3

    文章

    1093

    浏览量

    51194

原文标题:OpenVINO开发配置与必备基础知识

文章出处:【微信号:英特尔物联网,微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Linux驱动开发必备知识

    内核基础知识: 1、熟悉 Linux 内核的架构、模块系统、进程管理、内存管理等。 了解内核的编译和加载过程。 2、C编程技能: 精通 C 语言编程,包括指针操作、内存管理、结构体等
    发表于 12-04 07:58

    CW32嵌入式软件开发必备知识

    嵌入式软件开发作为计算机科学和电子工程的交叉领域,要求开发人员具备一系列的专业知识和技能。 而基于CW32的嵌入式软件开发必备
    发表于 11-28 07:48

    RK 平台 Vendor Storage 开发指南:基础知识、流程与实用技巧

    备可靠性校验、掉电恢复等关键特性,是保障设备身份标识、功能授权等核心信息安全的重要组件。本文将从基础知识开发流程、使用途径三方面,为开发者梳理完整的开发逻辑。 一、核心
    的头像 发表于 11-22 07:11 95次阅读
    RK 平台 Vendor Storage <b class='flag-5'>开发</b>指南:<b class='flag-5'>基础知识</b>、流程与实用技巧

    效果器的基础知识

    电子发烧友网站提供《效果器的基础知识.doc》资料免费下载
    发表于 03-26 14:30 6次下载

    【北京迅为】iTOP-RK3568开发板OpenHarmony系统南向驱动开发-第4章 UART基础知识

    【北京迅为】iTOP-RK3568开发板OpenHarmony系统南向驱动开发-第4章 UART基础知识
    的头像 发表于 03-17 15:50 851次阅读
    【北京迅为】iTOP-RK3568<b class='flag-5'>开发</b>板OpenHarmony系统南向驱动<b class='flag-5'>开发</b>-第4章 UART<b class='flag-5'>基础知识</b>

    【北京迅为】iTOP-RK3568OpenHarmony系统南向驱动开发GPIO基础知识

    【北京迅为】iTOP-RK3568OpenHarmony系统南向驱动开发GPIO基础知识
    的头像 发表于 03-06 11:23 1008次阅读
    【北京迅为】iTOP-RK3568OpenHarmony系统南向驱动<b class='flag-5'>开发</b>GPIO<b class='flag-5'>基础知识</b>

    是否有用于OpenVINO™工具套件的配置文件工具呢?

    是否有用于OpenVINO™工具套件的配置文件工具?
    发表于 03-06 07:29

    安装OpenVINO™ 2023.2使用pip install openvino-dev命令的开发工具后报错怎么解决?

    安装OpenVINO™ 2023.2 使用 pip install openvino-dev 命令的开发工具。 遇到错误: ModuleNotFoundError: 没有名为 \'distutils\' 的模块
    发表于 03-05 08:39

    如何下载 OpenVINO™ 工具套件?

    需要下载用于开发工作的 OpenVINO™ 工具套件。
    发表于 03-05 06:49

    鸿蒙北向开发OpenHarmony4.1 DevEco Studio开发工具安装与配置

    OpenHarmony4.1 DevEco Studio开发工具安装与配置,鸿蒙北向开发入门必备
    的头像 发表于 02-07 17:35 1338次阅读
    鸿蒙北向<b class='flag-5'>开发</b>OpenHarmony4.1 DevEco Studio<b class='flag-5'>开发</b>工具安装与<b class='flag-5'>配置</b>

    C#中使用OpenVINO™:轻松集成AI模型!

    作者:算力魔方创始人/英特尔创新大使刘力 C#不仅在PC游戏开发、大型商业系统领域应用广泛,还成为开源测控、机器视觉与运动控制,以及PC数集与分析领域中的主流开发语言! 在开源测控、机器视觉、数采
    的头像 发表于 02-07 14:05 1645次阅读
    C#中使用<b class='flag-5'>OpenVINO</b>™:轻松集成AI模型!

    功率器件热设计基础知识

    功率器件热设计是实现IGBT、碳化硅SiC等高功率密度器件可靠运行的基础。掌握功率半导体的热设计基础知识,不仅有助于提高功率器件的利用率和系统可靠性,还能有效降低系统成本。本文将从热设计的基本概念、散热形式、热阻与导热系数、功率模块的结构和热阻分析等方面,对功率器件热设计基础知识
    的头像 发表于 02-03 14:17 1252次阅读

    PCB绘制基础知识

    电子发烧友网站提供《PCB绘制基础知识.pdf》资料免费下载
    发表于 01-21 15:20 8次下载
    PCB绘制<b class='flag-5'>基础知识</b>

    EMC基础知识-华为

    EMC基础知识-华为
    发表于 01-06 14:09 5次下载

    万字长文,看懂激光基础知识

    深入介绍激光基础知识,帮助您轻松理解激光领域的关键概念和原理。
    的头像 发表于 12-20 09:49 2099次阅读
    万字长文,看懂激光<b class='flag-5'>基础知识</b>!