108
Hough transform 16-385 Computer Vision Spring 2019, Lecture 4 http://www.cs.cmu.edu/~16385/

Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Hough transform

16-385 Computer VisionSpring 2019, Lecture 4http://www.cs.cmu.edu/~16385/

Page 2: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Course announcements

• Homework 1 is now due on Monday February 11th!- Any questions about the homework?- How many of you have looked at/started/finished homework 1?

• Some changes to office hours for this week only:- Tuesday’s office hours will be 5:30-7:30 pm and will be covered by Yannis.- Friday’s 3-5 pm office hours will be covered by Anshuman.- There will be an extra set of office hours this week to make up for the change.

Page 3: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Leftover from Lecture 3:

• Frequency-domain filtering.

• Revisiting sampling.

New in lecture 4:

• Finding boundaries.

• Line fitting.

• Line parameterizations.

• Hough transform.

• Hough circles.

• Some applications.

Overview of today’s lecture

Page 4: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Slide credits

Most of these slides were adapted from:

• Kris Kitani (15-463, Fall 2016).

Some slides were inspired or taken from:

• Fredo Durand (MIT).• James Hays (Georgia Tech).

Page 5: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Finding boundaries

Page 6: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Where are the object boundaries?

Page 7: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Human annotated boundaries

Page 8: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

edge detection

Page 9: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Multi-scale edge detection

Page 10: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Edge strength does not necessarily

correspond to our perception of boundaries

Page 11: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Where are the object boundaries?

Page 12: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Human annotated boundaries

Page 13: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

edge detection

Page 14: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Defining boundaries are hard for us too

Page 15: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Where is the boundary of the mountain top?

Page 16: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Lines are hard to find

Edge detection

Noisy edge image

Incomplete boundaries

ThresholdingOriginal image

Page 17: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Applications

tissue engineering

(blood vessel counting)

behavioral genetics

(earthworm contours)Autonomous Vehicles

(lane line detection)

Autonomous Vehicles

(semantic scene segmentation)Computational Photography

(image inpainting)

Page 18: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1
Page 19: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Line fitting

Page 20: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Line fitting

Given: Many pairs

Find: Parameters

Minimize: Average square distance:

Using:

Note:

Page 21: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Line fitting

Given: Many pairs

Find: Parameters

Minimize: Average square distance:

Using:

Note:

What are some problems with the approach?

Page 22: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Data: (x1, y1), …, (xn, yn)

Line equation: yi = m xi + b

Normal equations: least squares solution to XB=Y

(xi, yi)

Find (m, b) to minimize

Page 23: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Line fitting

Given: Many pairs

Find: Parameters

Minimize: Average square distance:

Using:

Note:

How can we solve this minimization?

Page 24: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Problems with parameterizations

Where is the line that minimizes E?

Page 25: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Problems with parameterizations

Huge E!

Where is the line that minimizes E?

Page 26: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Problems with parameterizations

Line that minimizes E!!

Where is the line that minimizes E?

Page 27: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Problems with parameterizations

Line that minimizes E!!

Where is the line that minimizes E?

(Error E must be formulated carefully!)

How can we deal with this?

Page 28: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Line fitting is easily setup as a maximum likelihood problem

… but choice of model is important

What optimization are we solving here?

Page 29: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Problems with noise

Squared error heavily penalizes outliersLeast-squares error fit

Page 30: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Model fitting is difficult because…

• Extraneous data: clutter or multiple models

– We do not know what is part of the model?

– Can we pull out models with a few parts from much larger

amounts of background clutter?

• Missing data: only some parts of model are present

• Noise

• Cost:

– It is not feasible to check all combinations of features by fitting a

model to each possible subset

So what can we do?

Page 31: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Line parameterizations

Page 32: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Slope intercept form

slope y-intercept

What are m and b?

Page 33: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Slope intercept form

slope y-intercept

Page 34: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Double intercept form

x-intercept y-intercept

What are x and y?

Page 35: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Double intercept form

x-intercept y-intercept

(Similar slope)

Derivation:

Page 36: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Normal Form

What are rho and theta?

Page 37: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Normal Form

Derivation:

plug into:

Page 38: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Hough transform

Page 39: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Hough transform

• Generic framework for detecting a parametric model

• Edges don’t have to be connected

• Lines can be occluded

• Key idea: edges vote for the possible models

Page 40: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

Image space

Page 41: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters parameters

variables

a line

becomes a

point

Image space Parameter space

Page 42: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

Image space

What would a point in image space

become in parameter space?

Page 43: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters parameters

variables

a point

becomes a

line

Image space Parameter space

Page 44: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters parameters

variables

Image space Parameter space

two points

become

?

Page 45: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters parameters

variables

Image space Parameter space

two points

become

?

Page 46: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters parameters

variables

Image space Parameter space

three points

become

?

Page 47: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters parameters

variables

Image space Parameter space

three points

become

?

Page 48: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters parameters

variables

Image space Parameter space

four points

become

?

Page 49: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters parameters

variables

Image space Parameter space

four points

become

?

Page 50: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

How would you find the best fitting line?

Image space Parameter space

Is this method robust to measurement noise?

Is this method robust to outliers?

Page 51: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Line Detection by Hough Transform

Parameter Space

1 1

1 1

1 1

2

1 1

1 1

1 1

Algorithm:

1.Quantize Parameter Space

2.Create Accumulator Array

3.Set

4. For each image edge

For each element in

If lies on the line:

Increment

5. Find local maxima in

Page 52: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Problems with parameterization

1 1

1 1

1 1

2

