2、在python中使用openvino加速部署模型

说明: 今天咱家心情不好,咱就事论事得往下一步步的走,不开玩笑的

1、配置openvino运行环境:

如果只在python中去调用openvino的API,配置方法就和你双手画个八字一样简单,放羊娃都会的命令:

pip install openvino

如果你嫌装的慢,就换一个镜像安装,由上面的命令变成下面的命令,注意,我本来不想废话的,但有些杠精他总是来杠,那这样的话是先上面命令再下面吗?… 我都说得很清楚,“由上面的命令变成下面的命令”,不然你看那天上飘的是什么?命令如下:

pip install openvino -i https://pypi.tuna.tsinghua.edu.cn/simple

好了,那么现在环境已经配置好了,说道这里,我又想说,有的杠精你跑到环境1装了openvino,却跑到环境2去检查是不是装了openvino,然后说:没有装上啊,装不上啊,博主你骗我啊等等。此时此刻,我丹田下的一股子气,直接往嗓子眼冒,你说你脑子被门夹伤了,然后跑到医院去,让医生去检查你的脚,事情本身不大,但你的脚臭味太浓了,幸好你不在我身边。

2、模型部署

我想说,模型部署按照模型的格式,分为两种(说到这里,杠精们又来了:啊,不对,有好几种格式,我想说亲亲,哎,冤孽,不解释了算了,你看天上飞的那是啥),分别为onnx和IR格式两种,咱就先按照这两种方法展开来讲。(注意,以下两种方法,什么意思勒,就是他们就像并行的桥梁,每一个都可以过,只要一种就能实现模型的并行推理)
(1)onnx格式推理。我不想啰嗦,代码如下:

import time
import cv2
import numpy as np
from openvino.runtime import Core
def input_images():
 image_filename = 'the input images '
 image = cv2.cvtColor(cv2.imread(image_filename), cv2.COLOR_BGR2RGB)
 resized_image = cv2.resize(image, (224, 224))
 resized_image = resized_image/255.0
 
 input_image = np.expand_dims(np.transpose(resized_image, (2, 0, 1)), 0)
 # normalized_input_image = np.expand_dims(np.transpose(normalized_image, (2, 0, 1)), 0)
 return input_image
class OpenvinoInference(object):
 def __init__(self):
 self.onnx_path = 'your onnx model!'
 ie = Core()
 self.model_onnx = ie.read_model(model=self.onnx_path)
 self.compiled_model_onnx = ie.compile_model(model=self.model_onnx, device_name="CPU")
 # print(compiled_model_onnx)
 self.output_layer_onnx = self.compiled_model_onnx.output(0)
 def predirts(self,datas):
 predict_data = self.compiled_model_onnx([datas])[self.output_layer_onnx]
 return predict_data
if __name__ == '__main__':
 normalized_input_image = input_images()
 
 model = OpenvinoInference()
 
 start_time = time.time()
 out_data = model.predirts(normalized_input_image)

各路神仙是否看到,里面一个类,一个函数。函数就是读数据的,你随便搞。类才是初始化引擎,加载模型的。这里面的思路是,首先加载了onnx格式的模型,然后,进行了编译,编译好之后再去推理。各路神仙注意
(2)IR格式模型的部署 寡人骂人骂累了,改天再写,爱赞不赞,别想白嫖。

作者:小树苗m原文地址:https://blog.csdn.net/qq_15060477/article/details/127753999

%s 个评论

要回复文章请先登录注册