OpenVINO ToolKit深度学习部署框架系统化介绍
一:OpenVINO框架概述与产生背景
OpenVINO ToolKit是英特尔发布的一套支持快速开发视觉、语音识别、自然语言处理应用开的框架,受益于人工智能技术的快速发展,框架采用了最新的人工智能神经网络包括卷积神经网络、循环神经网络、注意力机制网络等模型。实现视觉与非视觉任务的底层硬件加速、达到最佳性能。支持人工智能应用从云端到边缘的部署与推理全链路技术。OpenVINO ToolKit主要功能包含:
1)在边缘侧支持卷积神经网络的推理加速
2)支持在英特尔CPU、HD卡、NCS2、FPGA等设备上的混合执行/异构计算执行
3)通过大量的预训练模型库做到加速从产品原型到市场化的过程
4)支持传统的计算机视觉标准库中的操作包括OpenCV、OpenCL等
人工智能应用/模型的开发主要分为两个阶段,在第一个阶段中,我们会选择采集数据、制作标准的数据集,生成训练数据;选择合适的网络模型,调整模型的架构与大小,输入与输出,然后使用数据集来训练模型;最终得到一个合格网络模型。在第二阶段中,我们会尝试对模型进行转换与优化模型内部的计算方式,然后部署到适当的硬件上以期待达到模型推理时候的最佳性能(速度与精度)。相比第一阶段,考虑到硬件成本等因素影响,第二阶段更为重要,它决定模型最终是否可以实现商业目标,带来商业价值。英特尔发布的开源版本OpenVINO ToolKit支持从云端到端侧的模型部署,通过自身人工智能技术优势着力解决人工智能落地环节的商业痛点。
图1(来自OpenVINO官网)
二:OpenVINO框架支持的功能与组件模块
OpenVINO ToolKit工具包中包括以下主要的功能模块与组件模型,这些功能模块与组件模型可以帮助开发者快速的了解OpenVINO的主要功能,应用场景,技术路线等,下面就是它们的详细介绍与说明:
深度学习模型优化器(DeepLearning Model Optimizer)
跨平台的命令行工具包支持导入来自主流的深度学习框架的模型,模型文件可能来自tensorflow、pytorch、caffe、MXNet、ONNX等深度学习框架与工具生成。模型优化器支持对导入模型的转换、优化、导出中间格式文件。
深度学习推理引擎(Deep Learning Inference Engine)
一个统一的API接口层,支持对深度学习模型的高效推理,支持跨操作系统、多种底层硬件的异构模式推理计算,这些硬件包括IntelCPU、Intel集成显卡、NCS2计算棒、VPU、FPGA等。
推理引擎样例(Inference Engine Sample)
一系列的示例代码文件,通过控制台运行演示了如何在第三方应用中集成推理引擎开发。
深度学习工作台(DeepLearning Workbench)
一个基于WEB端的智能化图形交互界面,允许你更加灵活的尝试OpenVINO提供各种组件功能。
后训练优化工具(Post-TrAIning Optimizationtool)
一个验证与执行量化INT8精度的工具,此功能包含在模型优化器命令行文件夹下面。
开放的模型库(Open Model Zoo)
该部分主要有三个部分,其中第一部分是Demos教程,主要包括Python与C++的SDK教程,教程主要涉及计算机视觉与语音识别相关的内容。教你如何在自己应用中通过统一API接口集成推理引擎功能。第二部分与第三部分都是模型,分别是intel提供与其它公开支持OpenVINO部署推理的public模型,提供的模型总数超过240+,对很多常见的视觉任务我们都无需再训练模型,直接使用模型通过推理引擎部署即可,需要注意的是public部分的模型,需要开发者自己首先转换为IR格式中间文件,才可以通过推理引擎部署调用。
OpenCV
支持传统视觉算法处理的OpenCV开发框架,支持各种图像与视频文件的读写,预处理与推理引擎输出的后处理,图像与图形绘制等。
此外最新版本OpenVINO2021.3还发布了扩展模块支持,支持模型在ARM上的加速推理,支持pytorch模型一键转换为IR格式等功能,进一步扩大了OpenVINO开发者生态。
三:安装与学习OpenVINO ToolKit
当前OpenVINO的开发包可以直接通过官方网站下载,下载地址如下:
https://software.intel.com/content/www/us/en/develop/tools/openvino-toolkit/download.html
选择适配的操作系统,然后注册登记完成就可以免费下载使用!此外如果你是一个高阶的开发者,你还可以通过github上下载源码,自己编译完成开发配置。OpenVINO在github的主页地址如下:
https://github.com/OpenVINO ToolKit/openvino
假设你是一个初次接触OpenVINO的小白,在Windows系统下你只需要跟随下面几步就可以完成OpenVINO的安装与测试程序运行。在开始安装之前首先要确保你已经成功安装了下面版本的软件:
VS2015/VS2017/VS2019
Python3.6.5/Python3.7/Python3.864bit
CMake3.17以上
Windows1064bit
然后你首先需要下载好OpenVINO2021.2/OpenVINO2021.3版本,然后双击安装文件,运行截图如下:
图2
这个时候你只需要点击【Next】按钮就可以完成默认安装。安装完成之后默认的安装路径为:
C:ProgramFiles(x86)Intelopenvino_2021.2.185(%install_dir%)
在安装目录下执行如下脚本:
图3
然后切换到演示目录下,执行下面的脚本文件:
运行结果显示如下:
看到这个界面,恭喜你OpenVINO安装成功了,下面就是要解决如何把这样一个推理引擎演示程序集成到你的应用中去。这个时候作为开发者,你需要学习下面的三个首要模块才有可能完成集成,它们是:
模型优化器(MO):
负责模型转换、优化与中间层格式导出
中间层表示(IR):
模型优化器的输出内容,该格式可以更好的被Intel的硬件理解与加速达到最佳性能。
推理引擎(IE):
一套统一的开发SDK库接口,可以适配加载IR格式的模型文件并高效执行推理。
怎么样,是不是迫不及待想要知道如何使用OpenVINO框架提供这些首要组件?我们将会在下一篇的文章更加详细的分享。
如果你对OpenVINO的安装与开发感兴趣,或者遇到任何问题,欢迎关注OpenVINO中文社区,寻求我们技术自愿者的答疑与帮助。