Edge detection
Dec 19, 2015
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