31 views

Uploaded by Ijonk Makarizhu

this is an example of hough transform

- Hough Transforms
- hough transform
- CG1MCA
- Easy Photo Grunge Effect | Tutorial9
- Colours Me1
- sca2013_voxelization
- ITS Undergraduate 24347 5208100144 Bibliography
- artistic style treatment
- 04 Tank Level Control
- Course 5 - Curves
- 02_whole
- CG Project
- 042805_04
- Analysis of the Factors Contributing To
- cg 7
- 10.1007_s40435-016-0252-z (1).pdf
- c17b2 Sample
- Intelligence
- COMMUNICATIVE LANGUAGE TEACHING
- aircraft control Lecture 13

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

- Hough TransformsUploaded byVijayabharadwaj Gsr
- hough transformUploaded byAkilesh Arigela
- CG1MCAUploaded byNavin Kumar
- Easy Photo Grunge Effect | Tutorial9Uploaded bymemelo2
- Colours Me1Uploaded byeelishor
- sca2013_voxelizationUploaded byOm Randi
- ITS Undergraduate 24347 5208100144 BibliographyUploaded byMarsha Pramestya
- artistic style treatmentUploaded byapi-302170302
- 04 Tank Level ControlUploaded bysaggi_1112
- Course 5 - CurvesUploaded bylavao
- 02_wholeUploaded bydnlkaba
- CG ProjectUploaded byPraneet Kumar
- 042805_04Uploaded byGabriel Humpire
- Analysis of the Factors Contributing ToUploaded byParis
- cg 7Uploaded bychanpreet
- 10.1007_s40435-016-0252-z (1).pdfUploaded bymabdulkadhar
- c17b2 SampleUploaded byLam Sin Wing
- IntelligenceUploaded bySara Namdarian
- COMMUNICATIVE LANGUAGE TEACHINGUploaded byHasan
- aircraft control Lecture 13Uploaded byArief Hadiyanto
- 7Uploaded byAbdo Ali
- Fractal CompressionUploaded byaquialiacola
- Cs4758 Kalman Hmm ExamplesUploaded byKenDaniswara
- How to Create a Gun TutorialUploaded byapi-3709245
- Speech processing research paper 18Uploaded byimparivesh
- Project Report on Glut Bitmap FontUploaded byPranoy Kakubal
- Adaptive Fuzzy Sliding Mode Control Design LyapunovUploaded byAngel Chiquito
- Lightwave 11-6 Addendum Lowres 20131031Uploaded bymadikai98
- 2015 Yolles&Fink Cybernetic Orders Kybernetes Part 1 K 12 2014 0302Uploaded bymyolles
- 2013-12-14 Relevance of Videogames - A Briefing Cv10Uploaded byjokanovic

- Proposal Pkl BpolUploaded byIjonk Makarizhu
- Konservasi-FIX1Uploaded byIjonk Makarizhu
- SST Availabilities of Satellite Infrared and MicrowaveUploaded byIjonk Makarizhu
- Jajang Nuryana 1314511038 _resumeUploaded byIjonk Makarizhu
- Daniel C. Donato, Et Al. 2012 Mangrove Adalah Salah Satu Hutan Terkaya Karbon Di Kawasan TropisUploaded byIga Ayu Mirah
- Analisis Teluk Benoa Sebagai Kawasan KonservasiUploaded byIjonk Makarizhu
- Julian 2005Uploaded byIjonk Makarizhu
- Data Penelitian MangroveUploaded byIjonk Makarizhu
- Pengukuran Tss & Tds Klp 2Uploaded byIjonk Makarizhu
- Tropic CycloneUploaded byIjonk Makarizhu
- Panduan PKM 2014Uploaded byBEMFPUNUD
- FIX PaperUploaded byIjonk Makarizhu
- Buah Pengorbanan Tahrik Jadid -Drs Atik Naim AhmadUploaded byIjonk Makarizhu
- sedimen-permaebilitasUploaded byIjonk Makarizhu
- Karakteristik Panjang Gelombang SatelitUploaded byIjonk Makarizhu
- persamaan diferensial parsialUploaded byWak Aman
- Makalah Meteorologi LautUploaded byIjonk Makarizhu
- 28 Currents Drifters (1)Uploaded byIjonk Makarizhu
- 04-02-alat-ukur-laju-alir-b_2Uploaded byFurqon Rusdianto
- BOTANI_MANGROVE (Pemanfaatan Potensi Mangrove Sebagai Tanaman ObatUploaded byHery Purnobasuki
- Beach Clean Up FKPUploaded byIjonk Makarizhu
- oseana_xxxi(1)27-38Uploaded byAbe
- Analisis Citra Digital Dengan Menggunakan Software OctaveUploaded byIjonk Makarizhu
- Berita Jajang Manta Watch Road to CampusUploaded byIjonk Makarizhu
- Filsafat Ajaran Islam_textUploaded byIjonk Makarizhu
- Hidrologi_amdalUploaded byIjonk Makarizhu
- Hough TransformUploaded bymancity84474
- Hough TransformUploaded bymancity84474
- 1718 Chapter IIUploaded byRafsanjani Onod
- 10 Session3 LumpkinUploaded byIjonk Makarizhu

- ALP_TRG_PRQ 2012R2 V3_2.pdfUploaded byFlores Visa Paul
- 47450140-ASTM-A-105Uploaded byjijuikru
- ThesisUploaded byKumar Vinoth
- kimo oades resume 140327-pdt426 sampleUploaded byapi-229971522
- Computer Graphics 101Uploaded byMircea Constantinescu
- Nirdeshika-2073-final2Uploaded byBiraj Gautam
- Sony XBR-65X900F CNET review calibration resultsUploaded byDavid Katzmaier
- Rendering an Exterior Scene - V-Ray 2Uploaded byonaaaaang
- Report (Project) 232Uploaded bySree Lakshmi C
- Computerized Controls Versalaser Advanced Driver English MUploaded bycraigorio616
- Part1Uploaded byBruce wayne
- Evermotion Archmodels Vol 01 PDFUploaded byAndrea
- V01I031122Uploaded byIJARTET
- Interfacing MATLAB With CADUploaded byAhmet Sefer
- gisc9315d2zamanmUploaded byapi-358717204
- Computer Graphics FileUploaded byKanika Verma
- Galvez Iglesias GutierrezUploaded byjimakosjp
- SiftUploaded bytrantinh1010
- anim syllUploaded bybixgorin
- Shape DetectionUploaded byMallappa Patil
- Autocad 3d Module 25 PDFUploaded byRocky Huliselan
- digital graphicsUploaded byapi-377010834
- PS Effect.docxUploaded bydian
- Mu Online Animated Forums Signature Tutorial v.1.0.0Uploaded bytarrent
- CG Programs BCA VI SemesterUploaded byManish Dey
- ERDAS Field GuideUploaded bySarunjith K.J.
- Per-Pixel Displacement Mapping Using Cone TracingUploaded byakram_halli
- Assamese Its Formation and DevelopmentUploaded bywaragainstlove
- Features i Solution LiteUploaded byxprakash
- Piranesi - SketchUp Watercolor StyleUploaded byXaverius Nanda