当前位置:   article > 正文

OpenCV4.0 Change Logs_evhog

evhog

https://github.com/opencv/opencv/wiki/ChangeLog

OpenCV Change Logs

version:4.0.0

4.0.0-alphaSeptember, 2018

4.0.0-betaOctober, 2018

We are moving towards OpenCV 4.0 gold. Here is what's new in OpenCV 4.0 alpha/beta:

  • OpenCV is now C++11 library and requires C++11-compliant compiler. Note that OpenCV 3.x can also be built as C++11 library by passing -DENABLE_CXX11=ON flag to CMake. Now this is the only option so the flag is not needed and is not available anymore.

    • Thanks to the extended C++11 standard library, we could get rid of hand-crafted cv::String and cv::Ptr. Now cv::String == std::string and cv::Ptr is a thin wrapper on top of std::shared_ptr. Also, on Linux/BSD for cv::parallel_for_ we now use std::thread's instead of pthreads.

  • DNN improvements

    • Added support for Mask-RCNN model. Follow a guide and use a python sample.

    • Integrated ONNX parser. We now support many popular classification networks. YOLO object detection network in partially supported as well (ONNX version of YOLO lacks some final layers that actually give you the list of rectangles). Thanks to Lubov Batanina for her first-time contribution to OpenCV!

    • Further improved performance of DNN module when it's built with Intel DLDT support by utilizing more layers from DLDT.

    • API changes: by default, blobFromImage methods family do not swap red and blue channels and do not crop the input image. Beware that this API change has also been propagated to OpenCV 3.4 branch.

    • Added shortcuts for the most popular deep learning networks supported by OpenCV. You may specify an alias name of model to skip pre-processing parameters and even paths to models! In example, instead of

      python object_detection.py --model opencv_face_detector.caffemodel --config opencv_face_detector.prototxt --mean 104 177 123 --width 300 --height 300
      

      you can type just

      python object_detection.py opencv_fd
      
    • Fixed OpenCL target for AMD and NVIDIA GPUs. Now you may enable DNN_TARGET_OPENCLfor your model without extra environment variables. Please note that DNN_TARGET_OPENCL_FP16 is tested on Intel GPUs only so it still requires additional flags.

  • Performance improvements

    • A few hundreds of basic kernels in OpenCV have been rewritten using so-called "wide universal intrinsics". Those intrinsics map to SSE2, SSE4, AVX2, NEON or VSX intrinsics, depending on the target platform and the compile flags. It should translate to noticeably better performance, even for some already optimized functions. For example, if you configure and compile OpenCV with CPU_BASELINE=AVX2 CMake flag, you can get extra 15-30% speed improvement for certain image processing operations. By OpenCV 4.0 gold we plan to translate many more kernels to such intrinsics and also employ our dynamic dispatching mechanism, so that on x64 platform AVX2-optimized kernels are always built-in and could be selected on-fly if the actual hardware supports such instructions (without having to change CPU_BASELINE). Big thanks to Sayed Adel for VSX backend and the initial (but rather complete!) AVX2 backend of the wide universal intrinsics! Big thanks to Vitaly Tuzov for conversion of many functions in OpenCV to wide universal intrinsics.

  • QR code detector and decoder have been added to opencv/objdetect module together with live sample. Currently, the decoder is built on top of QUirc library (which snapshot we put into opencv). Thanks to our intern Alexander Nesterov for this important contribution!

  • The popular Kinect Fusion algorithm has been implemented, optimized for CPU and GPU (OpenCL), and integrated into opencv_contrib/rgbd module. To make the live sample work, we updated our Kinect 2 support in opencv/videoio module. In 4.0 beta the code has been accelerated for iGPU, which resulted in 3x performance boost in the high-resolution case (512x512x512 integration volume). Thanks to Rostislav Vasilikhin for the excellent work!

Contributors

opencv

opencv_contrib

version:3.4.3

August, 2018

OpenCV 3.4.3 has been released, with further extended dnn module, documentation improvements, some other new functionality and bug fixes.

TBD

Contributors

opencv (35 contributors)

opencv_contrib (13 contributors)

version:3.4.2

July, 2018

OpenCV 3.4.2 has been released, with further extended dnn module, documentation improvements, some other new functionality and bug fixes.

OpenCV 3.4.x development is switched from "master" to "3.4" branch. "master" branch is used for development of upcoming OpenCV 4.x releases.

Bugfixes / optimizations / small improvemets should go into "3.4" branch. We will merge changes from "3.4" into "master" regularly (weekly/bi-weekly).

  • DNN improvements

    • Added a new computational target DNN_TARGET_OPENCL_FP16 for half-precision floating point arithmetic of deep learning networks using OpenCL. Just use net.setPreferableTarget(DNN_TARGET_OPENCL_FP16).
    • Extended support of Intel's Inference Engine backend to run models on GPU (OpenCL FP32/FP16) and VPU (Myriad 2, FP16) devices. See an installation guide for details.
    • Enabled import of Intel's OpenVINO pre-trained networks from intermediate representation (IR).
    • Introduced custom layers support which let you define unimplemented layers or override existing ones. Learn more in a corresponding tutorial.
    • Implemented a new deep learning sample inspired by EAST: An Efficient and Accurate Scene Text Detector.
    • Added a support of YOLOv3 and image classification models from Darknet framework.
    • Reduced top DNN's memory consumption and improvements in support of networks from TensorFlow and Keras.

  • Excellent tutorials improvements. Python / Java examples are merged into C++ tutorials. Big thanks to Catree.

  • Video I/O: improved support of Microsoft Media Foundation (MSMF)

Contributors

opencv (83 contributors)

opencv_contrib (17 contributors)

version:3.4.1

February, 2018

OpenCV 3.4.1 has been just released, with further extended dnn module, multiple bug fixes and other small and big improvements.

  • Added support for quantized TensorFlow networks. We are now able to load 8-bit matrices of weights. The computations are still done in FP32 (with plans to add FP16 path), but even now it's possible to compress the networks so that they consume less disk space. For example, our face detector can be modified to read and use our 8-bit quantized ResNet-based face detection network (pass it and this description file into cv::dnn::readNetFromTensorFlow()). And the face detection network takes just 2.7Mb.

  • OpenCV is now able to use Intel DL inference engine as DNN acceleration backend. It gives quite noticeable performance boost on many models:

