openvino toolkit 是英特尔推出的一款深度学习推断引擎,支持多种网络框架。官方声称它支持超过100种网络训练导出的模型,展示了其广泛的兼容性。以下是官方对该工具包的主要特点的总结:
在英特尔平台上,OpenVINO ToolKit 能够将计算机视觉相关深度学习性能提升至19倍以上,有效解除基于CNN的网络在边缘设备上的性能瓶颈。它通过加速与优化OpenCV和OpenVX视觉库的传统API,并基于通用API接口,支持在CPU、GPU、FPGA等设备上运行。工具包包括两个主要部分:
模型优化器和推断引擎


支持在Windows和Linux系统上使用,适用于Python和C++语言,这意味着在Ubuntu上也可以放心使用。OpenVINO ToolKit支持从各种常见的深度学习框架导出的模型,并且推断引擎兼容多种硬件设备,包括:
CPU、GPU、FPGA、VPU
工作流程如下:

安装OpenVINO ToolKit首先需要注册并下载,建议下载Web Installer。Windows平台下的预安装要求如下:

安装完成后,执行以下步骤:

完成车辆与车牌识别,模型支持中文车牌识别,显示如下:

表示安装成功!
ViiTor实时翻译
AI实时多语言翻译专家!强大的语音识别、AR翻译功能。
116 查看详情
使用DLIE实现加速

配置OpenCV DLIE支持版本。已安装的OpenVINO包含了编译好的支持DLIE(深度学习推断引擎)的OpenCV开发SDK,只需稍作配置即可支持,最新版本为OpenCV4.0.1。在我的机器上,主要改动有两处:
由于我已经安装了OpenCV4.0,我将所有的VS2015配置指向了OpenVINO中的OpenCV路径。将默认路径(假设你在安装OpenVINO时未作修改)C:\Intel\computer_vision_sdk_2018.5.456\deployment_tools\inference_engine\bin\intel64\Debug添加到环境变量中。OpenCV DNN模块支持的相关API如下:
代码语言:javascript代码运行次数:0
运行复制“`javascriptcv::dnn::Net::setPreferableBackend(int backendId)“`backendId 表示后台计算id:- DNN_BACKEND_INFERENCE_ENGINE表示使用英特尔的推断库- DNN_BACKEND_OPENCV通常使用OpenCV DNN作为后台计算
读取网络后使用OpenCV作为计算后台:
代码语言:javascript代码运行次数:0
运行复制“`javascriptNet net = readNetFromCaffe(protxt, bin_model);net.setPreferableBackend(DNN_BACKEND_OPENCV);net.setPreferableTarget(DNN_TARGET_CPU);“`
读取网络后使用DLIE作为计算后台:
代码语言:javascript代码运行次数:0
运行复制“`javascriptNet net = readNetFromCaffe(protxt, bin_model);net.setPreferableBackend(DNN_BACKEND_INFERENCE_ENGINE);net.setPreferableTarget(DNN_TARGET_CPU);“`
其中,DNN_BACKEND_INFERENCE_ENGINE表示使用DLIE加速推断,DNN_TARGET_CPU表示在CPU设备上运行。如果未安装DLIE,OpenCV默认使用DNN_BACKEND_OPENCV作为后台。使用GoogLeNet Caffe模型对同一张图像进行分类推断:

对比时间开销:

可以看出,使用DLIE作为后台进行推断后,网络在OpenCV DNN中的运行速度提升了约9倍。相关代码如下:
代码语言:javascript代码运行次数:0
运行复制“`javascript// 加载网络Net net = readNetFromCaffe(protxt, bin_model);net.setPreferableBackend(DNN_BACKEND_INFERENCE_ENGINE); // DLIE加速// net.setPreferableBackend(DNN_BACKEND_OPENCV); 不使用DLIE加速net.setPreferableTarget(DNN_TARGET_CPU);if (net.empty()) { printf(“read caffe model data failure…\n”); return -1;}Mat inputBlob = blobFromImage(src, 1.0, Size(w, h), Scalar(104, 117, 123), false, false);// 执行图像分类Mat prob;net.setInput(inputBlob);prob = net.forward();vector times;double time = net.getPerfProfile(times);float ms = (time * 1000) / getTickFrequency();printf(“current inference time : %.2f ms \n”, ms);“`
基于残差网络的实时人脸检测,使用OpenCV DNN运行:

惊人的是,i7的CPU可以达到约36帧的FPS,画面效果非常出色,足以证明OpenCV DNN的实时性能。如此专业的文章,希望能得到赞赏!
代码语言:javascript代码运行次数:0
运行复制“`javascript博观而约取厚积而薄发“`
以上就是使用OpenVINO ToolKit 实时推断的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/268927.html
微信扫一扫
支付宝扫一扫