Description
Use the Intel® Distribution of the OpenVINOTM Toolkit to accelerate the development of high-performance computer vision and deep learning inference applications, as well as to run pre-trained deep learning models for computer vision on-premise. You will identify key hardware specifications for various hardware types (CPU, VPU, FPGA, and Integrated GPU) and use Intel® DevCloud for the Edge to test model performance on these hardware types. Finally, you will optimise deep learning models using software tools to improve the performance of Edge AI systems.
Syllabus:
Course 1 Edge AI Fundamentals with OpenVINO™
Leveraging PreTrained Models
- Leverage a pre-trained model for computer vision inferencing
The Model Optimizer
- Convert pre-trained models into the framework agnostic intermediate representation with the Model Optimizer
The Inference Engine
- Perform efficient inference on deep learning models through the hardware-agnostic Inference Engine
Deploying An Edge App
- Deploy an app on the edge, including sending information through MQTT, and analyze model performance and use cases.
In this project, you will use the Intel® Distribution of the OpenVINOTM Toolkit to create a People Counter app for edge inference. You will investigate various pre-trained person detection models and then convert the best model for optimised inference. The model will be deployed on the edge, with only data on 1) the number of people in the frame, 2) the time those people spent in the frame, and 3) the total number of people counted being sent to a web server; inference will take place on the local machine.
You will need to create a method for comparing the performance of their models before and after using the OpenVINO toolkit for edge deployment optimization. You will also investigate potential applications for their deployed people counter app.
This course's goal is to demonstrate knowledge of the following tools:
- The Intel® Distribution of OpenVINOTM Toolkit
- The Model Optimizer
- The Inference Engine • Edge applications
- MQTT
Course 2: Hardware for Computer Vision & Deep Learning Application Deployment
Introduction to Hardware at the Edge
- Describe the importance of selecting the right hardware and the process involved in doing so
CPU and Integrated GPU
- Identify the key specifications of Intel® CPUs and Integrated GPUs
- Use the Intel® Devcloud for the Edge for running deep learning models on the CPU and Integrated GPU
Vision Processing Units
- Identify the key specifications of Intel® VPUs
- Use the Intel® DevCloud for the Edge for running deep learning models on the VPU
- Use the MULTI Plugin to get more consistent performance
Field Programmable Gate Arrays
- Identify the key specifications of Intel® FPGAs
- Use the Intel® DevCloud for the Edge for running deep learning models on the FPGA
- Use the HETERO Plugin to enable efficient hardware utilization
Project: Smart Queuing System
In this project, you will be given a real-world scenario in which you will be asked to build a queuing system for three different clients in three different industry sectors. Retail, manufacturing, and transportation will be among the industries involved. Each client will have their own set of constraints and expectations. You'll use your knowledge of hardware specifications to determine which hardware types might work, and then you'll test the application using the Intel® DevCloud to determine which hardware performs best. Finally, after reviewing your test results and taking into account the client's constraints and requirements, you will propose a hardware solution and justify your choice.
The goal of this course is to help you become more knowledgeable about selecting the right hardware. In particular, you will be able to:
- Recognize critical hardware specifications for various hardware types (CPU, VPU, FPGA, and Integrated GPU).
- Use DevCloud to test model performance on various types of hardware (CPU, VPU, FPGA, and Integrated GPU).
- Use deep neural network inference on CPU, VPU, FPGA, and integrated GPU to save power.
- To improve model performance, distribute workload across available compute devices.
Course 3: Optimization Techniques and Tools for Computer Vision Deep Learning Applications
Introduction to Software Optimization
- Describe why Software Optimization is important
- Identify the different fundamental optimization techniques
- Use different metrics to measure your model performance
- Identify when and how to use optimization techniques
Reducing Model Operations
- Calculate the number of operations in a model
- Implement optimization techniques that improve performance by reducing the number of model operations
- Use OpenVINO to measure the effects of different optimization techniques on the performance of your model
Reducing Model Size
- Implement optimization techniques that improve performance by reducing the number of model operations
- Use DL Workbench to quantize and measure the performance of your model
Other Software Optimization Techniques
- Use VTune Amplifier to measure hotspots in your application code
- Package your application code and data
Project: Computer Pointer Controller
In this project, you will use OpenVINO toolkit models to control your computer pointer with your gaze.
You must first identify and extract a face from an input video stream captured from a webcam or video file. Then, extract facial landmarks and use a head pose estimation model to determine the orientation of the extracted face. Using a gaze estimation model and the head pose and facial landmarks, you will determine the orientation of the eye gaze. Finally, you must move the mouse pointer in the direction of the eye gaze. This project will test your ability to run multiple models on the same machine, as well as coordinate and optimise data flow between those models.
This course will teach you how to optimise your model and application code to reduce inference time when running your model at the edge. You will specifically learn how to:
- Use various software optimization techniques to improve your model's inference time.
- Determine the computational cost of your model.
- Use DL Workbench to optimise and benchmark your model's performance.
- Make use of a VTune amplifier to locate and correct hotspots in your application code.
- Package your application code and data so that it can be deployed to a variety of devices.