Sync opencv-contrib-face too.
Main changes:
- DNN module from opencv_contrib was promoted to the main repository,
improved and accelerated it a lot. An external BLAS implementation is
not needed anymore. For GPU there is experimental DNN acceleration using
Halide (http://halide-lang.org).
- OpenCV can now be built as C++ 11 library using the flag ENABLE_CXX11.
Some cool features for C++ 11 programmers have been added.
- We've also enabled quite a few AVX/AVX2 and SSE4.x optimizations in
the default build of OpenCV thanks to the feature called 'dynamic
dispatching'. The DNN module also has some AVX/AVX2 optimizations.
- Intel Media SDK can now be utilized by our videoio module to do
hardware-accelerated video encoding/decoding. MPEG1/2, as well as
H.264 are supported.
- Embedded into OpenCV Intel IPP subset has been upgraded from 2015.12
to 2017.2 version, resulting in ~15% speed improvement in our core &
imgproc perf tests.
Full release notes:
https://github.com/opencv/opencv/wiki/ChangeLog
Many Darwin library handling patches removed because of commit 912592de4ce
Remove "INSTALL_NAME_DIR lib" target property
Full changelog at
https://github.com/opencv/opencv/wiki/ChangeLog
Highlights:
* 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)
* A lot of new functionality has been introduced during GSoC 2015:
- "Omnidirectional Cameras Calibration and Stereo 3D Reconstruction"
opencv_contrib/ccalib module
- "Structure From Motion" - opencv_contrib/sfm module
- "Improved Deformable Part-based Models" - opencv_contrib/dpm module
- "Real-time Multi-object Tracking using Kernelized Correlation Filter"
- opencv_contrib/tracking module
- "Improved and expanded Scene Text Detection" - opencv_contrib/text
module
- "Stereo correspondence improvements" - opencv_contrib/stereo module
- "Structured-Light System Calibration" - opencv_contrib/structured_light
- "Chessboard+ArUco for camera calibration" - opencv_contrib/aruco
- "Implementation of universal interface for deep neural network
frameworks" - opencv_contrib/dnn module
- "Recent advances in edge-aware filtering, improved SGBM stereo
algorithm" - opencv/calib3d and opencv_contrib/ximgproc
- "Improved ICF detector, waldboost implementation"
- opencv_contrib/xobjdetect
- "Multi-target TLD tracking" - opencv_contrib/tracking module
- "3D pose estimation using CNNs" - opencv_contrib/cnn_3dobj
* Many great contributions made by the community, such as:
- Support for HDF5 format
- New/Improved optical flow algorithms
- Multiple new image processing algorithms for filtering, segmentation
and feature detection
- Superpixel segmentation
* IPPICV is now based on IPP 9.0.1, which should make OpenCV even faster
on modern Intel chips
* opencv_contrib modules can now be included into the opencv2.framework
for iOS
* Newest operating systems are supported: Windows 10 and OSX 10.11
(Visual Studio 2015 and XCode 7.1.1)
* Interoperability between T-API and OpenCL, OpenGL, DirectX and Video
Acceleration API on Linux, as well as Android 5 camera.
* HAL (Hardware Acceleration Layer) module functionality has been moved
into corresponding basic modules; the HAL replacement mechanism has
been implemented along with the examples
See full changelog:
https://github.com/Itseez/opencv/wiki/ChangeLog
Problems found with existing digests:
Package fotoxx distfile fotoxx-14.03.1.tar.gz
ac2033f87de2c23941261f7c50160cddf872c110 [recorded]
118e98a8cc0414676b3c4d37b8df407c28a1407c [calculated]
Package ploticus-examples distfile ploticus-2.00/plnode200.tar.gz
34274a03d0c41fae5690633663e3d4114b9d7a6d [recorded]
da39a3ee5e6b4b0d3255bfef95601890afd80709 [calculated]
Problems found locating distfiles:
Package AfterShotPro: missing distfile AfterShotPro-1.1.0.30/AfterShotPro_i386.deb
Package pgraf: missing distfile pgraf-20010131.tar.gz
Package qvplay: missing distfile qvplay-0.95.tar.gz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
Major changes (besides bugfixes):
- opencv_contrib (http://github.com/itseez/opencv_contrib) repository
has been added.
- a subset of Intel IPP (IPPCV) is given to us and our users free
of charge, free of licensing fees, for commercial and non-commerical
use.
- T-API (transparent API) has been introduced, this is transparent GPU
acceleration layer using OpenCL. It does not add any compile-time or
runtime dependency of OpenCL. When OpenCL is available, it's detected
and used, but it can be disabled at compile time or at runtime.
- ~40 OpenCV functions have been accelerated using NEON intrinsics and
because these are mostly basic functions, some higher-level functions
got accelerated as well.
- There is also new OpenCV HAL layer that will simplifies creation
of NEON-optimized code and that should form a base for the open-source
and proprietary OpenCV accelerators.
- The documentation is now in Doxygen: http://docs.opencv.org/master/
- We cleaned up API of many high-level algorithms from features2d, calib3d,
objdetect etc. They now follow the uniform "abstract interface - hidden
implementation" pattern and make extensive use of smart pointers (Ptr<>).
- Greatly improved and extended Python & Java bindings (also, see below on
the Python bindings), newly introduced Matlab bindings
- Improved Android support - now OpenCV Manager is in Java and supports
both 2.4 and 3.0.
- Greatly improved WinRT support, including video capturing and
multi-threading capabilities. Thanks for Microsoft team for this!
- Big thanks to Google who funded several successive GSoC programs and
let OpenCV in. The results of many successful GSoC 2013 and 2014 projects
have been integrated in opencv 3.0 and opencv_contrib (earlier results
are also available in OpenCV 2.4.x). We can name:
- text detection
- many computational photography algorithms (HDR, inpainting, edge-aware
filters, superpixels,...)
- tracking and optical flow algorithms
- new features, including line descriptors, KAZE/AKAZE
- general use optimization (hill climbing, linear programming)
- greatly improved Python support, including Python 3.0 support, many new
tutorials & samples on how to use OpenCV with Python.
- 2d shape matching module and 3d surface matching module
- RGB-D module
- VTK-based 3D visualization module
For full changelog see:
http://code.opencv.org/projects/opencv/wiki/ChangeLog
For 2.4 to 3.0 transition, see the transition guide:
http://docs.opencv.org/master/db/dfa/tutorial_transition_guide.html
Changelog:
2.4.9
April, 2014
Several improvements in OpenCL optimizations (ocl::sum, ocl::countNonZero, ocl::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 2.4.8
55 reported bugs have been closed since 2.4.8
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
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 2.4.6!
54 reported bugs have been fixed since 2.4.6 (issue tracker query).
Changes in 2.4.6.1:
* Hotfix for camera pipeline for Linux (V4L).
Changes in 2.4.6:
* 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 universal 'cv::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)
* Numerous bug-fixes across all the library
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
The tutorial on displaying cv::Mat inside Visual Studio 2012
debugger has been contributed by Wolf Kienzle from Microsoft
Research. See
http://opencv.org/image-debugger-plug-in-for-visual-studio.html
78 pull requests have been merged. Big thanks to everybody who
contributed!
At least 25 bugs have been fixed since 2.4.4 (see
http://code.opencv.org/projects/opencv/issues select closed
issues with target version set to "2.4.5").
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:
>100 reported problems have been resolved since 2.4.3
Oscar Deniz submitted smile detector and sample.
Alexander Smorkalov created a tutorial on cross-compilation
of OpenCV for Linux on ARM platforms.