With a great pleasure and great relief OpenCV team finally announces OpenCV 3.0 gold release, the most functional and the fastest OpenCV ever. And yet it’s very stable too – all the thousands of tests that we created during the project + many new tests pass successfully on Windows, Linux and Mac, x64 and ARM.
The changes since 3.0-rc, as well previous changes, can be found at http://code.opencv.org/projects/opencv/wiki/ChangeLog. This is a short executive summary on what’s new in 3.0 vs 2.4:
- ~1500 patches, submitted as PR @ github. All our patches go the same route.
- opencv_contrib (http://github.com/itseez/opencv_contrib) repository has been added. A lot of new functionality is there already! opencv_contrib is only compatible with 3.0/master, not 2.4. Clone the repository and use “cmake … -D OPENCV_EXTRA_MODULES_PATH=<path_to opencv_contrib/modules> …” to build opencv and opencv_contrib together.
- a subset of Intel IPP (IPPCV) is given to us and our users free of charge, free of licensing fees, for commercial and non-commerical use. It’s used by default in x86 and x64 builds on Windows, Linux and Mac.
- T-API (transparent API) has been introduced, this is transparent GPU acceleration layer using OpenCL. It does not add any compile-time or runtime dependency of OpenCL. When OpenCL is available, it’s detected and used, but it can be disabled at compile time or at runtime. It covers ~100 OpenCV functions. This work has been done by contract and with generous support from AMD and Intel companies.
- ~40 OpenCV functions have been accelerated using NEON intrinsics and because these are mostly basic functions, some higher-level functions got accelerated as well.
- There is also new OpenCV HAL layer that will simplifies creation of NEON-optimized code and that should form a base for the open-source and proprietary OpenCV accelerators.
- The documentation is now in Doxygen: http://docs.opencv.org/master/
- We cleaned up API of many high-level algorithms from features2d, calib3d, objdetect etc. They now follow the uniform “abstract interface – hidden implementation” pattern and make extensive use of smart pointers (Ptr<>).
- Greatly improved and extended Python & Java bindings (also, see below on the Python bindings), newly introduced Matlab bindings (still in alpha stage).
- Improved Android support – now OpenCV Manager is in Java and supports both 2.4 and 3.0.
- Greatly improved WinRT support, including video capturing and multi-threading capabilities. Thanks for Microsoft team for this!
- Big thanks to Google who funded several successive GSoC programs and let OpenCV in. The results of many successful GSoC 2013 and 2014 projects have been integrated in opencv 3.0 and opencv_contrib (earlier results are also available in OpenCV 2.4.x). We can name:
- text detection
- many computational photography algorithms (HDR, inpainting, edge-aware filters, superpixels, …)
- tracking and optical flow algorithms
- new features, including line descriptors, KAZE/AKAZE
- general use optimization (hill climbing, linear programming)
- greatly improved Python support, including Python 3.0 support, many new tutorials & samples on how to use OpenCV with Python.
- 2d shape matching module and 3d surface matching module
- RGB-D module
- VTK-based 3D visualization module
- Besides Google, we enjoyed (and hope that you will enjoy too) many useful contributions from community, like:
- biologically inspired vision module
- DAISY features, LATCH descriptor, improved BRIEF
- image registration module
(note: if anything is missing here, please, mail to us and we will update the announcement and the changelog).
The release is pretty much compatible with 2.4.x, but there are some notable differences, which are described in the still-updated 2.4=>3.0 transition guide: http://docs.opencv.org/master/db/dfa/tutorial_transition_guide.html in particular, we have to remove some obsolete/unstable algorithms, functions, we moved some other stuff between modules or to opencv_contrib.
Since 3.0 release we change the version enumeration scheme. Instead of 3-digit version number, like 2.4.9 (where 4-digit version 126.96.36.199 is used for intermediate updates), we will use 2-digit (3.0, 3.1 etc.) with the 3rd digit used for the intermediate updates.
In other words, in the next 1-2+ years we will have evolving 3.x series of releases with very good compatibility between them.
We would like to sincerely thank everybody who helped us to prepare the release, who submitted new functionality, patches, who submitted bug reports, who mentored the students, who donated to OpenCV.org, the companies who funded 3.0 development and everybody else to helped us in one or another way.
This is list of contributors, based on the git logs:
Ilya Lavrenov, Vladislav Vinogradov, Vadim Pisarevsky, Roman Donchenko, Alexander Alekhin, Anatoly Baksheev, Alexander Karsakov, vbystricky, ozantonkal, Alexander Smorkalov, Maksim Shabunin, edgarriba, hbristow, Elena Gvozdeva, StevenPuttemans, Konstantin Matskevich, Andrey Pavlenko, Ievgen Khvedchenia, Adrien BAK, Erik Karlsson, Rahul Kavi, peng xiao, Fedor Morozov, Jin Ma, Olexa Bilaniuk, Alexander Shishkov, siddharth, Alex Leontiev, laurentBerger, Alexander Mordvintsev, Ozan Tonkal, lluis, berak, Daniel Angelov, Dmitry-Me, Maxim Kostin, orestis, Hilton Bristow, Tony, Ernest Galbrun, Nghia Ho, Artur Wieczorek, Mathieu Barnachon, Vladimir Bystricky, Aaron Denney, Ovidiu Parvu, abidrahmank, Dmitriy Anisimov, Ilya Krylov, Yan Wang, krodyush, mlyashko, yao, Philipp Hasper, Pierre-Emmanuel Viel, Rok Mandeljc, kdrobnyh, Adi Shavit, Maks Naumov, ilya-lavrenov, perping, Philippe FOUBERT, VBystricky, Vincent Rabaud, cbalint13, Aaron Kunze, Ashod Nakashian, Dikay900, GregoryMorse, Juan Manuel Perez, Marc Rollins, Michael Pratt, Fco. Javier Delgado del Hoyo, Greg Hale, Matthias Bady, Nisarg Thakkar, Peter Andreas Entschev, PhilLab, Rohit Girdhar, yash, Adil Ibragimov, Adrian Stratulat, Alexey Spizhevoy, Andrey Kamaev, Baichuan Su, Daniil Osokin, Jan Starzynski, Joe Howse, Jose-Luis Blanco-Claraco, Marvin Smith, Alexander Nitsch, Andrew Senin, Bahram Dahi, Evgeny Agafonchikov, Mimmmo Cosenza, Vladimir Dudnik, Chechli, Cosmin Boaca, Deanna Hood, Dmitry Retinskiy, ElenaGvozdeva, GilLevi, Nick D’Ademo, Peng Xiao, TobyWanKenobi, Zhigang Gong, dbloisi, konstantin, theodore, Сергей Нужный, Bo Li, Chuanbo Weng, Firat Kalaycilar, Hamid Bazargani, Istvan Sarandi, John Stowers, Kirill Kornyakov, Koji Miyazato, Martin Dlouhy, Matt Venn, Matti Picus, Max Khardin, Pavel Rojtberg, Samson Yilma, Stuart Cunningham, kalistratovag, kamjagin, mletavin, pradeep, Alexander Duda, Ben Hagen, Brian Park, Eric Sommerlade, Gabe Schwartz, Gustavo Vargas, Igor Kuzmin, Juan Carlos Niebles, Kang Liu, Kenaniah Cerny, Leszek Swirski, Michele Adduci, Miroslav Kobetski, Nicu Știurcă, Ruslan Baratov, Sander Mathijs van Veen, Sebastian KrÃ¤mer, Seunghoon Park, Simon Heinen, Séverin Lemaignan, Takahiro Poly Horikawa, WonderRico, Ying Xiong, f-morozov, jaco, kocheganovvm, look4pritam, pengxiao, pxli168, rajithr, sgjava, xantares, 1Hyena, ASUS, Ahmatnurov Dinar, Alessandro Trebbi, Alexander Pacha, Ana Huaman Quispe, Andreas Stührk, Bence Magyar, Bo Hu, Boaz Stolk, Changlin Hsieh, Christian Richardt, Cody Rigney, Daniel Fernandes, DeanF, Denis Zaryaev, Frédéric Devernay, Hanusz Leszek, Jason Newton, Joe Minichino, Josep Bosch, Kazuki Matsuda, Kobi Gurkan, Lars Glud, Luis Díaz Más, Mansour Moufid, Marek Nogacki, Martin Jul, Martin Ueding, Mike Maraya, Miroslav Benes, Naer Chang, Nicolas Gryman, Nikita Manovich, Nils Plath, Owen Healy, Pablo Speciale, Pat O’Keefe, Pavel Vlasov, Pierre Moulon, Piotr Miecielica, RJ2, S. Garrido, Samyak Datta, Sancho McCann, Scott Breyfogle, Sergey Nikulov, Shubhra Pandit, Sync-my-L2P, U-WBI\nlv20442, Vladimir Kolesnikov, Volodymyr Kysenko, Yash Vadalia, Yury Gorbachev, Zac Stewart, Ziyang LI, eltermann, guopei, ippei ito, juanmanpr, karelknoest, micha137, moodoki, sanuj, sprice, thoinvil, zio dodo, Abhijit Kundu, Abid K, Achal Dave, Adam Borowski, Adam Greig, AfterEight, Aleksandr Petrikov, Alex Willisson, Alexander Bohn / FI$H2k, Alexey Stadnik, Alfonso (the fonz) de la Osa, András Kovács, Anish Pednekar, Anna Kogan, Ari Suwendi, Ariel Elkin, Arun JVS, Baris Evrim Demiroz, Basheer Subei, Beat Küng, Belev, Benjamin Flesch, Benoit Seguin, Björn Wöldecke, Bob Igo, Boris Daskalov, Camille, Chris Mayo, Claudio Caraffi, Clemens Korner, ComFreek, Craig Reynolds, Csaba Kertesz, Daeyun Shin, Daniel Neel, Daniel Sjölie, Daniel Stonier, Dave Hughes, David Bradley, David Hirvonen, David Rolland, David Schmidt, Dinar Valeev, Diogo Rolo, Dirk Van Haerenborgh, Dmitry Gribanov, Drew Jetter, Ehren Metcalfe, Elliot Godzich, Eric Martin Christiansen, Evgeniy, Felix Endres, Florian Verdet, George Andrew Brindeiro, GrinIara, Guo Yejun, Han Qiang, Hans Johnson, Harris Gasparakis, Heinz Hofbauer, HelenWong, Hernan Badino, Huu Nguyen, Ian Taylor, Ivy Lee, Jasper, Jay Bosamiya, JinoBetti, Jiri Drbalek, Joan Puigcerver, John Kua, Jonathan Viney, Julien Nabet, Jüri Aedla, Kai Wolf, KayKwon, Kevin, Kevin Mitchell, Kevin Squire, Kiran Pradeep, Kyrylo Shegeda, Leonid Beynenson, Ling Wang@z77x, Linquize, LorenaGdL, Low Chin Kian, Luis Zarrabeitia, Manfred Georg, Maria Dimashova, Marijan Vukcevich, MarkBelmont, Martijn Liem, Martin Chodakowski, Matthew Conway, Max Kostin, Maximilien Cuony, Michae Gharbi, Michael Hanselmann, Michael Vukadinovic, Michaël Sdika, Mike Izbicki, Milania1, Modesto Castrillón, Muto Masayuki, Nathan Jackson, Neo Alienson, Nghia, Nicolas Martin, Nicolas Riebesel, Niklas Frisk, Patrick Tsai, Patrik Huber, Petr Glotov, Pierrick Koch, Piotr Dobrowolski, Poly Takahiro Horikawa, Prof. Dr. Rudolf Haussmann, Quentin Minster, RafaRuiz, Robbert Klarenbeek, Roy Reapor, Samed Ozdemir, Samuel Martin, Samuel Wejéus, Saree90, Scott Graybill, Sebastian Krämer, Sergei Nikulov, Shai, Shervin Emami, Shiquan Wang, Sven Wehner, Thierry Hoinville, Thomas Gabrowski, Tim D. Smith, Timur Sattarov, Tomasz Posłuszny, Tzafrir, U-KruchininD-ПК\KruchininD, UQ Times, Vicente Olivert Riera, Vlad Shakhuro, Yang Fan, Yantao Xie, Yusuke Suzuki, ZlodeiBaal, ahb, akrynski, aletheios, antonella, atinfinity, bartaandras, burun, dkanafeev, dpen2000, exeltior, fhsm, fm, gleb.sternharz, greensea, hahne, huangs, jeremy, jormansa, kuroda sho, kurodash, lujia, mariadeanton, msandler, potpath, sergei, shawke, soyer, tambo83, tcavallari, tim36272, tt, ttagu99, vincentweb, yanlend, ytxie, zenev, ziyangli, 侯骥
jaco, biagio montesano, Vlad Shakhuro, Alex Leontiev, Bellaktris, Vadim Pisarevsky, cbalint13, lluis, dmitriy.anisimov, Maksim Shabunin, vludv, Dmitriy Anisimov, Alexandre Benoit, GilLevi, Alexander Shishkov, Bence Magyar, Daniel Angelov, ahb, Kirill Kornyakov, Beat Küng, berak, tpietruszka, StevenPuttemans, Alexander Mordvintsev, Alfonso Sanchez-Beato, Ilya Lavrenov, fpuja, manuele, vbystricky, Antonella Cascitelli, Auron-X, Dikay900, Philipp Hasper, Rok Mandeljc, Sancho McCann, Str3iber, Alexander Alekhin, Jay Bosamiya, Vincent Rabaud, laurentBerger, Aliaksandr, BISMOY MURASING, Dinar Ahmatnurov, Ernest Galbrun, Michele Adduci, Nisarg Thakkar, Poly Takahiro Horikawa, Sh0, Shuda Li, VBystricky, Vladimir, Yan Wang, jiaolong_cvc228, pmkalshetti, root, tolgabirdal, yifita
Wish you pleasant experience with OpenCV 3.0!