1 1

1 1

1 1

How big does the accumulator need to be for the parameterization ?

Page 53: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Problems with parameterization

1 1

1 1

1 1

2

1 1

1 1

1 1

The space of m is huge! The space of c is huge!

How big does the accumulator need to be for the parameterization ?

Page 54: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Given points find

Better Parameterization

(Finite Accumulator Array Size)

Image Space

Hough Space

?

Hough Space Sinusoid

Use normal form:

Page 55: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

a point

becomes?

Image space Parameter space

parameters

variables

Page 56: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

a point

becomes a

wave

Image space Parameter space

parameters

variables

Page 57: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

a line

becomes?

Image space Parameter space

Page 58: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

a line

becomes a

point

Image space Parameter space

Page 59: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

a line

becomes?

Image space Parameter space

Page 60: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

a line

becomes a

point

Image space Parameter space

Page 61: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

a line

becomes a

point

Image space Parameter space

Page 62: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

a line

becomes a

point

Image space Parameter space

Page 63: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

a line

becomes a

point

Image space Parameter space

Page 64: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

a line

becomes a

point

Image space Parameter space

Page 65: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

a line

becomes a

point

Image space Parameter space

Wait …why is rho negative?

Page 66: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

a line

becomes a

point

Image space Parameter space

same line through

the point

Page 67: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

There are two ways to

write the same line:

Positive rho version:

Negative rho version:

Recall:

Page 68: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

a line

becomes a

point

Image space Parameter space

same line through

the point

Page 69: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

Image space Parameter space

two points

become

?

Page 70: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

Image space Parameter space

three points

become

?

Page 71: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image and parameter spacevariables

parameters

Image space Parameter space

four points

become

?

Page 72: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Implementation1. Initialize accumulator H to all zeros

2. For each edge point (x,y) in the image

For θ = 0 to 180

ρ = x cos θ + y sin θ

H(θ, ρ) = H(θ, ρ) + 1

end

end

3. Find the value(s) of (θ, ρ) where H(θ, ρ)

is a local maximum

4. The detected line in the image is given by

ρ = x cos θ + y sin θ

NOTE: Watch your coordinates. Image origin is top left!

Page 73: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image space Votes

Page 74: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Basic shapes(in parameter space)

can you guess the shape?

Page 75: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

line

Basic shapes(in parameter space)

Page 76: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

line rectangle

Basic shapes(in parameter space)

Page 77: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

line rectangle circle

Basic shapes(in parameter space)

Page 78: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Basic Shapes

Page 79: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

More complex image

Page 80: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

In practice, measurements are noisy…

Image space Votes

Page 81: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image space Votes

Too much noise …

Page 82: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Effects of noise level

More noise, less votes (in the right bin)

5

10

15

0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

Ma

xim

um

nu

mb

er

of vo

tes

Noise level

Number of votes for a line of 20 points with increasing noise

Page 83: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Effect of noise points

0

3

6

9

12

20 40 60 80 100 120 140 160 180 200

Ma

xim

um

nu

mb

er

of vo

tes

Number of noise points

More noise, more votes (in the wrong bin)

Page 84: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Real-world example

Original Edges Hough Linesparameter space

Page 85: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Hough Circles

Page 86: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

parameters

variables

parameters

variables

Let’s assume radius known

What is the dimension of the parameter space?

Page 87: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Image space Parameter space

parameters

variables

parameters

variables

What does a point in image space correspond to in parameter space?

Page 88: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

parameters

variables

parameters

variables

Page 89: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

parameters

variables

parameters

variables

Page 90: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

parameters

variables

parameters

variables

Page 91: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

parameters

variables

parameters

variables

Page 92: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

parameters

variables

parameters

variables

What if radius is unknown?

Page 93: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

parameters

variables

parameters

variables

What if radius is unknown?

If radius is not known: 3D Hough Space!

Use Accumulator array

Surface shape in Hough space is complicated

Page 94: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Using Gradient Information

Gradient information can save lot of computation:

Edge Location

Edge Direction

Need to increment only one point in accumulator!

Assume radius is known:

Page 95: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

parameters

variables

parameters

variables

Page 96: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

parameters

variables

parameters

variables

Page 97: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1
Page 98: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Pennie Hough detector Quarter Hough detector

Page 99: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Pennie Hough detector Quarter Hough detector

Page 100: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Can you use Hough Transforms for other objects,

beyond lines and circles?

Do you have to use edge detectors to

vote in Hough Space?

Page 101: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

The Hough transform …

Deals with occlusion well?

Detects multiple instances?

Robust to noise?

Good computational complexity?

Easy to set parameters?

Page 102: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Application of

Hough transforms

Page 103: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Detecting shape features

F. Jurie and C. Schmid, Scale-invariant shape features for recognition of object categories, CVPR 2004

Page 104: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Original

images

Laplacian circles Hough-like circles

Which feature detector is more consistent?

Page 105: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Robustness to scale and clutter

Page 106: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Object detection

training image

visual codeword with

displacement vectors

B. Leibe, A. Leonardis, and B. Schiele, Combined Object Categorization and Segmentation

with an Implicit Shape Model,

ECCV Workshop on Statistical Learning in Computer Vision 2004

Index displacements by “visual codeword”

Page 107: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1
Page 108: Hough transform - Carnegie Mellon School of Computer Science16385/s19/lectures/lecture4.pdf · 2019. 2. 7. · Line Detection by Hough Transform Parameter Space 1 1 1 1 1 1 2 1 1

Basic reading:• Szeliski textbook, Sections 4.2, 4.3.

References