一、模型转换流程:

(以mxnet框架在openvino上的转换为例)

1、安装相关openvino toolkit: (以镜像的方式为例)


sudo docker search openvino

docker pull cortexica/openvino:latest
docker run -i -t cortexica/openvino:latest /bin/bashcd /opt/intel/openvino/deployment_tools/model_optimizer
pip3 install -r requirements_mxnet.txt

2、将相关mxnet模型文件及网络结构参数文件放到同一目录下


3、模型转换

python3 mo_mxnet.py --input_shape [1,3,112,112] --input_model model-0000.params --output_dir openvino_modelscd openvino_models/


二、openvino推理流程:(ubuntu16.04, openvino-2020.3为例)

1、设置环境变量:

vi ~/.bashrc
source <INSTALL_DIR>/bin/setupvars.sh
source ~/.bashrc
#如果想要设置具体版本的python
PYTHONPATH=<INSTALL_DIR>/deployment_tools/inference_engine/python_api/<desired_python_version

2、导入IE/OpenCV/numpy/time模块

from openvino.inference_engine import IECore, IENetwork
import cv2
import numpy as np
from time import time

3、配置推断计算设备,IR文件路径,图片(视频)路径

DEVICE = 'CPU'
model_xml = 'model-0000.xml'
model_bin = 'model-0000.bin'
image_file = 'test.jpg'
cpu_extension_lib = "/inference_engine/bin/intel64/Release/cpu_extension.dll"
labels_map = ["fake", "cat", "dog"]

4、初始化插件


ie = IECore()

5、读取IR模型文件

net = IENetwork(model=model_xml, weights=model_bin)

6、准备输入输出张量

