0% found this document useful (0 votes)
95 views14 pages

Generalised Hough Transform

A list of window functions (isotropy and anotrophy)

Uploaded by

Michelle Holt
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
95 views14 pages

Generalised Hough Transform

A list of window functions (isotropy and anotrophy)

Uploaded by

Michelle Holt
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 14

Generalised Hough transform

From Wikipedia, the free encyclopedia


Jump to navigationJump to search
The generalized Hough transform (GHT), introduced by Dana H. Ballard in 1981,
is the modification of the Hough transform using the principle of template matching.
[1]
 The Hough transform was initially developed to detect analytically defined shapes
(e.g., line, circle, ellipse etc.). In these cases, we have knowledge of the shape and
aim to find out its location and orientation in the image. This modification enables the
Hough transform to be used to detect an arbitrary object described with its model.
The problem of finding the object (described with a model) in an image can be
solved by finding the model's position in the image. With the generalized Hough
transform, the problem of finding the model's position is transformed to a problem of
finding the transformation's parameter that maps the model into the image. Given the
value of the transformation's parameter, the position of the model in the image can
be determined.
The original implementation of the GHT used edge information to define a mapping
from orientation of an edge point to a reference point of the shape. In the case of
a binary image where pixels can be either black or white, every black pixel of the
image can be a black pixel of the desired pattern thus creating a locus of reference
points in the Hough space. Every pixel of the image votes for its corresponding
reference points. The maximum points of the Hough space indicate possible
reference points of the pattern in the image. This maximum can be found by
scanning the Hough space or by solving a relaxed set of equations, each of them
corresponding to a black pixel.[2]

Contents

 1History
 2Theory of generalized Hough transform
o 2.1Building the R-table
o 2.2Object localization
o 2.3Generalization of scale and orientation
o 2.4Alternate way using pairs of edges
o 2.5Composite shapes
o 2.6Spatial decomposition
 3Implementation
 4Advantages and disadvantages
o 4.1Advantages
o 4.2Disadvantages
 5Related work
 6See also
 7References
 8External links

History[edit]
Merlin and Farber[3] showed how to use a Hough algorithm when the desired curves
could not be described analytically. It was a precursor to Ballard's algorithm that was
restricted to translation and did not account for rotation and scale changes.[4]
The Merlin-Farber algorithm is impractical for real image data as in an image with
many edge pixels, it finds many false positives due to repetitive pixel arrangements.

Theory of generalized Hough transform[edit]


To generalize the Hough algorithm to non-analytic curves, Ballard defines the
following parameters for a generalized shape: a={y,s,θ} where y is a
reference origin for the shape, θ is its orientation, and s = (sx, sy) describes
two orthogonal scale factors. An algorithm can compute the best set of parameters
for a given shape from edge pixel data. These parameters do not have equal status.
The reference origin location, y, is described in terms of a template table called the R
table of possible edge pixel orientations. The computation of the additional
parameters s and θ is then accomplished by straightforward transformations to this
table. The key generalization to arbitrary shapes is the use of directional information.
Given any shape and a fixed reference point on it, instead of a parametric curve, the
information provided by the boundary pixels is stored in the form of the R-table in the
transform stage. For every edge point on the test image, the properties of the point
are looked up on the R-table and reference point is retrieved and the appropriate cell
in a matrix called the Accumulator matrix is incremented. The cell with maximum
'votes' in the Accumulator matrix can be a possible point of existence of fixed
reference of the object in the test image.
Building the R-table[edit]
Choose a reference point y for the shape (typically chosen inside the shape). For
each boundary point x, compute ɸ(x), the gradient direction and r = y – x as shown in
the image. Store r as a function of ɸ. Notice that each index of ɸ may have many
values of r. One can either store the co-ordinate differences between the fixed
reference and the edge point ((xc – xij),( yc - yij)) or as the radial distance and the
angle between them (rij , αij) . Having done this for each point, the R-table will fully
represent the template object. Also, since the generation phase is invertible, we may
use it to localise object occurrences at other places in the image.

Geometry of shape detection for generalized Hough transform

i ɸi Rɸ i
1 0 (r11, α11) (r12, α12)... (r1n, α1n)

2 Δɸ (r21, α21) (r22, α22)... (r2m, α2m)


3 (r31, α31) (r32, α32)... (r3k, α3k)
ɸ

... ... ...

