我们将best.pt模型转换成openvino的xml和bin文件后,通过转换后的xml文件对图片进行推理。
代码如下:
import openvino as ov
from ultralytics import YOLO
import pathlib
# OpenVINO 初始化
det_model_path = pathlib.Path(r"你的路径/best.xml")
def create_openvino_model(model_path, device="CPU"):
core = ov.Core()
model = core.read_model(model_path)
compiled_model = core.compile_model(model, device)
return compiled_model
# 创建 OpenVINO 编译模型
det_compiled_model = create_openvino_model(det_model_path)
# 初始化 YOLO 模型,加载原始的 PyTorch 模型文件
pt_model_path = pathlib.Path(r"你的路径/best.pt") # 假设 best.pt 是原始的 PyTorch 模型文件
det_model = YOLO(pt_model_path, task="detect")
if det_model.predictor is None:
custom = {"conf": 0.25, "batch": 1, "save": False, "mode": "predict"} # method defaults
args = {**det_model.overrides, **custom}
det_model.predictor = det_model._smart_load("predictor")(overrides=args, _callbacks=det_model.callbacks)
det_model.predictor.setup_model(model=det_model.model)
# 将 OpenVINO 编译模型绑定到 YOLO 模型的 predictor
det_model.predictor.model.ov_compiled_model = det_compiled_model
# 对 '01756.jpg' 图像进行推理,并获取结果
results = det_model.predict(r"你的路径/00036.jpg", save=True, conf=0.5, iou=0.5)
# 处理返回的结果
for result in results:
boxes = result.boxes # 获取边界框信息
result.show() # 显示结果