【深度学习】【Opencv】【CPU】Python/C++调用onnx模型【基础】
在Python中使用OpenCV调用ONNX模型通常需要安装opencv-python
和onnx
库。以下是一个简单的Python示例,展示如何使用OpenCV调用ONNX模型进行图像分类。
首先,确保安装了必要的库:
pip install opencv-python onnx
然后,你可以使用以下Python代码:
import cv2
import numpy as np
# 加载ONNX模型
net = cv2.dnn.readNetFromONNX('model.onnx')
# 读取输入图像
image = cv2.imread('image.jpg')
# 对输入图像进行预处理,以符合模型的要求
blob = cv2.dnn.blobFromImage(image, size=(224, 224), mean=(0, 0, 0), scalefactor=1/255, swapRB=True)
net.setInput(blob)
# 运行模型进行推断
output = net.forward()
# 找到最大概率的索引
class_id = np.argmax(output)
# 打印类别
print(f"Class id: {class_id}")
# 如果需要,可以获取类别名称
# class_names = ['class1', 'class2', ...]
# print(f"Class name: {class_names[class_id]}")
请确保替换'model.onnx'
为你的ONNX模型文件路径,'image.jpg'
为你要分类的图像路径。此外,你可能需要根据模型的输入要求调整blobFromImage
函数的参数,如图像尺寸(size)、均值(mean)和缩放因子(scalefactor)。
注意:上述代码假设模型的输出为一个向量,其中包含不同类别的概率。如果模型输出是其他类型,可能需要额外的处理。
评论已关闭