利用openvino模型推理图片

本文涉及的产品
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,视频通用资源包5000点
视觉智能开放平台,图像通用资源包5000点
简介: 本文介绍了如何使用 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可以根据自己训练后的模型质量进行适当的调整。最后就是路径一定要正确,否则会出错。

相关文章
|
1月前
|
机器学习/深度学习 人工智能 算法
智创 AI 新视界 -- 提升 AI 推理速度的高级方法(16 - 2)
本文深度聚焦提升 AI 推理速度,全面阐述模型压缩(低秩分解、参数量化)、硬件加速(GPU、TPU)及推理算法优化(剪枝感知推理、动态批处理)。结合图像识别等多领域案例与丰富代码示例,以生动形象且专业严谨的方式,为 AI 从业者提供极具价值的技术指南,助力突破 AI 推理速度瓶颈,实现系统性能跃升。
如何调整 YOLOv3 的 NMS 参数以优化检测性能?
如何调整 YOLOv3 的 NMS 参数以优化检测性能?
|
4月前
|
机器学习/深度学习 编解码 异构计算
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 ICCV 2023的EfficientViT 用于高分辨率密集预测的多尺度线性关注
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 ICCV 2023的EfficientViT 用于高分辨率密集预测的多尺度线性关注
211 11
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 ICCV 2023的EfficientViT 用于高分辨率密集预测的多尺度线性关注
|
4月前
|
图形学
Unity 使用VideoPlayer播放视频,实现播放,暂停,快进的效果
该UI搭建流程包括创建Render Texture和RawImage,添加Video Player组件并设置Target Texture与Video Clip。通过Event Trigger组件为滑动条添加拖拽事件,控制视频播放进度。代码实现中,`ShuiWenZhiShiButton`类管理视频播放、暂停、进度条更新及时间显示功能,并通过按钮切换不同视频。测试时可验证各功能是否正常运作。
|
机器学习/深度学习 Ubuntu Linux
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)-1
计算机视觉+深度学习+机器学习+opencv+目标检测跟踪+一站式学习(代码+视频+PPT)
|
11月前
|
自然语言处理 监控 自动驾驶
大模型在自然语言处理(NLP)、计算机视觉(CV)和多模态模型等领域应用最广
【7月更文挑战第26天】大模型在自然语言处理(NLP)、计算机视觉(CV)和多模态模型等领域应用最广
552 11
|
10月前
|
机器学习/深度学习 并行计算 PyTorch
ONNX 优化技巧:加速模型推理
【8月更文第27天】ONNX (Open Neural Network Exchange) 是一个开放格式,用于表示机器学习模型,使模型能够在多种框架之间进行转换。ONNX Runtime (ORT) 是一个高效的推理引擎,旨在加速模型的部署。本文将介绍如何使用 ONNX Runtime 和相关工具来优化模型的推理速度和资源消耗。
4471 4
|
机器学习/深度学习 搜索推荐 计算机视觉
【阿里云OpenVI-人脸感知理解系列之人脸识别】基于Transformer的人脸识别新框架TransFace ICCV-2023论文深入解读
本文介绍 阿里云开放视觉智能团队 被计算机视觉顶级国际会议ICCV 2023接收的论文 "TransFace: Calibrating Transformer Training for Face Recognition from a Data-Centric Perspective"。TransFace旨在探索ViT在人脸识别任务上表现不佳的原因,并从data-centric的角度去提升ViT在人脸识别任务上的性能。
2647 341
|
机器学习/深度学习 传感器 算法
目标检测+车道线识别+追踪+测距(代码+部署运行)
目标检测+车道线识别+追踪+测距(代码+部署运行)
|
计算机视觉 C++
【OpenCv • c++】图像识别边缘检测 图像差分运算
【OpenCv • c++】图像识别边缘检测 图像差分运算
504 0