640 likes | 733 Views
Lecture 07 Roger S. Gaborski. Introduction to Computer Vision. Roger S. Gaborski. 1. Simple First Derivative Approximation. Difference . x. =. Smoothing. Rotate Filter. Sensitive to edges at different orientations. Sobel Filter. Consider unequal weights for smoothing operation. = Sy.
E N D
Lecture 07 Roger S. Gaborski Introduction to Computer Vision Roger S. GaborskiRoger S. Gaborski Roger S. Gaborski 1
Simple First Derivative Approximation Difference x = Smoothing Roger S. GaborskiRoger S. Gaborski
Rotate Filter Sensitive to edges at different orientations Roger S. GaborskiRoger S. Gaborski
Sobel Filter • Consider unequal weights for smoothing operation = Sy x = Roger S. GaborskiRoger S. Gaborski
Sobel Filter • Consider unequal weights for smoothing operation = Sx x = Roger S. GaborskiRoger S. Gaborski
build1.jpg Roger S. GaborskiRoger S. Gaborski
Edge image Roger S. GaborskiRoger S. Gaborski
~ Operator Roger S. GaborskiRoger S. Gaborski
Is there a better way to remove noise than the simple Sobel approach? Roger S. GaborskiRoger S. Gaborski
Canny • Image is smoothed with 2D Gaussian Function • Canny uses two thresholds • One threshold detects strong edges • Second threshold detects weak edges connected to strong edges Roger S. GaborskiRoger S. Gaborski
RECALL: 2D Gaussian Distribution • The two-dimensional Gaussian distribution is defined by: • From this distribution, can generate smoothing masks whose width depends upon the standard deviation, s: Roger S. GaborskiRoger S. Gaborski
Sigma Determines Spread of Filter Variance, s2 = .25 Variance, s2 = 4.0 Roger S. GaborskiRoger S. Gaborski
i2 + j2 i2 + j2 W(i,j) = exp (- ) W(i,j) = k * exp (- ) 2 s2 2 s2 k Creating Gaussian Kernels • The mask weights are evaluated from the Gaussian distribution: • This can be rewritten as: Roger S. GaborskiRoger S. Gaborski
j -3 -2 -1 0 1 2 3 -3 -2 -1 i 0 1 2 3 Example 2 • Choose s = 2. and n = 7, then: Roger S. GaborskiRoger S. Gaborski
7x7 Gaussian Filter Roger S. GaborskiRoger S. Gaborski
Building1 gray level image Roger S. GaborskiRoger S. Gaborski
31x31Gaussian, sigma = 3 Roger S. GaborskiRoger S. Gaborski
63x63 Gaussian, sigma = 10 Roger S. GaborskiRoger S. Gaborski
Canny Edge Detector Roger S. GaborskiRoger S. Gaborski
Implement Canny usingMATLAB edge Function EDGE Find edges in intensity image. EDGE takes an intensity or a binary image I as its input, and returns a binary image BW of the same size as I, with 1's where the function finds edges in I and 0's elsewhere. EDGE supports six different edge-finding methods: The Sobel method finds edges using the Sobel approximation to the derivative. The Prewitt method finds edges using the Prewitt approximation to the derivative. The Roberts method finds edges using the Roberts approximation to the derivative. The Laplacian of Gaussian method finds edges by looking for zero crossings after filtering I with a Laplacian of Gaussian filter. The zero-cross method finds edges by looking for zero crossings after filtering I with a filter you specify. The Canny method finds edges by looking for local maxima of the gradient of I. The gradient is calculated using the derivative of a Gaussian filter. The method uses two thresholds, to detect strong and weak edges, and includes the weak edges in the output only if they are connected to strong edges. This method is therefore less likely than the others to be "fooled" by noise, and more likely to detect true weak edges. Roger S. GaborskiRoger S. Gaborski
[g,t]=edge(im,'canny',[ ],.5) [ ] : Edge function determines the two thresholds CHANGING SIGMA OF GAUSSIAN, in this example = .5 Roger S. GaborskiRoger S. Gaborski
[g,t]=edge(im,'canny',[ ],1) CHANGING SIGMA OF GAUSSIAN Roger S. GaborskiRoger S. Gaborski
[g,t]=edge(im,'canny',[ ],2) CHANGING SIGMA OF GAUSSIAN Roger S. GaborskiRoger S. Gaborski
[g,t]=edge(im,'canny',[ ],3) CHANGING SIGMA OF GAUSSIAN Roger S. GaborskiRoger S. Gaborski
[g,t]=edge(im,'canny',[ ],5) CHANGING SIGMA OF GAUSSIAN Roger S. GaborskiRoger S. Gaborski
Second Derivative Edge Detection Methods • Second derivative is noisy • First smooth the image, then apply second derivative • Consider • Effect of smoothing filter. • Gaussian: Roger S. GaborskiRoger S. Gaborski
RECALL: Second Derivative Approximation • Discrete version of 2nd Partial Derivation of f(x,y) in x direction is found by taking the difference of Eq1 and Eq2: • 2 f(x,y) / x2 = Eq1-Eq2 = 2f(x,y)-f(x-1,y)-f(x+1,y) In y direction: • 2 f(x,y) / y2 = Eq3-Eq4 = 2f(x,y)-f(x,y-1)-f(x,y+1) Roger S. GaborskiRoger S. Gaborski
Derivative Approximation for Laplacian Roger S. GaborskiRoger S. Gaborski
Laplacian • Independent of edge orientation • Combine 2 f(x,y)/ x2 and 2 f(x,y)/ y2 =4 f(x,y) - f(x-1,y) – f(x+1,y) – f(x,y-1) – f(x,y+1) Roger S. GaborskiRoger S. Gaborski
Laplacian of the Gaussian is a circularly symmetric operator. Second derivative is linear operation Therefore: convolving an image with 2 G(x,y) is the same as first convolving first with smoothing filter (Gaussian) then computing Laplacian of result. Edge are location of zero crossings LoG Roger S. GaborskiRoger S. Gaborski
LoG Also called the Mexican hat operator. Roger S. GaborskiRoger S. Gaborski
s2 Controls of the Size of the Filter s2 = 0.5 s2 = 2.0 Roger S. GaborskiRoger S. Gaborski
Human Visual System Receptive Field Approximation 17 x 17 5x5 Roger S. GaborskiRoger S. Gaborski
LoG (7x7, sigma = 2) Roger S. GaborskiRoger S. Gaborski
LoG (15x15, sigma = 4) Roger S. GaborskiRoger S. Gaborski
Summarizing: Laplacian of Gaussian (LoG) • Gaussian function: h(r) = -exp(-r2/22) • Applying the Gaussian has a smoothing or blurring effect • Blurring depends on sigma • THEN Laplacian of Gaussian (Second Derivative) Roger S. GaborskiRoger S. Gaborski
MATLAB edge Function EDGE Find edges in intensity image. EDGE takes an intensity or a binary image I as its input, and returns a binary image BW of the same size as I, with 1's where the function finds edges in I and 0's elsewhere. EDGE supports six different edge-finding methods: The Sobel method finds edges using the Sobel approximation to the derivative. The Prewitt method finds edges using the Prewitt approximation to the derivative. The Roberts method finds edges using the Roberts approximation to the derivative. The Laplacian of Gaussian method finds edges by looking for zero crossings after filtering I with a Laplacian of Gaussian filter. The zero-cross method finds edges by looking for zero crossings after filtering I with a filter you specify. The Canny method finds edges by looking for local maxima of the gradient of I. The gradient is calculated using the derivative of a Gaussian filter. The method uses two thresholds, to detect strong and weak edges, and includes the weak edges in the output only if they are connected to strong edges. This method is therefore less likely than the others to be "fooled" by noise, and more likely to detect true weak edges. Roger S. GaborskiRoger S. Gaborski
Implementation: Laplacian of Gaussian (LoG) • Syntax: [g] = edge(f, ‘log’, T, sigma); Ignores edges that are not stronger than T If T not provided, MATLAB automatically chooses T Roger S. GaborskiRoger S. Gaborski
Building What’s important?? Roger S. GaborskiRoger S. Gaborski
[g,t]=edge(im,'log',[ ],1);sigma = 1 Roger S. GaborskiRoger S. Gaborski
[g,t]=edge(im,'log',[ ],2); Roger S. GaborskiRoger S. Gaborski
[g,t]=edge(im,'log',[ ],3) Roger S. GaborskiRoger S. Gaborski
Exploring the LoG Parameter Space [g, t] = edge(f, 'log',[],2); Default threshold, t= .918, sigma = 2 WHAT IF WE CHANGE SIGMA?? Roger S. GaborskiRoger S. Gaborski
t= .918 Sigma = 1 Sigma = 3 (more smoothing) Roger S. GaborskiRoger S. Gaborski
t = .500 Sigma = 1 Sigma = 3 Roger S. GaborskiRoger S. Gaborski
t = 1.500 Sigma = 1.0 Sigma = 3.0 Roger S. GaborskiRoger S. Gaborski
DoG • Difference of Gaussians is an approximation to Laplacian of Gaussian Roger S. GaborskiRoger S. Gaborski
LoG St dev = 2 Canny, Std dev = 1 Roger S. GaborskiRoger S. Gaborski
The fern image [g,t]=edge(fernGray,'canny',[ ],2); The structure of the image affects the performance of edge detection Roger S. GaborskiRoger S. Gaborski