当前位置:   article > 正文

python实现onnx模型推理_onnx推理代码

onnx推理代码

本文以回归任务模型为例演示推理代码。

  1. import onnxruntime
  2. import cv2
  3. import numpy as np
  4. # 定义一个实现回归预测任务的类
  5. class Regression(object):
  6. def __init__(self):
  7. onnx_model_path = 'model.onnx' # onnx推理模型路径
  8. self.size = (320, 320) # 输入图片尺寸
  9. self.model = onnxruntime.InferenceSession(onnx_model_path, provider=['CPUExecutionProvider']) # 创建InferenceSession对象并指定CPU提供推理程序
  10. self.input_name = self.model.get_inputs()[0].name
  11. # 定义推理方法
  12. def detect(self, img):
  13. # 模型训练时图像的预处理操作
  14. img = self.padding(img)
  15. img = cv2.resize(img, self.size)
  16. img = np.float32(img)
  17. input_array = np.expand_dims(np.transpose(img, (2, 0, 1)), axis=0)
  18. # 将图片数据包装成模型输入格式
  19. ort_inputs = {self.input_name: input_array}
  20. out = self.model.run(None, ort_inputs) # 模型推理得到预测结果
  21. out = np.squeeze(out) # 删除长度为1的维度
  22. return out
  23. def padding(self, img,const=0):
  24. h,w,c=img.shape
  25. mm=max(h,w)
  26. dh1=int((mm-h)/2)
  27. dw1=int((mm-w)/2)
  28. dh2=(mm-h)-dh1;dw2=(mm-w)-dw1
  29. img=np.pad(img,((dh1,dh2),(dw1,dw2),(0,0)),constant_values=const)
  30. return img

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/371527
推荐阅读
相关标签
  

闽ICP备14008679号