edges - micc · •compute))the)intensity)gradientmagnitude)and)di recon:&&&...
TRANSCRIPT
Edges
• Edge detec*on schemes can be grouped in three classes: – Gradient operators: Robert, Sobel, Prewi>, and Laplacian (3x3 and 5x5 masks) – Surface fiHng operators: Hueckel, Hartly and Haralick – Based on Gaussian deriva*ves: Canny
• Typically two stages are needed in edge detec*on 1. Detec*on of short linear edge segments (edgels) using the edge detec*on operators 2. Aggrega*on of edgels into extended edges
Edge detectors
Gradient based methods
• Many edge-‐detec*on operators are based upon the 1st deriva*ve of the intensity.
• Where the biggest change occurs, the deriva*ve has maximum magnitude. Using this informa*on we can search an image for peaks in the intensity gradient. The gradient of an image f (x,y) is:
‒ The edge direc0on is given by: ‒ The edge strength is given by the gradient magnitude:
θ
Δy Δx Δy Δx (x-‐1,y+1) (x,y+1) (x+1,y+1)
(x-‐1,y) (x,y) (x+1,y)
(x-‐1,y-‐1) (x,y-‐1) (x+1,y-‐1)
3x3 Sobel operator Sobel window
Sobel operator
• The Sobel edge operator calculates the gradient of the image intensity at each point, giving the direc*on of the largest possible increase from light to dark and the rate of change in that direc*on.
• Mathema*cally, the operator uses two 3×3 kernels which are convolved with the original image to calculate approxima*ons of the deriva*ves, one for horizontal changes, and one for ver*cal. The Sobel operator represents a rather inaccurate approxima*on of the image gradient:
– it uses intensity values only in a 3×3 region around each image point – it uses only integer values for the coefficients
• But it is s*ll of sufficient quality to be of prac*cal use in many applica*ons.
(a) 2x2 Roberts operator (b) 3x3 Prewi> operator (c) 4x4 Prewi> operator
Other gradient operators
Δy Δx
Δx Δx Δy Δy
Δy Δx
(c)
• The main problem with differen*al edge detec*on schemes is noise. The spikes in the deriva*ve from the noise can mask the real maxima that indicate edges. Smoothing of the image is used to reduce the effects of noise
a) b)
d) c)
Canny edge detector
• The Canny algorithm aims at performing op*mal edge detec*on. It is comprised of several cascade stages:
Original image Norm of the gradient aber noise reduc*on
Thresholding with hysteresis
Thinning (non-‐maximum suppression)
• Noise reduc0on: first deriva*ves are suscep*ble to noise present on raw unprocessed image data. Canny edge detec*on performs convolu*on of the original image with a Gaussian filter to remove noise. The result is a slightly blurred version of the original image.
‒ Consider a single row or column of the image and plot intensity as a func*on of posi*on. If pixels are disturbed with noise and the if deriva*ve of the signal is computed, edges are not any more dis*nguishable.
Noise reduc*on and gradient computa*on
‒ Smoothing the image by using a low pass Gaussian filter h permits to remove noise: edges are clearly evidenced in correspondence of peaks of
‒ According to the deriva*ve theorem of convolu*on one opera*on can be saved:
• Compute the intensity gradient magnitude and direc*on: edge detec*on algorithms are used to find values of the first order deriva*ves in the horizontal and ver*cal direc*ons. Edge gradient and direc*on are calculated: – Large values of Gradient are not always at the loca*on of an edge: there are many
thick edges
Canny Edge Detector 3
Non-Maxima Suppression
• Thin edges by keeping large values of Gradient– not always at the location of an edge– there are many thick edges
12010232101002320100123000112310011212001312100031110000
• Edge thinning (non-‐maximum suppression)
– Simply taking the maximum doesn’t work.
– Edge thinning is performed by determining if the gradient magnitude assumes a local maximum in the gradient direc*on. The basic idea is that if a pixel value is not greater than its neighbor pixels, then the pixel is not the edge and the value of the pixel is set to zero.
Canny Edge Detector 3
Non-Maxima Suppression
• Thin edges by keeping large values of Gradient– not always at the location of an edge– there are many thick edges
12010232101002320100123000112310011212001312100031110000
Canny Edge Detector 4
Non-Maxima Suppression (2)
• Thin the broad ridges in M[i,j] into ridges that are only one pixel wide
• Find local maxima in M[i,j] by suppressing all values along the line of the Gradient that are not peak values of the ridge
12010232
10100232
31001230
00112310
01121200
13121003
31110000
gaps
falseedges
Canny Edge Detector 3
Non-Maxima Suppression
• Thin edges by keeping large values of Gradient– not always at the location of an edge– there are many thick edges
12010232101002320100123000112310011212001312100031110000
Edge thinning
Canny Edge Detector 6
12010232101002320100123000112310011212001312100031110000 local
maxima
removed
dependson condition
Canny Edge Detector 7
02010030101000300000023000000300000212000312000030000000
false edges
• The suppressed magnitude image will contain many false edges caused by noise or fine texture
Canny Edge Detector 5
Gradient Orientation
• Reduce angle of Gradient ș[i,j] to one of the 4 sectors• Check the 3x3 region of each M[i,j]• If the value at the center is not greater than the 2
values along the gradient, then M[i,j] is set to 0
– Reduce angle of Gradient θ [i,j] to one of the 4 sectors: -‐ Check the 3x3 region of each M[i,j] -‐ If the value at the center is not greater than the two values along the gradient, then M[i,j] is set to 0
‒ The suppressed magnitude image will anyway contain false edges caused by noise or fine texture. These should be discarded by thresholding
Canny Edge Detector 10
T2=2 T1=1
02000030000000300000023000000300000202000302000030000000
02010030101000300000023000000300000212000312000030000000
gapsfilled from
T1
• A T2 contour has pixels along the green arrows• Linking: search in a 3x3 of each pixel and connect the
pixel at the center with the one having greater value• Search in the direction of the edge (direction of Gradient)
• Important edges are along con*nuous curves in the image. Edges are detected if the faint sec*on of the edge line is followed and noisy pixels that do not cons*tute a line but have produced large gradients are discarded.
– Edges are traced in the image using a high threshold T2 to start edge curves and a low threshold T1 to con*nue them. • Use of high threshold marks out the edges that are genuine. Star*ng from these, using
the direc*onal informa*on, edges can be traced through the image. For each edge point, the tangent to the edge curve (which is normal to the gradient at that point) is used to predict the next points.
• While tracing an edge, the lower threshold is applied, allowing us to trace faint sec*ons
of edges as long as we find a star*ng point. We obtain a binary image where each pixel is marked as either an edge pixel or a non-‐edge pixel.
Thresholding with hysteresis
• The Canny algorithm contains a number of adjustable parameters, which can affect the
computa*on *me and effec*veness of the algorithm (h>p://matlabserver.cs.rug.nl):
– The size of the Gaussian filter: • smaller filters cause less blurring, and allow detec*on of small, sharp lines • larger filters cause more blurring and are more useful for detec*ng larger,
smoother edges.
– Threshold: • Eliminates noise edges and makes edges smoother • Removes fine detail • the use of two thresholds with hysteresis allows more flexibility than in a single-‐
threshold approach.
Canny with large σ Canny with small σ original
• The choice of σ depends on desired behavior: – large detects coarse scale edges – small detects fine scale features
Effects of σ (Gaussian kernel size)
Effects of thresholding
Coarse scale low threshold
• A too high threshold can miss important informa*on; a too low threshold will falsely iden*fy irrelevant informa*on as important
Coarse scale high threshold
Fine scale high threshold
Lines
What is a line
• Lines can be detected following different approaches: – searching for changes of the intensity gradient (double edges) at every possible
posi*on/orienta*on – using a vo*ng scheme in the line parameter space
• An edge is not a line... a line is a double edge
• In correspondence of lines there is an intensity gradient on one side of the line, followed
immediately by the opposite gradient on the opposite side. Therefore lines exhibit a very high change in intensity gradient. According to this, line detec*on can be based upon local maxima of the 1st deriva*ve of the intensity that gives the rate of change in intensity gradient.
• Assume that the image has been pre-‐smoothed by Gaussian smoothing and a scale-‐space representa*on L(x,y;t) at scale t is obtained and introduce at every image point a local coordinate system (u,v) with the v-direc*on parallel to the gradient direc*on.
• It is therefore required that the first-‐order direc*onal deriva*ve in the v-direc*on Lv has: – the first order direc*onal deriva*ve (i.e. the second order deriva*ve of L(x,y;t) in the
v-direc*on) equal to zero – the second-‐order direc*onal deriva*ve in the v-‐direc*on nega*ve.
Zero-‐crossing of Laplacian line detector
Laplacian of Gaussian Gaussian Deriva*ve of Gaussian
• In prac*ce the image is convolved with the 2D Laplacian of Gaussian:
that can be approximated by compu*ng the first image deriva*ves with first order difference operators as with edges and second order deriva*ves as:
• Lines are then found at zero crossings of the Laplacian of Gaussian:
Hough transform line detector
• A line in the image corresponds to a point in the Hough space.To go from image space to Hough space: given a set of points (x,y), find all (m,b) such that y = mx + b
x
y
m
b
m0
b0
Image space Hough space
• Hough transform vo*ng scheme is the most commonly used solu*on to find lines in images. In this approach, points vote for a set of parameters describing a line or a curve. The more votes for a par*cular set determine the line parameters. Mul*ple lines or curves can be detected in one shot.
• Typically a different parameteriza*on is used: d= xcosθ + ysinθ ‒ d is the perpendicular distance from the line to the origin ‒ θ is the angle between d and the x axis
• The Hough transform algorithm uses an array (accumulator) to detect the existence of a line y = mx + b. The two dimensions would correspond to quan*zed values for d, θ
d
Line Detec*on by Hough Transform
y
x
),( cm
Parameter Space
1 1
1 1
1 1
2
1 1
1 1
1 1),( cmA
Algorithm • Quan*ze Parameter Space • Create Accumulator Array • Set • For each image edge increment: • If lies on the line: • Find local maxima in
),( cm
),( cmA
cmcmA ,0),( ∀=
),( ii yx1),(),( += cmAcmA
),( cm
),( cmA
ii ymxc +−=
A graphical representa*on
• Lines plo>ed at different angles and distances to the origin for three dis*nct points. The intersec*on point is the H[d, θ] maximum and determines the parameters of the line passing through the three points
Image space
θ
Votes
d
Examples and sugges*ons
• How many lines? – Count the peaks in the Hough array – Treat adjacent peaks as a single peak
• Which points belong to each line? – Search for points close to the line – Solve again for line and iterate
.