C++中使用OpenVino进行模型推理
什么是OpenVino
OpenVino和TensorRT类似,是硬件厂商针对自家的硬件平台开发的一套深度学习工具库,包含推断库,模型优化等等一系列与深度学习模型部署相关的功能。通俗易懂点说想要在intel-cpu或者嵌入式上部署深度学习模型,之前你使用libtorch或者tvm,这个时候可以考虑考虑openvino,其针对intel的多代cpu以及其他硬件平台做了针对的优化。
OpenVino的安装和配置
OpenVino的安装按照官方流程来就可以了,简单快捷,就是一个已经编译好的库和一些头文件以及文档。可以参考https://blog.csdn.net/weixin_45392674/article/details/126342377。
OpenVino的推理
看看工作流程,其实和TensorRT以及其他的部署工具都差不多,训练好模型,解析成openvino专用的.xml和.bin,随后传入Inference Engine中进行推理。这里使用一个边缘提取模型DexiNed进行测试。
#include"openvino/openvino.hpp"
#include<string>
#include<time.h>
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
std::string DEVICE = "GPU";
std::string onnx_path = "./DexiNed_1088.xml";
std::string imageFile = "./Datas/lena.jpg";
int main()
{
ov::Core ie;
vector<string> availableDevices = ie.get_available_devices();
for (int i = 0; i < availableDevices<