The developers of the computer vision library OpenCV have announced the release of a new version and implementation in C ++. Upgrading involves using a compiler for C ++ 11. Version adds support for the Graph API.
The developers talked about the removal of part of the API for the C language, present from the version of OpenCV 1.x. These include object detection modules, a photo and video module, an image encoder module, a camera for reading video from a camera and writing it to a file, and a camera calibration module. Other changes affected:
- 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. For now base64 support is not complete (only loading base64-encoded XML and YAML is supported, encoding is not supported at all). Also, random access of sequences stored in a
FileNodeis slow O(N) operation; use
cv::FileNodeIteratorfor much faster sequential access. On the positive side, loaded
FileStoragetakes 3-6x less memory than in the previous implementation
- Module for neural networks DNN operations. After the upgrade, it supports the Mask-RCNN architecture, partly the YOLO neural network. Also, an experimental backend of Vulkan added, which is required for calculations that do not work with OpenCL.
- Performance. Optimized image processing algorithms for C ++. According to the developers, the speed increase can be from 15 to 30%.
- QR code detector and decoder. They were added to the opencv / objdetect module along with an example.
Despite updates to computer vision libraries, this area faces routine problems. To solve one of these, the Google AI team has developed a machine-based learning interface that reduces the time it takes to mark up objects in photos three times. The developers presented it at the end of October 2018 and are confident that it will help to create larger image cases for computer vision systems more quickly.