OpenCV 3.0 Latest news and the Roadmap

Slides:



Advertisements
Similar presentations
Microsoft Confidential. An incubation effort to: Support client -> server communication in native code with a modern C++ API design Support writing Azure-based.
Advertisements

GPU-ACCELERATED VIDEO ENCODING/DECODING CIS 565 Spring 2012 Philip Peng, 2012/03/19.
Tutorial on Matlab and OpenCV Rui Ma TA of CMPT 414 May 14, 2013 Office hours: Fridays 11:00-12:00, CSIL TA Office 1 (ASB 9838)
Introduction to the CUDA Platform
OpenCV Introduction Hang Xiao Oct 26, History  1999 Jan : lanched by Intel, real time machine vision library for UI, optimized code for intel 
Igor Markov Face Detection and Classification on Mobile Devices.
T1.1- Analysis of acceleration opportunities and virtualization requirements in industrial applications Bologna, April 2012 UNIBO.
An Overview of Software-Defined Network Presenter: Xitao Wen.
Computer vision for robotics
OpenCV Stacy O’Malley CS-590 Summer, What is OpenCV? Open source library of functions relating to computer vision. Cross-platform (Linux, OS X,
An Overview of Software-Defined Network
An Overview of Software-Defined Network Presenter: Xitao Wen.
INDEX ∞ Image Processing ∞ OpenCV ∞ Download & Setup ∞ Make Project ∞ Show Result ∞ Q & A Setup OpenCV & Tutorial.
UFCFX5-15-3Mobile Device Development UFCFX Mobile Device Development An Introduction to the Module.
This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit
Using JavaScript for Mobile App Development No Objective C or Java required! July 5th, 2011.
OPENCV TUTORIAL OpenCV Windows 7 Microsoft Visual C++ Express 2010.
MACHINE VISION GROUP Graphics hardware accelerated panorama builder for mobile phones Miguel Bordallo López*, Jari Hannuksela*, Olli Silvén* and Markku.
Platform Upgrades As A Service Raj Nagarajan, Robert Enyedi.
Page 1 Trilinos Software Engineering Technologies and Integration Capability Area Overview Roscoe A. Bartlett Department.
Andrew Bernat, Bill Williams Paradyn / Dyninst Week Madison, Wisconsin April 29-May 1, 2013 New Features in Dyninst
Accada – Open Source EPC Network Prototyping Platform Christian Floerkemeier Christof Roduner SAP October 2006.
Introduction of OpenCV Alireza Shirani Researcher of Medical Image and Signal Processing M. S Electrical Engineering yahoo. com Spring.
@ For more details visit : Opportunities for participation Modular Architecture Trace JIT compiler Interpreter Memory manager.
Copyright © 2008 Siemens Corporate Research – All rights reserved1/12 eXtensible Imaging Platform (Xip) Sylvain Jaume – Sep 2008 Siemens Corporate Research.
Adam Wagner Kevin Forbes. Motivation  Take advantage of GPU architecture for highly parallel data-intensive application  Enhance image segmentation.
GPUs: Overview of Architecture and Programming Options Lee Barford firstname dot lastname at gmail dot com.
Program Studi S-1 Teknik Informatika FMIPA Universitas Padjadjaran
CDVS on mobile GPUs MPEG 112 Warsaw, July Our Challenge CDVS on mobile GPUs  Compute CDVS descriptor from a stream video continuously  Make.
Ben Schaeffer Gehad Shaat Jessie Truong Nathen Upperman Tin Nguyen Portland State University - Winter 2011.
Mobile: Today and Beyond Stuart Parmenter, Director of Mobile
Compatible Hardware and Software SDK’s Software/Hardware Issues.
Visual Odometry David Nister, CVPR 2004
PAPI on Blue Gene L Using network performance counters to layout tasks for improved performance.
OpenCV 3.0 Overview.
/16 Final Project Report By Facializer Team Final Project Report Eagle, Leo, Bessie, Five, Evan Dan, Kyle, Ben, Caleb.
Mobile Computing Lecture#01 Mobile Horizon. Leading Mobile Phone Technologies  iOS  Android  Blackberry  Symbian  Windows Phone  J2ME.
OpenCV C++ Image Processing
11 Brian Van Straalen Portable Performance Discussion August 7, FASTMath SciDAC Institute.
Android. Android An Open Handset Alliance Project A software platform and operating system for mobile devices Based on the Linux kernel Developed by Google.
CSCI 631 – Foundations of Computer Vision March 15, 2016 Ashwini Imran Image Stitching Link: singhashwini.mesinghashwini.me.
Google. Android What is Android ? -Android is Linux Based OS -Designed for use on cell phones, e-readers, tablet PCs. -Android provides easy access to.
Automatic License Plate Recognition for Electronic Payment system Chiu Wing Cheung d.
OpenCV for Android Ke Wang.
CSC391/691 Intro to OpenCV Dr. Rongzhong Li Fall 2016
Machine Learning Developments in ROOT Sergei Gleyzer, Lorenzo Moneta
Architecture of Android
ANDROID AN OPEN HANDSET ALLIANCE PROJECT
OpenSAF Developer Days 2008 OpenSAF Release Management Session 15-07
About Python.
Texas Instruments TDA2x and Vision SDK
Performance Tuning Team Chia-heng Tu June 30, 2009
Cognitive Toolkit (CNTK) Cha Zhang, Principal Researcher Microsoft AI & Research With 150+ contributors.
Processing Framework Sytse van Geldermalsen
Embedded OpenCV Acceleration
Microsoft Build /19/2018 7:53 PM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Harris Gasparakis, Ph.D. Raghunath Rao, Ph.D.
Torch 02/27/2018 Hyeri Kim Good afternoon, everyone. I’m Hyeri. Today, I’m gonna talk about Torch.
NOX is the Most Widely Used OpenFlow Controller
Computer Vision (CSE 490CV, EE400B)
What's New in eCognition 9
The Pitfalls and Guidelines for Mobile ML Benchmarking
Elecbits Electronic shade.
Software for Neutron Imaging Analysis
OCP Software Stack Projects Update
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
PyWBEM Python WBEM Client: Overview #2
What's New in eCognition 9
PRELIMINARY DESIGN REVIEW
Ajit Mathews Corp. VP Software Development ML Software Engineering
Presentation transcript:

OpenCV 3.0 Latest news and the Roadmap Kirill Kornyakov, Itseez ICVS 2013

Agenda Introduction to OpenCV Current state, latest news

Open-source Computer Vision Library 2,500+ algorithms and functions Cross-platform, portable API Real-time performance Liberal BSD license Professionally developed

History Professionally maintained by Itseez Willow Garage NVIDIA 2.4.5 2.2 2.4 2.3 Intel 2.1 1.1 2.0 1.0 Itseez Professionally maintained by Itseez GSoC, corporate contributions Contributors from all around the world

Applications 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)

