OpenVino 是由 Intel 开发的半开源工具包,专门用于优化和部署人工智能推理,主要用于对深度 推理做优化 。本教程适用于 Yolov5-7.0 ,直接跑Yolov5为6FPS,使用OpenVino后为30FPS。未来将会出一系列其他模型(Paddle等)的OpenVino部署教程。测试平台为Intel Nuc 11代i5处理器。
进入OpenVino官网: https://docs.openvino.ai/2024/get-started/install-openvino.html
选择自己喜欢的下载方式,本教程采用OpenVino-2022.3.1版本。
通过Yolov5自带的export.py文件将.pt转为.onnx格式:
python3 export.py --weights xxxx/xxxxx.pt --include onnx --batch_size 1 --opset 10
PS:如果出现转换失败的提示,如:opset 10不支持或是onnx版本问题请重新搭建yolov5环境,按照requirements.txt里库的最低版本进行安装
使用OpenVino工具链将.onnx转为xml、bin模型:
mo --input_model xxx/xxx.onnx
PS:如果openvino环境安装成功将可以在yolov5的环境中直接使用mo命令
PS:转换完成后请一定用模型可视化工具查看转换是否正确。
import openvino.runtime as ov
import cv2
import numpy as np
import openvino.preprocess as op
class ObjectDetector:
def __init__(self, model_xml, model_bin, labels, device="CPU"):
self.core = ov.Core()
self.model = self.core.read_model(model_xml, model_bin)
self.labels = labels
self.preprocess_model()
self.compiled_model = self.core.compile_model(self.model, device)
self.infer_request = self.compiled_model.create_infer_request()
# 以下代码段省略...