What is an Edge? Computer Vision Week 4. How to detect edges? What is an Edge? Edge Detection techniques. Edge Detection techniques.

Similar documents
Convolution. 1D Formula: 2D Formula: Example on the web:

Image Segmentation and Registration

Admin stuff. 4 Image Pyramids. Spatial Domain. Projects. Fourier domain 2/26/2008. Fourier as a change of basis

Edge detection. (Trucco, Chapt 4 AND Jain et al., Chapt 5) -Edges are significant local changes of intensity in an image.

Distinctive Image Features from Scale-Invariant Keypoints

Feature Tracking and Optical Flow

Lectures 6&7: Image Enhancement

Image Gradients. Given a discrete image Á Òµ, consider the smoothed continuous image ܵ defined by

EECS 556 Image Processing W 09. Interpolation. Interpolation techniques B splines

A Study on SURF Algorithm and Real-Time Tracking Objects Using Optical Flow

2.2 Creaseness operator

Probabilistic Latent Semantic Analysis (plsa)

jorge s. marques image processing

Correlation and Convolution Class Notes for CMSC 426, Fall 2005 David Jacobs

Bildverarbeitung und Mustererkennung Image Processing and Pattern Recognition

MVA ENS Cachan. Lecture 2: Logistic regression & intro to MIL Iasonas Kokkinos Iasonas.kokkinos@ecp.fr

Computational Optical Imaging - Optique Numerique. -- Deconvolution --

Sharpening through spatial filtering

Digital Imaging and Multimedia. Filters. Ahmed Elgammal Dept. of Computer Science Rutgers University

Sachin Patel HOD I.T Department PCST, Indore, India. Parth Bhatt I.T Department, PCST, Indore, India. Ankit Shah CSE Department, KITE, Jaipur, India

Linear Filtering Part II

Computational Foundations of Cognitive Science

Face detection is a process of localizing and extracting the face region from the

siftservice.com - Turning a Computer Vision algorithm into a World Wide Web Service

Analecta Vol. 8, No. 2 ISSN

Classification of Fingerprints. Sarat C. Dass Department of Statistics & Probability

DIGITAL IMAGE PROCESSING AND ANALYSIS

Evaluation of Interest Point Detectors

Canny Edge Detection

J. P. Oakley and R. T. Shann. Department of Electrical Engineering University of Manchester Manchester M13 9PL U.K. Abstract

Signal to Noise Instrumental Excel Assignment

Local features and matching. Image classification & object localization

QUALITY TESTING OF WATER PUMP PULLEY USING IMAGE PROCESSING

Segmentation and Automatic Descreening of Scanned Documents

Sampling Theorem Notes. Recall: That a time sampled signal is like taking a snap shot or picture of signal periodically.

Assessment. Presenter: Yupu Zhang, Guoliang Jin, Tuo Wang Computer Vision 2008 Fall

Implementation of Canny Edge Detector of color images on CELL/B.E. Architecture.

521466S Machine Vision Assignment #7 Hough transform

Automatic 3D Reconstruction via Object Detection and 3D Transformable Model Matching CS 269 Class Project Report

Face Recognition in Low-resolution Images by Using Local Zernike Moments

High Quality Image Magnification using Cross-Scale Self-Similarity

Modelling, Extraction and Description of Intrinsic Cues of High Resolution Satellite Images: Independent Component Analysis based approaches

A PHOTOGRAMMETRIC APPRAOCH FOR AUTOMATIC TRAFFIC ASSESSMENT USING CONVENTIONAL CCTV CAMERA

Module II: Multimedia Data Mining

Digital Image Processing

Visualization and Feature Extraction, FLOW Spring School 2016 Prof. Dr. Tino Weinkauf. Flow Visualization. Image-Based Methods (integration-based)

A Comparative Study of SIFT and its Variants

Noise Reduction in Video Images Using Coring on QMF Pyramids by. Arthur J. Kalb

Object Recognition and Template Matching

Blind Deconvolution of Barcodes via Dictionary Analysis and Wiener Filter of Barcode Subsections

Image Filtering & Edge Detection

To determine vertical angular frequency, we need to express vertical viewing angle in terms of and. 2tan. (degree). (1 pt)

An Iterative Image Registration Technique with an Application to Stereo Vision


