Title: The Hough Transform
1The Hough Transform
- Frank Dellaert
- Slides adapted from Jay Summet
2Projector Camera Systems
Camera(s) used to orient one or more projectors
in relation to each other and to elements in the
world such as projection surfaces.
3Multiple Projectors Shadows Muted
Note that the projectors are aligned sufficiently
so that the overlap between their output appears
visually perfect.
display screen
P-2
P-1
Sukthankar, Cham Sukthankar, CVPR-2001
4Finding Planes
- Lines fall in planes
- Discontinuities fall at plane boundries.
- Identify discontinuities
- Fit line to discontinuities
Photos from Mark Ashdown Rahul Sukthankar -HP
Labs CRL TR 2003-01
5Line Fitting To Find Calibration Points
6Fitting
- Choose a parametric object/some objects to
represent a set of tokens - Most interesting case is when criterion is not
local - cant tell whether a set of points lies on a line
by looking only at each point and the next.
- Three main questions
- what object represents this set of tokens best?
- which of several objects gets which token?
- how many objects are there?
- (you could read line for object here, or circle,
or ellipse or...)
7Fitting using SVD
- Many 2D curves that can be represented using
linear equations (in the coeff of the curve) - axbyc0
- Conics xAx0
- includes parabola, hyperbola, ellipses
8Fitting and the Hough Transform
- Purports to answer all three questions
- We explain for lines
- One representation a line is the set of points
(x, y) such that(cos??? X (sin ?? Y r 0
- Different choices of ?, rgt0 give different lines
- For any token (x, y) there is a one parameter
family of lines through this point, given
by(cos??? X (sin ?? Y r 0 - Each point gets to vote for each line in the
family if there is a line that has lots of
votes, that should be the line passing through
the points
9Votes
Tokens
r 0 to 1.55
Theta 45º 0.785 rad r (1v2) / 2 0.707
Theta 0 to 3.14 (rad)
Brightest point 20 votes
10Mechanics of the Hough transform
- Construct an array representing ?, r
- For each point, render the curve (?, r) into this
array, adding one at each cell - Difficulties
- how big should the cells be? (too big, and we
cannot distinguish between quite different lines
too small, and noise causes lines to be missed)
- How many lines?
- count the peaks in the Hough array
- Who belongs to which line?
- tag the votes
- Hardly ever satisfactory in practice, because
problems with noise and cell size defeat it
11Votes
Tokens
Brightest point 6 votes
12(No Transcript)
13Noise Lowers the Peaks
14Noise Increases the Votes in Spurious Accumulator
Elements
15Optimizations to the Hough Transform
Noise If the orientation of tokens (pixels) is
known, only accumulator elements for lines with
that general orientation are voted on. (Most edge
detectors give orientation information.) Speed
The accumulator array can be coarse, then
repeated in areas of interest at a finer scale.
16Real World Example
Original
Found Lines
Edge Detection
Parameter Space
17Fitting other objects
The Hough transform can be used to fit points to
any object that can be paramatized. (e.g. Circle,
elipse) Objects of arbitrary shape can be
parameterized by building an R-Table. (Assumes
orientation information for each token is
available.)
R and beta value(s) are obtained from the
R-Table, based upon omega (orientation)
18Circle Example
With no orientation, each token (point) votes for
all possible circles. With orientation, each
token can vote for a smaller number of circles.
19Real World Circle Examples
Crosshair indicates results of Hough
transform, bounding box found via motion
differencing.
20Finding Coins
Original
Edges (note noise)
21Finding Coins (Continued)
Penny
Quarters
22Finding Coins (Continued)
Note that because the quarters and penny are
different sizes, a different Hough transform
(with separate accumulators) was used for each
circle size.
Coin finding sample images from Vivik Kwatra
23Conclusion
- Finding lines and other parameterized objects is
an important task for computer vision. - The (generalized) Hough transform can detect
arbitrary shapes from (edge detected) tokens. - Success rate depends directly upon the noise in
the edge image. - Downsides Can be slow, especially for objects in
arbitrary scales and orientations (extra
parameters increase accumulator space
exponentially).