OpenVINO™工具套件 2021 版的发布说明
英特尔® Distribution of OpenVINO™ 工具套件用于快速开发应用程序和解决方案,以解决各种任务(例如:模拟人类视觉、自动语音识别、自然语言处理和推荐系统等)。该工具套件基于最新一代的人工神经网络,包括卷积神经网络 (CNN)、递归网络和基于注意力的网络,可扩展跨英特尔® 硬件的计算机视觉和非视觉工作负载,从而最大限度地提高性能。它通过从边缘到云部署的高性能、人工智能和深度学习推理来为应用程序加速。
本文引用地址:https://www.eepw.com.cn/article/202103/423907.htm英特尔® Distribution of OpenVINO™ 工具套件
支持从边缘到云的深度学习推理。
借助英特尔® CPU、英特尔® 集成显卡、英特尔® Gaussian & Neural Accelerator、英特尔® 神经电脑棒 2、搭载英特尔® Movidius™ 视觉处理器的英特尔® Vision Accelerator Design 的通用 API,支持跨英特尔加速器的异构执行。
通过一套易用的计算机视觉功能库和预优化内核库来加速上市时间。
包括针对 CV 标准进行的调用优化,包括 OpenCV* 和 OpenCL™。
第 2 版发布中的更新和更改
要点综述
将深度学习工作台与英特尔® DevCloud for the Edge 集成以构成 Beta 版本。使用英特尔® DevCloud for the Edge 上的深度学习工作台(而不是仅本地计算机)以图形方式分析模型,从而针对多个远程硬件配置进行解决方案的比较、可视化和微调。
推出对 Red Hat Enterprise Linux (RHEL) 8.2 的支持。有关更多信息,请参阅系统要求。 运行时包可供下载。
在模型优化器中为通过 TensorFlow 量化感知训练进行了量化的模型推出每通道量化支持(包括权重的每通道量化),通过模型压缩和延迟减少提高了性能。
预训练模型和对公共模型的支持,以简化开发:
公共模型:Yolov4(用于对象检测)、AISpeech(用于语音识别)和 DeepLabv3(用于语义分割)
预训练模型:人体姿势估计(更新)、公式识别多项式手写体(新增)、机器翻译(更新)、通用手语识别(新增)和文本语音转换(新增)
全新的 OpenVINO™ 安全插件,通过安全封装和执行来控制对模型的访问。这款全新插件基于 KVM 虚拟机和 Docker* 容器,与 OpenVINO™ 模型服务器兼容,可进行封装以实现灵活部署和受控的模型访问。
PyPI 项目从 openvino-python 迁移到 openvino,2021.1 版将从默认视图中移除。通过使用 openvino-python==2021.1,依赖于该特定版本的用户将仍然可以使用该版本。
模型优化器
常见的变更
更新了对 NumPy 组件的要求,以避免与 TensorFlow 1.x 产生兼容性问题。
借助 Eltwise 和 CTCGreedyDecoder 运算,改进了模型的重塑能力
ONNX*
已支持使用“ --output”命令行参数指定模型输出张量名称的功能。
增加了对以下操作的支持:
Acosh
Asinh
Atanh
DepthToSpace-11、13
DequantizeLinear-10(zero_point 必须为常数)
HardSigmoid-1,6
QuantizeLinear-10(zero_point 必须为常数)
RedueL1-11、13
RedueL2-11、13
Resize-11, 13(除了mode="nearest"(5D+输入),mode="tf_crop_and_resize",以及属性 exclude_outside 和 exclude_outside 使用非零值)。
ScatterND-11、13
SpaceToDepth-11、13
TensorFlow*
增加了在调整图像大小之前应用平均/刻度值时,对使用预处理块的 TensorFlow Object Detection API 模型的支持。此前仅支持在调整大小之后应用平均/标度值的情况。
将采用 FakeQuantize 方法的限值调整与 TensorFlow 方法保持一致
增加了对以下操作的支持:
GatherND
Round
NonMaxSuppression
LogSoftmax
FakeQuantWithMinMaxVarsPerChannel
MXNet*
增加了对以下操作的支持:
GatherND
Round
Kaldi*
增加了对以下操作的支持:
TdnnCompontent
推理引擎
常见变更
移除了 inference_engine_legacy 上的依赖项。自 2021.2 版起,客户的应用程序不直接链接 inference_engine_legacy。inference_engine_legacy 直接通过插件链接。
增加了对具有外部数据文件的 ONNX 模型读取的支持。要读取这些模型,仅需要将 core.ReadNetwork() 方法传入到 ONNX 模型中,外部数据文件将会自动找到并加载。
对于 ONNX 读取器,检测受支持模型的逻辑有所改进。
ONNX 依赖项已更新为 v1.7.0
增加了对 ONNX 函数的支持(运算符列表底部 https://github.com/onnx/onnx/blob/v1.7.0/docs/Operators.md)
改进了有关在 ONNX 载入器中注册自定义运算的文档和示例
setBatchSize 方法现已迁移到重塑方法逻辑中,以更新模型的输入形状。此外,它还应用了对模型中的某些不可重塑模式进行松弛的智能重塑转换。现在可以对同一模型使用 setBatchSize 和重塑方法,不会导致先前版本中的未定义行为。
在 Windows 平台上,推理引擎库在文件属性中拥有新的“详细信息”部分。该部分包含有关动态链接库 (DLL) 的信息,包括库的描述和版本。
废弃 API
ExecutableNetwork::QueryState 方法被 InferRequest::QueryState 方法取代,旧方法被废弃。
IVariableState::GetLastState 方法更名为 IVariableState::GetState,旧名称被废弃
IMemoryState 更名为 IVariableState,旧名称仍可使用,但不推荐
CPU 插件
增加了对新运算的支持:
Loop-5
Round-5
NonMaxSuppression-3, NonMaxSuppression-5
HSigmoid-5
LogSoftmax-5
GatherND-5
为 CTCLoss、Pad、Permute 和 Elementwise 运算实施了多项优化。这些优化改进了客户模型上的 CPU 性能,大幅提高了 Open Model Zoo 范围内的整体性能几何平均值。
增加了对动态输入的 I64/U64 数据类型的支持(通过到 I32 的内部转换)。
改进了状态 API,现在可以用于具有多个并行推理请求的应用程序:
修复了 IVariableState::GetName() 方法的 MKLDNN 插件实施,现在返回变量 ID
在 MKLDNN 插件中增加了对 IVariableState::GetState 的支持
GPU 插件
支持英特尔锐炬® Xe MAX 显卡(原代号为 DG1)
增加了对以下操作的支持:
HSigmoid-5
Round-5
LogSoftMax-5
通过非对称量化改进了 int8 卷积的性能
增加了插件侧的编译内核缓存机制,可使用它代替驱动程序中的 cl_cache。
MYRIAD 插件
增加了针对新操作的支持:
HSwish
GatherND
插补
Ceil
为 Broadcast 运算增加了“双向”模式。
为 Proposal 运算增加了第二个可选输出。
改善了现有操作的性能:
Mish
Swish
NonMaxSuppression
HDDL 插件
与 MYRIAD 插件中相同的新操作和优化。
为 ION 驱动程序启用了对 Linux 内核 5.4 的支持。
GNA 插件
模型导出现在可保存层名称,因此可以在导入之后再次使用。
修复了某些层组合。
nGraph
推出了 opset5。全新 opset 包含以下全新操作。并非所有 OpenVINO™ 工具套件插件都支持这些操作。
BatchNormInference-5
GRUSequence-5
RNNSequence-5
LSTMSequence-5
Loop-5
Round-5
NonMaxSuppression-5
HSigmoid-5
LogSoftmax-5
实施了公共 nGraph 转换:
低延迟
转换展开了 TensorIterator 节点,以在低延迟下对其进行逐步推理,每次推理运算中均存储状态。 转换将迭代次数更改为 1,并使用 ReadValue 和 Assign 运算代替后向边(例如,RNN 状态输入和输出)。 可对 CPU 和 GNA 插件进行该转换。公共 nGraph API 变更:
推出 Sink 类以方便识别属于图形中的“Sinks”(未被任何其他节点使用的节点)的运算。通过“添加/移除 Sinks”的方法扩展了 nGraph Function API。目前,只有 Assign 节点继承自 Sync 类,Result 节点是单独存储的特殊节点,并不是 Sinks。
在与英特尔® Distribution of OpenVINO™ 工具套件集成之前持续清理 nGraph 原始代码库,可移除该工具套件不支持的传统运算。
神经网络压缩框架 (NNCF)
对于单级对象检测的情况,将 NNCF 与 OTE/mmdetection 集成。
发布了面向 PyTorch 的 NNCF v1.5:
切换了默认情况下设置的量化器基于传播的模式(与硬件配置更好集成)。
对 HAWQ 混合精度量化算法实施了改进:压缩比参数支持、激活量化器位宽选择、更通用的损失计算方法。
通过视觉处理器硬件配置为 EltWise 提供统一标度支持。
启用了 GPT2 压缩,在受支持的模型列表中增加了修剪后的 googlenet-v1。
有关功能的详细信息和完整列表,请参阅 NNCF 发布说明。
训练后优化工具
在 POT 配置中引入了模型预设,特别是 Transformer 模型的预设,使 POT 用户可以更轻松地量化这些模型。
改进了 POT 文档,包括量化示例。增加了《常见问题解答》文档。
扩大了模型覆盖范围:额外启用了45 个模型。
深度学习工作台
发行版:深度学习工作台现在可在英特尔® DevCloud for the Edge 中使用
增加了对用于风格迁移、超级分辨率和图像修复用例的 GAN 模型的支持
增加了以 CSV 格式导出分析实验结果的功能
OpenCV*
将版本更新至 4.5.1。
在 VideoCapture API 的 Media SDK (MFX) 后端增加了对宽度/高度属性的支持。
G-API:为推理和流 API 增加了更多 CV 运算和Python 绑定,并为媒体格式支持引入了 MediaFrame 数据类型(例如 NV12)。
示例
语音样本命令行参数中的输入层(用于输入数据文件)和输出层(用于输出和参考文件)顺序现在可以使用新的命令行参数(-iname 和 -oname)明确指定。
Open Model Zoo
使用额外的 CNN 预训练模型和预生成的中间表示 (.xml
+ .bin
) 扩展了 Open Model Zoo:
bert-large-whole-word-masking-squad-fp32-0001 renamed to bert-large-uncased-whole-word-masking-squad-0001
bert-small-uncased-whole-word-masking-squad-int8-0002
bert-small-uncased-whole-word-masking-squad-emb-int8-0001
formula-recognition-polynomials-handwritten-0001-decoder
formula-recognition-polynomials-handwritten-0001-encoder
handwritten-simplified-chinese-recognition-0001
human-pose-estimation-0002
human-pose-estimation-0003
human-pose-estimation-0004
person-detection-0003
text-spotting-0003-detector
text-spotting-0003-recognizer-decoder
text-spotting-0003-recognizer-encoder
替换了 2021.1 模型:
已添加新模型:
最终模型:
对以下模型的支持扩展了公有模型列表:
模型名称 | 任务 | 框架 |
---|---|---|
anti-spoof-mn3 | classification | PyTorch |
cocosnet | image_translation | PyTorch |
colorization-v2 | image_processing | PyTorch |
colorization-siggraph | image_processing | PyTorch |
common-sign-language-0001 | classification | PyTorch |
efficientdet-d0-tf | object_detection | TensorFlow |
efficientdet-d1-tf | object_detection | TensorFlow |
forward-tacotron-duration-prediction | text_to_speech | PyTorch |
forward-tacotron-regression | text_to_speech | PyTorch |
fcrn-dp-nyu-depth-v2-tf | depth_estimation | TensorFlow |
hrnet-v2-c1-segmentation | semantic_segmentation | PyTorch |
mozilla-deepspeech-0.8.2 | speech_recognition | TensorFlow |
shufflenet-v2-x1.0 | classification | PyTorch |
wavernn-rnn | text_to_speech | PyTorch |
wavernn-upsampler | text_to_speech | PyTorch |
yolact-resnet50-fpn-pytorch | instance_segementation | PyTorch |
yolo-v4-tf | object_detection | TensorFlow |
用着色模型的 PyTorch 变体来取代该模型的旧的 Caffe 变体。
增加了新的演示应用:
Python gesture_recognition_demo(代替 asl_recognition_demo)
Python human_pose_estimation_demo(支持新的 human-pose-estimation-0002/3/4 模型)
Python image_translation_demo
Python text to speech demo
Python object_detection_demo(代替 object_detection_demo_centernet、object_detection_demo_faceboxes、object_detection_demo_retinaface、object_detection_demo_ssd_async 和 object_detection_demo_yolov3_async)
C++ object_detection_demo(替换 object_detection_demo_ssd_async 和 object_detection_demo_yolov3_async)
移除了已废弃的 object_detection_demo_faster_rcnn。
Open Model Zoo 工具:
通过支持自定义预转化脚本扩展了 Model Converter,简化了非冻结模型图的转化。
通过覆盖新的任务(基于图像的定位、显著图检测、光流估计、DNA 测序),扩展了 Accuracy Checker。
增加了在 Accuracy Checker 中设置输入精度和获取中间指标结果的命令行选项。
改进了在 Accuracy Checker 中对 GAN 模型的处理,扩展了后处理,增加了新的指标(Inception Score 和 Frechet Inception Distance)。
需要使用 Tensorflow 2.3 转换 efficientdet-d0/d1 模型。
深度学习流媒体播放器
直接支持 ONNX 模型:DL Streamer gvadetect、gvaclassify 和 gvainference 元素现在将支持 CPU 上的 OpenVINO™ 推理引擎支持的 ONNX 模型,无需转换为中间表示 (IR) 格式。
基于全帧和 ROI 的推理:对于连续检测和全帧分类等用例,在 gvadetect、gvaclassify 和 gvainference 元素中增加的新属性 'inference-region' 将使开发人员能够在全帧或 ROI(感兴趣区域)上运行推理。
无图像对象跟踪:在 gvatrack 中引入两个新算法 'short-term imageless' 和 'zero-term imageless',将能在不访问图像数据的情况下跟踪对象。
Docker 文件更新:使用 DL Streamer GitHub 中的 Docker 文件创建的文件夹结构与 OpenVINO™ 在 DockerHub* 上发布的 Docker 映像一致。无论选择哪种发行方式(OpenVINO Installer、OpenVINO Docker 映像、DL Streamer Docker 文件、从源构建),开发人员现在都可以按照相同的说明和准则使用 DL Streamer。
有关 DL Streamer 的更多信息,请参阅位于 GitHub 上的 DL Streamer 开源项目存储库“openVINO™ 工具套件 - DL Streamer”中的 DL Streamer 教程、API 参考和样本。还可访问“DL Streamer 样本”查看样本文档。
OpenVINO™ 模型服务器
有向无环图 (DAG) 调度程序 -(以前为 `models ensemble`)该功能首次在 2021.1 版中以预览版的形式提供。现在它已得到官方支持,从而使定义由响应单个预测请求的多个互联模型组成的推理管道成为可能。在该版本中,我们增加了对其余 API 调用(预览版中的 DAG 不支持)的支持,特别是 `GetModelStatus` 和 `GetModelMetadata`。`GetModelStatus` 返回整个管道的状态,而 GetModelMetadata 返回管道输入和输出参数。新的 2021.2 版改进了 DAG 配置验证。
直接导入 ONNX 模型 - 现在可以导入 ONNX 模型,无需转换为中间表示 (IR) 格式。这有助于利用 ONNX 模型和 PyTorch 训练框架简化部署。
自定义加载器以及与 OpenVINO™ 安全插件的集成 - 现在可以定义自定义库,用于处理模型加载操作 - 包括与模型解密和许可证验证有关的额外步骤。要了解有关模型保护的信息,请查看安全插件组件的文档。
流量加密 - 新的部署配置通过 mTLS 证书进行客户端授权,通过与 Docker 容器中的 NGINX 反向代理集成进行流量加密。
从云存储进行远程模型缓存 - 进行需要重新加载模型的配置变更后,不再多次下载存储在 Google Cloud Storage (GCS)、Amazon S3 和 Azure blob 中的模型。在模型重新加载操作期间,将使用缓存的模型。更改服务的模型时,将仅在模型存储中添加相应的新版本文件夹。
OpenVINO™ 安全插件
该安全插件是一组工具,让模型开发人员能够使用 OpenVINO™ 模型服务器控制开发后对模型的访问,并检查在受控环境中运行期间对模型的访问。它由定义模型访问控制的一组开发工具、在将模型加载到模型服务器之前检查模型许可证的许可服务、位于 OpenVINO™ 模型服务器内的可在其中执行访问受控模型的隔离环境组成。
安全插件的关键功能
定义开发后对模型的访问控制。
生成限制模型使用天数的客户特定许可证。
在将模型加载到 OpenVINO™ 模型服务器之前检查许可证的有效性。
使用 OpenVINO™ 模型服务器,通过 KVM 虚拟机在隔离环境中执行模型。
通过 NGINX 控制应用程序对模型的访问
评论