edges - micc · •compute))the)intensity)gradientmagnitude)and)di recon:&&&...

26
Edges

Upload: others

Post on 23-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

Edges  

Page 2: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

•  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  

Page 3: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

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:  

θ  

Page 4: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

         

Δ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.  

Page 5: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

         

   (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

Page 6: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

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)  

 

Page 7: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

•  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

Page 8: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

‒  Smoothing  the  image  by  using  a  low  pass  Gaussian  filter    h    permits  to  remove  noise:    edges  are  clearly  evidenced  in  correspondence  of  peaks  of  

Page 9: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

‒     According  to  the  deriva*ve  theorem  of  convolu*on  one  opera*on  can  be  saved:  

Page 10: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

•  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

Page 11: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

 

•  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  

Page 12: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

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    

Page 13: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

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

Page 14: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

•  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.    

Page 15: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

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)  

Page 16: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

             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  

Page 17: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

Lines  

Page 18: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

 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  

Page 19: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

•  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  

Page 20: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

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:  

Page 21: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

•  Lines  are  then  found  at  zero  crossings  of  the  Laplacian  of  Gaussian:  

Page 22: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

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.  

Page 23: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

•  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

Page 24: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

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 +−=

Page 25: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

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  

 

Page 26: Edges - MICC · •Compute))the)intensity)gradientmagnitude)and)di recon:&&& edge&detec*on&algorithms&are& used&to&find&values&of&the&firstorder&derivaves&& in&the&horizontal&and

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  

.