this is an example of hough transform

© All Rights Reserved

31 views

this is an example of hough transform

© All Rights Reserved

- Chapter 1
- CNNs From Different Viewpoints – Medium
- CV_Punit_Chhaya
- No Sane Person Can Live Alone!
- Computer Vision and Image Processing journals
- Eece5698 Padir Syllabus v1
- (TIS295)[1]
- hci
- Review on Detection and Counting of Red Blood Cells
- Enabling the Next Generation of Particle Physics Experiments: GPUs for Online Track Reconstruction
- Computer Graphics
- gdm
- English 4 Reviewer
- Computer Graphics Introduction
- Francis Heylighen - Cybernetics and Second-Order Cybernetics
- Control
- 21706420-models-of-communication.pdf
- Cisc887.Organization
- Lab Activity Modul8 - Sprite & Collision Detection
- Home Assignment

You are on page 1of 56

Bobick

Finding 2D Shapes and the

Hough Transform

Aaron Bobick

School of Interactive

Computing

Hough Transform

Hough Transform

Administrivia

Today: Modeling Lines and Finding them

CS4495: Problem set 1 is still posted.

Please read the directions carefully.

You can use Matlab (or OpenCV or Octave) edge operators

You cannot use Matlab (or OpenCV or Octave) Hough methods.

Due Sunday, Sept 7th 11:55pm. (T-Sq does not allow 11:59pm)

No there is no grace period. Really. Really.

better now.

Hough Transform

So far, we applied operators/masks/kernels to

Image processing:

F : I ( x, y )

I '( x, y )

F : I ( x, y )

good stuff

Hough Transform

Fitting a model

Want to associate a model with observed features

Hough Transform

Fitting

Choose a parametric model to represent a set of

Membership criterion is not local

Cant tell whether a point in the image belongs to a given model

1. What model represents this set of features best?

2. Which of several model instances gets which feature?

3. How many model instances are there?

Computational complexity is important

It is infeasible to examine every possible set of parameters and

every possible combination of features

Source: L. Lazebnik

Hough Transform

Why fit lines?

Hough Transform

Extra edge points (clutter),

multiple models:

which points go with which

line, if any?

detected, and some parts

are missing:

how to find a line that bridges

missing evidence?

points, orientations:

how to detect true underlying

parameters?

Hough Transform

Voting

Its not feasible to check all possible models or all

combinations of features (e.g. edge pixels) by fitting a

model to each possible subset.

Voting is a general technique where we let the features

vote for all models that are compatible with it.

1.

2.

parameters.

Look for model parameters that receive a lot of votes.

Hough Transform

Noise & clutter features will cast votes too, but typically

good features.

Ok if some features not observed, as model can span

multiple fragments.

Fitting lines

Given points that belong to a line, what is

the line?

How many lines are there?

Which points belong to which lines?

Hough Transform is a voting

technique that can be used to answer all

of these

Main idea:

1. Record all possible lines on which each

2. Look for lines that get many votes.

Hough Transform

Hough Transform

y

b0

m0

image space

A line in the image corresponds to a point in 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

Hough Transform

y

y0

x0

image space

What does a point (x0, y0) in the image space map to?

Answer: the solutions of = +

this is a line in Hough space

Slide credit: Steve Seitz

Hough Transform

y

y0

(x1, y1)

(x0, y0)

b = x1m + y1

x0

image space

What are the line parameters for the line that contains both

(x0, y0) and (x1, y1)?

It is the intersection of the lines

= +

= + and

Hough Transform

y

image space

Let each edge point in image space vote for a set of

possible parameters in Hough space

Accumulate votes in discrete set of bins; parameters with

the most votes indicate line in image space.

Hough Transform

Issues with usual (m,b) parameter space: can take on

infinite values, undefined for vertical lines.

[0,0]

d : perpendicular distance

from line to origin

makes with the x-axis

x cos y sin = d

Point in image space sinusoid segment in Hough space

Hough Transform

Using the polar parameterization:

x cos y sin = d

Basic Hough transform algorithm

2. for each edge point I[x,y] in the image

d = x cos y sin

// maybe negative

H[d, ] += 1

3. Find the value(s) of (d, ) where H[d, ] is maximum

4. The detected line in the image is given by d = x cos y sin

Space complexity?

Hough Transform

lines

x

