History
Merlin and Farber 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 toTheory of generalized Hough transform
To generalize the Hough algorithm to non-analytic curves, Ballard defines the following parameters for a generalized shape: ''a='' where ''y'' is a referenceBuilding the R-table
Choose a reference point ''y'' for the shape (typically chosen inside the shape). For each boundary point ''x'', compute ''ɸ(x)'', theObject localization
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
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 (ɸ)= 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θ (ɸ)= Rot'' 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
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
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
Observing that the global Hough transform can be obtained by the summation of local Hough transforms of disjoint sub-region, Heather and Yang 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
The implementation uses the following equations: : : : : 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 cmin . . . xcmax">cmin . . . xcmaxycmin . . . 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( c">xc c">c'' :(3) Possible locations of the object contour are given by local maxima in ''A c">cyc]''. ::If ''A c">cyc] > 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 cmin . . . xcmax">cmin . . . xcmaxycmin . . . ycmax] min . . . qmax">min . . . qmaxsmin . . . 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 c">cyc] �s])'' :(3) Possible locations of the object contour are given by local maxima in ''A c">cyc] �s]'' :If ''A c">cyc] �s] > T'', then the object contour is located at ''(xc, yc)'', has undergone a rotation ''Θ'', and has been scaled by ''s''.Advantages and disadvantages
Advantages
* It is robust to partial or slightly deformed shapes (i.e., robust to recognition under occlusion). * It is robust to the presence of additional structures in the image. * It is tolerant to noise. * It can find multiple occurrences of a shape during the same processing pass.Disadvantages
* It has substantial computational and storage requirements which become acute when object orientation and scale have to be considered.Related work
Ballard suggested using orientation information of the edge decreasing the cost of the computation. Many efficient GHT techniques have been suggested such as the SC-GHT (Using slope and curvature as local properties). Davis and YamL. Davis and S. Yam, tp://ftp.cs.utexas.edu/pub/techreports/tr80-134.pdf "A generalized hough-like transformation for shape recognition" University of Texas Computer Sciences, TR-134, Feb 1980. also suggested an extension of Merlin's work for orientation and scale invariant matching which complement's Ballard's work but does not include Ballard's utilization of edge-slope information and composite structuresSee also
* Hough transform * Randomized Hough transform * Radon Transform * Template matching * Outline of object recognitionReferences
External links
*