2025年onnx模型部署openvino 封装dll(onnx模型部署 python)

onnx模型部署openvino 封装dll(onnx模型部署 python)OpenVINOTM 工具套件 2022 1 版于 2022 年 3 月 22 日正式发布 与以往版本相比发生了重大革新 提供预处理 API 函数 ONNX 前端 API AUTO 设备插件 并且支持直接读入飞桨模型 在推理中中支持动态改变模型的形状 这极大地推动了不同网络的应用落地 2022 年 9 月 23 日 OpenVINOTM 工具套件 2022 2 版推出 对 2022 1 进行了微调 以包括对英特尔最新 CPU

大家好,我是讯享网,很高兴认识大家。



 OpenVINOTM工具套件2022.1版于2022年3月22日正式发布,与以往版本相比发生了重大革新,提供预处理API函数、ONNX前端API、AUTO 设备插件,并且支持直接读入飞桨模型,在推理中中支持动态改变模型的形状,这极大地推动了不同网络的应用落地。2022年9月23日,OpenVINOTM 工具套件2022.2版推出,对2022.1进行了微调,以包括对英特尔最新 CPU 和离散 GPU 的支持,以实现更多的人工智能创新和机会。

 此处选用OpenVINOTM 2022.2 版本,对于Python本,我们可以直接使用PIP命令安装。建议使用Anaconda 创建虚拟环境安装,对于最新版,在创建好的虚拟环境下直接输入以下命令进行安装:

 安装过程中如出现下载安装包错误以及网络等原因时,可以重新运行安装命令,会继续上一次的安装。

 此处由于只进行PP-YOLOE模型推理,所以只简单地封装一下Predictor类:主要包括初始化函数,负责读取本地模型并加载到指定设备中;获取输入输出名称函数以及模型预测函数。

 根据 PP-YOLOE模型输入要求,处理图片数据,主要包括图片通道转换、图片缩放、转换矩阵、数据归一化以及增加矩阵维度。按照PP-YOLOE模型输入设置,归一化方式是直接将像素点除255,将输入数据整合到0~1之间,加快模型的计算。PP-YOLOE模型ONNX格式只支持bath_size=1的推理,所以最后将数据矩阵维度直接增加一个维度即可。

 由于我们所使用的PP-YOLOE被我们裁剪过,因此模型的输出是未进行处理的结果数据,模型输出节点有两个,一个为预测框输出,一个节点为置信值输出,所以后期需要对输出结果进行处理。


讯享网

 置信度结果输出形状为[1, 80, 8400],而实际80代表的一个预测结果对应的80个类别的置信值,而8400表示有8400个预测结果;而预测框输出结果为形状为[1, 8400, 4],对应了8400个预测结果的预测框,其中4代表预测框的左上顶点预右下顶点的横纵坐标。

 因此结果处理主要包含以下几个方面:

  • 置信度结果转置处理,并提取预测结果最大的类别、预测分数和对应的预测框;
  • 非极大值抑制提取预测框和类别。

 上一步经过结果处理,最终获得预测框、分数以及类别,最后通过OpenCV将预测结果绘制到图片上,主要是一个预测框绘制和分数、类别的书写两步。

 根据模型推理流程,最后调用模型推理类进行实现:

  • 导入相关信息:主要是定义模型地址、待预测图片地址和类别文件;
  • 创建模型预测器:主要初始化预测类,读取本地模型,此处可以读取ONNX模型和IR模型两种格式;
  • 预处理图片:调用定义的图片处理方法,将本地图片数据转为模型推理的数据;
  • 模型推理:将处理好的图片数据加载到模型中,并获取模型推理结果;
  • 处理模型结果:主要是调用结果处理方法实现,如果需要可视化,可以将预测结果绘制到图片中。

小讯
上一篇 2025-04-21 20:50
下一篇 2025-05-27 11:13

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/192302.html