+ All Categories
Home > Documents > Sobel Edge Detection: Gradient Approximation

Sobel Edge Detection: Gradient Approximation

Date post: 22-Feb-2016
Category:
Upload: petula
View: 76 times
Download: 4 times
Share this document with a friend
Description:
1. 1. 2. 0. -1. 1. 0. 2. 0. 0. -2. 0. 1. -1. -2. 0. -1. -1. Sobel Edge Detection: Gradient Approximation. Note anisotropy of edge finding. Horizontal diff. Vertical diff. Sobel. - PowerPoint PPT Presentation
45
Computer Vision : CISC 4/689 Sobel Edge Detection: Gradient Approximation Horizontal diff. Vertical diff. -1 -2 -1 0 0 0 1 2 1 -1 0 1 -2 0 2 -1 0 1 Note anisotropy of edge finding
Transcript
Page 1: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Sobel Edge Detection: Gradient Approximation

Horizontal diff. Vertical diff.-1-2-1

000

121

-101

-202

-101

Note anisotropy of edge finding

Page 2: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Sobel

• These can then be combined together to find the absolute magnitude of the gradient at each point and the orientation of that gradient. The gradient magnitude is given by:

• an approximate magnitude is computed using: which is much faster to compute. • The angle of orientation of the edge (relative to the pixel grid) giving

rise to the spatial gradient is given by:

In this case, orientation 0 is taken to mean that the direction of maximum contrast from black to white runs from left to right on the image, and other angles are measured anti-clockwise from this.

Page 3: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Derivative of Gaussian

Page 4: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Smoothing and Differentiation

• 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

Page 5: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

The Laplacian of Gaussian

• Another way to detect an extremal first derivative is to look for a zero second derivative– the Laplacian

• Bad idea to apply a Laplacian without smoothing

– smooth with Gaussian, apply Laplacian

– this is the same as filtering with a Laplacian of Gaussian filter

• Now mark the zero points where there is a sufficiently large (first) derivative, and enough contrast

Page 6: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Marr-Hildreth operator

• The Laplacian is linear and rotationally symmetric. Thus, we search for the zero crossings of the image that is first smoothed with a Gaussian mask and then the second derivative is calculated; or we can convolve the image with the Laplacian of the Gaussian, also known as the LoG operator;

• This defines the Marr-Hildreth operator. • One can also get a shape similar to G'' by taking the difference of two

Gaussians having different standard deviations. A ratio of standard deviations of 1:1.6 will give a close approximation to .This is known as the DoG operator (Difference of Gaussians), or the Mexican Hat Operator.

• Still sensitive to noise.

Page 7: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Step edge detection: 2nd-Derivative Operators

• Method: 2nd derivative is 0 for 1st-derivative extrema, so find “zero-crossings”– LaplacianIsotropic (finds edges regardless

of orientation.

Three commonly used discrete approximations to the Laplacian filter. (Note, we have defined the Laplacian using a negative peak because this is more common, however, it is equally valid to use the opposite sign convention.) Source: http://www.cee.hw.ac.uk/hipr/html/log.html

Page 8: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Laplacian of Gaussian

• Matlab: fspecial(‘log’,…)

Below: Discrete approximation to LoG function with Gaussian 1.4

Page 9: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Sobel vs. LoG Edge Detection:Matlab Automatic Thresholds

Sobel LoG

Page 10: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

There are three major issues: 1) The gradient magnitude at different scales is different; which should we choose? 2) The gradient magnitude is large along thick trail (for 3rd fig); how do we identify the significant points? 3) How do we link the relevant points up into curves?

= 1 = 2

Page 11: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

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 arethen two algorithmic issues: at which point is the maximum, and where is thenext one?

Page 12: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Non-maximumsuppression

At q, we have a maximum if the value is larger than those at both p and at r. Interpolate to get these values.

Page 13: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Predictingthe nextedge point

Assume the marked point is an edge point. Then we construct the tangent (along) 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).

Page 14: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

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.

Page 15: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Page 16: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

fine scalehigh Threshold(be strict inAcceptingEdge points)

Page 17: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

coarse scale,high threshold

Page 18: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

coarsescalelowthreshold

Page 19: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Canny Edge Detection

• Steps1. Apply derivative of Gaussian (not Laplacian!)2. Non-maximum suppression

• Thin multi-pixel wide “ridges” down to single pixel3. Thresholding

• Low, high edge-strength thresholds• Accept all edges over low threshold that are connected to edge over

high threshold (in the stage of predicting next edge point)• Matlab: edge(I, ‘canny’)

Page 20: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Edge “Smearing”

from Forsyth & Ponce

0

0

0

0

2

2

2

2

20

20

20

20

2

2

2

2

Sobel filter example: Yields2-pixel wide edge “band”

We want to localize the edge to within 1 pixel

6

8

8

6

6

8

8

6

00

00

00

00

-8

-6

-6

-8

Input

Result

Page 21: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Non-Maximum Suppression: Steps

1. Consider 9-pixel neighborhood around each edge candidate (i.e., already over a threshold)

2. Interpolate edge strengths E at neighborhood boundaries in negative & positive gradient directions from the center pixel