Sample program #include "opencv2/opencv.hpp" using namespace cv; int main(int argc, char** argv) { Mat img, gray; img = imread(argv[1], 1); imshow("original", img); cvtColor(img, gray, COLOR_BGR2GRAY); GaussianBlur(gray, gray, Size(7, 7), Canny(gray, gray, 0, 50); 1.5); imshow("edges", gray); waitKey(); return 0; }

OpenCV in Apps OpenCV – low-level library, providing you with building blocks for your applications. imgproc, features2d highgui imgproc imgproc, objdetect Image retrieval Pre- processing Feature extraction Segmentation, Object detection Analysis: recognition, pose estimation, reconstruction, motion analysis Decision making ml? calib3d, contrib, video, stitching, videostab, ml

Agenda Introduction to OpenCV Current state, latest news

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.

C vs C++ API: Focus Detector double contrast_measure(Mat& img) { Mat dx, dy; Sobel(img, dx, 1, 0, 3, CV_32F); Sobel(img, dy, 0, 1, 3, CV_32F); magnitude(dx, dy, dx); return sum(dx)[0]; } double calcGradients(const IplImage *src, int aperture_size = 7) { CvSize sz = cvGetSize(src); IplImage* img16_x = cvCreateImage(sz, IPL_DEPTH_16S, 1); IplImage* img16_y = cvCreateImage(sz, IPL_DEPTH_16S, 1); cvSobel(src, img16_x, 1, 0, aperture_size); cvSobel(src, img16_y, 0, 1, aperture_size); IplImage* imgF_x = cvCreateImage(sz, IPL_DEPTH_32F, 1); IplImage* imgF_y = cvCreateImage(sz, IPL_DEPTH_32F, 1); cvScale(img16_x, imgF_x); cvScale(img16_y, imgF_y); IplImage* magnitude = cvCreateImage(sz, IPL_DEPTH_32F, 1); cvCartToPolar(imgF_x, imgF_y, magnitude); double res = cvSum(magnitude).val[0]; cvReleaseImage(&magnitude ); cvReleaseImage(&imgF_x); cvReleaseImage(&imgF_y); cvReleaseImage(&img16_x); cvReleaseImage(&img16_y); return res; }

Web resources opencv.org, docs.opencv.org, answers.opencv.org

Development infrastructure

OpenCV Environment Bindings Library Threading API Operating System Python Java Your application C Library OpenCV cv::parallel_for_ Dependencies: Eigen, IPP, JPEG, PNG, Jasper, multimedia Threading API Concurrency GCD TBB Operating System Windows Linux Mac OSX iOS Android WinRT Hardware GPU x86, x64 ARM MIPS Acceleration API CUDA OpenCL SSE, AVX NEON

Functionality overview Image Processing Transformations Edges, contours Robust features Segmentation Filters Video, Stereo, 3D Calibration Pose estimation Optical Flow Detection and recognition Depth

Modules Algorithmic GPU Infrastructure core, imgproc, calib3d, video, ml, objdetect, features2d photo, stitching, • videostab, superres contrib, legacy, nonfree, flann GPU gpu, ocl Infrastructure highgui, world python, java ts, androidcamera

Major 3.0 updates Lots of new functionality API changes Acceleration

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

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 Experimental or proprietary code. $ cmake –D OPENCV_EXTRA_MODULES_PATH=~/my_extra_modules …

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

Library’s future More functionality Better performance New platforms 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, …

Links Home: opencv.org Documentation: docs.opencv.org Q&A forum: answers.opencv.org Report issues: code.opencv.org Develop: https://github.com/Itseez/opencv

Thank you! kirill.kornyakov@itseez.com