Object localization[edit]
For each edge pixel x in the image, find the gradient ɸ and increment all the
corresponding points x+r in the accumulator array A (initialized to a maximum size of
the image) where r is a table entry indexed by ɸ, i.e., r(ɸ). These entry points give us
each possible position for the reference point. Although some bogus points may be
calculated, given that the object exists in the image, a maximum will occur at the
reference point. Maxima in A correspond to possible instances of the shape.
Generalization of scale and orientation[edit]
For a fixed orientation of shape, the accumulator array was two-dimensional in the
reference point co-ordinates. To search for shapes of arbitrary orientation θ and
scale s, these two parameters are added to the shape description. The accumulator
array now consists of four dimensions corresponding to the parameters (y, s, θ). The
R-table can also be used to increment this larger dimensional space since different
orientations and scales correspond to easily computed transformations of the table.
Denote a particular R-table for a shape S by R(ɸ). Simple transformations to this
table will allow it to detect scaled or rotated instances of the same shape. For
example, if the shape is scaled by s and this transformation is denoted by Ts.
then Ts[R(ɸ)] = sR(ɸ) i.e., all the vectors are scaled by s. Also, if the object is rotated
by θ and this transformation is denoted by Tθ, then Tθ[R(ɸ)] = Rot{R[(ɸ-
θ)mod2π],θ} i.e., all the indices are incremented by – θ modulo 2π, the appropriate
vectors r are found, and then they are rotated by θ. Another property which will be
useful in describing the composition of generalized Hough transforms is the change
of reference point. If we want to choose a new reference point ỹ such that y-ỹ =
z then the modification to the R-table is given by R(ɸ)+ z, i.e. z is added to each
vector in the table.
Alternate way using pairs of edges[edit]
A pair of edge pixels can be used to reduce the parameter space. Using the R-table
and the properties as described above, each edge pixel defines a surface in the four-
dimensional accumulator space of a = (y, s, θ). Two edge pixels at different
orientations describe the same surface rotated by the same amount with respect
to θ. If these two surfaces intersect, points where they intersect will correspond to
possible parameters a for the shape. Thus it is theoretically possible to use the two
points in image space to reduce the locus in parameter space to a single point.
However, the difficulties of finding the intersection points of the two surfaces in
parameter space will make this approach unfeasible for most cases.
Composite shapes[edit]
If the shape S has a composite structure consisting of subparts S1, S2, .. SN and the
reference points for the shapes S, S1, S2, .. SN are y, y1, y2, .. yn, respectively, then for
a scaling factor s and orientation θ, the generalized Hough transform Rs(ɸ) is given
by . The concern with this transform is that the choice of reference can greatly affect
the accuracy. To overcome this, Ballard has suggested smoothing the resultant
accumulator with a composite smoothing template. The composite smoothing
template H(y) is given as a composite convolution of individual smoothing templates
of the sub-shapes. . Then the improved Accumulator is given by As = A*H and the
maxima in As corresponds to possible instances of the shape.
Spatial decomposition[edit]
Observing that the global Hough transform can be obtained by the summation of
local Hough transforms of disjoint sub-region, Heather and Yang [5] proposed a
method which involves the recursive subdivision of the image into sub-images, each
with their own parameter space, and organized in a quadtree structure. It results in
improved efficiency in finding endpoints of line segments and improved robustness
and reliability in extracting lines in noisy situations, at a slightly increased cost of
memory.

Implementation[edit]
The implementation uses the following equations: [6]
Combining the above equations we have:
Constructing the R-table
(0) Convert the sample shape image into an edge
image using any edge detecting algorithm like Canny
edge detector
(1) Pick a reference point (e.g., (xc, yc))
(2) Draw a line from the reference point to the
boundary
(3) Compute ɸ
(4) Store the reference point (xc, yc) as a function
of ɸ in R(ɸ) table.
Detection:
(0) Convert the sample shape image into an edge
image using any edge detecting algorithm like Canny
edge detector.
(1) Initialize the Accumulator table: A[xcmin. . . xcmax][ycmin.
. . ycmax]
(2) For each edge point (x, y)
(2.1) Using the gradient angle ɸ, retrieve from the R-
table all the (α, r) values indexed under ɸ.
(2.2) For each (α,r), compute the candidate reference
points:
xc = x + r cos(α)
yc = y + r sin(α)
(2.3) Increase counters (voting):
++A([[xc]][yc])
(3) Possible locations of the object contour are given
by local maxima in A[xc][yc].
If A[xc][yc] > T, then the object contour is located
at (xc, yc)
General case:
Suppose the object has
undergone some
rotation Θ and uniform
scaling s:
(x′, y′) --> (x″, y″)
x″ = (x′cos(Θ) – y′sin(Θ))s
y″ = (x′sin(Θ) + y′cos(Θ))s
Replacing x′ by x″ and y′ by y″:
xc = x – x″ or xc = x - (x′cos(Θ) – y′sin(Θ))s
yc = y – y″ or yc = y - (x′sin(Θ) + y′cos(Θ))s
(1) Initialize the Accumulator table: A[xcmin. . . xcmax][ycmin.
. . ycmax][qmin . . .qmax][smin . . . smax]
(2) For each edge point (x, y)
(2.1) Using its gradient angle ɸ, retrieve all the (α,
r) values from the R-table
(2.2) For each (α, r), compute the candidate
reference points:
x′ = r cos(α)
y′ = r sin(α)
for(Θ = Θmin; Θ ≤ Θmax; Θ++)
for(s = smin; s ≤ smax; s++)
xc = x - (x′cos(Θ) – y′sin(Θ))s
yc = y - (x′sin(Θ) + y′cos(Θ))s
++(A[xc][yc][Θ][s])
(3) Possible locations of the object contour are given
by local maxima in A[xc][yc][Θ][s]
If A[xc][yc][Θ][s] > T, then the object contour is located
at (xc, yc), has undergone a rotation Θ, and has been
scaled by s.

