win10 OpenVINO2022版

OpenVINO改版之后会出现opencv等插件需要自己重新下载还有就是intel文档有点小乱小多等的问题,但是大体上使用官方文档是没啥问题的

安装

先上官方文档

(1)安装Dev Tools

虽然但是我还是觉得有很多细节

win10 OpenVINO2022版
其实主要就是多了下面这三句:
①创建并激活了一个openvino_env的虚拟环境
②更新了pip
python -m venv openvino_env
openvino_env\Scripts\activate
python -m pip install --upgrade pip

(2)runtime安装

大体步骤根据Install and Configure Intel® Distribution of OpenVINO™ toolkit for Windows 10

win10 OpenVINO2022版
注意一下最好是选择Offline Installer(别问为什么,问就是pip转战过来的)

; 权限问题

在安装opencv的openvino时候出现了权限问题,升级到-user也没用

报错大概是:在此系统上禁止运行脚本…
此时要用管理员权限 修改策略

win10 OpenVINO2022版

; 使用

官方给出的指导文档还是很详细的。

在python中使用

具体的API看这篇!!!

我的直观感觉是常规的api最好还是得熟悉

  1. 初始化
from openvino.runtime import Core
ie = Core()
  1. 可使用设备
ie.get_property(device_name=device, name="FULL_DEVICE_NAME")

  1. 读入模型(IR和onnx分别读入后缀名的模型)
    读入的都得是和模型结构有关的:
    IR:xml文件
    onnx:onnx文件
onnx_model_path = "model/segmentation.onnx"
model_onnx = ie.read_model(model=onnx_model_path)
compiled_model_onnx = ie.compile_model(model=model_onnx, device_name="CPU")

两者在读入模型上的的区别仅在于 模型后缀名

  1. 获取对于 只有一个输入层或者输出层的层名称
input_layer = next(iter(model.inputs))

从而可以获得该层的element_type,shape信息

  1. 使用模型进行推理
    维度修改:
import numpy as np

input_data = np.expand_dims(np.transpose(resized_image, (2, 0, 1)), 0).astype(np.float32)
input_data.shape
  1. onnx模型转换
    模型转化的完整文档可供查询
    (1)将 PyTorch model 转换成 ONNX
    因为export运行模型,所以我们需要提供一个输入张量x。只要是正确的类型和大小,其中的值就可以是随机的。
if not onnx_path.exists():
    dummy_input = torch.randn(1, 3, IMAGE_HEIGHT, IMAGE_WIDTH)

    torch.onnx.export(
        model,
        dummy_input,
        onnx_path,
        opset_version=11,
        do_constant_folding=False,
    )

(2)使用 模型优化器将onnx模型转换成 IR模型
//todo:模型优化器的详细文档还没研究!
step1:构建模型优化器的指令

mo_command = f"""mo
                 --input_model "{onnx_path}"
                 --input_shape "[1,3, {IMAGE_HEIGHT}, {IMAGE_WIDTH}]"
                 --mean_values="[123.675, 116.28 , 103.53]"
                 --scale_values="[58.395, 57.12 , 57.375]"
                 --data_type FP16
                 --output_dir "{model_path.parent}"
"""
mo_command = " ".join(mo_command.split())

step2:转化

if not ir_path.exists():
    print("Exporting ONNX model to IR... This may take a few minutes.")
    mo_result = %sx $mo_command
    print("\n".join(mo_result))
else:
    print(f"IR model {ir_path} already exists.")
  1. 模型推理之前的预处理操作

其他了解应该就可以了吧哈哈哈哈哈哈哈哈哈哈!!!!
openvino模型基准测试工具

有一个操作是我以前没注意到的:


new_path2 = example_path.with_suffix('.txt')

with_suffix会返回一个 新的路径

Original: https://blog.csdn.net/weixin_50862344/article/details/126423343
Author: weixin_50862344
Title: win10 OpenVINO2022版

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/704753/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球