OpenCV 4.0.0 for C++ Released

OpenCV is a open source library for computer vision
20 November 2018   318

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 FileNode is slow O(N) operation; use cv::FileNodeIterator for much faster sequential access. On the positive side, loaded FileStorage takes 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. 

Facebook to Release PyTorch 1.0

This release added support for large cloud platforms, a C ++ interface, a set of JIT compilers
10 December 2018   102

Facebook has released a stable version of the library for machine learning PyTorch 1.0. This iteration added support for large cloud platforms, a C ++ interface, a set of JIT compilers, and various improvements.

The stable version received a set of JIT compilers that eliminate the dependence of the code on the Python interpreter. The model code is transformed into Torch Script - a superstructure over Python. Keeping the opportunity to work with the model in the Python environment, the user can download it to other projects not related to this language. So, the PyTorch developers state that the code processed in this way can be used in the C ++ API.

The torch.distributed package and the torch.nn.parallel.DistributedDataParallel module are completely redesigned. torch.distributed now has better performance and works asynchronously with the Gloo, NCCL and MPI libraries.

The developers added a C ++ wrapper to PyTorch 1.0. It contains analogs of Python interface components, such astorch.nn,torch.optim, torch.data. According to the creators, the new interface should provide high performance for C ++ applications. True, the C ++ API is still experimental, but it can be used in projects now.

To improve the efficiency of working with PyTorch 1.0, a Torch Hub repository has been created, which stores pre-trained models of neural networks. You can publish your own development using the hubconf.py file, after which the model will be available for download by any user via the torch.hub.load API.

Support for C extensions and the module torch.utils.trainer were removed from the library.

Facebook released the preliminary version of PyTorch 1.0 at the beginning of October 2018, and in two months the developers brought the framework to a stable state.