Image space

edge coordinates

Votes

Bright value = high vote count

Black = no votes

Hough Transform

Square :

Circle :

Hough Transform

Hough demo..

Hough Transform

Hough Transform

Hough Transform

found

Hough Transform

x

Image space

edge coordinates

Votes

Hough Transform

Image space

edge coordinates

Votes

edge points, but we still see peaks in the vote space.

Hough Transform

Extensions

1. Initialize H[d, ]=0

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

= gradient at (x,y)

= cos sin

H[d, ] += 1

3. Find the value(s) of (d, ) where H[d, ] is

maximum

4. The detected line in the image is given

by = cos sin

Extension 2

give more votes for stronger edges

Extension 3

change the sampling of (d, ) to give more/less resolution

Extension 4

The same procedure can be used with circles, squares, or any other

shape

Hough Transform

r

Circle: center (a,b) and radius r ( x a ) + ( y b) =

2

Image space

Hough space

Hough Transform

r

Circle: center (a,b) and radius r ( x a ) + ( y b) =

2

Most votes

for center

occur here.

Image space

Hough space

Hough Transform

bounding box found via motion differencing.

Hough Transform

Original

Edges

Votes: Penny

was used for each circle radius (quarters vs. penny).

Hough Transform

Original

Combined

detections

Edges

Votes: Quarter

Hough Transform

r

Circle: center (a,b) and radius r ( x a ) + ( y b) =

2

r

y

b

a

Image space

Hough space

Hough Transform

r

Circle: center (a,b) and radius r ( x a ) + ( y b) =

2

r

y

b

a

Image space

Hough space

1.

2.

3.

4.

5.

6.

7.

8.

9.

For each possible radius value r:

For each possible gradient direction :

%% or use estimated gradient

a = x r cos()

b = y + r sin()

H[a,b,r] += 1

end

end

end

Hough Transform

For every edge pixel (x,y) :

For each possible radius value r:

For each possible gradient direction :

%% or use estimated gradient

a = x r cos()

b = y + r sin()

H[a,b,r] += 1

end

end

Hough Transform

Hough Transform

Minimize irrelevant tokens first (take edge points with

Choose a good grid / discretization

Too coarse: large votes obtained when too many different lines

Too fine: miss lines because some points that are not exactly

collinear cast votes for different buckets

Utilize direction of edge to reduce free parameters by 1

To read back which points voted for winning peaks, keep

Hough Transform

Pros

All points are processed independently, so can cope with occlusion

Some robustness to noise: noise points unlikely to contribute

consistently to any single bin

Can detect multiple instances of a model in a single pass

Cons

Complexity of search time increases exponentially with the number

of model parameters

Non-target shapes can produce spurious peaks in parameter space

Quantization: hard to pick a good grid size

Hough Transform

Non-analytic models

Parameters express variation in pose or scale of fixed but arbitrary

shape (that was then)

Visual code-word based features

Not edges but detected templates learned from models (this is

now)

Hough Transform

What if want to detect arbitrary shapes defined by

p1

compute displacement

vector: r = c pi.

c

2

p2

Image space

store these vectors in a

table indexed by gradient

orientation .

[Dana H. Ballard, Generalizing the Hough Transform to Detect Arbitrary Shapes, 1980]

Hough Transform

Recognition:

p1

c

2

p2

measure the gradient

angle

2. Look up all

displacements in

displacement table.

3. Vote for a center at

each displacement.

Image space

[Dana H. Ballard, Generalizing the Hough Transform to Detect Arbitrary Shapes, 1980]

Hough Transform

model shape

Source: L. Lazebnik

Hough Transform

Example

Looking at the bottom

horizontal boundary

points (all the same

), the set of

displacements

ranges over all the

red vectors.

Hough Transform

Example

At recognition, each

bottom horizontal

element votes for all

those displacements.

Hough Transform

Example

At recognition, each

bottom horizontal

element votes for all

those displacements.

Example

At recognition, each

bottom horizontal

element votes for all

those displacements.

Hough Transform

Example

Now do for the

leftward pointing

diagonals.

Hough Transform

Example

Now do for the

leftward pointing

diagonals.

Hough Transform

Example

Now do for the

leftward pointing

diagonals.

And the center is

found.

Hough Transform

Hough Transform

If orientation is known:

1. For each edge point

Compute gradient direction

Retrieve displacement vectors r to vote for

reference point.

2.

most supporting edges

Hough Transform

If orientation is unknown:

For each edge point

For each possible master *

Compute gradient direction

New = - *

For retrieve displacement vectors r to vote for

reference point.

Peak in this Hough space (now X,Y, *) is reference point with

most supporting edges

Detect Arbitrary Shapes, 1980]