Introduction to Medical Imaging. Lecture 11: Cone-Beam CT Theory. Introduction. Available cone-beam reconstruction methods: Our discussion:

Redundant Wavelet Transform Based Image Super Resolution

Simultaneous Gamma Correction and Registration in the Frequency Domain

CHAPTER 3: DIGITAL IMAGING IN DIAGNOSTIC RADIOLOGY. 3.1 Basic Concepts of Digital Imaging

Randomized Trees for Real-Time Keypoint Recognition

Automatic 3D Mapping for Infrared Image Analysis

Elasticity Theory Basics

3D Scanner using Line Laser. 1. Introduction. 2. Theory

REAL TIME TRAFFIC LIGHT CONTROL USING IMAGE PROCESSING

Robert Collins CSE598G. More on Mean-shift. R.Collins, CSE, PSU CSE598G Spring 2006

ALGEBRA. sequence, term, nth term, consecutive, rule, relationship, generate, predict, continue increase, decrease finite, infinite

Edge-based Template Matching and Tracking for Perspectively Distorted Planar Objects

Part-Based Recognition

A New Image Edge Detection Method using Quality-based Clustering. Bijay Neupane Zeyar Aung Wei Lee Woon. Technical Report DNA #

Mean-Shift Tracking with Random Sampling

Manifold Learning Examples PCA, LLE and ISOMAP

SURF: Speeded Up Robust Features

Automatic georeferencing of imagery from high-resolution, low-altitude, low-cost aerial platforms

Microsoft Excel 2010 Charts and Graphs

MIFT: A Mirror Reflection Invariant Feature Descriptor

Recognizing Cats and Dogs with Shape and Appearance based Models. Group Member: Chu Wang, Landu Jiang

Applications to Data Smoothing and Image Processing I

Introduction to Matrix Algebra

Railway Expansion Joint Gaps and Hooks Detection Using Morphological Processing, Corner Points and Blobs

Armstrong Atlantic State University Engineering Studies MATLAB Marina Image Processing Primer

2x + y = 3. Since the second equation is precisely the same as the first equation, it is enough to find x and y satisfying the system

Determining the Resolution of Scanned Document Images

Image Interpolation by Pixel Level Data-Dependent Triangulation

The use of computer vision technologies to augment human monitoring of secure computing facilities

Structural Axial, Shear and Bending Moments

Resolution Enhancement of images with Interpolation and DWT-SWT Wavelet Domain Components

IMAGE RECOGNITION FOR CATS AND DOGS

Aliasing, Image Sampling and Reconstruction

Short-time FFT, Multi-taper analysis & Filtering in SPM12

Digital image processing

State of Stress at Point

Filter Comparison. Match #1: Analog vs. Digital Filters

Tutorial 8 Raster Data Analysis

FFT Algorithms. Chapter 6. Contents 6.1

NCSS Statistical Software Principal Components Regression. In ordinary least squares, the regression coefficients are estimated using the formula ( )


Solving Simultaneous Equations and Matrices

CS3220 Lecture Notes: QR factorization and orthogonal transformations

Transcription:

What is an Edge? Computer Vision Week 4 Edge Detection Linear filtering; pyramids, wavelets Interest Operators surface normal discontinuity depth discontinuity surface color discontinuity illumination discontinuity Edges are caused by a variety of factors What is an Edge? How to detect edges? Edge: A place in the image where the brightness jumps Step edge Ramp edge First derivative has extrema at edge locations Second derivative has 0-crossing at edge locations Edge Detection techniques 1. Gradient-based: Find the extrema Apply thresholding to reduce sensitivity to noise Edges are thick and/or broken f x f = f y f f = x f = tan -1 f + y f / x f / y 1 Edge Detection techniques. Laplacian based Noise sensitive Too many edges obtained f f = x f + y 1

Gradient-based techniques Roberts Gradient Operator Approximate gradient by discrete gradient operators: Roberts Prewitt Sobel Frei&Chen original gradient magnitude after thresholding Sobel Gradient Operator Prewitt Gradient Operator original Roberts Sobel Noise Simplest noise model independent stationary additive Gaussian noise the noise value at each pixel is given by an independent draw from the same normal probability distribution Effects of noise Consider a single row or column of the image Where is the edge?

