Earlier this month the Intel CV SDK Beta was released. This SDK allows developers to make their computer vision applications more accurate and faster. This week I had the pleasure of sitting down with Tudor Panu in order to talk to him about what the CV SDK is, a demo showing off some capabilities, and how developers can leverage the SDK for their computer vision projects. You can watch the full discussion here: https://www.facebook.com/IntelDeveloperZone/videos/10154895430807338/
In this blog I would like to share what I learned about the CV SDK and share some resources to help get you started in developing computer vision applications.
CV SDK - What is it?
The CV SDK is a collection of useful tools that combine video processing, computer vision, machine learning, and pipeline optimization into a single package. The SDK is specifically aimed at leveraging the power of heterogeneous systems or systems that combine multiple types of processors. For instance, a system with an i7 6700 CPU, Intel Iris GPU, and an FPGA all being leveraged by a computer vision pipeline would be an example of a heterogeneous system.
Specifically, the tools that the CV SDK contains are: OpenCV*, OpenVX*, Convolutional Neural Network Kernels, the Vision Algorithm Designer, the Deep Learning Framework, and the Intel Media SDK. The CV SDK allows for easier integration of some or all of these tools into a single pipeline with a unified API to access them.
Already have an OpenCV project and want to integrate the CV SDK? Check out this interoperability guide to get you on your way! https://software.intel.com/en-us/cvsdk-devguide-interoperability-with-other-apis
The Tool Box
So, what are all of these tools? Let’s take a quick look!
OpenCV*: a standard open source computer vision library. It provides developers with higher level computer vision functions – things like image filtering, edge detection, and object detection. OpenCV* will probably form the basis of your computer vision data pipeline.
OpenVX*: a new standard API for production grade deployment and optimization of computer vision applications. OpenVX* can optimize your application in two ways. First it can determine which tasks can be run in parallel, distribute them to different processors, and recombine the results. Second it can determine which processor is most efficient at which task - CPU for encoding/decoding, GPU for rendering, and FPGAs for custom algorithms - the power of the heterogeneous system.
Convolutional Neural Network Kernels: an extension of OpenVX* which allows developers to leverage trained neural network models for their object detection tasks. You can use a model trained in Tensorflow* or Caffe* in order to create more precise detection algorithms.
Vision Algorithm Designer: a tool that allows developers to visualize and plan out their computer vision pipeline in conjunction with OpenVX*. OpenVX* uses the concept of graphs – the flow of tasks in a computer vision pipeline – to optimize the application. The Vision Algorithm Designer provides a graphical interface to plan out these graphs, as well as trace the application process, debug, and profile performance.
Deep Learning Framework: A framework and API for training deep learning models in conjunction with Tensorflow* and Caffe*. You can use this tool to help train the model that you then utilize via the Convolutional Neural Network.
Intel Media SDK: A framework developed by Intel to quickly encode and decode video streams. By integrating this framework into your computer vision pipeline you can save valuable time decoding each frame for processing and then encoding it for viewing.
Notes and Requirements
Sounds good, right? So then if you want to try out the CV SDK you can navigate to the main page here: https://software.intel.com/en-us/computer-vision-sdk/details. Here you can find links to software, tutorials, and all the documentation for all of these tools.
For an in depth seminar looking at all these tools check out: https://attendee.gotowebinar.com/register/7290050546511183363?eva_src=webinarspage&source=Alliance+Webinars+page
The CV SDK is optimized for 6th generation Intel CPUs and currently runs best on Ubuntu* 16.04, CentOS* 7.2, or Microsoft* Windows* 10. I would recommend going with Ubuntu* 16.04 for now as it seems most of the samples are not ready for Windows yet – the CV SDK is still in beta.
For more such intel IoT resources and tools from Intel, please visit the Intel® Developer Zone