0%

Intel OpenVINO模型推理框架(python)

OpenVINO是英特尔针对自家硬件平台开发的一套深度学习工具库,包含推理库,模型优化等等一系列与深度学习模型部署相关的功能。这里介绍如何用docker部署OpenVINO的推理模型。

1. arm架构编译安装

目前并没有arm架构的openvino包,需要自己编译安装。。。

  1. 拉取源码

    1
    2
    3
    git clone https://github.com/openvinotoolkit/openvino.git
    cd openvino
    git submodule update --init --recursive
  2. 安装依赖

    1
    2
    chmod +x install_build_dependencies.sh
    ./install_build_dependencies.sh
  3. 编译

    1
    2
    3
    mkdir build && cd build
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make --jobs=$(nproc --all)

基本上等到编译结束,快的话个把小时过去了。如果有vpn,挂上vpn安装依赖会快一些。

  1. 编码python包

    1
    pip install Cython
    1
    2
    cd %openvino/src/bindings/python/wheel
    python setup.py install

    一切顺利的话,个把小时又过去了。。。

  2. 验证

    1
    from openvino.runtime import Core

    如果报错:ImportError: libopenvino.so: cannot open shared object file: No such file or directory

    libopenvino.so 拷贝到 $site-packages%/openvino/libs/libopenvino.so 即可

2. x86架构安装

1
pip install openvino

3. 镜像方式

  1. 拉取镜像

    1
    docker pull openvino/onnxruntime_ep_ubuntu18
  2. 启动镜像

    1
    docker run -it $image_name /bin/bash

    注意:该镜像并未安装opencv-python,需要自己安装

4. 测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import cv2
import numpy as np
from openvino.runtime import Core

ie = Core()
model = ie.read_model(model="yolov4-tiny-obj_best.onnx")
compiled_model = ie.compile_model(model=model, device_name="CPU")


image = cv2.cvtColor(cv2.imread(filename="fire1.png"), code=cv2.COLOR_BGR2RGB)
image = cv2.resize(src=image, dsize=(608, 608))
img = np.transpose(image, (2, 0, 1)).astype(np.float32)
img = np.expand_dims(img, axis=0)
img /= 255.0
img = np.ascontiguousarray(img)

result_infer = compiled_model([img])
print(list(result_infer.values()))