Solution: smooth first Linear Filter Low-pass filter: Removes noise, which has high frequency characteristics Smooths image Blurs edges Amount of smoothing depends upon filter window; which is related with scale High-pass filter Accentuates noise; edges, details in images Where is the edge? Look for peaks in What is the appropriate scale for an image? Scale ~ sigma Scale ~ 1/resolution How many pixels is enough to represent an image? Sampling and the Nyquist rate Aliasing can arise when you sample a continuous signal or image occurs when your sampling rate is not high enough to capture the amount of detail in your image Can give you the wrong signal/image an alias formally, the image contains structure at different scales called frequencies in the Fourier domain the sampling rate must be high enough to capture the highest frequency in the image To avoid aliasing: sampling rate * max frequency in the image said another way: two samples per cycle This minimum sampling rate is called the Nyquist rate The Fourier Transform Represent function on a new basis Think of functions as vectors, with many components We now apply a linear transformation to transform the basis dot product with each basis element ( ) u, v F g( x, y) ( )= g( x, y)e R In the expression, u and v select the basis element, so a function of x and y becomes a function of u and v basis elements have iπ ux+vy the form e ( ) ( ) dxdy iπ ux+vy To get some sense of what basis elements look like, we plot a basis element --- or rather, its real part --- as a function of x,y for some fixed u, v. We get a function that is constant when (ux+vy) is constant. The magnitude of the vector (u, v) gives a frequency, and its direction gives an orientation. The function is a sinusoid with this frequency along the direction, and constant perpendicular to the direction. 3

Here u and v are larger than in the previous slide. And larger still... This is the magnitude transform of the zebra pic This is the phase transform of the zebra pic Sampling in 1D takes a continuous function and replaces it with a vector of values, consisting of the function s values at a set of sample points. We ll assume that these sample points are on a regular grid, and can place one at each integer for convenience. 4

Sampling in D does the same thing, only in D. We ll assume that these sample points are on a regular grid, and can place one at each integer point for convenience. A continuous model for a sampled function We want to be able to approximate integrals sensibly Leads to the delta function model on right Sample D ( f (x, y) )= f (x, y)δ (x i, y j) i= i= = f (x, y) δ (x i, y j) i= i= The Fourier transform of a sampled signal F( Sample D ( f (x, y) ))= F f (x, y) δ(x i, y j) i= i= = F( f (x, y) )**F δ(x i, y j) i= i= = F( u i,v j) i= j= Smoothing as low-pass filtering The message of the FT is that high frequencies lead to trouble with sampling. Solution: suppress high frequencies before sampling multiply the FT of the signal with something that suppresses high frequencies or convolve with a low-pass filter A filter whose FT is a box is bad, because the filter kernel has infinite support Common solution: use a Gaussian multiplying FT by Gaussian is equivalent to convolving image with Gaussian. 5

