利用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用法
1299 0
|
计算机视觉
YOLO 目标检测 识别框不显示文字标签(已解决)
YOLO 目标检测 识别框不显示文字标签(已解决)
|
自然语言处理 测试技术 计算机视觉
OpenVI-感知理解系列之GAP骨骼点动作识别 ICCV23顶会论文深入解读
本文介绍了ICCV23中稿论文 GAP: Generative Action Description Prompts for Skeleton-based Action Recognition
2377 2
|
人工智能 API 开发工具
YOLOV11 使用流程
本内容整理了YOLO V11的常用代码语句,涵盖YOLO模型下载、数据集划分、模型训练与推理优化等关键步骤,适用于目标检测任务。
|
运维 监控 数据可视化
小白也能部署应用,3个免费的容器化部署工具测评
本文对比了三款容器化部署工具:Docker Compose、Portainer 和 Websoft9。Docker Compose 适合开发者编排多容器应用,Portainer 提供图形化管理界面,而 Websoft9 则面向中小企业和非技术人员,提供一键部署与全流程运维支持,真正实现“开箱即用”。三款工具各有定位,Websoft9 更贴近大众用户需求。
小白也能部署应用,3个免费的容器化部署工具测评
|
传感器 人工智能 监控
医院不良事件管理系统:PDCA持续改进,形成事件的整改闭环管理
医院安全事件管理系统通过全流程闭环管理、多维度分析与RCA根因分析,助力上报与处理高效协同,支持智能流转、风险预警与持续改进,提升医疗质量与患者安全。
1114 5
|
机器学习/深度学习 PyTorch 测试技术
从训练到推理:Intel Extension for PyTorch混合精度优化完整指南
PyTorch作为主流深度学习框架,凭借动态计算图和异构计算支持,广泛应用于视觉与自然语言处理。Intel Extension for PyTorch针对Intel硬件深度优化,尤其在GPU上通过自动混合精度(AMP)提升训练与推理性能。本文以ResNet-50在CIFAR-10上的实验为例,详解如何利用该扩展实现高效深度学习优化。
620 0
|
传感器 机器学习/深度学习 人工智能
史上最全综述 | 3D目标检测算法汇总!(单目/双目/LiDAR/多模态/时序/半弱自监督)(下)
近年来,自动驾驶因其减轻驾驶员负担、提高行车安全的潜力而受到越来越多的关注。在现代自动驾驶系统中,感知系统是不可或缺的组成部分,旨在准确估计周围环境的状态,并为预测和规划提供可靠的观察结果。3D目标检测可以智能地预测自动驾驶车辆附近关键3D目标的位置、大小和类别,是感知系统的重要组成部分。本文回顾了应用于自动驾驶领域的3D目标检测的进展。
史上最全综述 | 3D目标检测算法汇总!(单目/双目/LiDAR/多模态/时序/半弱自监督)(下)
|
安全 数据安全/隐私保护 虚拟化
Windows Server 2022 中文版、英文版下载 (2025 年 9 月更新)
Windows Server 2022 中文版、英文版下载 (2025 年 9 月更新)
727 0
Windows Server 2022 中文版、英文版下载 (2025 年 9 月更新)
|
机器学习/深度学习 JSON 算法
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-Seg模型进行图像分割的完整流程,包括图像分割的基础知识、YOLOv5-Seg模型的特点、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。通过实例代码,指导读者从自定义数据集开始,直至模型的测试验证,适合深度学习领域的研究者和开发者参考。
7459 3
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)

热门文章

最新文章