OpenVINO™ toolkit is a comprehensive toolkit for quickly developing applications and solutions that solve a variety of tasks including emulation of human vision, automatic speech recognition, natural language processing, recommendation systems, and many others. Based on latest generations of artificial neural networks, including Convolutional Neural Networks (CNNs), recurrent and attention-based networks, the toolkit extends computer vision and non-vision workloads across Intel® hardware, maximizing performance. It accelerates applications with high-performance, AI and deep learning inference deployed from edge to cloud.
OpenVINO™ toolkit:
- Enables CNN-based deep learning inference on the edge
- Supports heterogeneous execution across an Intel® CPU, Intel® Integrated Graphics, Intel® Neural Compute Stick 2 and Intel® Vision Accelerator Design with Intel® Movidius™ VPUs
- Speeds time-to-market via an easy-to-use library of computer vision functions and pre-optimized kernels
- Includes optimized calls for computer vision standards, including OpenCV* and OpenCL™
The following diagram illustrates the typical OpenVINO™ workflow (click to see the full-size image):
Components: Open Model Zoo, [Deep Learning Workbench](@ref workbench_docs_Workbench_DG_Introduction), OpenVINO Training Extentions
You can use your framework of choice to prepare and train a deep learning model or just download a pre-trained model from the Open Model Zoo. The Open Model Zoo includes deep learning solutions to a variety of vision problems, including object recognition, face recognition, pose estimation, text detection, and action recognition, at a range of measured complexities. Several of these pre-trained models are also used in the code samples and [application demos](@ref omz_demos_README). To download models from the Open Model Zoo, the [Model Downloader](@ref omz_tools_downloader_README) tool is used.
[Deep Learning Workbench](@ref workbench_docs_Workbench_DG_Introduction) provides a web-based interface to download a pre-trained model and enables you to visualize, fine-tune, and compare performance of deep learning models.
If you cannot find the needed model in Open Model Zoo or want to train your own model, use OpenVINO Training Extentions which provide a convenient environment to train deep learning models.
Useful documents for model preparation:
- [Model Downloader](@ref omz_tools_downloader) utility
- [Intel's Pretrained Models (Open Model Zoo)](@ref omz_models_group_intel)
- [Public Pretrained Models (Open Model Zoo)](@ref omz_models_group_public)
- [Deep Learning Workbench](@ref workbench_docs_Workbench_DG_Introduction)
- OpenVINO Training Extentions
Components: Model Optimizer
The Model Optimizer is a cross-platform command-line tool that converts a trained neural network from its source framework to an open-source, nGraph-compatible Intermediate Representation (IR) for use in inference operations. The Model Optimizer imports models trained in popular frameworks such as Caffe*, TensorFlow*, MXNet*, Kaldi*, and ONNX* and performs a few optimizations to remove excess layers and group operations when possible into simpler, faster graphs.
If your neural network contains layers that are not in the list of known layers for supported frameworks, you can adjust the conversion and optimization process using Custom Layers.
Run the [Accuracy Checker utility](@ref omz_tools_accuracy_checker) either against source topologies or against the output representation to evaluate the accuracy of inference. You can also use the Accuracy Checker as a part of the [Deep Learning Workbench](@ref workbench_docs_Workbench_DG_Introduction), an official OpenVINO™ graphical interface.
Useful documents for model conversion and optimization:
- Model Optimizer Developer Guide
- Intermediate Representation and Opsets
- Custom Layers Guide
- [Accuracy Checker utility](@ref omz_tools_accuracy_checker)
- [Deep Learning Workbench Guide](@ref workbench_docs_Workbench_DG_Introduction)
Components: Inference Engine, [Post-training Optimization Tool](@ref pot_README), Neural Network Compression Framework
The other core component of OpenVINO™ is the Inference Engine, which manages the loading and compiling of the optimized neural network model, runs inference operations on input data, and outputs the results. Inference Engine can execute synchronously or asynchronously, and its plugin architecture manages the appropriate compilations for execution on multiple Intel® devices, including both workhorse CPUs and specialized graphics and video processing platforms (see below, Packaging and Deployment).
You can use OpenVINO™ Tuning Utilities with the Inference Engine for trial and test inference on your model. The Benchmark utility uses an input model to run iterative tests for throughput or latency measures, and the Cross Check Utility compares performance of differently configured inferences.
OpenVINO™ toolkit includes a set of inference code samples and [application demos](@ref omz_demos) showing how inference is run and output processed for use in retail environments, classrooms, smart camera applications, and other solutions.
Use the [Post-training Optimization Tool](@ref pot_README) to accelerate the inference of a deep learning model by quantizing it to INT8. Models from Open Model Zoo can be quantized using the Model Quantizer utility.
Besides the [Post-training Optimization Tool](@ref pot_README), the Neural Network Compression Framework (NNCF) can be used for model fine-tuning INT8 quantization or even for applying more aggressive compression methods, such as filter pruning, sparsity, and binarization to further speed up model inference and reduce the footprint. In that case the compression algorithms are integrated into your model training pipeline.
OpenVINO also makes use of open-source and Intel™ tools for traditional graphics processing and performance management. Intel® Media SDK supports accelerated rich-media processing, including transcoding. OpenVINO™ optimizes calls to the rich OpenCV and OpenVX libraries for processing computer vision workloads. And the new DL Streamer integration further accelerates video pipelining and performance.
Try these key tuning tools in your browser with the [Deep Learning Workbench](@ref workbench_docs_Workbench_DG_Introduction) intuitive graphical interface.
Useful documents for inference tuning:
- Inference Engine Developer Guide
- Inference Engine API References
- Inference Code Samples
- [Application Demos](@ref omz_demos)
- [Post-training Optimization Tool](@ref pot_README)
- [Low Precision Optimization Guide] (@ref pot_docs_LowPrecisionOptimizationGuide)
- Neural Network Compression Framework (NNCF)
- [Deep Learning Workbench Guide](@ref workbench_docs_Workbench_DG_Introduction)
- Intel Media SDK
- [DL Streamer Samples](@ref gst_samples_README)
- OpenCV
- OpenVX
Components: Deployment Manager
The Intel Distribution of OpenVINO™ toolkit outputs optimized inference runtimes for the following devices:
- Intel® CPUs
- Intel® Processor Graphics
- Intel® Neural Compute Stick 2
- Intel® Vision Accelerator Design with Intel® Movidius™ VPUs
The Inference Engine's plug-in architecture can be extended to meet other specialized needs. Deployment Manager is a Python* command-line tool that assembles the tuned model, IR files, your application, and required dependencies into a runtime package for your target device. It outputs packages for CPU, GPU, and VPU on Linux* and Windows*, and Neural Compute Stick-optimized packages with Linux.
- Inference Engine Integration Workflow
- Inference Engine API References
- Inference Engine Plug-in Developer Guide
- Deployment Manager Guide
Intel® Distribution of OpenVINO™ toolkit includes the following components:
- Deep Learning Model Optimizer: A cross-platform command-line tool for importing models and preparing them for optimal execution with the Inference Engine. The Model Optimizer imports, converts, and optimizes models, which were trained in popular frameworks, such as Caffe*, TensorFlow*, MXNet*, Kaldi*, and ONNX*.
- Deep Learning Inference Engine: A unified API to allow high performance inference on many hardware types including Intel® CPU, Intel® Integrated Graphics, Intel® Neural Compute Stick 2, Intel® Vision Accelerator Design with Intel® Movidius™ vision processing unit (VPU).
- Inference Engine Samples: A set of simple console applications demonstrating how to use the Inference Engine in your applications.
- [Deep Learning Workbench](@ref workbench_docs_Workbench_DG_Introduction): A web-based graphical environment that allows you to easily use various sophisticated OpenVINO™ toolkit components.
- [Post-training Optimization Tool](@ref pot_README): A tool to calibrate a model and then execute it in the INT8 precision.
- Additional Tools: A set of tools to work with your models including Benchmark App, Cross Check Tool, Compile tool.
- [Open Model Zoo](@ref omz_models_group_intel)
- [Demos](@ref omz_demos): Console applications that provide robust application templates to help you implement specific deep learning scenarios.
- Additional Tools: A set of tools to work with your models including [Accuracy Checker Utility](@ref omz_tools_accuracy_checker) and [Model Downloader](@ref omz_tools_downloader).
- [Documentation for Pretrained Models](@ref omz_models_group_intel): Documentation for pre-trained models that are available in the Open Model Zoo repository.
- Deep Learning Streamer (DL Streamer): Streaming analytics framework, based on GStreamer, for constructing graphs of media analytics components. DL Streamer can be installed by the Intel® Distribution of OpenVINO™ toolkit installer. Its open-source version is available on GitHub. For the DL Streamer documentation, see:
- [DL Streamer Samples](@ref gst_samples_README)
- API Reference
- Elements
- Tutorial
- OpenCV : OpenCV* community version compiled for Intel® hardware
- Intel® Media SDK (in Intel® Distribution of OpenVINO™ toolkit for Linux only)
OpenVINO™ Toolkit opensource version is available on GitHub. For building the Inference Engine from the source code, see the build instructions.