Generalised Hough Transform
Generalised Hough Transform
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.
i ɸi Rɸ i
1 0 (r11, α11) (r12, α12)... (r1n, α1n)
2Δ
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