1.1 OpenVINOTMTM 安装环境
OpenVINOTMTM 是一款依赖计算机或智能设备硬件的模型推理部署套件,在边缘启用基于 CNN 的深度学习推理,支持跨英特尔® CPU、英特尔® 集成显卡、英特尔® 神经计算棒 2 和英特尔® 视觉加速器设计与英特尔® MovidiusTM VPU 的异构执行。此处我们介绍在Windows平台上的安装和使用。
由于OpenVINOTMTM 是一款依赖计算机或智能设备硬件的模型推理部署套件,因此它可以在自家的设备上很好的运行,经过测试,在Windows平台上,非 intel CPU设备也可以运行OpenVINOTMTM,例如AMD推出的CPU,此处安装使用的设备为AMD R7-5800H;对于显卡设备不支持英伟达等其他显卡,仅支持英特尔自家显卡。
友情提醒
在导出ONNX格式模型后,可以使用Netron可视化网络结构,明确网络的输入、输出名称以及尺寸,为推理作准备!
导出时可以指定input&output name,尤其是多输出模型,这样在推理后可以推理请求中根据name获取结果;
实际上,OpenVINO 2022支持自动获取输入、输出节点名称!!单输入、单输出的模型可以放心交给API,而多输出模型也可以像旧版本一样通过name获取,也可以通过输出编号获取结果。
2022版本加载模型提供了两种模式分别是read_model与compile_model方式,这两种方式得到分别是model跟compiled model,其中通过read_model方式读取的model对象可以通过compile_model函数转换为compiled model,同时它们都支持直接访问属性获取输入与输出层信息(inputs/outputs)
然后重启VS2019,执行如下代码测试:
#include <openvino/openvino.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
// 创建IE插件, 查询支持硬件设备
ov::Core ie;
vector<string> availableDevices = ie.get_available_devices();
for (int i = 0; i < availableDevices.size(); i++) {
printf("supported device name : %s \n", availableDevices[i].c_str());
}
return 0;
}