Adva
ntage
s and
disad
vanta
ges[edi
t]
Advan
tages[
edit]

 It is robust
to partial o
slightly
deformed
shapes (i.e
robust to
recognition
under
occlusion).
 It is robust
to the
presence o
additional
structures
the image.
 It is toleran
to noise.
 It can find
multiple
occurrence
of a shape
during the
same
processing
pass.
Disadv
antage
s[edit]
 It has
substantial
computatio
al and
storage
requiremen
s which
become
acute when
object
orientation
and scale
have to be
considered

Relat
ed
work[
edit]
Ballard
suggest
ed using
orientati
on
informati
on of the
edge
decreasi
ng the
cost of
the
computa
tion.
Many
efficient
GHT
techniqu
es have
been
suggest
ed such
as the
SC-GHT
(Using
slope
and
curvatur
e as
local
propertie
s).[7] Davi
s and
Yam[8] al
so
suggest
ed an
extensio
n of
Merlin's
work for
orientati
on and
scale
invariant
matchin
g which
comple
ment's
Ballard's
work but
does not
include
Ballard's
utilizatio
n of
edge-
slope
informati
on and
composi
te
structure
s

See
also[e
dit]

 Hough
transform
 Randomize
d Hough
transform
 Radon
Transform
 Template
matching
 Outline of
object
recognition

Refer
ences[
edit]
1. ^ D.H. Ballard
"Generalizing
Hough Transf
Detect Arbitra
Shapes", Pat
Recognition,
No.2, p.111-1
1981
2. ^ Jaulin, L.;
Bazeille, S.
(2013). Image
Shape Extrac
using Interval
Methods  (PD
Proceedings
Sysid 2009, S
Malo, France
3. ^ Merlin, P. M
Farber, D. J.
(January 197
Parallel Mech
for Detecting
Curves in
Pictures".  IEE
Transactions
Computers. C
): 96–
98. doi:10.11
c.1975.22408
N  0018-9340
4. ^ L.
Davis, "Hiera
Generalized H
Transforms a
Line Segmen
Based Gener
Hough Transf
University of T
Computer Sc
Nov 1980
5. ^ J.A. Heathe
Dong Yang, "
Decompositio
the Hough
Transform", T
2nd Canadian
Conference o
Computer and
Robot Vision,
6. ^ Ballard and
Brown, sectio
4.3.4, Sonka
section 5.2.6
7. ^ A. A. Kassim
Tan, K. H. Ta
comparative s
of efficient
generalised H
transform
techniques", I
and Vision
Computing, V
17, Issue 10,
737-748, Aug
1999
8. ^ L. Davis an
Yam, "A
generalized h
like transform
for shape
recognition".
University of T
Computer Sc
TR-134, Feb

Exter
nal
links[
edit]

 OpenCV
implement
ion of
generalize
Hough
transform h
tp://docs.o
encv.org/m
ster/dc/d46
classcv_1_
Generalize
HoughBall
d.html
 Tutorial an
implement
ion of
generalize
Hough
transforms
ttp://www.i
acasa.it/ge
eralized-
hough-
transform/d
efault.html
 Practical
Generalize
Hough
transform
implement
ion http://w
w.irit.fr/~Ju
en.Pinquie
Docs/Houg
_transform
html
 FPGA
implement
ion of
generalize
Hough
transforms
IEEE Digita
Library http
/ieeexplore
eee.org/xp
ogin.jsp?
tp=&arnum
er=538204
&url=http
%3A%2F
%2Fieeexp
ore.ieee.or
%2Fxpls
%2Fabs_a
jsp
%3Farnum
er
%3D53820
7
 MATLAB
implement
ion of
generalize
Hough
transform h
tp://www.m
thworks.co
m/matlabc
ntral/fileexc
hange/441
6-
generalize
hough-
transform
Categori
es: 
 Image
processi
ng
Navigation
menu
 Not
logged in
 Talk
 Contributi
ons
 Create
account
 Log in
 Article
 Talk
 Read
 Edit
 View
history
Search
Search Go

 Main page
 Contents
 Current
events
 Random
article
 About
Wikipedia
 Contact us
 Donate
Contribute
 Help
 Learn to
edit
 Communit
y portal
 Recent
changes
 Upload file
Tools
 What links
here
 Related
changes
 Special
pages
 Permanent
link
 Page
informatio
n
 Cite this
page
 Wikidata
item
Print/export
 Download
as PDF
 Printable
version
Languages
 ‫العربية‬
 Español
 Français
 Русский
 中文
Edit links
 This page
was last
edited on 30
December
2021, at
19:33 (UTC).
 Text is
available
under
the Creative
Commons
Attribution-
ShareAlike
License 3.0;
additional
terms may
apply. By
using this
site, you
agree to
the Terms of
Use and Priva
cy Policy.
Wikipedia®
is a registered
trademark of
the Wikimedi
a Foundation,
Inc., a non-
profit
organization.
 Privacy

policy

 About

Wikipedia

 Disclaime

rs

 Contact

Wikipedia
 Mobile

view

 Developer

 Statistics

 Cookie

statement

You might also like