szjuliet 发表于 2020-6-29 23:39:05

【技术文档】OpenVINO推理引擎示例

本帖最后由 szjuliet 于 2020-6-29 23:39 编辑

原文地址:https://docs.openvinotoolkit.org/latest/_docs_IE_DG_Samples_Overview.html
(翻译过来方便自己查阅)

# 推理引擎示例
推理引擎示例应用是简单的控制台应用,显示了如何在应用中利用特定的推理引擎功能,帮助开发人员执行特定的任务,例如加载模型、运行推理、查询特定的设备功能等。

安装英特尔®OpenVINO™工具套件分发版后,С、C++和Python 示例应用分别在以下目录中:

+ `<INSTALL_DIR>/inference_engine/samples/c`
+ `<INSTALL_DIR>/inference_engine/samples/cpp`
+ `<INSTALL_DIR>/inference_engine/samples/python`

推理引擎示例应用包括:

+ **[自动语音识别C++示例](https://docs.openvinotoolkit.org/latest/_inference_engine_samples_speech_sample_README.html)** – 基于Kaldi神经网络和语音特征向量的声学模型推理
+ **基准应用** – 在支持的设备上为同步和异步模式预估深度学习推理性能
+ [基准C++应用](https://docs.openvinotoolkit.org/latest/_inference_engine_samples_benchmark_app_README.html)
+ [基准Python应用](https://docs.openvinotoolkit.org/latest/_inference_engine_tools_benchmark_tool_README.html)
+ **Hello分类示例** – 使用同步推理请求API的图像分类网络(如AlexNet和GoogLeNet)的推理。可以将任何大小和布局的输入设置为推理请求,该推理请求将在推理过程中自动进行预处理(该示例仅支持将图像作为输入,并支持Unicode路径)。
+ (https://docs.openvinotoolkit.org/latest/_inference_engine_samples_hello_classification_README.html)
+ (https://docs.openvinotoolkit.org/latest/_inference_engine_ie_bridges_c_samples_hello_classification_README.html)
+ **Hello NV12输入分类示例** – 可以将任何大小和布局的输入提供给推理请求。该示例将输入转换为NV12颜色格式,并在推理过程中对其进行自动预处理。该示例仅支持图像作为输入。
+ (https://docs.openvinotoolkit.org/latest/_inference_engine_samples_hello_nv12_input_classification_README.html)
+ (https://docs.openvinotoolkit.org/latest/_inference_engine_ie_bridges_c_samples_hello_nv12_input_classification_README.html)
+ **Hello查询设备示例** – 查询可用的推理引擎设备及其度量、配置值。
+ (https://docs.openvinotoolkit.org/latest/_inference_engine_samples_hello_query_device_README.html)
+ (https://docs.openvinotoolkit.org/latest/_inference_engine_ie_bridges_python_sample_hello_query_device_README.html)
+ **(https://docs.openvinotoolkit.org/latest/_inference_engine_samples_hello_reshape_ssd_README.html)** – 根据一个输入尺寸由ShapeInfer API调整SSD网络的推理尺寸。
+ **图像分类示例异步** – 使用异步推理请求API的图像分类网络(如AlexNet和GoogLeNet)的推理(该示例仅支持图像作 为输入)。
+ [图像分类C++示例异步](https://docs.openvinotoolkit.org/latest/_inference_engine_samples_classification_sample_async_README.html)
+ [图像分类Python示例异步](https://docs.openvinotoolkit.org/latest/_inference_engine_ie_bridges_python_sample_classification_sample_async_README.html)
+ **[图像分类Python示例](https://docs.openvinotoolkit.org/latest/_inference_engine_ie_bridges_python_sample_classification_sample_README.html)** – 使用同步推理请求API推理图像分类网络(如AlexNet和GoogLeNet)(该示例仅支持图像作为输入)。
+ **神经风格迁移示例** – 样式转移示例(该示例仅支持图像作为输入)。
+ [神经风格迁移C++示例](https://docs.openvinotoolkit.org/latest/_inference_engine_samples_style_transfer_sample_README.html)
+ [神经风格迁移Python示例](https://docs.openvinotoolkit.org/latest/_inference_engine_ie_bridges_python_sample_style_transfer_sample_README.html)
+ **(https://docs.openvinotoolkit.org/latest/_inference_engine_samples_ngraph_function_creation_sample_README.html)** – 使用nGraph函数创建示例构建LeNet网络。
+ **对象检测SSD示例** – 基于SSD的对象检测网络推理,此示例是简化版本,仅支持图像作为输入。
+ [对象检测C++示例SSD](https://docs.openvinotoolkit.org/latest/_inference_engine_samples_object_detection_sample_ssd_README.html)
+ [对象检测 C示例SSD](https://docs.openvinotoolkit.org/latest/_inference_engine_ie_bridges_c_samples_object_detection_sample_ssd_README.html)
+ [对象检测Python示例SSD](https://docs.openvinotoolkit.org/latest/_inference_engine_ie_bridges_python_sample_object_detection_sample_ssd_README.html)

## **可用于示例的素材**
要运行示例应用,可以使用(https://github.com/intel-iot-devkit/sample-videos)中收集的图像和视频。

## **支持预训练模型的示例**
可以使用OpenVINO [模型下载器](https://github.com/opencv/open_model_zoo/tree/2018/model_downloader)或从(https://download.01.org/opencv/)下载[预训练的模型](https://docs.openvinotoolkit.org/latest/_models_intel_index.html)。

## **构建示例应用**
### 在Linux上构建示例应用
官方支持的Linux构建环境如下:

+ Ubuntu 16.04 LTS 64位或CentOS 7.4 64位
+ GCC 5.4.0(对于Ubuntu 16.04)或GCC 4.8.5(对于CentOS 7.4)
+ CMake 2.8或更高版本

要为Linux构建C或C ++示例应用,请分别转到`<INSTALL_DIR>/inference_engine/samples/c`或`<INSTALL_DIR>/inference_engine/samples/cpp`目录,然后运行`build_samples.sh`脚本:

```
build_samples.sh
```
构建完成后,你可以在以下文件夹中找到示例的二进制文件:

+ C语言示例: `~/inference_engine_c_samples_build/intel64/Release`
+ C ++示例: `~/inference_engine_cpp_samples_build/intel64/Release`

你还可以手动构建示例应用:

> **注意**:如果你已以root用户身份安装产品,请先切换到root模式,然后再继续:`sudo -i`

1. 转到具有写访问权限的目录,并创建示例构建目录。本示例使用名为`build`的目录:
```
mkdir build
```
> **注意**:如果在安装过程中运行了图像分类验证脚本,则C++示例构建目录已在你的主目录中创建:`~/inference_engine_samples_build/`

2. 转到创建的目录:
```
cd build
```
3. 运行CMake生成用于release或debug配置的Make文件。例如,对于C ++示例:
+ 对于release 配置:
```
cmake -DCMAKE_BUILD_TYPE=Release <INSTALL_DIR>/inference_engine/samples/cpp
```
+ 对于debug配置:
```
cmake -DCMAKE_BUILD_TYPE=Debug <INSTALL_DIR>/inference_engine/samples/cpp
```
4. 运行make以构建示例:
```
make
```
对于release 配置,示例应用的二进制文件位于`<path_to_build_directory>/intel64/Release/`中;对于debug配置 — 在`<path_to_build_directory>/intel64/Debug/`中。

## 在Microsoft Windows操作系统上构建示例应用
推荐的Windows 构建环境如下:

+ Microsoft Windows 10
+ Microsoft Visual Studio 2015、2017或2019
+ CMake 2.8或更高版本
> **注意**:如果要使用Microsoft Visual Studio 2019,则需要安装CMake 3.14。

要在Windows上构建C或C++示例应用,请分别转到`<INSTALL_DIR>\inference_engine\samples\c`或`<INSTALL_DIR>\inference_engine\samples\cpp`目录,然后运行`build_samples_msvc.bat`批处理文件:
```
build_samples_msvc.bat
```
默认情况下,该脚本会自动检测计算机上安装的最高Microsoft Visual Studio版本,并使用它来创建和构建示例代码的解决方案。你还可以根据需要指定脚本要使用的首选Microsoft Visual Studio版本。支持的版本是VS2015,VS2017和VS2019。例如,要使用Microsoft Visual Studio 2017生成C ++示例,请使用以下命令:

```
<INSTALL_DIR>\inference_engine\samples\cpp\build_samples_msvc.bat VS2017
```
构建完成后,你可以在以下文件夹中找到示例的二进制文件:

+ C语言示例: `C:\Users\`
`<user>\Documents\Intel\OpenVINO\inference_engine_c_samples_build\intel64\Release`
+ C ++示例: `C:\Users\`
`<user>\Documents\Intel\OpenVINO\inference_engine_cpp_samples_build\intel64\Release`
你也可以手动构建生成的解决方案。例如,如果要在Debug配置中构建C++示例的二进制文件,请运行相应版本的Microsoft Visual Studio,然后从`C:\Users\<user>\Documents\Intel\OpenVINO\inference_engine_cpp_samples_build\Samples.sln`目录中打开生成的解决方案文件。

## **准备就绪来运行示例应用**
### 准备在Linux 上运行示例应用
在运行编译的二进制文件之前,请确保你的应用可以找到推理引擎和OpenCV库。运行`setupvars`脚本以设置所有必需的环境变量:
```
source <INSTALL_DIR>/bin/setupvars.sh
```
**可选**:关闭shell时,会删除OpenVINO环境变量。你可以如下永久设置环境变量:

1. 在`<user_home_directory>`中打开`.bashrc`文件:
```
vi <user_home_directory>/.bashrc
```
2. 将此行添加到文件末尾:
```
source /opt/intel/openvino/bin/setupvars.sh
```
3. 保存并关闭文件:按**Esc**键,键入`:wq`并按**Enter**键。
4. 要测试你的更改,请打开一个新终端。你会看到` OpenVINO environment initialized`。
你已准备好运行示例应用。要了解有关如何运行特定的示例,请通过单击上方示例列表中的示例名称来阅读示例文档。

### 准备在Windows上运行示例应用
在运行编译好的二进制文件之前,请确保你的应用可以找到推理引擎和OpenCV库。使用`setupvars`脚本来设置所有必要的环境变量:
```
<INSTALL_DIR> \ bin \ setupvars.bat
```
要在Windows中的Microsoft Visual Studio调试或运行示例,请确保已为**Debug**和**Release**配置正确配置了**Debugging**环境设置。为OpenCV库、推理引擎库的debug和releaser版本设置了正确的路径。例如,对于**Debug** 配置,转到项目的**Configuration Properties 配置属性**的**Debugging **目录,然后将**Environment **字段中的`PATH`变量设置为以下内容:
```
PATH=<INSTALL_DIR>\deployment_tools\inference_engine\bin\intel64\Debug;<INSTALL_DIR>\opencv\bin;%PATH%
```
`<INSTALL_DIR>`是OpenVINO工具套件的安装目录。

你已经准备好来运行示例应用。要了解有关如何运行特定示例的信息,请通过单击上方示例列表中的示例名称来阅读示例文档。

## **还可参阅**
[英特尔深度学习推理引擎简介](https://docs.openvinotoolkit.org/latest/_docs_IE_DG_Introduction.html)




页: [1]
查看完整版本: 【技术文档】OpenVINO推理引擎示例