Lecture 4 Chapter 5.6 5.8, 10.3.2 10.3.3 - PowerPoint PPT Presentation

1 / 26
About This Presentation
Title:

Lecture 4 Chapter 5.6 5.8, 10.3.2 10.3.3

Description:

Gradients have magnitude and orientation. Vertical edges respond strongly to the x component ... Detect initial candidates by thresholding the gradient magnitude ... – PowerPoint PPT presentation

Number of Views:52
Avg rating:3.0/5.0
Slides: 27
Provided by: daf93
Category:

less

Transcript and Presenter's Notes

Title: Lecture 4 Chapter 5.6 5.8, 10.3.2 10.3.3


1
Lecture 4 Chapter 5.6 - 5.8, 10.3.2 10.3.3
Edge detection
2
Image edges
  • Points of sharp change in an image are
    interesting
  • changes in reflectance
  • changes in object
  • changes in illumination
  • noise
  • Sometimes called edge points or edge pixels
  • We want to find the edges generated by scene
    elements and not by noise

3
Edge detection
  • Convert a 2D image into a set of curves
  • Extracts salient features of the scene
  • More compact than pixels

Computer Vision Linear Filters and Edge
Detection Slides by D.A. Forsyth, C.F. Olson,
S.M. Seitz, L.G. Shapiro
3
4
Origin of edges
surface normal discontinuity
depth discontinuity
surface color discontinuity
illumination discontinuity
  • Edges are caused by a variety of factors

4
Computer Vision Linear Filters and Edge
Detection Slides by D.A. Forsyth, C.F. Olson,
S.M. Seitz, L.G. Shapiro
5
Edge detection
How can you tell whether a pixel is on an edge?
5
Computer Vision Linear Filters and Edge
Detection Slides by D.A. Forsyth, C.F. Olson,
S.M. Seitz, L.G. Shapiro
6
Edge detection
  • Basic idea look for a neighborhood with lots of
    change

81 82 26 24 82 33 25 25 81 82 26
24
  • Questions
  • What is the best neighborhood size?
  • How should change be detected?

7
Finding edges
  • General strategy
  • Determine image gradients after smoothing
  • (gradients are directional derivatives computed
    using finite differences)
  • Mark points where the gradient magnitude is large
    with respect to neighboring points
  • Ideally this yields curves of edge points.

8
Image gradients
  • We use the image gradient to determine whether a
    pixel is an edge.
  • Two components gx, gy
  • Both components use finite differencing to
    approximate derivatives
  • Gradients have magnitude and orientation
  • Vertical edges respond strongly to the x
    component
  • Horizontal edges respond strongly to the y
    component
  • Diagonal edges will respond less strongly, but to
    both components
  • Overall magnitude should be the same

9
Sobel operator
  • The Sobel operator is a simple example that is
    common.

-1 0 1
1 2 1 Sx -2 0 2
Sy 0 0 0 -1 0 1
-1 -2 -1
  • On a pixel of the image I
  • let gx be the response to Sx
  • let gy be the response to Sy

Then the gradient is ?I gx gy
T
g (gx gy ) is the
gradient magnitude. ? atan2(gy,gx)
is the gradient direction.
2
2
1/2
10
Smoothing and differentiation
  • Issue noise
  • Need to smooth image before determining image
    gradients
  • Should we perform two convolutions (smooth, then
    differentiate)?
  • Not necessarily we can use a derivative of
    Gaussian filter
  • Differentiation is convolution and convolution is
    associative
  • D (G I) (D G) I What are D, G, and I?

Gaussian
Gaussian derivative in x
Plot of Gaussian derivative
11
Smoothing and differentiation
  • Shape of Gaussian derivative
  • Light on one side (positive values)
  • Dark on other side (negative values)
  • Values fall off from horizontal center line
  • After initial peaks, values fall off from
    vertical center line

Gaussian derivative in x
Plot of Gaussian derivative
12
Smoothing and differentiation
  • Important implementation trick we dont need to
    convolve by a 2D kernel
  • A 2D Gaussian function is separable
  • Gs(x, y) Gs(x) Gs(y)
  • This means we can convolve the image with two 1D
    functions (rather than one 2D function)
  • This results in considerable savings for an n x n
    image and k x k kernel
  • 1 2D kernel approximately n2k2 multiplications
    and additions
  • 2 1D kernels approximately 2n2k
  • The gradient operator is convolved with the
    appropriate 1D kernel or applied in succession

13
Gradient magnitudes after smoothing
Original
Sigma 1
Sigma 5
As the scale (sigma) increases, finer features
are lost, but diffuse edges are gained. Note
that the gradient magnitude encompasses
horizontal, vertical, and diagonal edges.
14
Gradient magnitudes after smoothing
Original
Sigma 1
Sigma 5
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 how do we identify the
significant points? 3) How do we link the
points up into curves?
15
We wish to mark points along the curve where the
gradient magnitude is largest. We can do this by
looking for a maximum along a slice along the
gradient direction. These points should form a
curve. There are two algorithmic issues at
which point is the maximum, and where is the next
one along the curve?
16
Non-maximum suppression
At q, we have a maximum if the value is larger
than those at both p and at r. Interpolate to get
these values.
17
Non-maxima suppression
  • At q, the gradient Gq is a vector perpendicular
    to the edge direction
  • The locations p and r are one pixel in the
    direction of the gradient and the opposite
    direction.
  • One pixel in the gradient direction is g
    Gx/Gmag, Gy/Gmag
  • Recall that Gmag is the length of the gradient
    vector Gx, Gy
  • r q g, p q - g

18
Non-maxima suppression
  • At p and r, the gradient magnitude should be
    interpolated from the surrounding four pixels.
  • If the gradient magnitude at q is larger than the
    interpolated value at p and r, then q is marked
    as an edge

19
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).
20
Remaining issues
  • Must check that the gradient magnitude is
    sufficiently large.
  • A common problem is that at some points along the
    curve the gradient magnitude will drop below the
    threshold, but not at others.
  • Use hysteresis a high threshold to start edge
    curves and a lower threshold to continue them.
  • Performance at corners is poor.

21
Canny edge detector
  • The Canny edge detector (1986) is still used most
    often in practice. It is essentially what we
    have discussed
  • Smooth and differentiate the image using
    derivative of Gaussian filters in x and y
  • Detect initial candidates by thresholding the
    gradient magnitude
  • Apply non-maxima suppression at the candidates
  • Aggregate edge pixels into contours by following
    edges perpendicular to the gradient
  • When aggregating, allow contour gradient
    magnitude to fall below initial threshold, but
    must remain above lower threshold
  • Note that this detector (and others) is sensitive
    to the parameters used (sigma, thresholds)

22
Zero-crossing detectors
Edge detection using the zero-crossing of the 2nd
derivative is historically important. Perf
ormance at corners is poor, but zero-crossings
always form closed contours.
step edge
smoothed
1st derivative
zero crossing
2nd derivative
23
original image
24
fine scale (sigma1), medium threshold, no
hysteresis
Much detail (and noise) that disappears at
coarser scales
25
coarse scale (sigma4), high threshold, no
hysteresis
Curves are often broken, not closed contours
26
coarse scale (sigma4), low threshold, no
hysteresis
Additional edges found are questionable.
Write a Comment
User Comments (0)
About PowerShow.com