“独立”OpenVINO R2019_2 版本中的“super_resolution_demo”例子的,解决由于 R2019_1到R2019_2 升级造成的问题
Posted jsxyhelu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“独立”OpenVINO R2019_2 版本中的“super_resolution_demo”例子的,解决由于 R2019_1到R2019_2 升级造成的问题相关的知识,希望对你有一定的参考价值。
OpenVINO提供了丰富的例子,为了方便研究和使用,我们需要将这些例子由原始的demo目录中分离出来,也就是“独立”运行,这里我们选择了较为简单的super_resolution_demo来说明问题并标注重点;另一方面,由于OpenVINO升级比较快,在一些细节的也有较多修改,由于版本升级带来的问题需要注意,这里也进行了适当梳理。
本篇博客的前提是“windows平台,并且已经成功在vs2017跑通OpenVINO的例子”。如果这个条件不符合可以参考官方文档和其他资料。
一、“独立”OpenVINO R2019_2 版本中的“super_resolution_demo”例子的
官方例子的名称为:super_resolution_demo
我们创建的例子名称为:GOVINO_REBUILD
1、创建console程序 GOVINO_REBUILD
1、创建console程序 GOVINO_REBUILD
![技术图片](https://image.cha138.com/20210707/d60f7a92784f444badec54440f7bf944.jpg)
需要注意,下面的操作都是64位的,首先我们做的是Debug模式
![技术图片](https://image.cha138.com/20210707/dc4d7be602284c268e0b7454286f690f.jpg)
2、观察原例子中的头文件,打开 "常规"->"附加包含目录",这些都是我们需要的(并且已经在机器中正确部署)
![技术图片](https://image.cha138.com/20210707/233ac1ed5d094e98803f22864020a98d.jpg)
其中,gflags和formatreader这个2个库要特别去掉,因为我们去除了gflags的繁琐判断
![技术图片](https://image.cha138.com/20210707/9b40196ee8e34f649a2fea6ebed5486d.jpg)
![技术图片](https://image.cha138.com/20210707/8570f46ffc9b4ab8aad2d8ee5d386539.jpg)
成功后应该是这样
![技术图片](https://image.cha138.com/20210707/38c6a6b983a74fb4bcd266cffc20d17a.jpg)
3、打开原例子中 "链接器"->"输入"->"附加依赖项“,这些都是我们需要的(并且已经在机器中正确部署)
![技术图片](https://image.cha138.com/20210707/1f816ab1323b493a9ca04a476f67f18e.jpg)
其中,关于format_reader和gflags的依然是可以去掉,特别要注意cpu_extension.lib的位置要指定正确。
![技术图片](https://image.cha138.com/20210707/a48fa425aa9342d9baa6ae2bc0140363.jpg)
上图是修改后的样子,需要注意的是这里的配置是可以直接拷贝的。
4、项目 =》属性 =》c/c++ =》预处理器=》点击预处理器定义,编辑,加入_CRT_SECURE_NO_WARNINGS![技术图片](https://image.cha138.com/20210707/d73e9237c6f34671a016b6296e53c111.jpg)
![技术图片](https://image.cha138.com/20210707/d73e9237c6f34671a016b6296e53c111.jpg)
5、将原目录(而不是生成的目录)下的main.cpp和super_resolution_demo.h拷贝到新项目中去(这步也可以不做而直接转第6步)
![技术图片](https://image.cha138.com/20210707/65ccce39925648da94f230b60af46f1e.jpg)
并且添加到现有项中去
![技术图片](https://image.cha138.com/20210707/bead2f33e25b4af2bb9675eaca6a357c.jpg)
这个时候,可以尝试来运行了,肯定会报错的
![技术图片](https://image.cha138.com/20210707/20df923d7fd3483383d70ce979ced3f5.jpg)
将gflags和format_reader_ptr相关的东西去掉。
而后你还需要界面很多参数调整的问题,最后将整个结果运行成功。
6、或者你可以直接来使用GOVINO.cpp,这是经过我简化的“super_resolution_demo”
直接引入GOVINO.cpp(可以将main.cpp和super_resolution_demo.h删除)
![技术图片](https://image.cha138.com/20210707/3c47687359db4650882084195d323637.jpg)
根据提示,添加
![技术图片](https://image.cha138.com/20210707/b93acc0a025b4e0f88adcbd43b5a2391.jpg)
7、最后开始运行
如果报这个错误,我们应该知道如何解决
![技术图片](https://image.cha138.com/20210707/1eaf9a01cfd24ebeb260256dc09c69e5.jpg)
解决方法有两种,或者是将这里的包含cpu_extension.dll的目录包含到Path中去,
或者是找到正确的,拷贝到一起,注意我们是将全部dll都拷贝过来的
![技术图片](https://image.cha138.com/20210707/b6332896c7a94ce78b79724fb26ee331.jpg)
这个时候,已经开始可以进入调试。但是你仍然可能会遇到一些问题,参考第2部分。
![技术图片](https://image.cha138.com/20210707/c8a10d9b24304b89aaef4163d12e7aac.jpg)
二、解决由于 R2019_1到R2019_2 升级造成的问题
1、首先明确一下目前发现的R2019_1和R2019_2两个版本在语法方面的不同,发现两处
一个是在R2019_1中在调入plugin的地方(天龙8步第1步)被改写为Core ie;
![技术图片](https://image.cha138.com/20210707/9030c6d4f92344bd910398de5271f8f0.jpg)
二个是R2019_2的第4步,ie.LoadNetwork中,
ie.LoadNetwork(network, "CPU");
需要将”CPU"写清楚,这个在R2019_1中是可以省略的。
![技术图片](https://image.cha138.com/20210707/c5150c2f0f2e4b1ab1724a0928f69cf0.jpg)
2、容易问题的地方和解决提示
出现问题的原因大多是因为系统中安装了多个版本的OpenVINO,DLL文件混乱,比如出现下图这种错误
![技术图片](https://image.cha138.com/20210707/1e8861fcb9144b4b81983321d8bdd050.jpg)
这里是一些提示
1、程序的目录不要放在有空格和中文的地方
虽然OpenVINO中没有明确说明这个问题,但是这的确是非常容易出现问题的地方:
比如下图中,我通过Depends进行比较,就发现了一些问题
![技术图片](https://image.cha138.com/20210707/9e9599d6ed96470fbb60d56630162dfa.jpg)
2、使用工具、系统思考分析问题原因
![技术图片](https://image.cha138.com/20210707/1e8861fcb9144b4b81983321d8bdd050.jpg)
比如这里出现的问题,程序是可以生成的,但是在Core ie 生成的时候错误,那么我就要去找,Core是什么东西,它来自于inferencePlugin,那么肯定就是cpu_extension.dll 或者 inference_engined.dll 这些库的问题;在使用Depends进行寻找,进一步分析问题。
这篇博客中肯定还有很多分析不到位的地方,欢迎留言交流!
感谢阅读至此,希望有所帮助!
以上是关于“独立”OpenVINO R2019_2 版本中的“super_resolution_demo”例子的,解决由于 R2019_1到R2019_2 升级造成的问题的主要内容,如果未能解决你的问题,请参考以下文章
入坑Intel OpenVINO:记录一个示例出错的原因和解决方法
Win10+VS2015+Openvino2019R1安装教程