一、Onnxruntime
1.将DNN模型转换成ONNX格式
1.1pytorch->onnx
待补充。。。1.2 tensorflow->onnx
1.2.1搭建环境
1.2.1.1安装tf2onnx
pip install tf2onnx1.2.2python示例
2.写c++代码加载onnx文件进行推理
2.1配置环境
2.1.1下载onnxruntime并解压
网址https://github.com/microsoft/onnxruntime/releases/tag/v1.12.02.1.2打开vs新建项目——>右击点击属性——>C/C++属性,添加解压后的include文件路径,注意配置平台的选择。
2.1.3点击链接器——>附加库目录,添加解压后的lib文件路径。
2.1.4点击输入——>附加依赖项,将onnxruntime.lib添加进去。
2.1.5将onnxruntime.dll放入到项目的Debug或Release下
2.2c++示例
3.将第2步的c++代码打包动态库
3.1新建DLL项目
3.2添加.h
和.cpp
3.3修改类的头文件
3.4将预编译头设置为"不使用预编译头"。
3.5配置onnxruntime环境:2.1.2 ---> 2.1.5
3.6生成解决方案
4.外部调用dll
4.1配置环境
4.1.1将onnxruntime.dll,onnxruntime.lib,RposDetectOnnxDll.dll,RposDetectOnnxDll.lib,118-1.7406e-04.onnx(onnx格式文件),DetectRpeak.h(类头文件)拷贝出来,放在一个文件夹内temp
4.1.2打开vs新建项目——>右击点击属性——>C/C++属性,添加第4.1.1步类头文件路径,注意配置平台的选择。
4.1.3点击链接器——>附加库目录,添加第4.1.1步lib文件路径。
4.1.4点击输入——>附加依赖项,将onnxruntime.lib,RposDetectOnnxDll.lib添加进去。
4.1.5将onnxruntime.dll,RposDetectOnnxDll.dll放入到项目的Debug或Release下
4.2include类头文件调用动态库
二、Openvino
1.将DNN模型转换成Openvino格式
1.1pytorch->onnx->Openvino
待补充。。。1.2 tensorflow->onnx->Openvino
1.2.1搭建环境
1.2.1.1安装openvino
pip install openvino pip install openvino-dev[onnx,tensorflow2]==2022.1.01.2.2.tensorflow->onnx
参照1.2步1.2.3onnx->openvino
2.写c++代码加载openvino文件进行推理
2.1配置环境
2.1.1下载openvino
网址https://www.intel.cn/content/www/cn/zh/developer/tools/openvino-toolkit/download.html2.1.2安装openvino
双击exe根据指引2.1.3设置环境变量
找到openvino的安装目录 在系统环境变量 - path添加openvino的安装目录 C:\Program Files (x86)\Intel\openvino_2022.1.0.643\runtime\3rdparty\tbb C:\Program Files (x86)\Intel\openvino_2022.1.0.643\runtime\bin\intel64\Release2.1.4打开vs新建项目——>右击点击属性——>C/C++属性,添加解压后的include文件路径,注意配置平台的选择。
2.1.5点击链接器——>附加库目录,添加解压后的lib文件路径。
2.1.6点击输入——>附加依赖项,将.lib添加进去(其中openvino.lib必须加入,其它的 lib可以在使用的时候添加,比如使用 ir 文件进行推理,就需要添加openvino_ir_frontend.lib到依赖中)。
2.2c++示例
3.将第2步的c++代码打包动态库
3.1新建DLL项目
3.2添加.h
和.cpp
3.3修改类的头文件
3.4将预编译头设置为"不使用预编译头"。
3.5配置openvino环境:2.1.4 ---> 2.1.6
3.6生成解决方案
4.外部调用dll
4.1配置环境
4.1.1将openvino_2022.1.0.643(openvino所有文件),RposDetectOnnxDll.dll,RposDetectOnnxDll.lib,IR(openvino格式文件),DetectRpeak.h(类头文件)拷贝出来,放在一个文件夹内temp
4.1.2设置环境变量
找到openvino文件夹的目录 在系统环境变量 - path添加openvino的目录:4.1.1步的openvino_2022.1.0.643文件夹 C:\Program Files (x86)\Intel\openvino_2022.1.0.643\runtime\3rdparty\tbb C:\Program Files (x86)\Intel\openvino_2022.1.0.643\runtime\bin\intel64\Release4.1.2打开vs新建项目——>右击点击属性——>C/C++属性,添加第4.1.1步类头文件路径,注意配置平台的选择。
4.1.3点击链接器——>附加库目录,添加第4.1.1步lib文件路径。
4.1.4点击输入——>附加依赖项,将RposDetectOnnxDll.lib添加进去。
4.1.5将RposDetectOnnxDll.dll放入到项目的Debug或Release下
4.2include类头文件调用动态库
三、R点检测算法不同框架性能对比
测试数据时长5小时 | 推理框架库文件大小 | 算法接口库文件大小 | CPU占用率 | 内存占用 | 推理时间 |
onnxruntime | 7.87M | 263KB | 8% | 600M | 230.938s |
openvino | 448M | 66KB | 47% | 1400M | 208.219s |