canny edge and line detection - scientific computing and...

35
Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig with some slides from Tsai Sing Lee with some slides from Tsai Sing Lee, CMU and from J. Canny’s Papers

Upload: vutuong

Post on 17-Apr-2018

231 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

Canny Edge and Line Detection

CS/BIOEN 6640, Fall 2010Guido Gerig

with some slides from Tsai Sing Leewith some slides from Tsai Sing Lee, CMU and from J. Canny’s Papers

Page 2: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig
Page 3: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig
Page 4: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig
Page 5: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig
Page 6: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig
Page 7: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

“Optimal Operator” for Noisy Step p p y pEdge: SNR*LOC

Page 8: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig
Page 9: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

OptimizationOptimization

∑ Λ∑ Λ r

∑: SNR

Λ: Localization (how close to true position)

X max: distance between adjacent maxima (fraction of operator width)X_max: distance between adjacent maxima (fraction of operator width)

r: multiple response performance

Page 10: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

Optimal OperatorsOptimal Operators

∑ Λ r

X_max_

Page 11: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

Optimal Operator versus First D i i f G iDerivative of Gaussian

Page 12: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

“Optimal Operator” for Noisy Step p p y pEdge: SNR*LOC*MULT

Page 13: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

2D Edge Filter: Output at different scales

1st order Gaussian Derivatives

Page 14: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

Response at different scalesResponse at different scales

Page 15: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

Non-Maximum SuppressionNon Maximum Suppression

Detect local maxima and suppress all other signals.

Page 16: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

What about 2D?What about 2D?

At every position in the edge-

original edge orientation

edgeAt every position in the edgemagnitude output, there is a coordinate system with normal and tangent.

edge positions coded by edge

it dmagnitude

Page 17: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

Non-Maximum Suppression

• Canny: Interpolate Gradient along

Non Maximum Suppression

Canny: Interpolate Gradient along gradients (plus and minus a certain distance) and check if center is larger than neighbors.

• Simplified: Test for each Gradient BMagnitude pixel if neighbors along

gradient direction (closest neighbors) are smaller than center: Mark C as

B

are smaller than center: Mark C as maximum if A<C and B<C C

A

Page 18: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig
Page 19: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig
Page 20: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig
Page 21: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig
Page 22: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

ResultsResults

Page 23: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig
Page 24: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig
Page 25: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

Canny: Hysteresis ThresholdingCanny: Hysteresis Thresholding

• Thresholding/binarization of edge map:Thresholding/binarization of edge map:– Noise and image structures have different

structurestructure– Simple thresholding: If too low, too many

structures appear, if too high, contours arestructures appear, if too high, contours are broken into pieces

– Idea: Hysteresis: Upper and lower threshold, y pp ,keep all connected edges (dm metric) that are connected to upper but above lower threshold

Page 26: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

Hysteresis ThresholdingHysteresis Thresholding

ttoo little

too many

combitimany nation

Page 27: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig
Page 28: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

Optimal Operators for Other SStructures

Resembles 2nd derivative of Gaussian

Page 29: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

Gaussian DerivativesGaussian Derivatives

Page 30: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

2nd Derivative Operator to detect lines and curves

Page 31: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

Multidimensional DerivativesMultidimensional Derivatives

• Nabla operator:Nabla operator:

• Gradient:

• Laplacian:

• Hessian:

(matrix of 2nd derivatives, gradient of gradient of L)

Page 32: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

LaplacianLaplacian

Local kernels

Laplacian of 2D Gaussian kernel

Page 33: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

Laplacian of Gaussian (LoG)Laplacian of Gaussian (LoG)

Enhances line-like structures (glasses), creates zero-crossing at edges (positive and negative response at both sides of edges)

Source: http://homepages.inf.ed.ac.uk/rbf/HIPR2/log.htm

and negative response at both sides of edges)

Page 34: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

Often used: Zero-Crossings of LoG for Edge Detection

Hint: Remember that edge positions are extrema of first derivative → zero-crossings of 2nd derivatives. Be careful: Extrema or maxima & minima!

Page 35: Canny Edge and Line Detection - Scientific Computing and ...gerig/CS6640-F2012/Materials/Canny-Gerig-Slides... · Canny Edge and Line Detection CS/BIOEN 6640, Fall 2010 Guido Gerig

Line/Ridge DetectionLine/Ridge Detection