Developers are experimenting with the features of Azure Percept and discovering more possibilities for how they can use the Azure Percept development kit since Microsoft unveiled it six months ago.
Many also are learning firsthand how the Intel® Distribution of OpenVINO™ toolkit can optimize the setup and operation of Azure Percept. The OpenVINO toolkit enables users to optimize, tune, and run comprehensive AI inferencing using its model optimizer and runtime development tool.
Paired with the Azure Percept development kit, OpenVINO enables developers to build applications more easily for vision and other use cases. It has the unique capability to provide high-performance solutions for inference workloads, so it can be used in real time with image and sound processing solutions. Listed in the next section are the steps to follow if you're looking to use Intel OpenVINO with Azure Percept.
Employing OpenVINO to enable Azure Percept applications
Using OpenVINO with Azure Percept for a range of applications requires either building a model or choosing a pre-built, pre-trained one for the use case you want to address. These can be scenarios that take advantage of the Azure Percept Vision camera or its audio capabilities to detect anomalies, monitor everything from people in checkout lines to inventory, and more.
To use Azure Percept with OpenVINO, it is recommended you use the following steps:
- Azure Percept supports TensorFlow and ONNX models. So, first identify a TensorFlow or ONNX model you want to use. OpenVINO also has scores of pre-trained models available for use with Azure Percept.
- Convert your TensorFlow or ONNX model by running it through the OpenVINO model optimizer. Once you’ve converted a model with OpenVINO, you receive an intermediate representation (IR) file.
- Use the IR file with the OpenVINO model compiler to generate blobs compatible with the Azure Percept VPU. As with the model optimizer, this step can be done either online or offline. Note that models should not be large, as those larger than 100 MB (after conversion to .blob format) sometimes have trouble loading.
- Once the blobs are generated and loaded onto the Intel® Movidius™ Myriad™ X VPU, the Azure Percept camera can be triggered and captured frames can be sent to the VPU for image processing and inference.
The application can then publish results of image analysis, store the information, and publish it at the edge. In addition, the images and analysis can be upstreamed to Azure services for storage in the cloud, where results also can be displayed.
Designed for differing technical levels
Azure Percept and its dev kit are designed to bring together Azure Percept fully managed services and be deployed in a matter of minutes rather than hours. The Azure Percept Studio hosts prebuilt models and workflows that integrate numerous Azure services. OpenVINO similarly offers features such as intuitive graph APIs designed for no- or low-code scenarios up to advanced, customizable situations. To implement a no-code graph API, the user doesn’t have to do anything other than click on it to run a model.
The goal is to make the features and applications of Azure Percept and OpenVINO accessible to both beginners working on simple applications and advanced developers working to deploy new solutions. In particular, the Azure Percept dev kit is designed to run AI and computer vision at the edge even without a connection to the cloud excluding complexity or overly complicated steps.
With the idea of advanced capabilities and user simplicity in mind, the Azure Percept development kit uses a custom Intel Myriad Development Kit (MDK) stack for both image signal processing pipelines and AI inferencing instead of standard OpenVINO, which only supports AI inferencing. The kit also incorporates a Movidius™ Myriad™ X machine learning accelerator from Intel.
Learn more about using OpenVINO and Azure Percept
Intel and Microsoft are continually innovating on how Azure Percept and OpenVINO can work together as the technology behind both the platforms evolve. In the meantime, you can get started by downloading the Intel Distribution of OpenVINO toolkit.
If you are looking to dive deeper, you can install both mandatory and optional development tools for Azure Percept, including OpenVINO, as well as view a list that can help you navigate known issues. You also can read more about pre-trained models that work with the Azure Percept development kit, as well as how to build and train your own vision models. You can also check out this repo with reference solutions for Percept.