5. • Street View Panorama (Google, other projects)
• Vision system of the PR2 robot (Willow Garage)
• Robots for Mars exploration (NASA)
• Quality control of the production of coins (China)
Applications
9. Do you know that OpenCV
• Uses Git ‘master’ branch for 3.0 preparation. Use ‘2.4’,
if you don’t want to be pre-alpha tester.
• Will drop C API support soon. C++ is much better.
• Maintains binary compatibility for minor releases.
And we will likely adopt semantic versioning.
Given a version MAJOR.MINOR.PATCH:
– MAJOR – incompatible API changes
– MINOR – new functionality, that is backwards-compatible
– PATCH – backwards-compatible bug fixes.
• Features mature infrastructure for regression,
accuracy and performance testing.
• Needs you support.
13. Your application
Dependencies:
Eigen, IPP, JPEG, PNG,
Jasper, multimedia
TBB
OpenCV Environment
x86, x64 ARMGPU
Windows Linux Mac OSX
MIPS
CUDA OpenCL SSE, AVX
AndroidiOS WinRT
NEON
GCDConcurrency
Python Java
C
cv::parallel_for_
OpenCV
Acceleration
API
Hardware
Operating
System
Threading
API
Bindings
Library
17. OpenCV Roadmap
• Closing 2.4 series
– 2.4.7 in Oct
– 2.4.8 in Feb (the last maintenance release)
• Starting 3.0 series
– 3.0-alpha in Oct
– 3.0-beta in Dec
– 3.0 final in Feb
18. General
1. Alex Leontiev, Generic numerical optimization module
2. Antonella Cascitelli, Long-term optical tracking API in OpenCV
3. Lluís Gómez i Bigordà, Implementation of Neumann & Matas algorithm for
scene text detection and recognition
4. Digvijay Singh, Fast and Robust 1D and 2D Barcode Detection and
Rectification
5. Juan Manuel Perez Rua, Implementation and Validation of the Shape
Context Descriptor
6. Daniel Angelov, Line Segment Detection
Bindings
1. Hilton Bristow, MATLAB Code Generator for OpenCV
2. Oli Wilkie, OpenCV for Android: Augmented Reality Sample
3. Abid Rahman, Python Tutorials
19. 3D
1. Di YANG, SfM integration: PTAM implementation project
2. Ozan Tonkal, Visualizer for SfM
3. Gurpinder Singh Sandhu, Hand Tracking with Kinect
Computational Photography
1. Fedor Morozov, High Dynamic Range imaging
2. Rahul Verma, Implementing Exemplar-Based (Patch Propagation)
Image Inpainting in OpenCV
3. Takahito Aoto, Photometric calibration for imaging devices
21. API changes in 3.0
Migration should be smooth!
• Mostly cleanings
– Refined C++ API
– Use cv::Algorithm everywhere
• API changes
– C API will be marked as deprecated
– Old Python API will be deprecated
– Monstrous modules will be split into micromodules
– Extra modules
22. Extra modules
Possibility to add new modules
without putting them into the OpenCV tree:
opencv/
modules/
core/
include/, doc/, src/, test/, …
CMakeLists.txt
imgproc
…
my_extra_modules/
sfm/
include/, doc/, src/, test/, …
CMakeLists.txt
…
$ cmake –D OPENCV_EXTRA_MODULES_PATH=~/my_extra_modules …
Experimental or
proprietary code.
23. Acceleration in 3.0
• Sufficiently improved CUDA and OpenCL modules
– Mobile CUDA support
– Universal OpenCL binaries (CPU, GPU)
• Hardware Abstraction Layer (HAL)
– IPP, FastCV-like low-level API to accelerate
OpenCV on different HW
• Open-source NEON optimizations
– iOS, Android, Embedded, but not yet confirmed
24. Library’s future
• More functionality
– Flat architecture, modules with single responsibility
• Better performance
– HW vendors are primary sponsors
• New platforms
– WinRT, QNX (BlackBerry)
• New bindings
– C# (official support), JavaScript, Haskell, D, …