Earlier this month the Intel® Computer Vision 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 Intel® 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 Intel® CV SDK and share some resources to help get you started in developing computer vision applications.
The Intel® 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 Intel® Core™ i7 6700 CPU, Iris® brand 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 Intel® CV SDK contains are: OpenCV, OpenVX*, Convolutional Neural Network IP Kernels, the Intel® Vision algorithm designer, the Intel® Deep Learning Framework, and the Intel® Media SDK. The Intel® 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 Intel® 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
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 IP 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.
Intel® 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 Algorithm Designer provides a graphical interface to plan out these graphs, as well as trace the application process, debug, and profile performance.
Intel® 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.
Sounds good, right? So then if you want to try out the Intel® 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 Intel® CV SDK is optimized for 6th generation Intel® CPUs and currently runs best on Ubuntu* 16.04, CentOS* 7.2, or 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 Intel® CV SDK is still in beta.
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Notice revision #20110804