3. If the pixel under consideration is not greater than these two values (i.e. not a maximum), it is suppressed

Interpolating the E value:E(r) = (1 ¡ a)E(x, y) + aE(x + 1, y)

a 1 ¡ a

(x, y) (x + 1, y)r

Page 22: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Example: Non-Maximum Suppression

courtesy of G. Loy

Original image Gradient magnitude Non-maxima suppressed

Page 23: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Edge “Streaking”

• Can predict next pixel in edge orthogonal to gradient to make edge chain– Can also just use 8-connectedness to define chains

• Streaking: Gaps in edge chain due to edge strength dipping below threshold

courtesy of G. Loy

Original image Strong edges

gap

Page 24: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Edge Hysteresis

• Hysteresis: A lag or momentum factor

• Idea: Maintain two thresholds khigh and klow– Use khigh to find strong edges to start edge chain

– Use klow to find weak edges which continue edge chain

• Usual ratio of thresholds is roughly

khigh / klow = 2 or 3

Page 25: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Example: Canny Edge Detection

courtesy of G. Loy

gap is gone

Originalimage

Strongedges

only

Strong +connectedweak edges

Weakedges

Page 26: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Example: Canny Edge Detection

(Matlab automatically set thresholds)

Page 27: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Image Pyramids

• Observation: Fine-grained template matching expensive over a full image – Idea: Represent image at smaller

scales, allowing efficient coarse- to-fine search

• Downsampling: Cut width, height in half at each iteration:

from Forsyth & Ponce

Page 28: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Gaussian Pyramid• Let the base (the finest resolution) of an n-level Gaussian pyramid be defined

as P0 = I. Then the ith level is reduced from the level below it by:

• Upsampling S"(I): Double size of image, interpolate missing pixels

courtesy of Wolfram

Gaussian pyramid

Page 29: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Reconstruction

Page 30: Sobel Edge Detection:  Gradient Approximation

Example from:http://sepwww.stanford.edu/~morgan/texturematch/paper_html/node3.html

Computer Vision : CISC 4/689

decompose

Reconstruct

Page 31: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Laplacian Pyramids

• The tip (the coarsest resolution) of an n-level Laplacian pyramid is the same as the Gaussian pyramid at that level: Ln(I) = Pn(I)

• The ith level is obtained from the level above according to Li(I) = Pi(I) ¡ S"(Pi+1(I))

• Synthesizing the original image: Get I back by summing upsampled Laplacian pyramid levels

Page 32: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Laplacian Pyramid

• The differences of images at successive levels of the Gaussian pyramid define the Laplacian pyramid. To calculate a difference, the image at a higher level in the pyramid must be increased in size by a factor of four prior to subtraction. This computes the pyramid.

• The original image may be reconstructed from the Laplacian pyramid by reversing the previous steps. This interpolates and adds the images at successive levels of the pyramid beginning with the coarsest level.

• Laplacian is largely uncorrelated, and so may be represented pixel by pixel with many fewer bits than Gaussian.

courtesy of Wolfram

Page 33: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Splining

• Build Laplacian pyramids LA and LB for A & B images• Build a Gaussian pyramid GR from selected region R• Form a combined pyramid LS from LA and LB using

nodes of GR as weights:LS(I,j) = GR(I,j)*LA(I,j)+(1-GR(I,j))*LB(I,j)Collapse the LS pyramid to get the final blended image

Page 34: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Splining (Blending)

• Splining two images simply requires: 1) generating a Laplacian pyramid for each image, 2) generating a Gaussian pyramid for the bitmask indicating how the two images should be merged, 3) merging each Laplacian level of the two images using the bitmask from the corresponding Gaussian level, and 4) collapsing the resulting Laplacian pyramid.

• i.e. GS = Gaussian pyramid of bitmask LA = Laplacian pyramid of image "A" LB = Laplacian pyramid of image "B" therefore, "Lout = (GS)LA + (1-GS)LB"

Page 35: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Example images from GTech

Image-1 bit-mask image-2

Direct addition splining bad bit-mask choice

Page 36: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Outline

• Corner detection• RANSAC

Page 37: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Matching with Invariant Features

Darya Frolova, Denis SimakovThe Weizmann Institute of Science

March 2004

Page 38: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Example: Build a Panorama

M. Brown and D. G. Lowe. Recognising Panoramas. ICCV 2003

Page 39: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

How do we build panorama?

• We need to match (align) images

Page 40: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Matching with Features

•Detect feature points in both images

Page 41: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Matching with Features

•Detect feature points in both images

•Find corresponding pairs

Page 42: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Matching with Features

•Detect feature points in both images

•Find corresponding pairs

•Use these pairs to align images

Page 43: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Matching with Features

• Problem 1:– Detect the same point independently in both images

no chance to match!

We need a repeatable detector

Page 44: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

Matching with Features

• Problem 2:– For each point correctly recognize the corresponding one

?

We need a reliable and distinctive descriptor

Page 45: Sobel Edge Detection:  Gradient Approximation

Computer Vision : CISC 4/689

More motivation…

• Feature points are used also for:– Image alignment (homography, fundamental matrix)– 3D reconstruction– Motion tracking– Object recognition– Indexing and database retrieval– Robot navigation– … other


Recommended