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.
And now we are happy to announce the start of new season, OpenCV 3.x. In which there will be no such radical rehearsal as in 2.0, and yet it’s substantial enough pile of changes and brings a lot of new opportunities for us and you, our great OpenCV community.
The detailed changelog is provided, as usual, at our development site and let us touch some of the highlights:
1. Change in the project architecture. Since very beginning OpenCV was one solid project, built and shipped as a whole, and that was good strategy for many years. However, with constantly growing functionality, including bleeding-edge algorithms published a few minutes before a pull request has been submitted to our repository, and increasing number of contributors (thank you all very much, guys!) we came to the same conclusion and decision as many other big project – the solid model does not work anymore. Let’s use use the core + plugins architecture then!
In addition to our main repository and the additional “test data” repository, we are now glad to introduce http://github.com/itseez/opencv_contrib, where we put 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.
What’s common and what’s different between opencv and opencv_contrib?
2. Thanks to support from Intel and AMD companies, we made GPU acceleration of many vision algorithms very easily accessible to our users. The technology is nicknamed T-API (“transparent API”). A separate guide on this topic is being prepared, but you are welcome to take a look at and try out our t-api samples to see how it works.
3. Intel corporation gave us another exciting present. A subset of Intel Integrated Performance Primitives (IPP) is linked by default into OpenCV and is available at no charge for all our users. And that includes the license to redistribute applications that use IPP-accelerated OpenCV. As you may see, for quite a few image processing functions we achieved very noticeable speedup with IPP (where IPP is compared with OpenCV built with all possible optimizations turned on):
4. Last but not least, OpenCV 3.0 brings a lot of new functionality, such as:
This release would not be possible without big help from many people all over the world. Thanks to all the people who contributed code, submitted bug reports, patches, reviewed patches and helped us in any other ways. In particular, we would like to thank
Alexander Shishkov (who also maintains opencv.org site), Andrey Pavlenko, Alexander Alekhin, Alexander Smorkalov, Roman Donchenko, Kirill Kornyakov, Andrey Kamaev, Sergey Sivolgin, Vladimir Bystritsky, Sergey Nosov, Nikita Manovich, Evgeniy Talanin, Elena Gvozdeva, Alexander Karsakov, Konstantin Matskevich, Ilya Lavrenov, Anna Kogan, Ivan Korolev, Dinar Ahmatnurov, Andrey Senin, Vlad Vinogradov, Alexey Spizhevoy, Anatoly Baksheev, Marina Kolpakova, Daniil Osokin, Leonid Beynenson, Dmitry Retinsky, Maria Dimashova, Ilya Lysenkov, Andrey Morozov, Victor Eruhimov, Alexander Bovyrin, Sergey Molinov, Gary Bradski, Vincent Rabaud, Harris Gasparakis and many other people.
The 3.0-alpha package can be downloaded in source form as .zip package directly from github:
in binary form, as self-extracting archive for Windows:
or an iOS framework:
This is alpha, so expect some glitches, such as partially broken Python bindings, a few failing tests etc. Those items are in progress and also we appreciate your feedback very much.
OpenCV 3.0 beta is expected in middle of this fall and the OpenCV 3.0 final release should be ready by the Christmas/New Year holidays.
OpenCV Development Team.