edge detection
DESCRIPTION
Edge detection. Edge Detection in Images. Finding the contour of objects in a scene. Edge Detection in Images. What is an object? It is one of the goals of computer vision to identify objects in scenes. Edge Detection in Images. Edges have different sources. What is an Edge. - PowerPoint PPT PresentationTRANSCRIPT
Edge detection
Edge Detection in Images
• Finding the contour of objects in a scene
Edge Detection in Images
• What is an object?
It is one of the goals of computer vision to identify objects in scenes.
Edge Detection in Images
• Edges have different sources.
What is an Edge
• Lets define an edge to be a discontinuity in image intensity function.
• Edge Models– Step Edge– Ramp Edge– Roof Edge– Spike Edge
Detecting Discontinuities
• Discontinuities in signal can be detected by computing the derivative of the signal.
Differentiation and convolution
• Recall
• Now this is linear and shift invariant, so must be the result of a convolution.
• We could approximate this as
(which is obviously a convolution with Kernel
; it’s not a very good way to do things, as we shall see)
xfxf
x
f0
lim x
xfxf
x
f n
1
11
Finite Difference in 2D
yxfyxf
x
yxf ,,lim
,0
yxfyxf
y
yxf ,,lim
,0
x
yxfyxf
x
yxf mnmn
,,, 1
x
yxfyxf
y
yxf mnmn
,,, 1
11
1
1
Discrete Approximation
Definition
Convolution Kernels
Finite differences
11* II x
1
1*II y
I
Frequency Response of Differential Kernel
xfx ufuF
Fourier
Transform
xf ufFFourier
Transform
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
• Issues– this model allows noise
values that could be greater than maximum camera output or less than zero
– for small standard deviations, this isn’t too much of a problem - it’s a fairly good model
– independence may not be justified (e.g. damage to lens)
– may not be stationary (e.g. thermal gradients in the ccd)
Finite differences and noise
• Finite difference filters respond strongly to noise– obvious reason: image
noise results in pixels that look very different from their neighbours
• Generally, the larger the noise the stronger the response
• What is to be done?– intuitively, most pixels in
images look quite a lot like their neighbours
– this is true even at an edge; along the edge they’re similar, across the edge they’re not
– suggests that smoothing the image should help, by forcing pixels different to their neighbours (=noise pixels?) to look more like neighbours
Finite differences responding to noise
Increasing noise ->(this is zero mean additive gaussian noise)
Smoothing reduces noise
• Generally expect pixels to “be like” their neighbours– surfaces turn slowly– relatively few
reflectance changes
• Generally expect noise processes to be independent from pixel to pixel
• Implies that smoothing suppresses noise, for appropriate noise models
• Scale– the parameter in the
symmetric Gaussian– as this parameter goes
up, more pixels are involved in the average
– and the image gets more blurred
– and noise is more effectively suppressed
The effects of smoothing Each row shows smoothingwith gaussians of differentwidth; each column showsdifferent realisations of an image of gaussian noise.
Classical Operators
Prewitt’s Operator
11
11
11
1
1
11
SmoothDifferentiate
101
101
101
111
000
111
111
111
Classical Operators
Sobel’s Operator
11
22
11
1
1
11
SmoothDifferentiate
101
202
101
121
000
121
121
121
Gaussian Filter
2
22
2 2exp
2
1,
yx
yxG
2
22
2 2
11exp
2
1,
kjki
jiH
array 1212 is , where kkjiH
• Sobel Edge Detector
Detecting Edges in Image
Image I
101
202
101
121
000
121
*
*
Idx
d
Idy
d
22
Idy
dI
dx
d
ThresholdEdges
any alternative ?
Quality of an Edge Detector
• Robustness to Noise
• Localization
• Too Many/Too less Responses
Poor robustness to noise Poor localization Too many responses
True Edge
Canny Edge Detector• Criterion 1: Good Detection: The optimal
detector must minimize the probability of false positives as well as false negatives.
• Criterion 2: Good Localization: The edges detected must be as close as possible to the true edges.
• Single Response Constraint: The detector must return one point only for each edge point.
Canny Edge Detector
• Difficult to find closed-form solutions.
Canny Edge Detector
• Convolution with derivative of Gaussian
• Non-maximum Suppression
• Hysteresis Thresholding
Canny Edge Detector• Smooth by Gaussian
• Compute x and y derivatives
• Compute gradient magnitude and orientation
IGS * 2
22
2
2
1
yx
eG
Tyx
T
SSSy
Sx
S
22yx SSS
x
y
S
S1tan
Canny Edge Operator
IGIGS ** T
y
G
x
GG
T
Iy
GI
x
GS
**
Canny Edge Detector
xS
yS
I
Canny Edge Detector
I
22yx SSS
25 ThresholdS
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?
Non-Maximum Suppression
Non-Maximum Suppression
• Suppress the pixels in ‘Gradient Magnitude Image’ which are not local maximum
edgean tonormaldirection thealong
in of neighbors theare and Sx,yy,xy,x
otherwise0,,&
,, if,
, yxSyxS
yxSyxSyxS
yxM yx ,
yx,
yx ,
Non-Maximum Suppression
0
12
3
41420tan41422- :3
41422tan :2
41422tan41420 :1
41420tan41420 :0
.θ.
.θ
.θ.
.θ.-
x
y
S
Sθ tan
Non-Maximum Suppression
22yx SSS M
25ThresholdM
Hysteresis Thresholding
Hysteresis Thresholding
• If the gradient at a pixel is above ‘High’, declare it an ‘edge pixel’
• If the gradient at a pixel is below ‘Low’, declare it a ‘non-edge-pixel’
• If the gradient at a pixel is between ‘Low’ and ‘High’ then declare it an ‘edge pixel’ if and only if it is connected to an ‘edge pixel’ directly or via pixels between ‘Low’ and ‘ High’
Hysteresis Thresholding
M 25ThresholdM
15
35
Low
High
an image its detected edges