lecture 3: edge detection cs4670/5670: computer vision kavita bala from sandlot sciencesandlot...
TRANSCRIPT
Lecture 3: Edge detection
CS4670/5670: Computer VisionKavita Bala
From Sandlot Science
Announcements
• Find partners on piazza
• PA 1 will be out on Monday
• Quiz on Monday or Wednesday, beginning of class
Why edges?
• Humans are sensitive to edges• Convert a 2D image into a set of curves
– Extracts salient features of the scene, more compact
Origin of Edges
• Edges are caused by a variety of factors
depth discontinuity
surface color discontinuity
illumination discontinuity
surface normal discontinuity
Images as functions…
• Edges look like steep cliffs
Characterizing edges• An edge is a place of rapid change in the
image intensity function
imageintensity function
(along horizontal scanline) first derivative
edges correspond toextrema of derivativeSource: L. Lazebnik
• How can we differentiate a digital image F[x,y]?– Option 1: reconstruct a continuous image, f, then
compute the derivative– Option 2: take discrete derivative (finite difference)
1 -1
How would you implement this as a linear filter?
Image derivatives
-1
1: :
Source: S. Seitz
The gradient points in the direction of most rapid increase in intensity
Image gradient• The gradient of an image:
The edge strength is given by the gradient magnitude:
The gradient direction is given by:
• how does this relate to the direction of the edge?Source: Steve Seitz
Image gradient
Source: L. Lazebnik
Effects of noise
Where is the edge?Source: S. Seitz
Noisy input image
Solution: smooth first
f
h
f * h
Source: S. SeitzTo find edges, look for peaks in
• Differentiation is a convolution• Convolution is associative:• This saves us one operation:
Associative property of convolution
f
Source: S. Seitz
2D edge detection filters
Gaussianderivative of Gaussian (x)
Derivative of Gaussian filter
x-direction y-direction
The Sobel operator• Common approximation of derivative of Gaussian
– A mask (not a convolution kernel)
-1 0 1
-2 0 2
-1 0 1
1 2 1
0 0 0
-1 -2 -1
• The standard defn. of the Sobel operator omits the 1/8 term– doesn’t make a difference for edge detection– the 1/8 term is needed to get the right gradient magnitude
Sobel operator: example
Source: Wikipedia
Questions?
Image Resampling
CS4670: Computer Vision
Image Scaling
This image is too big to fit on the screen. How can we generate a half-sized version?
Source: S. Seitz
Image sub-sampling
Throw away every other row and column to create a 1/2 size image
- called image sub-sampling
1/4
1/16
Source: S. Seitz
Image sub-sampling
1/4 (2x zoom) 1/16 (4x zoom)
Why does this look so crufty?
1/2
Source: S. Seitz
Image sub-sampling
Source: F. Durand
Even worse for synthetic images
Source: L. Zhang
What is aliasing?
• What if we “missed” things between the samples?• Simple example: undersampling a sine wave
– unsurprising result: information is lost– surprising result: indistinguishable from lower frequency– also was always indistinguishable from higher frequencies– aliasing: signals “traveling in disguise” as other frequencies
28
Wagon-wheel effect
(See http://www.michaelbach.de/ot/mot_wagonWheel/index.html)Source: L. Zhang
Aliasing
• 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• To do sampling right, need to understand the structure of
your signal/image• Enter Monsieur Fourier…• To avoid aliasing:
– sampling rate ≥ 2 * max frequency in the image• said another way: ≥ two samples per cycle
– This minimum sampling rate is called the Nyquist rate
Source: L. Zhang
Nyquist limit – 2D example
Good sampling
Bad sampling
Aliasing
• When downsampling by a factor of two– Original image has frequencies that are too high
• How can we fix this?
Gaussian pre-filtering
G 1/4
G 1/8
Gaussian 1/2
• Solution: filter the image, then subsample
Source: S. Seitz
Subsampling with Gaussian pre-filtering
G 1/4 G 1/8Gaussian 1/2
• Solution: filter the image, then subsample
Source: S. Seitz
Compare with...
1/4 (2x zoom) 1/8 (4x zoom)1/2
Source: S. Seitz
Gaussian pre-filtering
• Solution: filter the image, then subsample
blur
F0 H*
subsample blur subsample …F1
F1 H*
F2F0
blur
F0 H*
subsample blur subsample …F1
F1 H*
F2F0
{Gaussian pyramid
Gaussian pyramids [Burt and Adelson, 1983]
• In computer graphics, a mip map [Williams, 1983]• A precursor to wavelet transform
Gaussian Pyramids have all sorts of applications in computer visionSource: S. Seitz
Gaussian pyramids [Burt and Adelson, 1983]
• How much space does a Gaussian pyramid take compared to the original image?
Source: S. Seitz
Gaussian Pyramid
Questions?