The OpenCV team has announced OpenCV 3.x. Changes include a move to core plus plugins architecture, a lot of new functionality and optimizations that deliver a substantial speedup.
OpenCV is an open source computer vision library that is used by just about everyone experimenting not just vision but a range of image processing tasks.
The announcement of the release of the OpenCV 3.0 alpha opens with a reminder of the background:
It has been almost 5 years since OpenCV 2.0 has been released, which brought the completely new C++ API and started the new epoch of extensive growth of the project. During the whole 2.x lifecycle we added support of new platforms, including iOS and Android, added GPU acceleration via CUDA and OpenCL, provided complete interface to Python and Java users and built our state-of-art continuous integration system based on github and buildbot. As a result, we now have very stable OpenCV 2.4.x that’s been used in many companies and universities all over the world.
Although version 3.x isn't going to be as major an upheaval as the transition to version 2.x, it does bring with it a change in the project architecture. Up until now OpenCV has been built and shipped as a single package in future it will adopt the "core + plugins" architecture used by other large projects.
Going forward the project has an additional repository on GitHib. In future the main opencv repository will have "very stable API and probably just a little innovation" whereas the newer opencv_contrib is for "extra" modules that provide additional functionality and which may not have stable API and are less well tested and therefore won't be part of the official Open CV distribution. This wil be the location for:
a lot of exciting functionality, including already known face recognition and text detection, but also text recognition, new-age edge detectors, state-of-art inpainting, depth maps processing, new optical flow and tracking algorithms etc.
Not only will opencv_contrib be where most of the experimental code is put, it is also where the community is invited to contribute new algorithms.
The OpenCV community is very active as this list of new functionality that will be part of OpenCV indicates:
Text detection and recognition by Lluis Gomez and Stefano Fabri
HDR by Fedor Morozov and Alexander Shishkov
KAZE/A-KAZE by Eugene Khvedchenya, the algorithm author Pablo Alcantarilla and some improvements by F. Morozov.
Smart segmentation and edge-aware filters by Vitaly Lyudvichenko, Yuri Gitman, Alexander Shishkov and Alexander Mordvintsev
Car detection using Waldboost, ACF by Vlad Shakhuro and Nikita Manovich
TLD tracker and several common-use optimization algorithms by Alex Leontiev
Matlab bindings by Hilton Bristow, with support from Mathworks.
Greatly extended Python bindings, including Python 3 support, and several OpenCV+Python tutorials by Alexander Mordvintsev, Abid Rahman and others.
3D Visualization using VTK by Ozan Tonkal and Anatoly Baksheev.
RGBD module by Vincent Rabaud
Line Segment Detector by Daniel Angelov
Many useful Computational Photography algorithms by Siddharth Kherada
Shape descriptors, matching and morphing shapes (shape module) by Juan Manuel Perez Rua and Ilya Lysenkov
Long-term tracking + saliency-based improvements (tracking module) by Antonella Cascitelli and Francesco Puja
Another good pose estimation algorithm and the tutorial on pose estimation by Edgar Riba and Alexander Shishkov
Line descriptors and matchers by Biagio Montesano and Manuele Tamburanno
Myriads of improvements in various parts of the library by Steven Puttemans; thank you a lot, Steven!
Several NEON optimizations by Adrian Stratulat, Cody Rigney, Alexander Petrikov, Yury Gorbachev and others.
Fast foreach loop over cv::Mat by Kazuki Matsuda
Image alignment (ECC algorithm) by Georgios Evangelidis
GDAL image support by Marvin Smith
RGBD module by Vincent Rabaud
Fisheye camera model by Ilya Krylov
OSX framework build script by Eugene Khvedchenya
Multiple FLANN improvements by Pierre-Emmanuel Viel
Improved WinRT support by Gregory Morse
Latent SVM Cascade by Evgeniy Kozhinov and NNSU team (awaiting integration)
Logistic regression by Rahul Kavi
Five-point pose estimation algorithm by Bo Li
OpenCV also has increasing industry support. GPU acceleration of many vision algorithms with a technology nicknamed T-API (transparentAPI) has come about with support from Intel and AMD and Intel has also provided a subset of its Intel Integrated Performance Primitives (IPP) to be linked by default, and for free, into Open CV. This means there's a substantial speedup for some image processing functions. In the graph IPP is compared to OpenCV with all possible optimizations turned on.
Users are invited to try out the alpha, although they are warned to expect some glitches, such as partially broken Python bindings, a few failing tests, etc, and provide feedback. The beta version is expected within a couple of months and the final release around the end of 2014.
In some senses this is a momentous event - Microsoft has a Version 1 of the cross-platform open source .NET Core. But is it momentous more because of the change in approach it signals, or is there som [ ... ]