700 likes | 1.05k Views
OpenCV Training course. By Theerayod Wiangtong. Goals. Develop a universal toolbox for research and development in the field of Computer Vision. Why use OpenCV?. Fast development time, more than 500 algorithms in OpenCV libraries C/C++ based programming Both Windows and Linux supported
E N D
OpenCVTraining course By Theerayod Wiangtong
Goals • Develop a universal toolbox for research and development in the field of Computer Vision
Why use OpenCV? • Fast development time, more than 500 algorithms in OpenCV libraries • C/C++ based programming • Both Windows and Linux supported • Open and free, BSD license • Loads of developers using OpenCV • Loads of information and documents • Etc
History of OpenCV • Originally developed by Intel, currently maintained by Willow Garage
OpenCV - Features Table Courtesy Learning OpenCV: Computer Vision with the OpenCV Library Cross-platform and extremely portable Free! for both research and commercial use Targeted for real-time applications
OpenCV – Architecture & Modules • CvAux • Area for experimental algorithms: e.g. HMM, Stereo vision, 3D tracking, Bg/fg segmentation, camera calibration, Shape matching, Gesture recognition, ..
Examples of Using OpenCV functions • Click here
OpenCV Functionality • Basic structures and operations • Image Analysis • Structural Analysis • Object Recognition • Motion Analysis and Object Tracking • 3D Reconstruction (more than 500 algorithms!!)
Image Thresholding • Fixed threshold; • Adaptive threshold;
Statistics • min, max, mean value, standard deviation over the image • Multidimensional histograms • Norms C, L1, L2
Multidimensional Histograms • Histogram operations : calculation, normalization, comparison, back project
Convolution in image • The source pixel and its surrounding pixels are all mathematically merged to produce a single destination pixel. The matrix slides across the surface of the source image, producing pixels for the destination image http://beej.us/blog/data/convolution-image-processing/
Image Pyramids • Gaussian and Laplacian
Morphological Operations • Two basic morphology operations using structuring element: • erosion • dilation
Distance Transform • Calculate the distance for all non-feature points to the closest feature point • Two-pass algorithm, 3x3 and 5x5 masks, various metrics predefined
Flood Filling • grayscale image, floating range • grayscale image, fixed range
Feature Detection • Fixed filters (Sobel operator, Canny operator, Laplacian, Scharr filter) • Hough transform (find lines and circles) http://www.stevens-tech.edu/wireless/klin/EdgeDetection/EdgeDetectionInfo.htm
Edge detection operators This means: pixel(i,j) = 2*pixel(i,j) - pixel(i,j+1) - pixel(i+1,j). • Simple • Cross Template 1: Template 2: pixel(i,j) = maximum(template 1, template 2)
Edge detection operators • Prewitt • Sobel X-axis Template: Y-axis Template: pixel(i,j) = sqrt((x-axis template)^2 + (y-axis template)^2)
Canny Edge Detector http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/canny_detector/canny_detector.html
Contour Retrieving • The contour representation: • Chain code (Freeman code) • Polygonal representation Initial Point Chain code for the curve: 34445670007654443 Contour representation
Hierarchical representation of contours Image Boundary (W1) (W2) (W3) (B2) (B3) (B4) (W5) (W6)
Contours Examples Source Picture (300x600 = 180000 pts total) Retrieved Contours (<1800 pts total) After Approximation (<180 pts total) And it is rather fast: ~70 FPS for 640x480 on complex scenes
Contour Processing • Approximation: • RLE algorithm (chain code) • Teh-Chin approximation (polygonal) • Douglas-Peucker approximation (polygonal); • Contour moments (central and normalized up to order 3) • Matching of contours
Contours matching • Matching based on hierarchical representation of contours
Object Recognition: HMM • One person – one HMM • Stage 1 – Train every HMM • Stage 2 – Recognition Pi - probability Choose max(Pi) 1 … n i
Motion Analysis and Object Tracking • Background subtraction • Motion templates • Optical flow • Active contours • Estimators
Background Subtraction • Background: any static or periodically moving parts of a scene that remain static or periodic over the period of interest. How about waving trees, light on/off..?!?
Background statistics functions • Average • Standard deviation • Connect component
Motion Templates • Object silhouette • Motion history images • Motion history gradients • Motion segmentation algorithm MHG silhouette MHI
Motion Templates Example • Motion templates allow to retrieve the dynamic characteristics of the moving object
Objecttracking • Mean-shift • Choose a search window (width and location) • Compute the mean of the data in the search window • Center the search window at the new mean location • Repeat until convergence • Cam-shift: Continuously Adaptive Mean SHIFT
Region of interest Mean shift Center of mass Mean Shift vector Slide by Y. Ukrainitz & B. Sarel
Region of interest Mean shift Center of mass Mean Shift vector Slide by Y. Ukrainitz & B. Sarel
Region of interest Mean shift Center of mass Mean Shift vector Slide by Y. Ukrainitz & B. Sarel
Region of interest Mean shift Center of mass Mean Shift vector Slide by Y. Ukrainitz & B. Sarel
Region of interest Mean shift Center of mass Mean Shift vector Slide by Y. Ukrainitz & B. Sarel
Region of interest Mean shift Center of mass Mean Shift vector Slide by Y. Ukrainitz & B. Sarel
Region of interest Mean shift Center of mass Slide by Y. Ukrainitz & B. Sarel
Optical Flow Velocity vectors Objecttracking • Optical flow, LK • Particle filter Optical flow is the relation of the motion field. It is a 2D projection of the physical movement of points relative to the observer
OpenCV shape classification capabilities • Contour approximation • Moments (image&contour) • Convexity analysis • Pair-wise geometrical histogram • Fitting functions (line, ellipse)
Using contours and geometry to classify shapes • Given the contour classify the geometrical figure shape (triangle, circle, etc)