【推理技巧】OpenVINO2024 C++ 模型部署技巧合集
内容提要
《OpenCV应用开发:入门、进阶与工程化实践》介绍了OpenVINO的使用方法,包括创建推理请求、导出IR格式模型、图像预处理和推理预测。推荐使用OpenVINO2022及以上版本的C++ SDK,支持动态输入和输出层的模型。同时,还介绍了使用OpenCV函数进行图像预处理和推理预测的方法。
关键要点
-
《OpenCV应用开发:入门、进阶与工程化实践》介绍了OpenVINO的使用方法。
-
推荐使用OpenVINO2022及以上版本的C++ SDK,支持动态输入和输出层的模型。
-
导入OpenVINO头文件只需一行代码。
-
创建推理请求有三种方式,针对固定输入输出层的模型只需三行代码。
-
支持动态输入的模型需要设置输入维度后再创建推理请求。
-
OpenVINO支持脚本方式导出XML的IR格式文件,使用简单。
-
OpenVINO提供自己的图像预处理方式,也可以使用OpenCV的blobFromImage函数。
-
OpenVINO C++ SDK支持同步和异步两种推理模式,异步模式支持Callback。
-
从Mat创建Tensor对象时,输入格式为NHWC可以简化代码。
-
将推理预测结果Tensor转换为OpenCV Mat对象的过程简单明了。
延伸问答
如何导入OpenVINO的C++ SDK头文件?
只需一行代码:# include <openvino/openvino.hpp>
创建推理请求的基本步骤是什么?
针对固定输入输出层的模型,只需三行代码即可创建推理请求。
OpenVINO支持哪些推理模式?
OpenVINO C++ SDK支持同步和异步两种推理模式,异步模式还支持Callback。
如何导出IR格式模型?
可以使用脚本方式导出XML的IR格式文件,代码示例如下:ov_model = ov.convert_model(...)
如何进行图像预处理?
可以使用OpenVINO的预处理方式或OpenCV的blobFromImage函数进行图像预处理。
从Mat创建Tensor对象时有什么简化方法?
如果输入格式为NHWC,可以简化代码,只需一行代码即可创建Tensor对象。