利用openvino模型推理图片

简介: 本文介绍了如何使用 OpenVINO 格式模型文件对图片进行推理。通过将训练好的模型转换为 OpenVINO 格式,可实现跨设备部署。文中详细展示了利用 Python 和 OpenVINO API 完成模型加载、编译及推理的步骤。核心代码包括初始化 OpenVINO 模型、设置预测参数(如置信度和 IoU 阈值)以及对图片进行检测并显示结果。注意:OpenVINO 模型文件需完整存放于同一目录下,路径需正确配置,参数可根据模型性能调整。

openvino格式模型文件生成后可以在不同的设备上进行部署,所以我们在训练好模型,并转换成openvino格式模型文件后,一般会进行推理测试,来观察我们训练的结果,那么如何用openvino模型文件对图片进行推理呢,这里我总结了以下,以方便后续查看使用。

# 导入必要的库
import openvino as ov
from ultralytics import YOLO
import pathlib

# OpenVINO初始化
# 使用pathlib.Path来处理模型文件路径,这里指定了目标检测模型的XML文件路径
det_model_path = pathlib.Path(r"best_s_openvino_model/best_s.xml")

# 定义一个函数用于创建OpenVINO编译后的模型
def create_openvino_model(model_path, device="CPU"):
    # 初始化OpenVINO的核心对象,用于管理设备和读取模型
    core = ov.Core()
    # 读取指定路径的模型文件
    model = core.read_model(model_path)
    # 将读取的模型在指定设备(默认是CPU)上进行编译
    compiled_model = core.compile_model(model, device)
    # 返回编译后的模型
    return compiled_model

# 调用create_openvino_model函数,创建目标检测的编译后模型
det_compiled_model = create_openvino_model(det_model_path)
# 使用YOLO模型,指定模型路径的父目录,任务类型为目标检测
det_model = YOLO(det_model_path.parent, 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模型赋值给预测器的ov_compiled_model属性
det_model.predictor.model.ov_compiled_model = det_compiled_model

# 对'00.jpg'图像进行推理,并获取结果
# 设置保存结果为True,置信度阈值为0.5,IoU阈值为0.5
results = det_model.predict(r"00.jpg", save=True, conf=0.5, iou=0.5)

# 处理返回的结果
for result in results:
    # 获取检测结果中的边界框信息
    boxes = result.boxes
    # 显示检测结果图像
    result.show()

这里需要注意的是,转换后的openvino模型文件必须在一个目录下,切缺一不可;置信度以及IOU可以根据自己训练后的模型质量进行适当的调整。最后就是路径一定要正确,否则会出错。

相关文章
|
Java C#
C#学习系列相关之多线程(五)----线程池ThreadPool用法
C#学习系列相关之多线程(五)----线程池ThreadPool用法
1277 0
|
计算机视觉
YOLO 目标检测 识别框不显示文字标签(已解决)
YOLO 目标检测 识别框不显示文字标签(已解决)
|
自然语言处理 测试技术 计算机视觉
OpenVI-感知理解系列之GAP骨骼点动作识别 ICCV23顶会论文深入解读
本文介绍了ICCV23中稿论文 GAP: Generative Action Description Prompts for Skeleton-based Action Recognition
2342 2
Dataset之Boston:Boston波士顿房价数据集的简介、下载、使用方法之详细攻略
Dataset之Boston:Boston波士顿房价数据集的简介、下载、使用方法之详细攻略
|
运维 监控 数据可视化
小白也能部署应用,3个免费的容器化部署工具测评
本文对比了三款容器化部署工具:Docker Compose、Portainer 和 Websoft9。Docker Compose 适合开发者编排多容器应用,Portainer 提供图形化管理界面,而 Websoft9 则面向中小企业和非技术人员,提供一键部署与全流程运维支持,真正实现“开箱即用”。三款工具各有定位,Websoft9 更贴近大众用户需求。
小白也能部署应用,3个免费的容器化部署工具测评
|
人工智能 API 开发工具
YOLOV11 使用流程
本内容整理了YOLO V11的常用代码语句,涵盖YOLO模型下载、数据集划分、模型训练与推理优化等关键步骤,适用于目标检测任务。
|
机器学习/深度学习 PyTorch 测试技术
从训练到推理:Intel Extension for PyTorch混合精度优化完整指南
PyTorch作为主流深度学习框架,凭借动态计算图和异构计算支持,广泛应用于视觉与自然语言处理。Intel Extension for PyTorch针对Intel硬件深度优化,尤其在GPU上通过自动混合精度(AMP)提升训练与推理性能。本文以ResNet-50在CIFAR-10上的实验为例,详解如何利用该扩展实现高效深度学习优化。
607 0
|
12月前
|
安全 数据安全/隐私保护 虚拟化
Windows Server 2022 中文版、英文版下载 (2025 年 9 月更新)
Windows Server 2022 中文版、英文版下载 (2025 年 9 月更新)
709 0
Windows Server 2022 中文版、英文版下载 (2025 年 9 月更新)
|
机器学习/深度学习 并行计算 PyTorch
ONNX 优化技巧:加速模型推理
【8月更文第27天】ONNX (Open Neural Network Exchange) 是一个开放格式,用于表示机器学习模型,使模型能够在多种框架之间进行转换。ONNX Runtime (ORT) 是一个高效的推理引擎,旨在加速模型的部署。本文将介绍如何使用 ONNX Runtime 和相关工具来优化模型的推理速度和资源消耗。
8299 4
|
机器学习/深度学习 人工智能 计算机视觉
【YOLOv8】实战一:手把手教你使用YOLOv8实现实时目标检测
【YOLOv8】实战一:手把手教你使用YOLOv8实现实时目标检测
25070 0
【YOLOv8】实战一:手把手教你使用YOLOv8实现实时目标检测

热门文章

最新文章