Sampling without smoothing. Top row shows the images, sampled at every second pixel to get the next; bottom row shows the magnitude spectrum of these images. Sampling with smoothing. Top row shows the images. We get the next image by smoothing the image with a Gaussian with sigma 1.4 pixels, then sampling at every second pixel to get the next; bottom row shows the magnitude spectrum of these images. Level j-1 Level j (base) Image Pyramid Collection of decreasing resolution images arranged in the shape of a pyramid N/*N/ N*N The Gaussian pyramid Smooth with Gaussians, because a Gaussian*Gaussian=another Gaussian Synthesis smooth and sample Analysis take the top image Gaussians are low pass filters, so repetition is redundant Prediction Residual Pyramid predict - + Difference image N/*N/ N*N Approximation pyramid Prediction residual pyramid 6

The Laplacian Pyramid Synthesis preserve difference between upsampled Gaussian pyramid level and Gaussian pyramid level band pass filter - each level represents spatial frequencies (largely) unrepresented at other levels Analysis reconstruct Gaussian pyramid, take top layer D Wavelet Transform Wavelet transform - analysis filter bank for the decomposition of D wavelet transform: Wavelet transform approximation Vertical detail W φ ( j + 1, m, n) hψ ( n) h φ ( n) Columns (along n) h ψ ( m) h φ ( m) h ψ ( m) h φ ( m) W D ψ ( j, m, n) W V ψ ( j, m, n) W H ψ ( j, m, n) W φ ( j, m, n) Horizontal detail Diagonal detail Rows (along m) Back to Edge Detection Gradient operator responding to noise There are three major issues: 1) The gradient magnitude at different scales is different; which should we choose? ) The gradient magnitude is large along thick trail; how do we identify the significant points? 3) How do we link the relevant points up into curves? Increasing noise -> (this is zero mean additive gaussian noise) 7

Smoothing and Differentiation The effects of smoothing Each row shows smoothing with gaussians of different width; each column shows different realisations of an image of gaussian noise. Issue: noise smooth before differentiation two convolutions to smooth, then differentiate? actually, no - we can use a derivative of Gaussian filter because differentiation is convolution, and convolution is associative Derivative of Gaussian -DoG Gaussian derivative of Gaussian 1 pixel 3 pixels 7 pixels The scale of the smoothing filter affects derivative estimates, and also the semantics of the edges recovered. Non-maximum suppression We wish to mark points along the curve where the magnitude is biggest. We can do this by looking for a maximum along a slice normal to the curve (non-maximum suppression). These points should form a curve. There are then two algorithmic issues: at which point is the maximum, and where is the next one? At q, we have a maximum if the value is larger than those at both p and at r. Interpolate to get these values. 8

Predicting the next edge point Assume the marked point is an edge point. Then we construct the tangent to the edge curve (which is normal to the gradient at that point) and use this to predict the next points (here either r or s). Remaining issues Check that maximum value of gradient value is sufficiently large drop-outs? use hysteresis use a high threshold to start edge curves and a low threshold to continue them. fine scale high threshold coarse scale, high threshold coarse scale low threshold 9

The Canny edge detector The Canny edge detector original image (Lena) norm of the gradient The Canny edge detector The Canny edge detector thresholding thinning (non-maximum suppression) Canny Edge Detection Gradient-based edge detector 1. LPF with a Gaussian. Compute the gradient magnitude and orientation using the masks: 1 1 1 1 1 1 1 1 3. Nonmaxima suppression to thin the resulting ridges 4. Apply double thresholding to detect and link edges: Tracking can only begin at a point on a ridge higher than T 1. Tracking then continues in both directions out from that point until the height of the ridge falls below T. Nonmaxima Suppression Canny does edge thinning by nonmaxima suppression: Classify gradient angle into one of 4 sectors: 0: -.5 to.5, 180-.5 to 180+.5 1:.5 to 67.5, 180+.5 to 180+67.5 : 67.5 to 11.5, 180+67.5 to 180+11.5 3: 11.5 to 157.5, 180+11.5 to 180+157.5 Compare center with the neighbors, set to 0 if not greater than both Sector 0 Sector 1 Sector Sector 3 10

Double Thresholding Canny Edge Detection Canny does edge linking by: double thresholding: edge starts after passing T high edge ends when gradien t falls below T low Noisy original Canny Sobel Effect of σ (Gaussian kernel size) Laplacian-based edge detection Discrete approximations to the Laplacian: original Canny with Canny with Drawback: very sensitive to noise The choice of depends on desired behavior large detects large scale edges small detects fine features Laplacian of Gaussian (LoG) Laplacian of Gaussian (LoG) Smooth the image first with a Gaussian, then take Laplacian σ=1.4 Original LoG 0-crossings To find 0-crossings, threshold the image and find neighboring (+) and (-) values. 11

Laplacian of Gaussian (LoG) Effect of σ: sigma=4 contrast=1 LOG zero crossings contrast=4 σ=1.0 σ=.0 σ=3.0 sigma= Line detectors Burns Line Finder 1. Compute the gradient magnitude and direction at each pixel. Do two separate angle quantizations generating two images: (5 is -45 degrees to 45,etc.) 1 3 4 6 7 5 8 3. Find the connected component of each image and compute line length for each component: Each pixel is a member of two components Each pixel votes for its longer component Each component receives a count of pixels that voted for it The components that receive the majority support are selected Finding Corners and Interest Points 1. Harris. HOG: Histogram of Oriented Gradients 3. SIFT: Scale Invariant Feature Transform Corners contain more edges than lines. A corner is easier 1

Edge Detectors Tend to Fail at Corners Finding Corners Intuition: Right at corner, gradient is ill defined. Near corner, gradient has two different values. Consider SSD for a small shift in x, y Substitute Taylor expansion in SSD Taylor expansion of I(x, y) M is the Harris matrix 75 We look at matrix: Sum over a small region, the hypothetical corner C = Harris Matrix I Matrix is symmetric I x x I y Gradient with respect to x, times gradient with respect to y I I x y I y First, consider case where: C = I I x x I y I I x y I y λ1 = 0 0 λ This means all gradients in neighborhood are: (k,0) or (0, c) or (0, 0) (or off-diagonals cancel). What is region like if: 1. λ 1 = 0? EDGE. λ = 0? EDGE 3. λ 1 = 0 and λ = 0? UNIFORM 4. λ 1 > 0 and λ > 0? CORNER 13

General Case: From Linear Algebra, it follows that because C is symmetric: λ C = R 1 0 1 R 0 λ With R a rotation matrix. Harris matrix is also called autocorrelation or nd moment matrix large eigenvalues => interest point 1 large eigenvalue => contour 0 large eigenvalues => uniform region Interest point detection function Harris Shi-Tomasi So every case is like one on last slide. See also [ Triggs ECCV 04 ] stable pos, ori, scale 80 NCC matching plus RANSAC for fundamental matrix Interest points extracted with Harris (~ 500 points) 81 99 inliers 89 outliers [ Zhang, Deriche, Faugeras, Luong 1995, Beardsley, Torr, Zisserman 1996 etc. ] 8 Scale Scale makes a big difference A bar in the big images is a hair on the zebra s nose; in smaller images, a stripe; in the smallest, the animal s nose 14

The Gaussian pyramid Smooth with Gaussians, because a Gaussian*Gaussian=another Gaussian Synthesis smooth and sample Analysis take the top image Gaussians are low pass filters, so repetition is redundant Gaussian pyramid construction filter kernel Repeat Filter Subsample Until minimum resolution reached can specify desired number of levels (e.g., 3-level pyramid) The whole pyramid is only 4/3 the size of the original image! Subsampling with Gaussian pre-filtering Subsampling with Gaussian pre-filtering G 1/8 G 1/4 Gaussian 1/ Filter the image, then subsample Gaussian 1/ G 1/4 Filter the image, then subsample G 1/8 Subsampling without prefiltering 1/ 1/4 (x zoom) 1/8 (4x zoom) The Laplacian Pyramid Synthesis preserve difference between upsampled Gaussian pyramid level and Gaussian pyramid level band pass filter - each level represents spatial frequencies (largely) unrepresented at other levels Analysis reconstruct Gaussian pyramid, take top layer 15

SIFT: Scale Invariant Feature Transform Detector 1. Find Scale-Space Extrema. Keypoint Localization & Filtering Improve keypoints and throw out bad ones Descriptor 3. Orientation Assignment Remove effects of rotation and scale 4. Create descriptor Using histograms of orientations Scale Space Need to find characteristic scale for feature Scale-Space: Continuous function of scale σ Only reasonable kernel is Gaussian: L ( x, y, σ ) = G( x, y, σ )* I( x y) D D, Scale Selection Experimentally, Maxima of Laplacian-of-Gaussian gives best notion of scale: Thus use Laplacian-of-Gaussian (LoG) operator: σ G [Koenderink 1984, Lindeberg 1994] Mikolajczyk 00 Approximate LoG LoG is expensive, so let s approximate it Using the heat-diffusion equation: ( σ ) G( σ ) G G k σ G = σ kσ σ DoG efficiency The smoothed images need to be computed in any case for feature description. We need only to subtract two images. Define Difference-of-Gaussians (DoG): ( k 1) σ G G( kσ ) G( σ ) D ( σ ) ( G( kσ ) G( σ ))* I 16

DoB filter (`Difference of Boxes') n Even faster approximation is using box filters (by integral image) Scale-Space Construction First construct scale-space: increasing σ Bay, ECCV 006 G ( σ )* I ( kσ ) I G * First octave ( k σ ) I G * G ( σ )* I ( kσ ) I G * ( ) I G k σ * Second octave Difference-of-Gaussians Now take differences: Scale-Space Extrema Choose all extrema within 3x3x3 neighborhood. Low cost only several usually checked D k σ ( ) D( kσ ) D( σ ) SIFT Overview Detector 1. Find Scale-Space Extrema. Keypoint Localization & Filtering Improve keypoints and throw out bad ones Descriptor 3. Orientation Assignment Remove effects of rotation and scale 4. Create descriptor Using histograms of orientations Keypoint Localization & Filtering Now we have much fewer points than pixels. However, still lots of points (~1000s) With only pixel-accuracy at best At higher scales, this corresponds to several pixels in base image And this includes many bad points Brown & Lowe 00 17

Keypoint Localization Keypoint Localization The problem: True Extrema The Solution: Take Taylor series expansion: Detected Extrema Sampling x r D T D r r x 1 r D r x T ( x) = D + x + x x Minimize to get true location of extrema: xˆ = r D x 1 D r x Brown & Lowe 00 T r Finding Keypoints Scale, Location Sub-pixel Localization Fit Trivariate quadratic to find sub-pixel extrema Keypoints Eliminating edges Similar to Harris corner detector (a) 33x189 image (b) 83 DOG extrema Keypoint Filtering - Low Contrast Reject points with bad contrast D( xˆ ) is smaller than 0.03 (image values in [0,1]) Keypoint Filtering - Edges Reject points with strong edge response in one direction only Like Harris - using Trace and Determinant of Hessian Point constrained Point detection Point can move along edge Point detection 18

Keypoint Filtering - Edges Keypoint Filtering check if ratio of principal curvatures is below some threshold, r, check: Tr( H ) ( r + 1) < Det( H ) r r=10 Only 0 floating points operations to test each keypoint (c) 79 left after peak value threshold (from 83) (d) 536 left after testing ratio of principle curvatures SIFT Overview Detector 1. Find Scale-Space Extrema. Keypoint Localization & Filtering Improve keypoints and throw out bad ones Descriptor 3. Orientation Assignment Remove effects of rotation and scale 4. Create descriptor Using histograms of orientations Orientation Assignment Now we have set of good points Choose a region around each point Remove effects of scale and rotation Finding Keypoints Orientation Create histogram of local gradient directions computed at selected scale Assign canonical orientation at peak of smoothed histogram Each key specifies stable D coordinates (x, y, scale, orientation) 0 π Orientation Assignment Create gradient histogram (36 bins) σ Weighted by magnitude and Gaussian window ( is 1.5 times that of the scale of a keypoint) 19

Orientation Assignment Any peak within 80% of the highest peak is used to create a keypoint with that orientation ~15% assigned multiplied orientations, but contribute significantly to the stability Finally a parabola is fit to the 3 histogram values closest to each peak to interpolate the peak position for better accuracy SIFT Overview Detector 1. Find Scale-Space Extrema. Keypoint Localization & Filtering Improve keypoints and throw out bad ones Descriptor 3. Orientation Assignment Remove effects of rotation and scale 4. Create descriptor Using histograms of orientations Ideal Descriptors Robust to: Affine transformation Lighting Noise Distinctive Fast to match Not too large Usually L1 or L matching SIFT Descriptor Each point so far has x, y, σ, m, θ Now we need a descriptor for the region Could sample intensities around point, but Sensitive to lighting changes Sensitive to slight errors in x, y, θ Look to biological vision Neurons respond to gradients at certain frequency and orientation But location of gradient can shift slightly! Edelman et al. 1997 SIFT Descriptor 4x4 Gradient window Histogram of 4x4 samples per window in 8 directions Gaussian weighting around center( is 0.5 times that of the scale of a keypoint) 4x4x8 = 18 dimensional feature vector σ Histogram of Oriented Gradients (HOG) Also used as a local interest operator Based on gradients Orientation histograms Image from: Jonas Hurrelmann 0

Tested with RGB LAB Grayscale Gamma Normalization and Compression Square root Log centered diagonal Histogram of gradient orientations -Orientation -Position uncentered cubic-corrected Sobel Weighted by magnitude 1

Pedestrian detection w. HOG Homework II Find edges in an image using Sobel gradient method. Then compare with Canny edge detector result using a library routine for Canny. Implement the Harris corner detector and apply it to an image. Then, compare with a library routine for an interest operator (SIFT, SURF, or KLT)