Hough Transform

If scale S is unknown:

For each edge point

For each possible master scale S:

Compute gradient direction

For retrieve displacement vectors r

Vote r scaled by S for reference point.

Peak in this Hough space (now X,Y, S) is reference point with

most supporting edges

Hough Transform

Application in recognition

Instead of indexing displacements by gradient orientation,

displacement vectors

training image

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

Categorization and Segmentation with an Implicit Shape Model,

Source: L. Lazebnik

ECCV Workshop on Statistical Learning in Computer Vision

2004

1. Build codebook of patches around extracted interest

course)

Hough Transform

1. Build codebook of patches around extracted interest

2. Map the patch around each interest point to closest

codebook entry

Hough Transform

Training: Displacements

1. Build codebook of patches around extracted interest

2. Map the patch around each interest point to closest

codebook entry

3. For each codebook entry, store all displacements

relative to object center

Hough Transform

Hough Transform

Application in recognition

Instead of indexing displacements by gradient orientation,

test image

Hough Transform

Summary

Fitting problems require finding any supporting evidence

associate features with an explicit model

all combinations of features.

Hough transform approach for lines, circles, , arbitrary shapes

- Chapter 1Uploaded byJodieBowers
- CNNs From Different Viewpoints – MediumUploaded byAndres Tuells Jansson
- CV_Punit_ChhayaUploaded byapi-27051669
- No Sane Person Can Live Alone!Uploaded byma_literature
- Computer Vision and Image Processing journalsUploaded bytarun06
- Eece5698 Padir Syllabus v1Uploaded byRomil Shah
- (TIS295)[1]Uploaded byradgor
- hciUploaded bytreazer_jetaime
- Review on Detection and Counting of Red Blood CellsUploaded byInternational Journal for Scientific Research and Development - IJSRD
- Enabling the Next Generation of Particle Physics Experiments: GPUs for Online Track ReconstructionUploaded byandiherten
- Computer GraphicsUploaded byecomputernotes
- gdmUploaded byTanmay Rupnar
- English 4 ReviewerUploaded byReycelle Tantoco
- Computer Graphics IntroductionUploaded byDeepakVerma
- Francis Heylighen - Cybernetics and Second-Order CyberneticsUploaded byKris Cowell Llorens
- ControlUploaded byJilari Ram
- 21706420-models-of-communication.pdfUploaded byvmukadam
- Cisc887.OrganizationUploaded byBrainy12345
- Lab Activity Modul8 - Sprite & Collision DetectionUploaded byAhmad Hadzami
- Home AssignmentUploaded byTanya Singhal
- Art and Technology in Poland Ed. Agnieszka JelewskaUploaded byMichał Krawczak
- 1-s2.0-S104732030800117X-mainUploaded byDavid Adolfo Valero Venegas
- Hart Chapter 1Uploaded bybobbobbob1234567890
- 9780134177410Uploaded byAviPatel
- Curriculum Vitae Jesús MorenoUploaded byJesús Moreno
- Hough TransformUploaded bySmitha Vas
- Lecture 10 Morphological IP_2Uploaded byMuzammil Ahmed
- Report Dec2015Uploaded byAJ
- Cybernetics or Communication and Control in the Animal and the Machine - Norbert Wiener_textUploaded byJosé Manuel Salas
- Hough ExamplesUploaded byAmir Rehman

- multimedia notesUploaded bygayathri.seelam
- CS4495 HoughUploaded byIjonk Makarizhu
- Computer Vision Ch11Uploaded byLee RickHunter
- Hough TransformUploaded byPrashanth Jampana
- Canny Edge Detection Tutorial.pdfUploaded byImfarosha Emma
- Segmentation DIP SDG(2)Uploaded byEchanur Raki
- Hough TransformUploaded byPhiokham Suriya
- ME5286-Lecture9.pdfUploaded byAmir Rehman
- Hough Transform.pdfUploaded byss_barpanda8473