ModelCPU, default backendCPU, Inference Engine backend, MKL-DNN pluginModel Optimizer + Inference Engine, MKL-DNN plugin (a standalone application)
AlexNet14.44ms12.09ms (x1.19)12.05ms
GoogLeNet15.26ms8.92ms (x1.71)8.75ms
ResNet-5035.78ms19.53ms (x1.83)19.4ms
SqueezeNet v1.14.01ms2.60ms (x1.54)2.5ms
MobileNet-SSD from Caffe21.62ms8.89ms (x2.43) 
DenseNet-12161.71ms28.21ms (x2.18) 
OpenPose (COCO) @ 368x368885.57ms544.05ms (x1.62) 
OpenPose (MPI) @ 368x368879.13ms533.96ms (x1.64) 
OpenPose (MPI, 4 stages) @ 368x368605.63ms378.49ms (x1.60) 
OpenFace3.84ms2.59ms (x1.48) 
  • Added AVX-512 acceleration to the performance-critical kernels, such as convolution and fully-connected layers. Some networks, such as SSD object detection and ENet semantical segmentation, have been accelerated by ~20%.

  • SSD-based models trained and retrained in TensorFlow Object Detection API can be easier imported by a single invocation of python script making a text graph representation. Read a wiki page for details.

  • Performance of pthreads backend of cv::parallel_for_() (which is used by default on Linux/Android, unless you installed TBB or chose OpenMP) has been greatly improved on many core machines, in particular 10-core Core i9. That let us to increase performance of DNN inference quite significantly (up to 6x) on such machines.

  • OpenCL backend has been expanded to cover more layers. The layer fusion has also been improved to increase the speed even further. It shall be reminded that in order to enable OpenCL backend (if it's available on the host machine) one should call the method my_dnn_net.setPreferableTarget(cv::dnn::DNN_TARGET_OPENCL) before the inference, where my_dnn_net is the network loaded using cv::dnn::readNetFromCaffe()cv::dnn::readNetFromTensorFlow() etc.

  • Several bugs in various layers have been fixed; in particular, SSD priors are now computed slightly differently so that we can more accurate bounding boxes when running SSD on variable-size images.

  • On-disk caching of precompiled OpenCL kernels has been fixed to comply with OpenCL standard. Correspondingly, it now works well with the new Intel OpenCL (NEO) drivers.
  • Certain cases with UMat deadlock when copying UMats in different threads has been fixed.

  • Supported Android NDK16
  • Added build.gradle into OpenCV 4 Android SDK
  • Added initial support of Camera2 API via JavaCamera2View interface

  • C++11: added support of multi-dimentional cv::Mat creation via C++ initializers lists:

    auto K = Mat_<double>({3, 3}, {0, -1, 0, -1, 5, -1, 0, -1, 0});
  • C++17: OpenCV source code and tests comply C++17 standard

  • opencv_contrib: added GMS matching

  • opencv_contrib: added CSR-DCF tracker

  • opencv_contrib: several improvements in OVIS module (OGRE 3D based visualizer)

  • ~248 patches have been merged since OpenCV 3.4.0

  • 203 issues have been closed

Contributors

opencv

  1. $ git shortlog --no-merges -ns 3.4.0..3.4.1
  2. 98 Alexander Alekhin
  3. 27 Dmitry Kurtaev
  4. 27 Li Peng
  5. 27 Maksim Shabunin
  6. 10 Fangjun Kuang
  7. 6 Vitaly Tuzov
  8. 6 luz.paz
  9. 5 Namgoo Lee
  10. 4 Tomoaki Teshima
  11. 3 Arjan van de Ven
  12. 3 Glue Crow
  13. 3 LaurentBerger
  14. 3 Sayed Adel
  15. 3 Suleyman TURKMEN
  16. 2 Alessandro de Oliveira Faria (A.K.A.CABELO)
  17. 2 Arthur Williams
  18. 2 Gregory Morse
  19. 2 Hamdi Sahloul
  20. 2 Pavel Rojtberg
  21. 2 Rostislav Vasilikhin
  22. 2 Steven
  23. 2 Woody Chow
  24. 2 berak
  25. 2 csukuangfj
  26. 2 oqtvs
  27. 2 victor-ludorum
  28. 2 wxzs5
  29. 1 Aaron Bray
  30. 1 Aditya Rohan
  31. 1 Alexander Nesterov
  32. 1 Ali Sentas
  33. 1 Ce Zheng
  34. 1 Chris Hall
  35. 1 Coralie RACHEX
  36. 1 Csaba Keszegh
  37. 1 David Koller
  38. 1 Elena Gvozdeva
  39. 1 Eric Wang
  40. 1 Erik Man
  41. 1 Florian Echtler
  42. 1 GlueCrow
  43. 1 Harshal Nishar
  44. 1 Jozef Mlich
  45. 1 Jun Zhao
  46. 1 Li, Peng
  47. 1 Mark Harfouche
  48. 1 Moshe
  49. 1 PalkoNazar
  50. 1 Patrik Huber
  51. 1 Philipp Hasper
  52. 1 Ryo Suzuki
  53. 1 Rémi Ratajczak
  54. 1 SarenT
  55. 1 Stanislaw Halik
  56. 1 Sui Libin
  57. 1 Tom Becker
  58. 1 Travers
  59. 1 Vinay Sharma
  60. 1 Ya-Chiu Wu
  61. 1 catree
  62. 1 denmatfoton
  63. 1 elenagvo
  64. 1 jasjuang
  65. 1 mworchel
  66. 1 razerhell
  67. 1 sergeybe
  68. 1 take1014
  69. 1 tobycollins
  70. 1 woody.chow
  71. 1 yuki takehara

opencv_contrib

  1. $ git shortlog --no-merges -ns 3.4.0..3.4.1
  2. 10 Pavel Rojtberg
  3. 4 Hamdi Sahloul
  4. 3 Alexander Alekhin
  5. 3 KUANG Fangjun
  6. 2 Maksim Shabunin
  7. 2 Vitaly Tuzov
  8. 2 berak
  9. 2 catree
  10. 1 Adam
  11. 1 Andrej Muhič
  12. 1 Fangjun Kuang
  13. 1 John Cant
  14. 1 Kv Manohar
  15. 1 Plamen Dimitrov
  16. 1 Suleyman TURKMEN
  17. 1 Yujun Shi
  18. 1 adrianheron
  19. 1 caseymcc
  20. 1 klchang

version:3.4

December, 2017

OpenCV 3.4 (NY 2018 edition) has been released, with further extended dnn module, some other new functionality, improvements and bug fixes.

The results of yet another GSoC 2017 OpenCV project on implementing new background subtraction algorithms have been integrated. Please, check the script, the algorithms LSBP-* and GSOC-*.

opencv_dnn has been further improved and extended:

  • Added faster R-CNN support and the corresponding example.

  • Javascript bindings have been extended to cover DNN module. See the corresponding tutorial
  • Also, DNN has been further accelerated for iGPU using OpenCL. In particular, MobileNet-SSD networks now run ~7 times faster than in OpenCV 3.3.1. Big thanks to Peng Li and his team for the contribution.

  • On-disk caching of precompiled OpenCL kernels has been finally implemented. It noticeably reduces initialization time of applications that use a lot of kernels.
  • Also, it's now possible to load and run pre-compiled OpenCL kernels via T-API. It can be useful on embedded platforms without OpenCL JIT compiler available. For details, see the following guide on OpenCL acceleration in OpenCV.

  • Bit-exact 8-bit and 16-bit resize has been implemented (currently supported only bilinear interpolation). Use INTER_LINEAR_EXACT interpolation mode. In many places in the library we've switched to this new resize. Bit-exact means that on any platform with any compiler etc. you will get absolutely the same results for the same scale factor values, there will be no difference (even +/-1) in pixel values in the output image. The function complements a few other bit-exact algorithms added in OpenCV 3.3.1: cvtColor(RGB<=>Lab, RGB<=>Luv).

  • Now the reference guide includes function/method prototypes for the Python bindings, e.g. type "convexHull" in the search field and you will see the C++ declaration and the Python wrapper spec below. That was another GSoC 2017 project. Big thanks to Cartucho and Vincent Rabaud.
  • Excellent tutorial on how to compute and use homography matrix in OpenCV has been added. Big thanks to Catree.
  • The guide on how to use OpenCV with Intel Media SDK in order to get hardware-accelerated video decoding/encoding has been written by Maksim Shabunin.
  • Another guide has been added a few months ago by Alexander Alekhin, but was not mentioned before, on how to profile OpenCV-based applications using Intel Tracing Technology tool.
  • Quite comprehensive set of tutorials on how to use OpenCV within a browser (via javascript bindings) has been created during GSoC 2017

  • ~250 patches have been merged since OpenCV 3.3.1
  • over 200 issues have been closed

Contributors

opencv

  1. 103 Alexander Alekhin
  2. 25 Dmitry Kurtaev
  3. 23 Maksim Shabunin
  4. 17 Li Peng
  5. 17 elenagvo
  6. 14 Vitaly Tuzov
  7. 10 Suleyman TURKMEN
  8. 10 catree
  9. 8 Tomoaki Teshima
  10. 6 Sayed Adel
  11. 5 LaurentBerger
  12. 5 Vladislav Sovrasov
  13. 5 Wu Zhiwen
  14. 4 Pavel Rojtberg
  15. 4 Rostislav Vasilikhin
  16. 4 Vadim Pisarevsky
  17. 3 tribta
  18. 2 Bhanudutta
  19. 2 Fakabbir Amin
  20. 2 Mattia Rizzolo
  21. 2 Ryan Fox
  22. 2 Shinya Ishikawa
  23. 2 berak
  24. 2 dtmoodie
  25. 1 Akhilesh Kumar
  26. 1 Alexander Nesterov
  27. 1 Alexander Rybnikov
  28. 1 Amro
  29. 1 Andrey Smorodov
  30. 1 Arthur Pastel
  31. 1 Cartucho
  32. 1 Christof Kaufmann
  33. 1 David Geldreich
  34. 1 Elena Gvozdeva
  35. 1 Florian Echtler
  36. 1 Hamdi Sahloul
  37. 1 Haritha
  38. 1 Iago Suárez
  39. 1 Igor Wodiany
  40. 1 Ivan Pozdeev
  41. 1 Jacob MacRitchie
  42. 1 James Perkins
  43. 1 Jcrist99
  44. 1 Jiri Horner
  45. 1 Jonathan Viney
  46. 1 Juha Reunanen
  47. 1 KUANG Fangjun
  48. 1 Mikhail Paulyshka
  49. 1 Muhammad Abdullah
  50. 1 Nickola
  51. 1 Pushkal Katara
  52. 1 Riyuzakii
  53. 1 Roman Cattaneo
  54. 1 Shresth Verma
  55. 1 Simon Guo
  56. 1 Wei Hao
  57. 1 Wu, Zhiwen
  58. 1 alessandro faria
  59. 1 gdkessler
  60. 1 klchang
  61. 1 woody.chow
  62. 1 wxzs5
  63. 1 zhijackchen
  64. 1 zhongwuzw

opencv_contrib

  1. 20 sghoshcvc
  2. 18 Vladislav Sovrasov
  3. 9 Alexander Alekhin
  4. 6 Vitaly Tuzov
  5. 6 berak
  6. 5 Hamdi Sahloul
  7. 5 Maksim Shabunin
  8. 4 Pavel Rojtberg
  9. 4 Suman Ghosh
  10. 3 LaurentBerger
  11. 3 Leonardo Brás
  12. 2 Suleyman TURKMEN
  13. 1 Adam Gradzki
  14. 1 Anup Parikh
  15. 1 Dmitry Kurtaev
  16. 1 Egor Pugin
  17. 1 Leonardo lontra
  18. 1 Oleg Kalachev
  19. 1 Vladislav Samsonov
  20. 1 cDc
  21. 1 fiammante
  22. 1 klchang
  23. 1 kurnianggoro
  24. 1 kushalvyaskv
  25. 1 sukhad-app

version:3.3.1

October, 2017

OpenCV 3.3.1 with extended dnn module, most of GSoC 2017 results integrated and other improvements has been released.

Results of several GSoC 2017 projects have been integrated:

  • multi-language (e.g. C++/Python/Java) tutorials by João Cartucho, mentored by Vincent Rabaud
  • AKAZE acceleration by Jiri Horner, mentored by Bence Magyar
  • End-to-end text detection and recognition by Suman Kumar Ghosh, mentored by Prasanna Krishnasamy

One of GSoC 2017 projects that deserves a dedicated section in the change log:

  • Javascript interface to OpenCV (via Emscripten technology) and interactive Web-based OpenCV tutorials by Gang Song and Congxiang Pan. This small yet powerful team was supervised by Sajjad Taheri, Ningxin Hu and Mohammad R Haghighat.

opencv_dnn has been further improved and extended; new samples have been added:

  • Face detection sample and the light-weight Resnet-10 + SSD based network have been added. See the example for details. The detector runs around 20-50FPS on a normal desktop/laptop, and the network is just 10MB (FP32) or even 5MB (FP16).

  • The partial Darknet parser, enough to parse YOLO models, as well as the layers to support a few variations of YOLO object detection networks have been integrated. See the corresponding sample.

  • Preliminary support for FP16 networks has been added. We do not do computations in FP16 yet, we convert FP16 coeffs to FP32 when loading the networks. In the case of Caffe we rely on the following fork, whereas in the case of TF we use the official version.

  • Several new layers have been added to support text detection, image colorization and some other networks.

  • OpenCV has been optimised for PPC64 (64-bit PowerPC) architecture by mapping the universal intrinsics to VSX. Big thanks to Sayed Adel for the patches.

  • OpenCL acceleration path of the bioinspired module has been restored. See the bioinspired-based HDR/Background segmentation example. On Iris Pro HD5200 we get ~5x acceleration over the CPU branch.

  • KCF tracker has been accelerated by ~40%.

  • Hardware-accelerated video encoding/decoding via MediaSDK is now available on Windows too.

Contributors

opencv

  1. 87 Alexander Alekhin
  2. 32 Dmitry Kurtaev
  3. 20 Vladislav Sovrasov
  4. 19 Rostislav Vasilikhin
  5. 19 tribta
  6. 14 Suleyman TURKMEN
  7. 10 saskatchewancatch
  8. 9 Tomoaki Teshima
  9. 8 Maksim Shabunin
  10. 6 Ningxin Hu
  11. 5 LaurentBerger
  12. 5 berak
  13. 4 Pavel Rojtberg
  14. 4 Steven Puttemans
  15. 4 Vitaly Tuzov
  16. 3 Pavel Vlasov
  17. 3 KUANG Fangjun
  18. 3 Boris Fomitchev
  19. 3 Igor Wodiany
  20. 2 Ryan Fox
  21. 2 Nishant Arora
  22. 2 Emanuele Ruffaldi
  23. 2 Wu Zhiwen
  24. 2 Tony0
  25. 2 RAJ NATARAJAN
  26. 2 Adi Shavit
  27. 2 Christof Kaufmann
  28. 2 Aleksandr Rybnikov
  29. 2 Sayed Adel
  30. 2 stalin18
  31. 2 Jiri Horner
  32. 2 Jasper Shemilt
  33. 2 Zoltán Mizsei
  34. 2 blendin
  35. 1 Ricardo Ribalda Delgado
  36. 1 Sayan Sinha
  37. 1 Sebastian Höffner
  38. 1 Sergey Alexandrov
  39. 1 Vivek Wisdom
  40. 1 Vladislav Vinogradov
  41. 1 Woody Chow
  42. 1 Yaron Inger
  43. 1 bradford barr
  44. 1 catree
  45. 1 jodrescher
  46. 1 joncrall
  47. 1 jrobble
  48. 1 lzx1413
  49. 1 mevatron
  50. 1 pengli
  51. 1 tz70s
  52. 1 vipinanand4
  53. 1 678098
  54. 1 woody.chow
  55. 1 Adam Rankin
  56. 1 Alex Zatsman
  57. 1 AlexeyAB
  58. 1 Arvid Piehl Lauritsen Böttiger
  59. 1 Balint Cristian
  60. 1 Benoit Blanchon
  61. 1 Bisaloo
  62. 1 Camille Barneaud
  63. 1 Congxiang Pan
  64. 1 David Geldreich
  65. 1 Deric Crago
  66. 1 Faheel Ahmad
  67. 1 Geoff McIver
  68. 1 Gregory Morse
  69. 1 Guillaume Jacob
  70. 1 James Perkins
  71. 1 Jeremy Maitin-Shepard
  72. 1 John Hany
  73. 1 KUANG, Fangjun
  74. 1 Kerry Billingham
  75. 1 Khem Raj
  76. 1 Kim Lindberg Schwaner
  77. 1 Lewis B
  78. 1 Li Peng
  79. 1 Maarten de Vries
  80. 1 Martin Seyferth
  81. 1 Mattia Rizzolo
  82. 1 Patel, Nilaykumar K
  83. 1 Peter Fischer
  84. 1 Peter J. Stieber
  85. 1 Philipp Hasper
  86. 1 Pranit Bauva
  87. 1 Raymond Kirk

opencv_contrib

  1. 19 Alexander Alekhin
  2. 19 Vladislav Sovrasov
  3. 13 Anguelos Nicolaou
  4. 4 Suleyman TURKMEN
  5. 3 Vitaly Tuzov
  6. 3 acyen
  7. 3 jaco
  8. 2 Woody Chow
  9. 2 Maksim Shabunin
  10. 2 LaurentBerger
  11. 2 Andrew Hundt
  12. 2 Fernando Martin
  13. 1 baudenri
  14. 1 f3rm4rf3r
  15. 1 jasjuang
  16. 1 jrobble
  17. 1 klchang
  18. 1 Ahmed Yarub Hani
  19. 1 woody.chow
  20. 1 Albert
  21. 1 Cristian Duguet
  22. 1 Dmitry Kurtaev
  23. 1 Felix Wehnert
  24. 1 Francis Charette Migneault
  25. 1 Gregor Kovalčík
  26. 1 Jaykob
  27. 1 Linus Ericsson
  28. 1 Nuzhny007
  29. 1 Piotr Majkrzak
  30. 1 atinfinity

version:3.3

August, 2017

OpenCV 3.3 with accelerated dnn module, moved to the main repository, first-ever appearance of Halide in OpenCV, multiple optimizations and other improvements has been released.

opencv_dnn module has been moved from the contribution repository (opencv_contrib) to the main repository (opencv) and was significantly improved:

  • High-level API has been modified and is even more convenient now.

  • The regression tests have been expanded, some new tests have been added. Now, there are 46 of them.

  • Many bugs have been fixed in Torch and TF loaders, as well as in some processing layers. Now we check that on a certain set of networks the results from OpenCV DNN match or very close to the results from the original frameworks. We also check that the results claimed in the papers for such networks are achievable with OpenCV DNN.

  • Performance has been substantially improved. Layer fusion has been implemented and some performance-critical layers have been optimized using AVX, AVX2, SSE and NEON. An external BLAS (OpenBLAS, MKL, ATLAS) is not needed anymore.

  • New samples in C++ and Python have been added.

  • The optional Halide backend has been added. It can accelerate OpenCV DNN on GPU when the GPU is fast enough.

    See Deep Learning in OpenCV for details about the module.

  • Upgraded IPPICV from 2015.12 to 2017.2 version brought ~15% speed improvement into core and imgproc modules (measured as geometrical mean over the corresponding performance tests).

  • Dynamic dispatching of SSE4.2/AVX/AVX2 code has been implemented. Previously, OpenCV had to be built with SSE4.x/AVX/AVX2 turned on in order to use such optimizations and that made it incompatible with older hardware. Now the OpenCV binaries automatically adapt to the real hardware and make use of new instructions if they are available while retaining compatibility with older hardware. All the existing AVX/AVX2 optimizations in OpenCV have been refactored to use this technology. AVX acceleration of DNN also uses dynamic dispatching.

  • OpenCV can now be configured and built as C++ 11 library. Pass -DENABLE_CXX11=ON to CMake. On some modern Linux distributions, like the latest Fedora, it’s enabled by default.

  • New features for C++ 11 users have been added:

    // 1. use parallel_for_ with lambda to compute Mandelbrot fractal
    parallel_for_(Range(0, img.rows*img.cols), [&](const Range& r) {
        for (int r = r.start; r < r.end; r++) {
            int i = r/img.cols, j = r%img.cols, t, maxiter=500;
            complex<float> z0(j * 2.7f/img.cols – 2.1f,
                              i * 2.4f/img.rows – 1.2f);
            for (t = 0; t < maxiter; t++) {
                if (z.real()*z.real()+z.imag()*z.imag()> 4.f) break;
                z = z*z + z0;
            }
            img.at<uchar>(i, j)=uchar(sqrt((float)t/maxiter)*255);
    }});
    
    // 2. using C++ 11 initializers
    auto A = Mat_<double>({0, -1, 0, -1, 5, -1, 0, -1, 0}).reshape(1, 3);
    Vec_<int, 10> digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    
    // 3. apply LUT to 8-bit image in C++ 11 style
    Mat_<Vec3b> img = imread("lena.jpg");
    for( auto& pixel: img ) {
        pixel[0] = gamma_lut[pixel[0]];
        pixel[1] = gamma_lut[pixel[1]];
        pixel[2] = gamma_lut[pixel[2]];
    }

  • Support for hardware-accelerated video encoding/decoding using Intel GPUs through Intel Media SDK has been implemented for Linux (in the form of backends for cv::VideoCapture and cv::VideoWriter).

Contributors

opencv

  1. 210 Alexander Alekhin
  2. 36 Vladislav Sovrasov
  3. 35 Tomoaki Teshima
  4. 31 Vitaly Tuzov
  5. 26 Maksim Shabunin
  6. 21 Fangjun KUANG
  7. 17 chacha21
  8. 14 LaurentBerger
  9. 12 berak
  10. 11 Rostislav Vasilikhin
  11. 11 catree
  12. 10 dkurt
  13. 8 Matthias Grundmann
  14. 8 Pavel Rojtberg
  15. 8 Pyotr Chekmaryov
  16. 8 Vadim Pisarevsky
  17. 8 Woody Chow
  18. 7 Aleksandr Rybnikov
  19. 7 atinfinity
  20. 6 Hamdi Sahloul
  21. 6 vskarlsruhe
  22. 5 Jiri Horner
  23. 5 KUANG, Fangjun
  24. 5 Michele Cancilla
  25. 5 StevenPuttemans
  26. 4 Dal Rupnik
  27. 4 Naba Kumar
  28. 4 Pavel Vlasov
  29. 4 chrizandr
  30. 4 saskatchewancatch
  31. 3 Claudio
  32. 3 Jaime O. Rios
  33. 3 Peter Würtz
  34. 3 PkLab.net
  35. 3 Suleyman TURKMEN
  36. 3 Wenju He
  37. 3 Yuriy Solovyov
  38. 3 abratchik
  39. 3 nnorwitz
  40. 3 oulenz
  41. 2 Alexander Broemmer
  42. 2 Artem Lukoyanov
  43. 2 Chaoshuai Lu
  44. 2 Drew Hintz
  45. 2 Kerry Billingham
  46. 2 LukeZhu
  47. 2 Matt Bennett
  48. 2 Philipp Hasper
  49. 2 Rink Springer
  50. 2 Sergiu Deitsch
  51. 2 Tetragramm
  52. 2 Tong Ke
  53. 2 Utkarsh Sinha
  54. 2 jveitchmichaelis
  55. 2 lewisjb
  56. 2 mshabunin
  57. 2 tribta
  58. 2 utibenkei
  59. 2 ville-v
  60. 2 ziggy90127
  61. 1 Adeel
  62. 1 Adeel Ahmad
  63. 1 Alessandro Gentilini
  64. 1 Alexander Duda
  65. 1 Amro
  66. 1 André Mewes
  67. 1 Anupam Sobti
  68. 1 Arek
  69. 1 Arkadiusz Raj
  70. 1 Arnaud Brejeon
  71. 1 BadrinathS
  72. 1 Bragadeesh
  73. 1 Brian Armstrong
  74. 1 Bryce Evans
  75. 1 Cartucho
  76. 1 Christof Kaufmann
  77. 1 David Carlier
  78. 1 Dinar
  79. 1 Dinar Ahmatnurov
  80. 1 Dmitry Kurtaev
  81. 1 Duncan Barber
  82. 1 Egor Pugin
  83. 1 Fernando Iglesias Garcia
  84. 1 Frank de Brabander
  85. 1 Gabriel B. Nunes
  86. 1 Guilherme William Guedes
  87. 1 Hans Gaiser
  88. 1 Ilija Puaca
  89. 1 Ismo Puustinen
  90. 1 James Clarke
  91. 1 Jejos
  92. 1 Jeremy Maitin-Shepard
  93. 1 Jinay Patel
  94. 1 Jiří Sejkora
  95. 1 Jon Eyolfson
  96. 1 Jose Gómez
  97. 1 Juha Reunanen
  98. 1 Julian Exner
  99. 1 Julian Tanke
  100. 1 Kene Udeh
  101. 1 Kuan-Yi Li
  102. 1 Kyle Fleming
  103. 1 Lorena García
  104. 1 Louie Helm
  105. 1 Mark Szumowski
  106. 1 Martin Ganeff
  107. 1 Neil Shipp
  108. 1 Neio Zhou
  109. 1 Nicholas Nadeau
  110. 1 Ninad P.Chaudhari
  111. 1 Paolo Perkovic
  112. 1 Pascal Thomet
  113. 1 Patrik Huber
  114. 1 Piotr Semenov
  115. 1 PkLab
  116. 1 Raj Natarajan
  117. 1 Robert Bragg
  118. 1 Robin Chavignat
  119. 1 Ryan Pavlik
  120. 1 Ryuhei Mori
  121. 1 Sadika Sumanapala
  122. 1 Satoshi Tanaka
  123. 1 Sergey
  124. 1 Shuyu Liang
  125. 1 Sixela David
  126. 1 Steve
  127. 1 Steven Puttemans
  128. 1 Tim King
  129. 1 Tony Lian
  130. 1 Tony Theodore
  131. 1 Vadzim Piatrou
  132. 1 Werner Palfinger
  133. 1 Yakun Wang
  134. 1 Yuval Langer
  135. 1 Zhiwei Su
  136. 1 brian-armstrong-discord
  137. 1 cDc
  138. 1 cclauss
  139. 1 daB0bby
  140. 1 gylns
  141. 1 hailong-wang
  142. 1 huangqinjin
  143. 1 insoow
  144. 1 ionut
  145. 1 jexner
  146. 1 jqly
  147. 1 krishraghuram
  148. 1 kvaghel1
  149. 1 likan999
  150. 1 logic1988
  151. 1 mrquorr
  152. 1 mschoeneck
  153. 1 msk-repo01
  154. 1 n001519
  155. 1 neok-m4700
  156. 1 orisano
  157. 1 puqeko
  158. 1 q
  159. 1 remi
  160. 1 rmensing
  161. 1 sovrasov
  162. 1 umbraclet16
  163. 1 vartenkov
  164. 1 wykvictor
  165. 1 wzw
  166. 1 xuning0
  167. 1 ylemkimon
  168. 1 zongwave

opencv_contrib

  1. 44 Vladislav Sovrasov
  2. 24 Alexander Alekhin
  3. 14 Aleksandr Rybnikov
  4. 11 Hamdi Sahloul
  5. 11 dkurt
  6. 9 Vadim Pisarevsky
  7. 7 berak
  8. 6 LaurentBerger
  9. 5 Maksim Shabunin
  10. 4 Balint Cristian
  11. 4 arrybn
  12. 3 Dmitry Kurtaev
  13. 3 Li Peng
  14. 3 Pavel Rojtberg
  15. 3 Pavel Vlasanek
  16. 3 Philipp Hasper
  17. 3 Suleyman TURKMEN
  18. 3 jexner
  19. 2 Kumataro
  20. 2 Steven Puttemans
  21. 2 Vladislav Samsonov
  22. 2 Woody Chow
  23. 2 atinfinity
  24. 2 lhelontra
  25. 2 mshabunin
  26. 2 np-csu
  27. 2 olivierpascal
  28. 1 Diego
  29. 1 Edgar Riba
  30. 1 Erik Sandrén
  31. 1 Erwan Normand
  32. 1 Haaris
  33. 1 Jcrist99
  34. 1 Jeremy Nicola
  35. 1 Julian Exner
  36. 1 Justin Hotchkiss Palermo
  37. 1 Kiran Pradeep
  38. 1 Leonardo lontra
  39. 1 Lorena García
  40. 1 Max-Wang
  41. 1 Natsuki Kawai
  42. 1 Rostislav Vasilikhin
  43. 1 Sergey
  44. 1 StevenPuttemans
  45. 1 Tham
  46. 1 Yorwba
  47. 1 Yuriy Obukh
  48. 1 abratchik
  49. 1 catree
  50. 1 goldstar616
  51. 1 logic1988
  52. 1 nyanp
  53. 1 oqtvs
  54. 1 saskatchewancatch
  55. 1 szk1509
  56. 1 utibenkei

version:3.2

December, 2016

Long-awaited update to OpenCV 3.x release series, with tons of improvements and bug fixes. Big thanks to everyone who particpated! If you contributed something but your name is missing, please, let us know.

  • Results from 11 GSoC 2016 projects have been submitted to the library, 9 of them have been integrated already, 2 still pending (the numbers below are the id’s of the Pull Requests in opencv or opencv_contrib repository):

    • Ambroise Moreau (Delia Passalacqua) – sinusoidal patterns for structured light and phase unwrapping module (711)
    • Alexander Bokov (Maksim Shabunin) – DIS optical flow (excellent dense optical flow algorithm that is both significantly better and significantly faster than Farneback’s algorithm – our baseline), and learning-based color constancy algorithms implementation (689, 708, 722, 736, 745, 747)
    • Tyan Vladimir (Antonella Cascitelli) – CNN based tracking algorithm (GOTURN) (718, 899)
    • Vladislav Samsonov (Ethan Rublee) – PCAFlow and Global Patch Collider algorithms implementation (710, 752)
    • João Cartucho (Vincent Rabaud) – Multi-language OpenCV Tutorials in Python, C++ and Java (7041)
    • Jiri Horner (Bo Li) – New camera model and parallel processing for stitching pipeline (6933)
    • Vitaliy Lyudvichenko (Anatoly Baksheev) – Optimizations and improvements of dnn module (707, 750)
    • Iric Wu (Vadim Pisarevsky) – Base64 and JSON support for file storage (6697, 6949, 7088). Use names like “myfilestorage.xml?base64” when writing file storage to store big chunks of numerical data in base64-encoded form.
    • Edgar Riba (Manuele Tamburrano, Stefano Fabri) – tiny_dnn improvements and integration (720: pending)
    • Yida Wang (Manuele Tamburrano, Stefano Fabri) – Quantization and semantic saliency detection with tiny_dnn
    • Anguelos Nicolaou (Lluis Gomez) – Word-spotting CNN based algorithm (761: pending)

    big thanks to all the participants!

  • There have been many contributions besides GSoC (big thanks to the authors, which names/nicknames are enclosed in parentheses):
    • DICOM support via GDCM library (look4pritam), PAM format support (DmtKats)
    • Support GigE cameras via Aravis SDK (thanks to ArkadiuszRaj)
    • Interactive camera calibration app, see https://github.com/opencv/opencv/tree/master/apps/interactive-calibration, and QR matrix decomposition (Vlad Sovrasov)
    • OpenCL accelerations exposed to Python (Nikolay Polyarniy)
    • Instrumentation framework for performance testing (Pavel Vlasov)
    • Many improvements in tests (Maksim Shabunin, Alexander Alekhin and many other people)
    • Weighted median filter (Zhou Chao)
    • VGG descriptor, BoostDesc descriptor (Balint Cristian)
    • Selective search segmentation (Maximilien Cuony)
    • Paillou and Deriche Filter (Laurent Berger)
    • Bilateral texture filter (jhlee525)
    • BIF descriptor (Alexey Spizhevoy)
    • BM3D noise reduction (Bartek Pawlik)
    • Fine Grained Saliency (Sebastian Montabone)
    • Position-Color-Texture signatures extractor (Gregor Kovalčík)
    • Thinning algorithms (Steven Puttemans)
    • Fast Line Detector (Jin Han Lee)
    • Freetype2 support (@Kumataro)
    • etc.

  • There are also many updates to make sure that OpenCV compiles and runs on modern OSes with modern compilers:
    • Ubuntu 16.04 LTS with GCC 5.×. GCC 6.x is supported too.
    • OSX 10.11 – 10.12 with XCode 8.x; in particular, we now use the new AVFoundation backend on OSX. Thanks to yoffy, Matthew Self and Ryan Govostes.
    • Visual Studio 2015; VS 2017 will likely work too.
    • Better support for AArch64 on Linux and Android

  • Intel MKL can now be used to accelerate SVD, LU, camera calibration, as well as DNN module.
  • Added initial support for Intel Compiler (Intel Compiler 2017 has been tested on Windows and Linux)
  • Many SSE optimizations have been done; big thanks to K-Shinotsuka, Tomoaki Teshima, mschoeneck and many other people.
  • Several OpenCL kernels, specially optimized for Intel GPUs, have been contributed by Peng Li and others.

 

  • OpenVX 1.x implementations can now be used to accelerate OpenCV, mostly through the HAL mechanism. Build OpenCV with WITH_OPENVX flag turned on and specifty where to find OpenVX (see https://github.com/opencv/opencv/blob/master/cmake/FindOpenVX.cmake for details).
  • Convenient C++ wrappers for OpenVX that simplify joint use of OpenCV + OpenVX have been created by Andrey Pavlenko. See the examples at https://github.com/opencv/opencv/tree/master/samples/openvx, the wrappers are in ivx.hpp header.
  • External BLAS+Lapack implementations (such as MKL, OpenBLAS, Atlas or Apple’s Accelerate framework) can now be used to accelerate SVD decomposition, LU decomposition etc.
  • HAL has been extended to support much more functions such as image warping, color conversion, filtering operations.

  • This release features a record number of PRs and bug fixed:
    • 778 + 191 PRs merged into opencv + opencv_contrib master since 3.1.0
    • 348 bugs and 69 features in opencv master
    • 47 bugs and 14 features in opencv_contrib

Contributors

opencv

  1. git shortlog --no-merges -ns 3.1.0..3.2.0
  2. 244 Alexander Alekhin
  3. 63 Vitaly Tuzov
  4. 57 Tomoaki Teshima
  5. 54 Maksim Shabunin
  6. 51 Vladislav Sovrasov
  7. 46 Ilya Lavrenov
  8. 40 Rostislav Vasilikhin
  9. 33 k-shinotsuka
  10. 30 StevenPuttemans
  11. 29 Pavel Rojtberg
  12. 24 MYLS
  13. 18 Marina Noskova
  14. 17 catree
  15. 15 Alexander Smorkalov
  16. 14 Suleyman TURKMEN
  17. 13 Vladislav Vinogradov
  18. 13 apavlenko
  19. 13 berak
  20. 12 Alexandr Kondratev
  21. 11 mshabunin
  22. 10 Dan
  23. 10 Pavel Vlasov
  24. 10 Valeriy Van
  25. 10 atinfinity
  26. 10 matze
  27. 9 Li Peng
  28. 9 abratchik
  29. 8 Roman Donchenko
  30. 8 Vadim Pisarevsky
  31. 7 Aleksandar Atanasov
  32. 7 Philipp Hasper
  33. 6 ArkadiuszRaj
  34. 6 Francisco Facioni
  35. 6 LaurentBerger
  36. 6 PkLab.net
  37. 6 sourin
  38. 5 E Sommerlade
  39. 5 Eric Zavesky
  40. 5 Ishank gulati
  41. 5 Matthew Self
  42. 5 Philip
  43. 5 Tetragramm
  44. 4 Amro
  45. 4 Andrey Pavlenko
  46. 4 Arthur Cinader
  47. 4 Christoph Spörk
  48. 4 Dikay900
  49. 4 Marian Zajko
  50. 4 alcinos
  51. 4 daB0bby
  52. 4 filipsladek
  53. 4 ohnozzy
  54. 3 Alexander Karsakov
  55. 3 Andreas Franek
  56. 3 Arek
  57. 3 Arkadiusz Raj
  58. 3 Dimitrios Katsaros
  59. 3 Eric Sommerlade
  60. 3 Gilles Rochefort
  61. 3 Juha Reunanen
  62. 3 Marek Smigielski
  63. 3 Mathieu Barnachon
  64. 3 Matthew Skolaut
  65. 3 Philippe FOUBERT
  66. 3 Sergei Nosov
  67. 3 Vitaliy Lyudvichenko
  68. 3 Your Name
  69. 3 a-andre
  70. 3 anirudt
  71. 3 aravind
  72. 3 kurenai
  73. 3 panxiaochun
  74. 3 shruthikashyap
  75. 3 thierry
  76. 3 will hunt
  77. 3 Прун Виктор
  78. 2 Addison Elliott
  79. 2 Alexander Shishkov
  80. 2 Anatoly Orlov
  81. 2 Asal Mirzaieva
  82. 2 Bleach666
  83. 2 Bob Paulin
  84. 2 Cartucho
  85. 2 Dan Moodie
  86. 2 David Wolever
  87. 2 Declan Moran
  88. 2 Dmitry Trifonov
  89. 2 DozyC
  90. 2 Elad Joseph
  91. 2 Elif Albuz
  92. 2 Eric Liao
  93. 2 Erich Keane
  94. 2 Hajo Nils Krabbenhöft
  95. 2 Hannes
  96. 2 Jan Starzynski
  97. 2 Joe Howse
  98. 2 Jose Luis Guardiola
  99. 2 Josh Lubawy
  100. 2 Lucas Solomon
  101. 2 Naba Kumar
  102. 2 Patrick Snape
  103. 2 Patrik Huber
  104. 2 Peter Rekdal Sunde
  105. 2 Piotr Semenov
  106. 2 Quentin
  107. 2 Randy J. Ray
  108. 2 Robbert Klarenbeek
  109. 2 Rok Mandeljc
  110. 2 Sean McBride
  111. 2 Sergiu Deitsch
  112. 2 Steven Puttemans
  113. 2 Susmit
  114. 2 Teng Cao
  115. 2 emiswelt
  116. 2 jiakai
  117. 2 lewgate
  118. 2 mschoeneck
  119. 2 shengyu
  120. 2 takacsd
  121. 1 Aaron Simmons
  122. 1 Adam Rankin
  123. 1 Alexander Fedorov
  124. 1 AlexeyAB
  125. 1 Ankit Yadav
  126. 1 Anton V. Shokurov
  127. 1 Anush Elangovan
  128. 1 Artyom Lebedev
  129. 1 Balint Cristian
  130. 1 Bernd Kuhls
  131. 1 BinMatrix
  132. 1 Bleach
  133. 1 Bram Ton
  134. 1 CSBVision
  135. 1 Christian Kapeller
  136. 1 Colin Finck
  137. 1 Dmitry Mozgin
  138. 1 Dmitry-Me
  139. 1 Dustin Spicuzza
  140. 1 Eduardo Arnold
  141. 1 Elena Gvozdeva
  142. 1 Elena Shipunova
  143. 1 Emanuel Jöbstl
  144. 1 Eugene Khvedchenya
  145. 1 Evan Heidtmann
  146. 1 Feng Zhoutian
  147. 1 Finfa811
  148. 1 Fraser Harris
  149. 1 Graham Fyffe
  150. 1 Gregory Kramida
  151. 1 Gregory Morse
  152. 1 Guillaume Jacob
  153. 1 Guy Sheffer
  154. 1 HMM@T430s-x64
  155. 1 Han Hu
  156. 1 Ian MacLeod
  157. 1 Ivar Clemens
  158. 1 JR Heard
  159. 1 Jake Kesinger
  160. 1 Jason von Nieda
  161. 1 Jcrist99
  162. 1 Jeff McBride
  163. 1 Jeroen Kromwijk
  164. 1 Jiri Horner
  165. 1 Josep Bosch
  166. 1 Juan Pablo Aveggio
  167. 1 Julien Dehos
  168. 1 Julien Dubiel
  169. 1 Julien Nabet
  170. 1 Kai Hugo Hustoft Endresen
  171. 1 Kerry Billingham
  172. 1 Kevin Hughes
  173. 1 Kevin, Hu
  174. 1 KeySecure
  175. 1 Kotrix
  176. 1 Krishnaraj Bhat
  177. 1 Leonardo Brás
  178. 1 Leonid Volnitsky
  179. 1 Louis Letourneau
  180. 1 Luis Roberto Morales Iglesias
  181. 1 LukeZhu
  182. 1 Matt Leotta
  183. 1 Matthew Cook
  184. 1 Matthieu FT
  185. 1 Matěj Šmíd
  186. 1 Michael Shtutman
  187. 1 Morrison
  188. 1 Nikolay Polyarniy
  189. 1 Noel Eck
  190. 1 Oded Green
  191. 1 Oliver Schreer
  192. 1 Oskari Vinko
  193. 1 Patrick Spettel
  194. 1 Peter Entwistle
  195. 1 Philipp Nordhus
  196. 1 Philippe Renon
  197. 1 Pierre Dulac
  198. 1 Pranav Ganorkar
  199. 1 Prayag Verma
  200. 1 Péter Trombitás
  201. 1 Rahul Chhabra
  202. 1 S. Garrido
  203. 1 Sean Li
  204. 1 Sergey Alexandrov
  205. 1 Simmo Saan
  206. 1 Simon Hänisch
  207. 1 Sovrasov
  208. 1 Stephane Thiell
  209. 1 Steven E Wright
  210. 1 Tauranis
  211. 1 Thierry Fauck
  212. 1 Thomas Schenker
  213. 1 Tomi
  214. 1 Tsukasa Sugiura
  215. 1 Vadzim Piatrou
  216. 1 Vincent Rabaud
  217. 1 WANG Guoqin
  218. 1 Xiaolei Yu
  219. 1 Zhenqing, Hu
  220. 1 Zhigang Gong
  221. 1 ahb
  222. 1 arybnikov
  223. 1 bedbad
  224. 1 chacha21
  225. 1 danil-tolkachev
  226. 1 debjan
  227. 1 dharezlak
  228. 1 fegorsch
  229. 1 ggargov
  230. 1 guoxuedong
  231. 1 jacobdang
  232. 1 joao.faro
  233. 1 logic1988
  234. 1 look4pritam
  235. 1 monoid911
  236. 1 mpkh
  237. 1 mrquorr
  238. 1 mvukad
  239. 1 parismita
  240. 1 qiao
  241. 1 renu285
  242. 1 rishirajsurti
  243. 1 robertxwu
  244. 1 sarthak
  245. 1 solosuper
  246. 1 stbnps
  247. 1 themightyoarfish
  248. 1 viodetools
  249. 1 yigitsoy
  250. 1 yoffy
  251. 1 Özgür Can

opencv_contrib

  1. git shortlog --no-merges -ns 3.1.0..3.2.0
  2. 43 Vitaliy Lyudvichenko
  3. 30 Alexander Alekhin
  4. 29 Anna Petrovicheva
  5. 25 Vladislav Samsonov
  6. 25 Vladislav Sovrasov
  7. 21 Gary Bradski
  8. 15 Pavel Rojtberg
  9. 12 berak
  10. 10 Balint Cristian
  11. 5 Maksim Shabunin
  12. 5 Suleyman TURKMEN
  13. 5 apetrovichev
  14. 5 lluisgomez
  15. 4 Alexander Bokov
  16. 4 Amro
  17. 4 StevenPuttemans
  18. 4 mshabunin
  19. 3 Jinhan Lee
  20. 3 Patrick Snape
  21. 3 Rok Mandeljc
  22. 3 Steve Nicholson
  23. 3 folz
  24. 3 vbystricky
  25. 2 LaurentBerger
  26. 2 Maximilien Cuony
  27. 2 Prof. Dr. Rudolf Haussmann
  28. 2 Vadim Pisarevsky
  29. 2 Vitaly Tuzov
  30. 2 Yuki Furuta
  31. 2 catree
  32. 2 sbokov
  33. 1 Aleksandr Rybnikov
  34. 1 Alexey Spizhevoy
  35. 1 AmbroiseMoreau
  36. 1 Amy Winston
  37. 1 Andrea Merello
  38. 1 Bartek Pawlik
  39. 1 Bleach
  40. 1 Bleach666
  41. 1 Christian Richardt
  42. 1 Daniel Ching
  43. 1 Dikay900
  44. 1 Eric Zavesky
  45. 1 Eugene Mamin
  46. 1 Geoff
  47. 1 Gregor Kovalcik
  48. 1 Gregory Kramida
  49. 1 Gunshi Gupta
  50. 1 Han Hu
  51. 1 Konstantin Volokh
  52. 1 Kotrix
  53. 1 Kumataro
  54. 1 Lorena García
  55. 1 MambaWong
  56. 1 Marek Smigielski
  57. 1 Martin Nowak
  58. 1 Minh Ngo
  59. 1 Nicu Stiurca
  60. 1 Pavel Vlasanek
  61. 1 Rostislav Vasilikhin
  62. 1 Sarthak Ahuja
  63. 1 Sunglok Choi
  64. 1 Thomas Schulz
  65. 1 VBystricky
  66. 1 Vasilikhin
  67. 1 Vladimir
  68. 1 Wu Jiang
  69. 1 Zhou Chao
  70. 1 abratchik
  71. 1 alessiodore
  72. 1 andrewk-mccann
  73. 1 aravind
  74. 1 baisheng lai
  75. 1 comdiv
  76. 1 damir
  77. 1 edgarriba
  78. 1 jasjuang
  79. 1 jhlee525
  80. 1 lukaszi89
  81. 1 lych77
  82. 1 samontab
  83. 1 sht3ch
  84. 1 tharunkalwa

version:3.1

December, 2015

This is the first stabilization update in 3.x series. It shall be reminded that since OpenCV 3.0 we’ve changed the version enumeration scheme, so that 3.1 is the same sort of update to 3.0 as 2.4.1 was to 2.4.0.

  • There have been many successful projects this year (student and mentor(s) are listed after the project name), and the results are available as a part of OpenCV 3.1 (partially in the main repository, but mostly opencv_contrib):
    • Omnidirectional Cameras Calibration and Stereo 3D Reconstruction – opencv_contrib/ccalib module (Baisheng Lai, Bo Li)
    • Structure From Motion – opencv_contrib/sfm module (Edgar Riba, Vincent Rabaud)
    • Improved Deformable Part-based Models – opencv_contrib/dpm module (Jiaolong Xu, Bence Magyar)
    • Real-time Multi-object Tracking using Kernelized Correlation Filter – opencv_contrib/tracking module (Laksono Kurnianggoro, Fernando J. Iglesias Garcia)
    • Improved and expanded Scene Text Detection – opencv_contrib/text module (Lluis Gomez, Vadim Pisarevsky)
    • Stereo correspondence improvements – opencv_contrib/stereo module (Mircea Paul Muresan, Sergei Nosov)
    • Structured-Light System Calibration – opencv_contrib/structured_light (Roberta Ravanelli, Delia Passalacqua, Stefano Fabri, Claudia Rapuano)
    • Chessboard+ArUco for camera calibration – opencv_contrib/aruco (Sergio Garrido, Prasanna, Gary Bradski)
    • Implementation of universal interface for deep neural network frameworks – opencv_contrib/dnn module (Vitaliy Lyudvichenko, Anatoly Baksheev)
    • Recent advances in edge-aware filtering, improved SGBM stereo algorithm – opencv/calib3d and opencv_contrib/ximgproc (Alexander Bokov, Maksim Shabunin)
    • Improved ICF detector, waldboost implementation – opencv_contrib/xobjdetect (Vlad Shakhuro, Alexander Bovyrin)
    • Multi-target TLD tracking – opencv_contrib/tracking module (Vladimir Tyan, Antonella Cascitelli)
    • 3D pose estimation using CNNs – opencv_contrib/cnn_3dobj (Yida Wang, Manuele Tamburrano, Stefano Fabri)

  • Besides GSoC, we have multiple contributions from the community; below is the partial list of contributed functionality:
    • plot module – Nuno Moutinho
    • ni-black thresholding algorithm – ximgproc, Samyak Datta
    • Superpixel segmentation using Linear Spectral Clustering, SLIC superpixels – ximgproc, Balint Cristian
    • HDF (HDF5) support module – Balint Cristian
    • Depth to external RGB camera registration – rgbd, Pat O’Keefe
    • Computing normals for a point cloud – rgbd, Félix Martel-Denis
    • Fuzzy image processing module – Pavel Vlasanek
    • Rolling guidance filter – ximgproc, Zhou Chao
    • 3x faster SimpleFlow – optflow, Francisco Facioni
    • Code and docs for CVPR 15’ paper “DNNs are easily fooled” – Anh Nguyen
    • Efficient Graph-based image segmentation algorithm – ximgproc, Maximilien Cuony
    • Sparse-to-dense optical flow – optflow, Sergey Bokov
    • Unscented Kalman Filter (UKF) and Augmented UKF – tracking, Svetlana Filicheva
    • Fast Hough Transform – ximgproc, xolodilnik
    • Improved performance of haartraining – Teng Cao
    • Python samples made compatible with Python 3 – bastelflp

  • The iOS framework (opencv2.framework) can now be configured to include both opencv and opencv_contrib functionality. Previously, there were 2 separate frameworks, but because of the include directory names (“opencv2/…”, regardless of whether some module is from opencv or from opencv_contrib), the produced opencv_contrib was unusable.

  • more efficient camera support on Android 5+
  • faster round() on ARM (it’s also applicable to iOS); big thanks to Manuele Tamburano and Stefano Fabri for this!

 

  • OpenCV 3.1 supports fresh OSes from Microsoft and Apple, as well as the newest development tools (VS2015 and Xcode 7, respectively).

  • IPPICV (a specially-for-opencv free-of-charge subset of IPP (https://software.intel.com/en-us/intel-ipp) that has been kindly provided by Intel Corporation) is now based on IPP 9.0.1, which should make OpenCV even faster on modern Intel chips.

  • There are multiple new features in the OpenCL layer, resulted from our collaboration with Intel Corporation
    • Improved/extended interoperability with DirectX 9, 10, 11. That includes conversions between DX Surface and UMat, with number of copying operations reduced where possible. See opencv/samples/directx.
    • Interoperability with Video Acceleration API on Linux. This feature requires Intel Media Server Studio (https://software.intel.com/en-us/intel-media-server-studio/try-buy) and uses Intel’s cl_intel_va_api_media_sharing extension to OpenCL. See opencv/samples/va_intel
    • OpenCL<=>OpenGL interoperability via cl_khr_gl_sharing extension. It’s possible now to convert OpenGL textures and OpenGL buffers to/from UMat. See opencv/samples/opengl.
    • OpenCL<=>OpenCL interoperability. It means, people can now use OpenCL-accelerated OpenCV together with their custom OpenCL code and/or other OpenCL libraries. See opencv/samples/opencl for details.
    • Support for Camera2 API in Android 5+. See opencv/samples/android/tutorial-4-opencl, the tutorial that demonstrates 3 ways of processing data from camera:
      • purely CPU pipeline (3-4 fps on our test device)
      • OpenCV-based using UMat and transparent API (10-13 fps on the same device)
      • direct use of OpenCL (28-30fps). This is the fastest method, as you can see, because it uses OpenCL images, whereas more universal T-API has to use OpenCL buffers.

  • HAL (Hardware Acceleration Layer), as a separate OpenCV module, opencv_hal, lived a short yet a bright life; we decided to split it by parts and move the parts into the respective regular OpenCV modules (core, imgproc etc.). It will help us to keep the dependency graph clean and sane.
  • Added 2 examples (see opencv/samples/hal) on how to provide external accelerated versions of the HAL functions; note that an external implementation does not have to implement all of the HAL. The supplied README explains how to build the custom HAL accelerator, and how to build OpenCV with such a custom HAL replacement: https://github.com/opencv/opencv/tree/master/samples/hal
  • Added some more few functions to the HAL (arithmetic operations, split, merge); much more to come in OpenCV 3.2

  • Over 420 pull requests to opencv and over 100 pull requests to opencv_contrib have been merged in since 3.0.0. Big thanks to all the people who submitted bug fixes, new functionality and other small and big improvements! Special thanks goes to all the GSoC 2015 students and mentors, who created a lot of great functionality!

Contributors

opencv

  1. git shortlog --no-merges -ns 3.0.0..3.1.0
  2. 146 Vladislav Vinogradov
  3. 109 Alexander Alekhin
  4. 103 Alexander Smorkalov
  5. 73 Maksim Shabunin
  6. 68 Ilya Lavrenov
  7. 48 Roman Donchenko
  8. 47 StevenPuttemans
  9. 45 Pavel Rojtberg
  10. 28 Andrey Pavlenko
  11. 25 Seon-Wook Park
  12. 20 Pavel Vlasov
  13. 20 Suleyman TURKMEN
  14. 18 Viet Dinh
  15. 17 Alexey Ershov
  16. 15 berak
  17. 14 Vladimir Dudnik
  18. 13 Artur Wieczorek
  19. 12 Dan
  20. 12 Lorena García
  21. 10 Dikay900
  22. 10 ippei ito
  23. 9 Mansour Moufid
  24. 8 E Braun
  25. 8 Grigory Serebryakov
  26. 7 Alexander Karsakov
  27. 7 Alexander Nitsch
  28. 7 Vadim Pisarevsky
  29. 7 Vijay Pradeep
  30. 6 LaurentBerger
  31. 6 Marian Zajko
  32. 6 Nguyen Nguyen
  33. 6 Philipp Hasper
  34. 6 flp
  35. 6 sbokov
  36. 5 Andreas Stührk
  37. 5 PhilLab
  38. 5 Rok Mandeljc
  39. 5 Ruslan Baratov
  40. 5 askourik
  41. 5 songyuncen
  42. 4 Abe Friesen
  43. 4 Aman Verma
  44. 4 Dan Moodie
  45. 4 Dinar Ahmatnurov
  46. 4 Dominik Kleiser
  47. 4 Elad Joseph
  48. 4 Gleb Gladilov
  49. 4 Ishant Mrinal Haloi
  50. 4 Mike Maraya
  51. 4 Tom Stellard
  52. 4 Vitaly Tuzov
  53. 4 edgarriba
  54. 4 grundman
  55. 4 hoangviet1985
  56. 4 themightyoarfish
  57. 3 Adam Gibson
  58. 3 Andrey Kamaev
  59. 3 Camille
  60. 3 Cédric Rousseau
  61. 3 Elena Shipunova
  62. 3 Gregory Morse
  63. 3 Hajo Nils Krabbenhöft
  64. 3 Igor Kuzmin
  65. 3 Maxim Kostin
  66. 3 Renato Florentino Garcia
  67. 3 Richard Yoo
  68. 3 Samuel Martin
  69. 3 Seunghoon Park
  70. 3 Teng Cao
  71. 3 Yan Wang
  72. 3 a-andre
  73. 3 jiakai
  74. 3 unknown
  75. 2 Aleksandr Petrikov
  76. 2 Alex Torres
  77. 2 Alexander Duda
  78. 2 Anatoly Baksheev
  79. 2 Andrew Senin
  80. 2 Anton V. Shokurov
  81. 2 Ariel Bernal
  82. 2 Balint Cristian
  83. 2 Ben Hagen
  84. 2 Bruno Goncalves
  85. 2 Daniel Stonier
  86. 2 Dmitry Melnichenko
  87. 2 Enes Ateş
  88. 2 Evgeny Talanin
  89. 2 GregoryMorse
  90. 2 Jan S. (Milania1)
  91. 2 John Stowers
  92. 2 Leonid Beynenson
  93. 2 Luis Díaz Más
  94. 2 Nils Plath
  95. 2 Nisarg Thakkar
  96. 2 Philippe FOUBERT
  97. 2 Pierre Letessier
  98. 2 Prof. Dr. Rudolf Haussmann
  99. 2 Rodrigo Benenson
  100. 2 Sergey Alexandrov
  101. 2 Sergiu Dotenco
  102. 2 Tsukasa Sugiura
  103. 2 Vicente Olivert Riera
  104. 2 Vincent Rabaud
  105. 2 Vladimir Kolesnikov
  106. 2 WilhelmHannemann
  107. 2 howtobeahacker
  108. 2 jayceelock
  109. 2 jisli
  110. 2 kalistratovag
  111. 2 lujia
  112. 2 paul.kim
  113. 2 qubick
  114. 2 robertxwu
  115. 2 theodore
  116. 1 Aaron Simmons
  117. 1 Abhijit Kundu
  118. 1 Adam
  119. 1 Adam Geitgey
  120. 1 Adi Shavit
  121. 1 Adrian Clark
  122. 1 AfterEight
  123. 1 Alankar Kotwal
  124. 1 Alexander Petrikov
  125. 1 Alexander Stohr
  126. 1 AlexanderStohr
  127. 1 Amro
  128. 1 Andreas Franek
  129. 1 Antonella Cascitelli
  130. 1 Anush Elangovan
  131. 1 Ashley Stacey
  132. 1 Ashod Nakashian
  133. 1 Belev
  134. 1 Benoit Seguin
  135. 1 Bert
  136. 1 Boris Daskalov
  137. 1 Bovaz
  138. 1 Brian Park
  139. 1 Chris Kitching
  140. 1 Chris Mayo
  141. 1 Christian Richardt
  142. 1 ComFreek
  143. 1 Craig Reynolds
  144. 1 Deanna Hood
  145. 1 Dmitry Budnikov
  146. 1 Dmitry Gribanov
  147. 1 Drew Jetter
  148. 1 Ehren Metcalfe
  149. 1 Eric Sommerlade
  150. 1 Evgeny Agafonchikov
  151. 1 Firat Kalaycilar
  152. 1 Florent
  153. 1 GabrieleDalmazzone
  154. 1 HelenWong
  155. 1 Hernan Badino
  156. 1 Ignas Daukšas
  157. 1 Ishank gulati
  158. 1 Jaime Fernandez
  159. 1 Jan Starzynski
  160. 1 Jay Bosamiya
  161. 1 Jeremy Huddleston Sequoia
  162. 1 Jie Yang
  163. 1 Joe Howse
  164. 1 Jonas Vautherin
  165. 1 Josh Klontz
  166. 1 Jüri Aedla
  167. 1 Kauê de Moraes Vestena
  168. 1 Kazuki Matsuda
  169. 1 Keita Kita
  170. 1 Kevin Hughes
  171. 1 Lectem
  172. 1 LeonidBeynenson
  173. 1 Leszek Swirski
  174. 1 Manfred Georg
  175. 1 ManuelFreudenreich
  176. 1 Martijn Liem
  177. 1 Martin Ueding
  178. 1 Mat Moore
  179. 1 Matteo Piovanelli
  180. 1 Maximilien Cuony
  181. 1 Miguel Algaba
  182. 1 Milania1
  183. 1 Nghia Ho
  184. 1 Nickolay Polyarniy
  185. 1 Niklas Frisk
  186. 1 Nikolay Polyarniy
  187. 1 Oliver Lumby
  188. 1 Pastafarianist
  189. 1 Patrik Huber
  190. 1 Philip Salvaggio
  191. 1 Pierre Moulon
  192. 1 Pierre-Emmanuel Viel
  193. 1 Raaj
  194. 1 RafaRuiz
  195. 1 Rafael Sadowski
  196. 1 René
  197. 1 Robbert Klarenbeek
  198. 1 Rohit Rawat
  199. 1 S. Garrido
  200. 1 Samyak Datta
  201. 1 Sethur
  202. 1 Simon Heinen
  203. 1 Stefan Cornelius
  204. 1 Stephen Mell
  205. 1 Steven Puttemans
  206. 1 Thomas Dunker
  207. 1 Thomas Gabrowski
  208. 1 Thomas Weisbach
  209. 1 Tian Zhi
  210. 1 Tim D. Smith
  211. 1 Valentin Tsatskin
  212. 1 ValeryTyumen
  213. 1 Vipul Sharma
  214. 1 Vitaliy Lyudvichenko
  215. 1 Wangyida
  216. 1 Wenju He
  217. 1 Yang Fan
  218. 1 Ying Xiong
  219. 1 Youssef Kashef
  220. 1 aletheios
  221. 1 alexander barakin (aka sash-kan)
  222. 1 art-programmer
  223. 1 ausentso
  224. 1 bhack
  225. 1 boatx
  226. 1 brossetti
  227. 1 comdiv
  228. 1 doltac
  229. 1 emiswelt
  230. 1 greensea
  231. 1 jormansa
  232. 1 manuele
  233. 1 mattip
  234. 1 mbarann
  235. 1 micalan
  236. 1 michaelveth
  237. 1 niederb
  238. 1 quentin
  239. 1 rajithr
  240. 1 scorneli
  241. 1 spmallick
  242. 1 teng88
  243. 1 thebucc
  244. 1 ttagu99
  245. 1 ultrafro
  246. 1 侯骥

opencv_contrib

  1. git shortlog --no-merges -ns 3.0.0..3.1.0
  2. 169 Vladimir
  3. 48 Kurnianggoro
  4. 29 Wangyida
  5. 19 Muresan Mircea Paul
  6. 18 lluis
  7. 17 baisheng lai
  8. 16 Maksim Shabunin
  9. 14 Anh Nguyen
  10. 13 Lluis Gomez-Bigorda
  11. 10 nunombmoutinho@gmail.com
  12. 9 Seon-Wook Park
  13. 9 Vlad Shakhuro
  14. 9 nmoutinho
  15. 8 Oded Green
  16. 8 Patrick Snape
  17. 8 Zhou Chao
  18. 8 berak
  19. 6 xolodilnik
  20. 5 Baisheng Lai
  21. 5 Marc-Stefan Cassola
  22. 5 Pavel Rojtberg
  23. 5 felix
  24. 5 sbokov
  25. 4 Alexander Alekhin
  26. 4 Alexander Stohr
  27. 4 StevenPuttemans
  28. 4 edgarriba
  29. 3 Balint Cristian
  30. 3 Francisco Facioni
  31. 3 Maximilien Cuony
  32. 3 jiaolong_x220
  33. 2 Aakash Chopra
  34. 2 Jan S. (Milania1)
  35. 2 RobertaRavanelli
  36. 2 S. Garrido
  37. 2 Samyak Datta
  38. 2 Vadim Pisarevsky
  39. 2 Yang Fan
  40. 1 103yiran
  41. 1 Alex Tomala
  42. 1 Clint Pells
  43. 1 Dikay900
  44. 1 DirtyMaster
  45. 1 Hyunjun Kim
  46. 1 Jesus Briales
  47. 1 Jesús Briales
  48. 1 MMp131316
  49. 1 Pat O'Keefe
  50. 1 Philipp Hasper
  51. 1 Rok Mandeljc
  52. 1 Suleyman TURKMEN
  53. 1 Sunglok Choi
  54. 1 SvetlanaFilicheva
  55. 1 Vitaliy Lyudvichenko
  56. 1 Yan Wang
  57. 1 baudenri
  58. 1 comdiv
  59. 1 grundman
  60. 1 howtobeahacker
  61. 1 lar-lab-unibo
  62. 1 m4nh
  63. 1 manuele
  64. 1 previ
  65. 1 tucna

version:3.0

June, 2015

These are changes since 3.0 rc1.

  • Over 200 bugs reported at http://code.opencv.org/projects/opencv/issues have been resolved/closed. It includes many fixes in docs, build scripts, python wrappers, core, imgproc, photo, features2d, objdetect, contrib modules, as well as some performance improvements etc.

  • Added pthreads-based backend for cv::parallel_for_. It means that all the parallel processing should be available out-of-the-box on any POSIX-compatible OS, including QNX and such. You are welcome to try it out.

  • OpenCV Manager on Android has been completely rewritten in Java and now supports both OpenCV 2.4 and 3.0. After a bit more testing we will put it to Google Play.
  • The other, a bit sad but inevitable news – we had to drop support for nativecamera on Android. It used some undocumented API and never worked stable.

  • Many excellent contributions in opencv_contrib/xfeatures2d:
    • Christian Balint contributed long-awaited DAISY features
    • He also contributed improved version of rotation-invariant BRISK descriptor by Gil Levi
    • Gil Levi contributed very nice LATCH binary descriptor that outperforms all presently available in OpenCV binary descriptors (ORB, BRIEF, AKAZE etc.) and is comparable with heavier and slower SURF.

  • Over 80 pull requests have been merged in since 3.0 rc. Big thanks to all the people who submitted bug fixes, new functionality and other small and big improvements! This time special thanks goes to Philip (Dikay900) who did (and still does) excellent job on porting various bug fixes and other small improvements from 2.4 to master/3.0. Thank you, Philip!

Contributors

opencv

  1. $ git shortlog —no-merges -ns 3.0.0-rc1..origin/master
  2. 60 Vadim Pisarevsky
  3. 31 laurentBerger
  4. 17 Maksim Shabunin
  5. 10 cbalint13
  6. 7 Maxim Kostin
  7. 6 Alexander Smorkalov
  8. 6 Ilya Lavrenov
  9. 6 StevenPuttemans
  10. 6 Vladimir Dudnik
  11. 5 Andrey Pavlenko
  12. 5 GilLevi
  13. 3 Dikay900
  14. 3 Philipp Hasper
  15. 3 Ruslan Baratov
  16. 3 rajithr
  17. 3 sgjava
  18. 2 Andreas Stührk
  19. 2 Christian Richardt
  20. 2 Deanna Hood
  21. 2 Joe Minichino
  22. 2 Luis Díaz Más
  23. 2 Mansour Moufid
  24. 2 Marek Nogacki
  25. 2 Martin Ueding
  26. 2 Vladislav Vinogradov
  27. 2 Zhigang Gong
  28. 2 kalistratovag
  29. 1 AfterEight
  30. 1 Aleksandr Petrikov
  31. 1 Alexander Nitsch
  32. 1 Andrew Senin
  33. 1 Ashod Nakashian
  34. 1 Belev
  35. 1 Boris Daskalov
  36. 1 Camille
  37. 1 Craig Reynolds
  38. 1 David Hirvonen
  39. 1 Ehren Metcalfe
  40. 1 Evgeny Agafonchikov
  41. 1 Jüri Aedla
  42. 1 Leonid Beynenson
  43. 1 Martijn Liem
  44. 1 Marvin Smith
  45. 1 Michaël Sdika
  46. 1 Mike Maraya
  47. 1 Milania1
  48. 1 Niklas Frisk
  49. 1 Owen Healy
  50. 1 Patrik Huber
  51. 1 Piotr Dobrowolski
  52. 1 Roman Donchenko
  53. 1 S. Garrido
  54. 1 Samed Ozdemir
  55. 1 Samuel Martin
  56. 1 Samyak Datta
  57. 1 Thomas Gabrowski
  58. 1 Vicente Olivert Riera
  59. 1 Vincent Rabaud
  60. 1 Vladimir Kolesnikov
  61. 1 aletheios
  62. 1 berak
  63. 1 jormansa
  64. 1 lujia
  65. 1 msandler
  66. 1 yanlend
  67. 1 zenev

opencv_contrib

  1. $ git shortlog —no-merges -ns 3.0.0-rc1..origin/master
  2. 19 cbalint13
  3. 11 GilLevi
  4. 6 Alexandre Benoit
  5. 4 Vadim Pisarevsky
  6. 2 laurentBerger
  7. 1 BISMOY MURASING
  8. 1 berak
  9. 1 root

version:3.0 rc

April, 2015

These are changes since 3.0 beta.

  • Improved compatibility with OpenCV 2.4:
    • 2.4.11 now includes “opencv2/core.hpp” and other such headers in addition to standard “opencv2/core/core.hpp”.
    • smart pointers (Ptr<>) can now be created in both 2.4 and 3.0 style (new ClassName(params) vs makePtr(params))
    • trained and stored stat models from opencv_ml 2.4 can now be loaded and used by opencv_ml 3.0 as-is.
    • the 2.4=>3.0 transition guide has been sketched: http://docs.opencv.org/master/db/dfa/tutorial_transition_guide.html

  • We did not put OpenCV 3 to Google Play yet, but we prepared installable OpenCV 3.0 Manager for Android, which can be installed and tried on your device. It can co-exist with OpenCV 2.4 Manager on the same device.

  • There are multiple improvements and bug-fixes for WinRT port (as well as Windows 8.x port) of OpenCV by Microsoft guys (big thanks to Max Kostin!)
    • In particular, parallel_for is enabled on WinRT, so the code should run much faster on multi-core devices
    • Also, the WMF video capturing backend has been greatly improved.

  • Standalone motion jpeg codec has been added to opencv_videoio. It does not need ffmpeg or any other 3rd-party lib. According to our measurements, it’s also much faster than ffmpeg, especially on ARM. For the decoder you should have JPEG support enabled (through built-in or external libjpeg). How to use it? To encode motion jpeg video, use .avi file extension and CV_FOURCC(‘M’, ‘J’, ‘P’, ‘G’). The decoder part has been verified on such streams (avi files with index, where each frame is encoded using baseline jpeg) and few random motion jpeg clips from net, but we have not tested it thoroughly.

  • Preliminary version of OpenCV HAL, low-level acceleration API beneath OpenCV, has been introduced. Currently it includes just a few math functions, but will grow soon. It also includes so-called “universal intrinsics”, inspired by NEON=>SSE conversion header by Victoria Zhislina from Intel: https://software.intel.com/en-us/blogs/2012/12/12/from-arm-neon-to-intel-mmxsse-automatic-porting-solution-tips-and-tricks The idea is that one can use a single SIMD code branch that will compile to either SSE or NEON instructions depending on the target platform. For example,

    // a, b and c are floating-point arrays
    for( int i = 0; i < n; i+=4 )
        v_store(c + i, v_load(a+i) + v_load(b+i));

    will be expanded to either

    for( int i = 0; i < n; i+=4 )
        _mm_storeu_ps(c + i, mm_add_ps(_mm_loadups(a+i), mm_loadu_ps(b+i));

    or

    for( int i = 0; i < n; i+=4 )
        vst1q_f32(c + i, vaddq_f32(vld1q_f32(a+i), vld1qf32(b+i));

    Using such intrinsics one can write accelerated code, debug it on desktop and then run it without any changes on ARM and get reasonable performance.

  • Over 500 pull requests have been merged in since 3.0 beta. Big thanks to all the people who submitted bug fixes, new functionality and other small and big improvements! OpenCV becomes more and more a community-driven project and we are pleased to see that!

Contributors

opencv

  1. $ git shortlog —no-merges -ns 3.0.0-beta..origin/master
  2. 95 Vladislav Vinogradov
  3. 88 Maksim Shabunin
  4. 74 Ilya Lavrenov
  5. 40 Erik Karlsson
  6. 33 Olexa Bilaniuk
  7. 28 Vadim Pisarevsky
  8. 24 Dmitry-Me
  9. 24 orestis
  10. 18 StevenPuttemans
  11. 17 Maxim Kostin
  12. 15 Yan Wang
  13. 14 Alexander Alekhin
  14. 11 Roman Donchenko
  15. 8 Ashod Nakashian
  16. 7 Joe Howse
  17. 7 Nisarg Thakkar
  18. 6 Andrey Kamaev
  19. 6 Dikay900
  20. 5 Alexander Nitsch
  21. 5 Evgeny Agafonchikov
  22. 5 TobyWanKenobi
  23. 5 theodore
  24. 5 Сергей Нужный
  25. 4 Andrew Senin
  26. 4 Artur Wieczorek
  27. 4 Hamid Bazargani
  28. 4 Pavel Rojtberg
  29. 4 berak
  30. 3 Alexander Smorkalov
  31. 3 Ben Hagen
  32. 3 Deanna Hood
  33. 3 Marvin Smith
  34. 3 Nicu Știurcă
  35. 3 Philipp Hasper
  36. 3 Simon Heinen
  37. 3 Takahiro Poly Horikawa
  38. 3 Ying Xiong
  39. 2 ASUS
  40. 2 Ahmatnurov Dinar
  41. 2 Alexander Duda
  42. 2 Ana Huaman Quispe
  43. 2 Eric Sommerlade
  44. 2 Naer Chang
  45. 2 Nils Plath
  46. 2 Sync-my-L2P
  47. 2 VBystricky
  48. 2 guopei
  49. 2 ippei ito
  50. 2 kalistratovag
  51. 2 karelknoest
  52. 2 sanuj
  53. 2 vbystricky
  54. 1 Adam Borowski
  55. 1 Adam Greig
  56. 1 Alexander Bohn / FI$H2k
  57. 1 Alexander Karsakov
  58. 1 Andrey Pavlenko
  59. 1 Ari Suwendi
  60. 1 Basheer Subei
  61. 1 Boaz Stolk
  62. 1 Chris Mayo
  63. 1 Chuanbo Weng
  64. 1 Claudio Caraffi
  65. 1 Daeyun Shin
  66. 1 Daniel Angelov
  67. 1 Daniel Sjölie
  68. 1 Dmitriy Anisimov
  69. 1 Florian Verdet
  70. 1 Guo Yejun
  71. 1 HelenWong
  72. 1 Jay Bosamiya
  73. 1 Jiri Drbalek
  74. 1 Jonathan Viney
  75. 1 Josep Bosch
  76. 1 Julien Nabet
  77. 1 Kai Wolf
  78. 1 Kevin Squire
  79. 1 LorenaGdL
  80. 1 Max Kostin
  81. 1 Michae Gharbi
  82. 1 Mike Izbicki
  83. 1 Nicolas Riebesel
  84. 1 Owen Healy
  85. 1 Pat O’Keefe
  86. 1 Pavel Vlasov
  87. 1 Prof. Dr. Rudolf Haussmann
  88. 1 Quentin Minster
  89. 1 RafaRuiz
  90. 1 Rok Mandeljc
  91. 1 S. Garrido
  92. 1 Samyak Datta
  93. 1 Sancho McCann
  94. 1 Scott Graybill
  95. 1 Shiquan Wang
  96. 1 Tim D. Smith
  97. 1 Timur Sattarov
  98. 1 Tzafrir
  99. 1 UQ Times
  100. 1 Yang Fan
  101. 1 burun
  102. 1 eltermann
  103. 1 exeltior
  104. 1 fhsm
  105. 1 greensea
  106. 1 hahne
  107. 1 mariadeanton
  108. 1 potpath
  109. 1 sergei
  110. 1 soyer
  111. 1 tcavallari
  112. 1 tt
  113. 1 ttagu99
  114. 1 vincentweb

opencv_contrib

  1. $ git shortlog —no-merges -ns 3.0.0-beta..origin/master
  2. 13 Maksim Shabunin
  3. 5 cbalint13
  4. 3 Auron-X
  5. 3 Dikay900
  6. 3 Str3iber
  7. 2 Dmitriy Anisimov
  8. 2 Jay Bosamiya
  9. 2 Rok Mandeljc
  10. 2 Vadim Pisarevsky
  11. 2 berak
  12. 1 Alfonso Sanchez-Beato
  13. 1 Antonella Cascitelli
  14. 1 Beat Küng
  15. 1 Dinar Ahmatnurov
  16. 1 Nisarg Thakkar
  17. 1 Sh0
  18. 1 Shuda Li
  19. 1 StevenPuttemans
  20. 1 Vladimir
  21. 1 Yan Wang
  22. 1 jiaolong_cvc228
  23. 1 pmkalshetti
  24. 1 yifita

version:3.0 beta

November, 2014

These are changes since 3.0 alpha.

  • Performance of OpenCL-accelerated code on Intel Iris Graphics and Intel Iris Pro Graphics has been improved by 10%-230%. That includes faster Canny edge detector, Laplacian, StereoBM, BruteForceMatcher, BackgroundSubtractorMOG2, StitchingWarpers etc. New OpenCL kernels were implemented for several functions: HoughLines, HoughLinesP, cvtColor (selected modes), Gemm, DFT. Thanks Alexander Alekhin, Alexander Karsakov, Elena Gvozdeva, Vladimir Bystritsky, Sergey Sivolgin and other guys who did that!

  • About 40 commonly used image processing functions have been optimized using vector NEON instructions, so OpenCV 3.0 beta should run noticeably faster on modern ARM chips. Big thanks to Ilya Lavrenov for the amazing job!

  • Java bindings have been substantially improved. We now have bindings for the updated features2d, background subtractor classes, a part of opencv_contrib etc. Thanks to Maksim Shabunin for the improvements!

  • On x86 and x64 platforms OpenCV binaries include and use a subset of Intel® Integrated Performance Primitives (Intel® IPP) by default. OpenCV 3.0 beta includes a subset of Intel® IPP 8.2.1 with additional optimization for AVX2.

  • Over 200 pull requests have been merged in since 3.0 alpha. Big thanks to all the people who submitted bug fixes, new functionality and other small and big improvements! OpenCV becomes more and more a community-driven project and we are pleased to see that!

Contributors

opencv

  1. $ git shortlog —no-merges -ns 3.0.0-alpha..origin/master
  2. 129 edgarriba
  3. 71 Ilya Lavrenov
  4. 45 Alexander Karsakov
  5. 41 Adrien BAK
  6. 39 Rahul Kavi
  7. 37 Vadim Pisarevsky
  8. 27 Maksim Shabunin
  9. 20 Ernest Galbrun
  10. 15 Dmitriy Anisimov
  11. 14 Artur Wieczorek
  12. 13 Alexander Mordvintsev
  13. 12 Alexander Alekhin
  14. 9 vbystricky
  15. 9 Alexander Smorkalov
  16. 9 Rok Mandeljc
  17. 8 Elena Gvozdeva
  18. 8 Marc Rollins
  19. 7 Philipp Hasper
  20. 5 berak
  21. 5 ElenaGvozdeva
  22. 4 PhilLab
  23. 3 Juan Carlos Niebles
  24. 3 Alexander Duda
  25. 3 Alexander Shishkov
  26. 3 xantares
  27. 3 jaco
  28. 3 Brian Park
  29. 3 Chuanbo Weng
  30. 3 Igor Kuzmin
  31. 3 Michele Adduci
  32. 2 Andrey Pavlenko
  33. 2 Bence Magyar
  34. 2 Miroslav Benes
  35. 2 Shubhra Pandit
  36. 2 StevenPuttemans
  37. 2 abidrahmank
  38. 2 f-morozov
  39. 2 micha137
  40. 1 Jose-Luis Blanco-Claraco
  41. 1 Pat O’Keefe
  42. 1 Pavel Vlasov
  43. 1 John Kua
  44. 1 Huu Nguyen
  45. 1 Pierrick Koch
  46. 1 Poly Takahiro Horikawa
  47. 1 GregoryMorse
  48. 1 Felix Endres
  49. 1 Benoit Seguin
  50. 1 jeremy
  51. 1 Tomasz Posłuszny
  52. 1 U-KruchininD-ПК\KruchininD
  53. 1 VBystricky
  54. 1 Dmitry Gribanov
  55. 1 Yan Wang
  56. 1 Yusuke Suzuki
  57. 1 Anatoly Baksheev
  58. 1 bartaandras
  59. 1 Daniel Stonier
  60. 1 dkanafeev
  61. 1 Boaz Stolk
  62. 1 eltermann
  63. 1 Ling Wang@z77x
  64. 1 Manfred Georg
  65. 1 Leszek Swirski
  66. 1 Matthew Conway
  67. 1 Maximilien Cuony
  68. 1 Ariel Elkin

opencv_contrib

  1. $ git shortlog —no-merges -ns e2fde8..origin/master
  2. 69 biagio montesano
  3. 55 Vlad Shakhuro
  4. 46 Alex Leontiev
  5. 36 Bellaktris
  6. 28 Vadim Pisarevsky
  7. 24 lluis
  8. 19 dmitriy.anisimov
  9. 18 vludv
  10. 11 Dmitriy Anisimov
  11. 10 Bence Magyar
  12. 10 Daniel Angelov
  13. 10 Alexander Shishkov
  14. 9 ahb
  15. 6 tpietruszka
  16. 5 Maksim Shabunin
  17. 5 Beat Küng
  18. 4 manuele
  19. 4 StevenPuttemans
  20. 4 Alexander Mordvintsev
  21. 4 vbystricky
  22. 3 Philipp Hasper
  23. 3 berak
  24. 3 Sancho McCann
  25. 2 Alexander Alekhin
  26. 2 Ilya Lavrenov
  27. 2 Alexandre Benoit
  28. 1 tolgabirdal
  29. 1 Shuda Li
  30. 1 Rok Mandeljc
  31. 1 VBystricky
  32. 1 Poly Takahiro Horikawa
  33. 1 Michele Adduci
  34. 1 Ernest Galbrun

version:3.0 alpha

August, 2014

This is brief version of the change log. There is also a separate page with detailed review of OpenCV_3.0

  • OpenCV 3.0 brings more GPU accelerated functions and makes it in much more convenient form than OpenCV 2.4.
    • The new technology is nick-named “Transparent API” and, in brief, is extension of classical OpenCV functions, such as cv::resize(), to use OpenCL underneath. See more details about it here: T-API.
    • Along with OpenCL code refactoring and Transparent API implementation OpenCL kernels were optimized for mainstream platforms, most notably for modern Intel chips (including Iris and Iris Pro) and AMD chips (such as Kaveri). More detailed results are to be provided later.

  • On x86 and x64 platforms OpenCV binaries include and use a subset of Intel® Integrated Performance Primitives (Intel® IPP) by default. Intel Corporation granted OpenCV Foundation and all our users the right to use those functions free of charge for both non-commercial and commercial use.

  • We now have a separate repository for community-contributed code http://github.com/opencv/opencv_contrib. It will help us to combine well-known maturity and stability of classical OpenCV functionality together with innovative algorithms and opens new opportunities for community to share computer vision code. For all the contributed code we provide the same QA infrastructure as for the main OpenCV repository. How to use it?
  • Grab a copy of contribution repository http://github.com/opencv/opencv_contrib along with a copy of OpenCV 3.0 alpha or a fresh master snapshot.
  • Pass OPENCV_EXTRA_MODULES_PATH=<path_to_contrib_directory>/modules to CMake.
  • Documentation for the contributed modules is integrated into OpenCV doc tree: http://docs.opencv.org/master

  • We completely revised our QA infrastructure (big thanks to Alexander Alekhin), which now covers not only the main repository, but also the contrib repository as well: http://pullrequest.opencv.org.

 

  • OpenCV 3.0 and its contribution repository feature a lot of new functionality created by our GSoC students during the past 2 years, namely:
    • Text detection and recognition by Lluis Gomez and Stefano Fabri
    • HDR by Fedor Morozov
    • 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 Tamburrano

  • There are many other contributions, besides GSoC programs. Here is incomplete list (PLEASE, mail to admin at opencv.org if your name is missing here):
    • 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

Also, big thanks to all the Itseez guys who reviewed patches, watched bug reports and helped OpenCV in many other ways: 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, Stefano Fabri and many others.

  • Although OpenCV 3 can be viewed as refined OpenCV 2 and is similar to the latter, this new version is not completely backward-compatible with OpenCV 2. Here are some major changes:
    • Some functionality has been moved to opencv_contrib repository or just disappeared. After revision, we may put a part of disappeared functionality back to opencv (or opencv_contrib).

    • Note that among the moved functionality is Face Recognition (now a separate module opencv_contrib/face); SIFT, SURF, FREAK, Star feature detectors and descriptors (now a part of opencv_contrib/xfeatures2d); text detector (now a part of module opencv_contrib/text); matlab bindings (opencv_contrib/matlab); motion templates & simple flow (opencv_contrib/optflow).

    • In OpenCV 3 we write

      #include “opencv2/core.hpp”

      instead of

      #include “opencv2/core/core.hpp”

      The old method should also work.

    • ML module has been completely revised (and at the moment the functionality is not 100% match for OpenCV 2.4.x), you will need to update your code.

    • Similarly to ML, many high-level algorithms have been refactored to follow “open interface-hidden implementation” concept and this refactoring work will continue after alpha.

    • To lower the footprint, highgui module has been split into 3 parts: imgcodecs, videoio and highgui itself (thanks to Vladimir). You may need to update your code.

    • After massive functionality migration to opencv_contrib and other major changes some Python bindings may be missing. We will fix it by OpenCV 3.0 beta.

version:2.4.9

April, 2014

  • Several improvements in OpenCL optimizations (ocl::sumocl::countNonZeroocl::minMax, bitwise operationss, Haar face detector, etc)

  • Multiple fixes in Naitve Camera (NativeCameraView, cv::VideoCapture);
  • Improved CUDA support for all CUDA-enabled SoCs.

  • New VTK-based 3D visualization module viz stabilized and back-ported to 2.4 branch. The module provides a very convenient way to display and position clouds, meshes, cameras and trajectories, and simple widgets (cube, line, circle, etc.). Full demo video can be found at Itseez Youtube channel

  • Numerous bugfixes in code and docs from community

  • 156 pull requests have been merged since version#20

  • 55 reported bugs have been closed since version#20

Contributors

  1. $ git checkout 2.4.9
  2. $ git shortlog --no-merges -n -s 2.4 --not 2.4.8
  3. 36 Alexander Smorkalov
  4. 35 Ilya Lavrenov
  5. 33 Vladislav Vinogradov
  6. 23 Anatoly Baksheev
  7. 16 Andrey Pavlenko
  8. 9 Maks Naumov
  9. 8 Roman Donchenko
  10. 6 Pierre-Emmanuel Viel
  11. 6 yash
  12. 5 Daniil Osokin
  13. 4 Alexander Karsakov
  14. 4 Alexander Shishkov
  15. 4 Matti Picus
  16. 4 Nghia Ho
  17. 4 Stuart Cunningham
  18. 4 Vadim Pisarevsky
  19. 3 Alexander Alekhin
  20. 3 Kang Liu
  21. 3 Seunghoon Park
  22. 3 Vincent Rabaud
  23. 2 Firat Kalaycilar
  24. 2 Martin Jul
  25. 2 RJ2
  26. 2 berak
  27. 1 Alessandro Trebbi
  28. 1 Cody Rigney
  29. 1 ComFreek
  30. 1 Dave Hughes
  31. 1 David Rolland
  32. 1 Drew Jetter
  33. 1 Evgeniy
  34. 1 Ian Taylor
  35. 1 JinoBetti
  36. 1 Kazuki Matsuda
  37. 1 Kirill Kornyakov
  38. 1 Konstantin Matskevich
  39. 1 Linquize
  40. 1 Marijan Vukcevich
  41. 1 Martin Chodakowski
  42. 1 Robbert Klarenbeek
  43. 1 Vladimir Kolesnikov
  44. 1 Zhigang Gong
  45. 1 ahb
  46. 1 kuroda sho
  47. 1 kurodash

version:2.4.8

December, 2013

  • User provided OpenCL context can be used by OpenCV ( ocl::initializeContext )
  • A separate OpenCL command queue is created for every CPU thread (allows concurrent kernels execution)
  • Some new OpenCL optimizations and bug-fixes

  • NVidia CUDA support on CUDA capable SoCs;
  • Android 4.4 support, including native camera;
  • Java wrappers for GPU-detection functions from core module were added;
  • New sample with CUDA on Android was added;
  • OpenCV Manager and apps hanging were fixed on Samsung devices with Android 4.3 (#3368, #3372, #3403, #3414, #3436)

  • Static linkage support for native C++ libraries;

  • 139 pull requests have been merged since version:2.4.7!

  • 32 reported bugs have been closed since version:2.4.7

Contributors

  1. $ git checkout 2.4.8
  2. $ git shortlog --no-merges -n -s 2.4 --not 2.4.7
  3. 42 Alexander Smorkalov
  4. 35 Ilya Lavrenov
  5. 15 Roman Donchenko
  6. 15 Vladislav Vinogradov
  7. 14 Alexander Alekhin
  8. 11 krodyush
  9. 10 Andrey Pavlenko
  10. 9 Vladimir Bystricky
  11. 8 StevenPuttemans
  12. 7 Baichuan Su
  13. 7 Konstantin Matskevich
  14. 7 perping
  15. 6 Adrien BAK
  16. 6 Mimmmo Cosenza
  17. 6 Vincent Rabaud
  18. 4 Peter Andreas Entschev
  19. 4 Philippe FOUBERT
  20. 3 Anatoly Baksheev
  21. 3 berak
  22. 2 Alexander Karsakov
  23. 2 Bo Hu
  24. 2 GregoryMorse
  25. 2 Piotr Miecielica
  26. 2 moodoki
  27. 1 Alex Willisson
  28. 1 Alexander Shishkov
  29. 1 Alfonso (the fonz) de la Osa
  30. 1 Andrey Kamaev
  31. 1 Eric Sommerlade
  32. 1 Josep Bosch
  33. 1 Kiran Pradeep
  34. 1 Matthias Bady
  35. 1 Peng Xiao
  36. 1 Pierre-Emmanuel Viel
  37. 1 Séverin Lemaignan
  38. 1 Zhigang Gong
  39. 1 dpen2000
  40. 1 huangs
  41. 1 tim36272

version:2.4.7

November, 2013

  • Now ‘ocl’ module can be built without installing OpenCL SDK (Khronos headers in OpenCV tree);
  • Dynamic dependency on OpenCL runtime (allows run-time branching between OCL and non-OCL implementation);
  • Changing default OpenCL device via OPENCV_OPENCL_DEVICE environment variable (without app re-build);
  • Refactoring/extending/bug-fixing of existing OpenCL optimizations, updated documentation;
  • New OpenCL optimizations of SVM, MOG/MOG2, KalmanFilter and more;

  • New optimization for histograms, TV-L1 optical flow and resize;
  • Updated multi gpu sample for stereo matching;
  • Fixed BGR<→YUV color conversion and bitwize operations;
  • Fixed several build issues;

  • Android NDK-r9 (x86, x86_64) support;
  • Android 4.3 support: hardware detector (Bugs #3124, #3265, #3270) and native camera (Bug #3185);
  • MediaRecorder hint enabled for all Android devices with API level 14 and above;
  • Fixed JavaCameraView slowdown (Bugs #3033, #3238);

  • Fixed MS Certification test issues for all algorithmical modules and highgui, except OpenEXR and Media Foundation code for camera;
  • Implemented XAML-based sample for video processing using OpenCV;
  • Fixed issue in Media Foundation back-end for VideoCapture (#3189);

  • 382 pull requests have been merged since version:2.4.6!

Contributors

  1. $ git checkout 2.4.7
  2. $ git shortlog --no-merges -n -s 2.4 --not 2.4.6
  3. 111 Ilya Lavrenov
  4. 83 Alexander Alekhin
  5. 79 Roman Donchenko
  6. 41 Alexander Smorkalov
  7. 36 peng xiao
  8. 34 Jin Ma
  9. 32 Vladislav Vinogradov
  10. 27 StevenPuttemans
  11. 19 yao
  12. 17 Andrey Pavlenko
  13. 13 kdrobnyh
  14. 12 ilya-lavrenov
  15. 9 Alexander Shishkov
  16. 8 Vadim Pisarevsky
  17. 7 Greg Hale
  18. 7 Jan Starzynski
  19. 6 Bahram Dahi
  20. 5 Dmitry Retinskiy
  21. 5 Nghia Ho
  22. 5 konstantin
  23. 5 perping
  24. 3 Alexander Mordvintsev
  25. 3 Frederic Devernay
  26. 3 Kirill Kornyakov
  27. 3 Peng Xiao
  28. 3 Sebastian KrA¤mer
  29. 3 WonderRico
  30. 3 kamjagin
  31. 2 Alexander Pacha
  32. 2 Daniil Osokin
  33. 2 Gabe Schwartz
  34. 2 Hanusz Leszek
  35. 2 Nikita Manovich
  36. 2 Philippe FOUBERT
  37. 2 Zac Stewart
  38. 1 Alexander Karsakov
  39. 1 Andrew Senin
  40. 1 Baris Evrim Demiroz
  41. 1 Csaba Kertesz
  42. 1 George Andrew Brindeiro
  43. 1 Han Qiang
  44. 1 Harris Gasparakis
  45. 1 Heinz Hofbauer
  46. 1 Kevin
  47. 1 MarkBelmont
  48. 1 Michael Hanselmann
  49. 1 Miroslav Kobetski
  50. 1 Samuel Wejeus
  51. 1 Sebastian Kramer
  52. 1 abidrahmank
  53. 1 kocheganovvm
  54. 1 pengxiao

version:2.4.6

July, 2013

  • Windows RT: added video file i/o and sample application using camera, enabled parallelization with TBB or MS Concurrency

  • CUDA 5.5: added support for desktop and ARM

  • added Qt 5 support

  • Binary compatiblility with both OpenCL 1.1/1.2 platforms. Now the binaries compiled with any of AMD/Intel/Nvidia’s SDK can run on all other platforms.
  • New functions ported, CLAHE, GoodFeaturesToTrack, TVL1 optical flow and more.
  • Performance optimizations, HOG and more.
  • More kernel binary cache options though setBinaryDiskCache interface.
  • OpenCL binaries are now included into the superpack for Windows (for VS2010 and VS2012 only)

  • switched all the remaining parallel loops from TBB-only tbb::parallel_for() to universalcv::parallel_for_() with many possible backends (MS Concurrency, Apple’s GDC, OpenMP, Intel TBB etc.)

  • iOS build scripts (together with Android ones) moved to opencv/platforms directory
  • fixed bug with incorrect saved video from camera through CvVideoCamera
  • added rotateVideo flag to the CvVideoCamera class to control camera preview rotation on device rotation
  • added functions to convert between UIImage and cv::Mat (just include opencv2/highgui/ios.h)

Contributors

  1. ~/Work/OpenCV/opencv> git checkout 2.4.6
  2. ~/Work/OpenCV/opencv> git shortlog --no-merges -n -s 2.4 --not 2.4.5
  3. 55 Peng Xiao
  4. 50 yao
  5. 41 Roman Donchenko
  6. 40 Alexander Smorkalov
  7. 21 Vladislav Vinogradov
  8. 10 Kirill Kornyakov
  9. 9 Andrey Pavlenko
  10. 8 Alexander Shishkov
  11. 8 Andrey Kamaev
  12. 5 alex77git
  13. 5 Dominik Rose
  14. 4 Ivan Korolev
  15. 3 Sergei Nosov
  16. 3 abidrahmank
  17. 3 poiuytrez
  18. 2 Leszek Swirski
  19. 1 Bo Li
  20. 1 Jan Machacek
  21. 1 ShengyinWu
  22. 1 Siva Prasad Varma
  23. 1 Gurpinder Singh Sandhu
  24. 1 Andrew Senin
  25. 1 Peter Minin
  26. 1 caorong
  27. 1 dave
  28. 1 ograycode
  29. 1 Dustin Spicuzza
  30. 1 Luis Díaz Más
  31. 1 Egbert van der Wal

version:2.4.5

April, 2013

  • Experimental WinRT support (build for WindowsRT guide)

  • the new video super-resolution module has been added that implements the following papers:

    • S. Farsiu, D. Robinson, M. Elad, P. Milanfar. Fast and robust Super-Resolution. Proc 2003 IEEE Int Conf on Image Process, pp. 291–294, 2003.
    • D. Mitzel, T. Pock, T. Schoenemann, D. Cremers. Video super resolution using duality based TV-L1 optical flow. DAGM, 2009.

  • CLAHE (adaptive histogram equalization) algorithm has been implemented, both CPU and GPU-accelerated versions (in imgproc and gpu modules, respectively)

  • there are further improvements and extensions in ocl module:\
    • 2 stereo correspondence algorithms: stereobm (block matching) and stereobp (belief propagation) have been added\
    • many bugs fixed, including some crashes on Intel HD4000

  • 78 pull requests have been merged. Big thanks to everybody who contributed!

version:2.4.4

March, 2013

  • This is the biggest news in 2.4.4 – we’ve got full-featured OpenCV Java bindings on a desktop, not only Android! In fact you can use any JVM language, including functional Java or handy Groovy. Big thanks to Eric Christiansen for the contribution! Check the tutorial for details and code samples.

  • Android application framework, samples, tutorials, OpenCV Manager are updated, see Android_Release_Notes for details.

  • Numerous improvements in gpu module and the following new functionality & optimizations:
    • Optimizations for the NVIDIA Kepler architecture
    • NVIDIA CARMA platform support
    • HoughLinesP for line segments detection
    • Lab/Luv <→ RGB conversions

  • Let us be more verbose here. The openCL-based hardware acceleration (ocl) module is now mature, and, with numerous bug fixes, it is largely bug-free. Correct operation has been verified on all tested platforms, including discrete GPUs (tested on NVIDIA and AMD boards), as well as integrated GPUs (AMD APUs as well as Intel Ivy Bridge iGPUs). On the host side, there has been exhaustive testing on 32/64 bit, Windows/Linux systems, making the ocl module a very serious and robust cross-platform GPU hardware acceleration solution. While we currently do not test on other devices that implement OpenCL (e.g. FPGA, ARM or other processors), it is expected that the ocl module will work well on such devices as well (provided the minimum requirements explained in the user guide are met).
    Here are specific highlights of the 2.4.4 release:
    • The ocl::Mat can now use “special” memory (e.g. pinned memory, host-local or device-local).
    • The ocl module can detect if the underlying hardware supports “integrated memory,” and if so use “device-local” memory by default for all operations.
    • New arithmetic operations for ocl::Mat, providing significant ease of use for simple numerical manipulations.
    • Interop with OpenCL enables very easy integration of OpenCV in existing OpenCL applications, and vice versa.
    • New algorithms include Hough circles, more color conversions (including YUV, YCrCb), and Hu Moments.
    • Numerous bug fixes, and optimizations, including in: blendLinear, square samples, erode/dilate, Canny, convolution fixes with AMD FFT library, mean shift filtering, Stereo BM.
    • Platform specific bug fixes: PyrLK, bruteForceMatcher, faceDetect now works also on Intel Ivy Bridge chips (as well as on AMD APUs/GPUs and NVIDIA GPUs); erode/dilate also works on NVIDIA GPUs (as well as AMD APUs/GPUs and Intel iGPUs).

  • Many people contributed their code in the form of pull requests. Here are some of the most interesting contributions, that were included into 2.4 branch:

version:2.4.3

November, 2012

  • Improved OpenCV Manager, new Java samples framework, better camera support on Android, see Android_Release_Notes for details.

  • opencv2.framework is now iOS6- and iPhone5- (armv7s) compatible. Thanks to the new threading mechanism several important OpenCV algorithms (e.g. face detection, bilateral filter, etc.) now run faster on A5 or newer dual-core chips. We also fixed bug in the framework build script and now the framework is built with “-O3” optimization instead of “-O0” in OpenCV 2.4.2. Finally, our GSoC students, Eduard Feicho and Charu Hans, have written detailed tutorials on how to add OpenCV to your iOS app, please, check http://docs.opencv.org/doc/tutorials/ios/table_of_content_ios/table_of_content_ios.html.

  • Numerous improvements and new functionality in GPU module:\
    • device layer opened for users; now users write CUDA device code using OpenCV.\
    • LBP cascade support in cascade classifier\
    • fast non local means image denoising\
    • faster integral image calculation on Kepler\
    • Hough circles, Hough lines and generalized Hough transform implementation\
    • bilateral filter\
    • generalized Flood Fill connected component labeling\
    • background/foreground segmentation algorithms: Mixture of Gaussian, ViBe, GMG (A. Godbehere, A. Matsukawa, K. Goldberg) .\
    • added confidence calculation into HOG

  • Technology-preview version of ocl – OpenCL-accelerated computer vision algorithms, contributed by the Chinese Academy of Science. It includes:\
    • arithmetical operations\
    • filtering\
    • geometrical image transformations (resize, remap etc.)\
    • cascade classifier (i.e. face detector)\
    • optical flow
      currently, it only runs on GPUs.

http://code.opencv.org/attachments/download/1147

  • ~130 reported problems have been resolved since 2.4.2

  • Since 2.4.3rc we fixed several build problems (OpenCV-based applications on Xcode 4.5 & iOS6, OpenCV+TBB on Windows etc.) and closed a few issues, reported at code.opencv.org.

version:2.4.2

July, 2012

  • Android package introduces a new service-based distribution model (see Android_Release_Notes for details).

  • New keypoint descriptor FREAK has been contributed by EPFL group: Kirell Benzi, Raphael Ortiz, Alexandre Alahi and Pierre Vandergheynst. It’s claimed to be superior to ORB and SURF descriptors, yet it’s very fast (comparable to ORB). Please, see source://trunk/opencv/samples/cpp/freak_demo.cpp.

  • Improved face recognizer and excellent tutorial on using it has been added by Philipp Wagner. Check the face recognition tutorial.

  • opencv2.framework for iOS has been created. You can either download the binary from SourceForge or build it yourself using the simple guide: http://docs.opencv.org/doc/tutorials/introduction/ios_install/ios_install.html\#ios-installation. Also, you may be interested to look at some OpenCV on iOS samples, created by our GSoC 2012 students Eduard and Charu: gsoc2012:source:/ios/trunk and read the slides of the tutorial: gsoc2012:source:/ios/trunk/doc/CVPR2012_OpenCV4IOS_Tutorial.pdf

  • GPU module:\
    • reimplemented CUDA accelerated gpu::PyrLKOpticalFlow for dense and sparse cases. New implementation up 1.5 – 2 times faster then previous GPU optimized. Updated optical flow samples\
    • implemented resize with area interpolation. CUDA optimized version for integer matrix types up 30 – 35 faster then not optimized OpenCV implementation and up 7 in worst case of 3 channel floating point matrix.

2.4.1

June, 2012

  • The GPU module now supports CUDA 4.1 and CUDA 4.2 and can be compiled with CUDA 5.0 preview.

Added API for storing OpenCV data structures in text string and reading them back:\

  1. //==== storing data ====
  2. FileStorage fs(".xml", FileStorage::WRITE + FileStorage::MEMORY);
  3. fs << "date" << date_string << "mymatrix" << mymatrix;
  4. string buf = fs.releaseAndGetString();
  5. //== reading it back ==
  6. FileStorage fs(buf, FileStorage::READ + FileStorage::MEMORY);
  7. fs[“date”] >> date_string;
  8. fs[“mymatrix”] >> mymatrix;
  • Function signatures in documentation are made consistent with source code.
  • Restored python wrappers for SURF and MSER.

version:2.4.0

May, 2012

The major changes since 2.4 beta

  • OpenCV now provides pretty complete build information via cv::getBuildInformation().
  • reading/writing video via ffmpeg finally works and is now available on MacOS X too.
    note 1: we now demand reasonably fresh versions of ffmpeg/libav with libswscale included.
    note 2: if possible, try to avoid reading or writing more than one video simultaneously (even within a single thread) with ffmpeg 0.7.x or earlier, since they seem to use some global structures that are destroyed by the codecs executed synchronously. Either build and install a newer ffmpeg (0.10.x is recommended), or serialize your video i/o, or use parallel processes instead of threads.
  • MOG2 background subtraction by Zoran Zivkovic was optimized using TBB.
  • The reference manual has been updated to match OpenCV 2.4.0.
  • Asus Xtion is now properly supported for HighGUI. For now, you have to manually specify this device by using VideoCapture(CV_CAP_OPENNI_ASUS) instead of VideoCapture(CV_CAP_OPENNI).

2.4 beta

April, 2012

As usual, we created 2.4 branch in our repository (http://code.opencv.org/svn/opencv/branches/2.4), where we will further stabilize the code. You can check this branch for changes periodically, before as well as after 2.4 release.

Common changes

  • At the age of 12, OpenCV got its own home! http://code.opencv.org is now the primary site for OpenCV development and http://opencv.org will be the official OpenCV user site.

  • Some of the old functionality from the modules imgprocvideocalib3dfeatures2dobjdetect has been moved to legacy.

  • CMake scripts have been substantially modified. Now it’s very easy to add new modules – just put the directory with include, src, doc and test sub-directories to the modules directory, create a very simple CMakeLists.txt and your module will be built as a part of OpenCV. Also, it’s possible to exclude certain modules from build (the CMake variables “BUILD_opencv_<modulename>” control that).

New functionality

  • A new essential class cv::Algorithm has been introduced. It’s planned to be the fundamental part of all of the “non-trivial” OpenCV functionality. All Algorithm-based classes have the following features:

    • “virtual constructor”, i.e. an algorithm instance can be created by name;
    • there is a list of available algorithms;
    • one can retrieve and set algorithm parameters by name;
    • one can save algorithm parameters to XML/YAML file and then load them.
  • A new ffmpeg wrapper has been created that features multi-threaded decoding, more robust video positioning etc. It’s used with ffmpeg starting with 0.7.x versions.

  • features2d API has been cleaned up. There are no more numerous classes with duplicated functionality. The base classes FeatureDetector and DescriptorExtractor are now derivatives of cv::Algorithm. There is also the base Feature2D, using which you can detect keypoints and compute the descriptors in a single call. This is also more efficient.

  • SIFT and SURF have been moved to a separate module named nonfree to indicate possible legal issues of using those algorithms in user applications. Also, SIFT performance has been substantially improved (by factor of 3-4x).

  • The current state-of-art textureless detection algorithm, Line-Mod by S. Hinterstoisser, has been contributed by Patrick Mihelich. See objdetect/objdetect.hpp, class Detector.

  • 3 face recognition algorithms have been contributed by Philipp Wagner. Please, check opencv/contrib/contrib.hppFaceRecognizer class, and opencv/samples/cpp/facerec_demo.cpp.

  • 2 algorithms for solving PnP problem have been added. Please, check flags parameter in solvePnP and solvePnPRansac functions.

  • Enhanced LogPolar implementation (that uses Blind-Spot model) has been contributed by Fabio Solari and Manuela Chessa, see opencv/contrib/contrib.hppLogPolar_* classes andopencv/samples/cpp/logpolar_bsm.cpp sample.

  • A stub module photo has been created to support a quickly growing “computational photography” area. Currently, it only contains inpainting algorithm, moved from imgproc, but it’s planned to add much more functionality.

  • Another module videostab (beta version) has been added that solves a specific yet very important task of video stabilization. The module is under active development. Please, checkopencv/samples/cpp/videostab.cpp sample.

  • findContours can now find contours on a 32-bit integer image of labels (not only on a black-and-white 8-bit image). This is a step towards more convenient connected component analysis.

  • Canny edge detector can now be run on color images, which results in better edge maps

  • Python bindings can now be used within python threads, so one can write multi-threaded computer vision applications in Python.

OpenCV on GPU

  • Different Optical Flow algorithms have been added:

    • Brox (contributed by NVidia)
    • PyrLK – both Dense and Sparse variations
    • Farneback
  • New feature detectors and descriptors:

    • GoodFeaturesToTrack
    • FAST/ORB which is patent free replacement of SURF.
  • Overall GPU module enhancements:

    • The module now requires CUDA 4.1 or later;
    • Improved similarity of results between CPU and GPU;
    • Added border extrapolation support for many functions;
    • Improved performance.
  • pyrUp/pyrDown implementations.

  • Matrix multiplication on GPU (wrapper for the CUBLAS library). This is optional, user need to compile OpenCV with CUBLAS support.

  • OpenGL back-end has been implemented for highgui module, that allows to display GpuMatdirectly without downloading them to CPU.

OpenCV4Android

See the [Android_Release_Notes].

Performance

  • A few OpenCV functions, like color conversion, morphology, data type conversions, brute-force feature matcher have been optimized using TBB and/or SSE intrinisics.

  • Along with regression tests, now many OpenCV functions have got performance tests. Now for most modules one can build opencv_perf_<modulename> executables that run various functions from the particular module and produce a XML file. Note that if you want to run those tests, as well as the normal regression tests, you will need to get (a rather big) http://code.opencv.org/svn/opencv/trunk/opencv_extra directory and set environment variable OPENCV_TEST_DATA_PATH to <your_copy_of_opencv_extra>/testdata.

Bug fixes

Known issues

  • When OpenCV is built statically, dynamically created classes (via Algorithm::create) can fail because linker excludes the “unused” object files. To avoid this problem, create classes explicitly, e.g

    Ptr<DescriptorExtractor> d = new BriefDescriptorExtractor;

2.3.1

August, 2011

OpenCV4Android

OpenCV Java bindings for Android platform are released in ‘’Beta 2’’ quality. A lot of work is done to make them more stable and easier to use. Currently Java API has about 700 different OpenCV functions and covers 8 OpenCV modules including full port of features2d.

Other New Functionality and Features

  • Retina module has been contributed by Alexandre Benoit (in opencv_contrib module). See the new retina sample and https://sites.google.com/site/benoitalexandrevision/.

  • Support for Ximea cameras (http://www.ximea.com/) in highgui has been contributed by Ximea developers.

  • Planar subdivisions construction (Delaunay triangulation and Voronoi tessellation) have been ported to C++. See the new delaunay2.cpp sample.

  • Several new Python samples have been added.

  • FLANN in OpenCV has been upgraded to v1.6. Also, added Python bindings for FLANN.

  • We now support the latest FFMPEG (0.8.x) that features multi-threaded decoding. Reading videos in OpenCV has never been that fast.

Documentation

Optimization

  • Performance of the sparse Lucas-Kanade optical flow has been greatly improved. On 4-core machine it is now 9x faster than the previous version.

Bug Fixes

Known issues

  • TBB debug binaries are missed in the Windows installer. Here is a workaround:
    • Download tbb30_20110427oss_win.zip from the TBB website.
    • Unzip and copy the tbb*_debug.dll files from bin// to the corresponding folder in the installed OpenCV location in /build/common/tbb//

2.3

July, 2011

Modifications and Improvements since 2.3rc

  • A few more bugs reported in the OpenCV bug tracker have been fixed.

  • Documentation has been improved a lot! The new reference manual combines information for C++ and C interfaces, the OpenCV 1.x-style Python bindings and the new C++-style Python bindings. It has also been thoroughly checked for grammar, style and integrity.

Besides, there are new and updated tutorials.

The up-to-date online documentation is available at http://docs.opencv.org.

Unfortunately, it’s not a full-scale installation package, but simply a self-extracting archive with a readme.txt supplied.
The installation package is probably to come in the next version.

  • VS2005 should build OpenCV 2.3 out of the box, including DirectShow support.

  • ffmpeg bindings are now available for all Windows users via compiler- and configuration- and
    version-independent opencv_ffmpeg.dll (for 32-bit compilers) and opencv_ffmpeg_64.dll (for 64-bit compilers).

2.3 beta

June, 2011

General Modifications and Improvements

  • Buildbot-based Continuous Integration system is now continuously testing OpenCV snapshots. The current status is available at http://pullrequest.opencv.org/

  • OpenCV switched to Google Test (http://code.google.com/p/googletest/) engine for regression and correctness tests. Each module now has “test” sub-directory which includes the corresponding tests.

New Functionality, Features

  • Many functions and methods now take InputArray/OutputArray instead of cv::Matreferences. It retains compatibility with the existing code and yet brings more natural support for STL vectors and potentially other “foreign” data structures to OpenCV. Seehttp://docs.opencv.org/modules/core/doc/intro.html#inputarray-and-outputarray for details.

  • core

    • LAPACK is not used by OpenCV anymore. The change decreased the library footprint and the compile time. We now use our own implementation of Jacobi SVD. SVD performance on small matrices (2×2 to 10×10) has been considerably improved; on larger matrices it is still pretty good. SVD accuracy on poorly-conditioned matrices has also been polished.
    • Arithmetic operations now support mixed-type operands and arbitrary number of channels.
  • features2d

    • Completely new patent-free BRIEF and ORB feature descriptors have been added.
    • Very fast LSH matcher for BRIEF and ORB descriptors will be added in 2.3.1.
  • calib3d

    • A new calibration pattern, circles grid, has been added. See findCirclesGrid() function and the updated calibration.cpp sample. With the new pattern calibration accuracy is usually much higher.
  • highgui

    • Windows videoInput is now a part of highgui. If there are any problems with compiling highgui, set WITH_VIDEOINPUT=OFF in CMake.
  • stitching

    • opencv_stitching is a beta version of new application that makes a panorama out of a set of photos taken from the same point.
  • python
    • Now there are 2 extension modules: cv and cv2cv2 includes wrappers for OpenCV 2.x functionality. opencv/samples/python2 contain a few samples demonstrating cv2 in use.
  • contrib
    • A new experimental variational stereo correspondence algorithm StereoVar has been added.
  • gpu
    • the module now requires CUDA 4.0 or later; Many improvements and bug fixes have been made.

Android port

  • With support from NVIDIA, OpenCV Android port (which is actually not a separate branch of OpenCV, it’s the same code tree with additional build scripts) has been greatly improved, a few demos developed. Camera support has been added as well. See [Android_Release_Notes#231-beta1] for details.

Documentation

  • OpenCV documentation is now written in ReStructured Text and built using Sphinx(http://sphinx.pocoo.org).

  • It’s not a single reference manual now, it’s 4 reference manuals (OpenCV 2.x C++ API, OpenCV 2.x Python API, OpenCV 1.x C API, OpenCV 1.x Python API), the emerging user guide and a set of tutorials for beginners.

  • Style and grammar of the main reference manual (OpenCV 2.x C++ API) have been thoroughly checked and fixed.

  • Online up-to-date version of the manual is available at http://docs.opencv.org

Samples

Optimization

  • Several ML algorithms have been threaded using TBB.

Bug Fixes

Known Problems/Limitations

  • Documentation (especially on the new Python bindings) is still being updated. Watch http://docs.opencv.org for updates.

  • Android port does not provide Java interface for OpenCV. It is going to be added to 2.3 branchin a few weeks.

2.2

December, 2010

General Modifications and Improvements

  • The library has been reorganized. Instead of cxcorecvcvauxhighgui and ml we now have several smaller modules:
    • opencv_core – core functionality (basic structures, arithmetics and linear algebra, dft, XML and YAML I/O …).
    • opencv_imgproc – image processing (filterGaussianBlurerodedilateresizeremapcvtColorcalcHist etc.)
    • opencv_highgui – GUI and image & video I/O
    • opencv_ml – statistical machine learning models (SVM, Decision Trees, Boosting etc.)
    • opencv_features2d – 2D feature detectors and descriptors (SURF, FAST etc., including the new feature detectors-descriptor-matcher framework)
    • opencv_video – motion analysis and object tracking (optical flow, motion templates, background subtraction)
    • opencv_objdetect – object detection in images (Haar & LBP face detectors, HOG people detector etc.)
    • opencv_calib3d – camera calibration, stereo correspondence and elements of 3D data processing
    • opencv_flann – the Fast Library for Approximate Nearest Neighbors (FLANN 1.5) and the OpenCV wrappers
    • opencv_contrib – contributed code that is not mature enough
    • opencv_legacy – obsolete code, preserved for backward compatibility
    • opencv_gpu – acceleration of some OpenCV functionality using CUDA (relatively unstable, yet very actively developed part of OpenCV)

If you detected OpenCV and configured your make scripts using CMake or pkg-config tool, your code will likely build fine without any changes. Otherwise, you will need to modify linker parameters (change the library names) and update the include paths.

It is still possible to use #include <cv.h> etc. but the recommended notation is:

  1. ```.cpp
  2. #include "opencv2/imgproc/imgproc.hpp"
  3. ```

Please, check the new C and C++ samples (http://code.opencv.org/svn/opencv/trunk/opencv/samples), which now include the new-style headers.

  • The new-style wrappers now cover much more of OpenCV 2.x API. The documentation and samples are to be added later. You will need numpy in order to use the extra functionality.
    SWIG-based Python wrappers are not included anymore.

  • OpenCV can now be built for Android (GSoC 2010 project), thanks to Ethan Rublee; and there are some samples too. Please, check [OpenCV4Android]

  • The completely new opencv_gpu acceleration module has been created with support by NVIDIA. See below for details.

New Functionality, Features

  • core

    • The new cv::Matx<T, m, n> type for fixed-type fixed-size matrices has been added. Vec<T, n> is now derived from Matx<T, n, 1>. The class can be used for very small matrices, where cv::Mat use implies too much overhead. The operators to convert Matxto Mat and backwards are available.
    • cv::Mat and cv::MatND are made the same type: typedef cv::Mat cv::MatND.
      Note that many functions do not check the matrix dimensionality yet, so be careful when processing 3-, 4- … dimensional matrices using OpenCV.
    • Experimental support for Eigen 2.x/3.x is added (WITH_EIGEN2 option in CMake). Again, there are convertors from Eigen2 matrices to cv::Mat and backwards. Seemodules/core/include/opencv2/core/eigen.hpp.
    • cv::Mat can now be print with “<<” operator. See opencv/samples/cpp/cout_mat.cpp.
    • cv::exp and cv::log are now much faster thanks to SSE2 optimization.
  • imgproc

    • color conversion functions have been rewritten;
    • RGB→Lab & RGB→Luv performance has been noticeably improved. Now the functions assume sRGB input color space (e.g. gamma=2.2). If you want the original linear RGB→L** conversion (i.e. with gamma=1), use CV_LBGR2LAB etc.
    • VNG algorithm for Bayer→RGB conversion has been added. It’s much slower than the simple interpolation algorithm, but returns significantly more detailed images
    • The new flavors of RGB→HSV/HLS conversion functions have been added for 8-bit images. They use the whole 0..255 range for the H channel instead of 0..179. The conversion codes are CV_RGB2HSV_FULL etc.
    • special variant of initUndistortRectifyMap for wide-angle cameras has been added: initWideAngleProjMap()
  • features2d

    • the unified framework for keypoint extraction, computing the descriptors and matching them has been introduced. The previously available and some new detectors and descriptors, like SURFFASTStarDetector etc. have been wrapped to be used through the framework. The key advantage of the new framework (besides the uniform API for different detectors and descriptors) is that it also provides high-level tools for image matching and textured object detection. Please, see documentationhttp://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html\ and the C++ samples:
      • descriptor_extractor_matcher.cpp – finding object in a scene using keypoints and their descriptors.
      • generic_descriptor_matcher.cpp – variation of the above sample where the descriptors do not have to be computed explicitly.
      • bagofwords_classification.cpp – example of extending the framework and using it to process data from the VOC databases: http://pascallin.ecs.soton.ac.uk/challenges/VOC/
    • the newest super-fast keypoint descriptor BRIEF by Michael Calonder has been integrated by Ethan Rublee. See the sample opencv/samples/cpp/video_homography.cpp
    • SURF keypoint detector has been parallelized using TBB (the patch is by imahon and yvo2m)
  • objdetect

    • LatentSVM object detector, implementing P. Felzenszwalb algorithm, has been contributed by Nizhniy Novgorod State University (NNSU) team. Seeopencv/samples/c/latentsvmdetect.cpp
  • calib3d

    • The new rational distortion model has been introduced. It is useful for calibration of cameras with wide-angle lenses. Because of the increased number of parameters to optimize you need to supply more data to robustly estimate all of them. Or, simply initialize the distortion vectors with zeros and pass CV_CALIB_RATIONAL_MODEL to enable the new model CV_CALIB_FIX_K3 + CV_CALIB_FIX_K4 + CV_CALIB_FIX_K5 or other such combinations to selectively enable or disable certain coefficients.

    • rectification of trinocular camera setup, where all 3 heads are on the same line, is added. see samples/cpp/3calibration.cpp

  • ml

    • Gradient boosting trees model has been contributed by NNSU team.
  • highgui

    • Experimental Qt backend for OpenCV has been added as a result of GSoC 2010 project, completed by Yannick Verdie. The backend has a few extra features, not present in the other backends, like text rendering using TTF fonts, separate “control panel” with sliders, push-buttons, checkboxes and radio buttons, interactive zooming, panning of the images displayed in highgui windows, “save as” etc. Please, check the youtube videos where Yannick demonstrates the new features:http://www.youtube.com/user/MrFrenchCookie#p/u
    • The new API is described here:http://docs.opencv.org/modules/highgui/doc/qt_new_functions.html To make use of the new API, you need to have Qt SDK (or libqt4 with development packages) installed on your machine, and build OpenCV with Qt support (pass -DWITH_QT=ON to CMake; watch the output, make sure Qt is used as GUI backend)
    • 16-bit and LZW-compressed TIFFs are now supported.
    • You can now set the mode for IEEE1394 cameras on Linux.
  • contrib

    • Chamfer matching algorithm has been contributed by Marius Muja, Antonella Cascitelli, Marco Di Stefano and Stefano Fabri. See samples/cpp/chamfer.cpp
  • gpu This is completely new part of OpenCV, created with the support by NVIDIA. Note that the package is at alpha, probably early beta state, so use it with care and check OpenCV SVN for updates.

In order to use it, you need to have the latest NVidia CUDA SDK installed, and build OpenCV with CUDA support (-DWITH_CUDA=ON CMake flag).

All the functionality is put to cv::gpu namespace. The full list of functions and classes can be found at opencv/modules/gpu/include/opencv2/gpu/gpu.hpp, and here are some major components of the API:

  • image arithmetics, filtering operations, morphology, geometrical transformations, histograms

  • 3 stereo correspondence algorithms: Block Matching, Belief Propagation and Constant-Space Belief Propagation.

  • HOG-based object detector. It runs more than order of magnitude faster than the CPU version! See opencv/samples/gpu

  • python bindings. A lot more of OpenCV 2.x functionality is now covered by Python bindings.

    These new wrappers require numpy to be installed
    (see http://opencv.willowgarage.com/wiki/InstallGuide for details).

    Likewise the C++ API, in the new Python bindings you do not need to allocate output arrays.
    They will be automatically created by the functions.

    Here is a micro example:

    import cv
    
    a=cv.imread("lena.jpg",0)
    b=cv.canny(a, 50, 100, apertureSize=3)
    cv.imshow("test",b)
    cv.waitKey(0)

    In the sample a and b are normal numpy arrays, so the whole power of numpy and scipycan now be combined with OpenCV functionality.

Documentation, Samples

  • Links to wiki pages have been added to each function description, see http://opencv.willowgarage.com

  • All the samples have been documented with default output ‘’(0 or incomplete number of parameters)’’ set to print out “howto” run instructions; most samples have been converted to C++ to use the new OpenCV API.

Bug Fixes

Known Problems/Limitations

  • Installation package for Windows is still 32-bit only and does not include TBB support. You can build parallel or 64-bit version of OpenCV from the source code.
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/119772
推荐阅读
  

闽ICP备14008679号