Intel’s open-source programming function computer vision library OpenCV has released the first stable version in its 4.0 line. The community has waited for more than 3.5 years for the update, which mainly targets fast-track high-performance computer vision development and deep learning inference. OpenCV 4.0 also introduces features such as G-API (Graph 4.0) and QR-code detector and decoder.
The OpenCV 4.0 website lists the library’s release highlights:
- OpenCV is now C++11 library and requires C++11-compliant compiler. Minimum required CMake version has been raised to 3.5.1.
- A lot of C API from OpenCV 1.x has been removed.
- Persistence (storing and loading structured data to/from XML, YAML or JSON) in the core module has been completely reimplemented in C++ and lost the C API as well.
- New module G-API has been added, it acts as an engine for very efficient graph-based image processing pipelines.
- dnn module now includes experimental Vulkan backend and supports networks in ONNX format.
- The popular Kinect Fusion algorithm has been implemented and optimized for CPU and GPU (OpenCL)
- QR code detector and decoder have been added to the objdetect module
- Very efficient and yet high-quality DIS dense optical flow algorithm has been moved from opencv_contrib to the videomodule.
- More details can be found in previous announces: 4.0-alpha, 4.0-beta, 4.0-rc and in the changelog
OpenCV 4.0 and Deep Learning
OpenCV 4.0 updates have enhanced the DNN (Deep Neural Network) module and added support for ONNX (Open Neural Network Exchange) format. Since the DNN module was added to the core code library on v. 3.3, OpenCV has put increasing efforts on deep learning inference development, and OpenCV 4.0 now supports five major deep learning frameworks: Caffe, TensorFlow, Torch, Darknet and ONNX.
OpenCV 4.0 also supports deep learning functions, including:
- Convolution (including dilated convolution)
- Deconvolution, a.k.a. transposed convolution or full convolution
- DetectionOutput (SSD-specific layer)
- Eltwise (+, *, max)
- NormalizeBBox (SSD-specific layer)
- PReLU (including ChannelPReLU with channel-specific slopes)
- PriorBox (SSD-specific layer)
The full OpenCV 4.0 release is available on the OpenCV website:
Author: Robert Tian | Editor: Michael Sarazen