【推理技巧】OpenVINO2024 C++ 模型部署技巧合集

💡 原文中文,约4700字,阅读约需12分钟。
📝

内容提要

《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对象。

🏷️

标签

➡️

继续阅读