IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Openvino 模型文件部署推理 -> 正文阅读

[人工智能]Openvino 模型文件部署推理

一、模型转换流程:

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

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


sudo docker search openvino

在这里插入图片描述

docker pull cortexica/openvino:latest
docker run -i -t cortexica/openvino:latest /bin/bash
 
cd /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_models

cd 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()

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 10:51:52  更:2021-07-14 10:51:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 11:16:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码