print("Preparing input blobs")
input_blob = next(iter(net.inputs))
out_blob = next(iter

7、载入模型到AI推断计算设备

print("Loading IR to the plugin...")
exec_net = ie.load_network(network=net, num_requests=1, device_name=DEVICE)

8、读入图片,执行推断计算

n, c, h, w = net.inputs[input_blob].shape
frame = cv2.imread(image_file)
initial_h, initial_w, channels = frame.shape
# 按照AI模型要求放缩图片
image = cv2.resize(frame, (w, h))
# 按照AI模型要求将图像数据结构从HWC转为CHW
image = image.transpose((2, 0, 1))
print("Batch size is {}".format(n))
print("Starting inference in synchronous mode")
start = time()
res = exec_net.infer(inputs={input_blob: image})
end = time()
print("Infer Time:{}ms".format((end - start) * 1000))

9、处理输出,显示结果

print("Processing output blob")
res = res[out_blob]
print(res)
for obj in res:print(obj)# 当信心指数大于0.7时,显示检测结果if obj[2] > 0.7:xmin = int(obj[3] * initial_w)ymin = int(obj[4] * initial_h)xmax = int(obj[5] * initial_w)ymax = int(obj[6] * initial_h)class_id = int(obj[1])# 显示信心指数,物体标签和边界框color = (0, 255, 0) if class_id > 1 else (255, 0, 0)cv2.rectangle(frame, (xmin, ymin), (xmax, ymax), color, 2)det_label = labels_map[class_id] if labels_map else str(class_id)cv2.putText(frame, det_label + ' ' + str(round(obj[2] * 100, 1)) + ' %', (xmin, ymin - 7),cv2.FONT_HERSHEY_COMPLEX, 0.6, color, 1)
print("Inference is completed")
cv2.imshow("Detection results", frame)
cv2.waitKey(0)
cv2.destroyAllWindows()

Openvino 模型文件部署推理相关推荐

  1. TF之TFOD-API:基于tensorflow框架利用TFOD-API脚本文件将YoloV3训练好的.ckpt模型文件转换为推理时采用的.pb文件

    TF之TFOD-API:基于tensorflow框架利用TFOD-API脚本文件将YoloV3训练好的.ckpt模型文件转换为推理时采用的frozen_inference_graph.pb文件 目录 ...

  2. 【Camunda 三】Camunda模型文件部署

    参考:[Camunda 三]Camunda部署流程定义 https://www.jianshu.com/p/44f58002a618 一.构建流程图 使用Camunda Modeler构建流程图,Ca ...

  3. 【PaddlePaddle+OpenVINO】电表检测识别模型的部署

    转自AI Studio,原文链接:[PaddlePaddle+OpenVINO]电表检测识别模型的部署 - 飞桨AI Studio 0 背景:PaddleOCR的电表识别任务(主线之五) 我国电力行业 ...

  4. python环境下,XGBoost模型文件转pmml格式用于部署

    一. python环境下生成PMML 1. sklearn接口的xgboost 需要用sklearn2pmml包来生成pmml文件,一共有两种方法: 方法一: 在管道pipeline中进行fit后保存 ...

  5. PTMs:QLoRA技巧之源码解读(qlora.py文件)—解析命令与加载参数→数据预处理→模型训练+评估+推理

    PTMs:QLoRA技巧之源码解读(qlora.py文件)-解析命令与加载参数→数据预处理→模型训练+评估+推理 目录 QLoRA技巧之源码解读(qlora.py文件)-解析命令与加载参数→数据预处理 ...

  6. OpenVINO整合TensorFlow实现推理加速

    作者: Arindam, Yamini, Mustafa, Ritesh, Priya, Chandrakant, Surya, Amar, Sesh 编译:李翊玮 技术的传播采用通常是由用户体验的飞 ...

  7. Tensorflow + OpenCV4 安全帽检测模型训练与推理

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 开发环境 软件版本信息: Windows10 64位 Tensor ...

  8. YOLOv5发布第六个版本,支持一键适配OpenVINO/OpenCV DNN部署

    YOLOv5发布了第六个版本,其它我不说,什么是开源精神,不是写个程序扔github就叫开源,而是持续不断改进,精益求精,不断演化版本,增加最有商业价值的功能,YOLOv5做到了.看看最新版本都有哪些 ...

  9. 【项目实战课】基于ncnn框架与KL散度的8bit对称模型量化与推理实战

    欢迎大家来到我们的项目实战课,本期内容是<基于ncnn框架与KL散度的8bit对称模型量化与推理实战>. 所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题, ...

最新文章

  1. 微软云计算介绍与实践(实践之十七)
  2. Oracle SQL之 序列使用限制
  3. jvm_虚拟机参数讲解(三)
  4. 四位数码管秒表 c语言编程,4位共阴极数码管秒表设计仿真与程序
  5. CoolUIViewAnimations
  6. PostgreSQL 当月最后一天的工作日 , 计算日期是星期几
  7. mysql merge事务_mysql菜鸟手迹11--mysql存储引擎之Merge
  8. android-- dp px sp长度单位的区别
  9. 避免服务器成为肉鸡的应对措施
  10. 富士通FMV-253L的使用
  11. 如何使用PowerShell批量删除注册表项
  12. Shell实现俄罗斯方块小游戏
  13. android 7.0 root工具,KingRoot全球率先实现Android 7.0一键 Root
  14. Iterative Reweighted Least Squares
  15. 2021年安徽省大数据与人工智能应用竞赛 大数据-本科组赛题(省赛)
  16. TA(技术美术)宝藏网站
  17. React.createElement使用
  18. CD网站用户消费数据分析案例
  19. ▷Scratch课堂丨【编程趣味卡11】虚拟宠物
  20. ARM M3/M4单片机jlink连不上的原因

热门文章

  1. ipad文献管理软件_ipad和电脑双向同步文献的奥秘
  2. 《C语言程序设计》单元总结与练习题
  3. 爬虫小程序 - 单词量测试
  4. 学习javascript这一篇就够了超详细笔记(建议收藏)上
  5. 灰色预测模型、新灰色预测模型、新陈代谢灰色预测模型
  6. Html开屏广告源码,开屏(Splash)广告样式
  7. 2020哔哩哔哩校招前端笔试编程题
  8. 循环减肥c语言,减肥,这次终于告别一再反弹的死循环
  9. 局部连接层(Locally-Connected Layer)
  10. Linux笔记——/etc/motd文件,/etc/issue.net文件