8
ELSEVIER Pattern RecognitionLetters 17 (1996)777-784 Pattern Recognition Letters Hough transform based ellipse detection algorithm P.S. Nair *, A.T. Saunders, Jr. Department of Computer Science, Creighton University, Omaha, NE 68178-209000, USA Received30 May 1995;revised2 November1995 Abstract A new ellipse detection algorithm based on the straight line Hough transform (SLHT) is presented. A parameter space to image space Hough transform locating ellipse centers is developed. The remaining parameters are found from the edge image of the scene. The average time complexity of the algorithm is O(N2). Keywords: Hough transfoLn?;Ellipse detection; Computer vision 1. Introduction The Hough transform has long been recognized as an efficient means for extracting straight lines from a digital image (Dyer, 1983; Inigo et al., 1988; Shu et al., 1988). In fact, the Hough transform can be applied to detect any analytic curve. However, the dimension of parameter space grows exponentially with the number of parameters and thus presents a major hurdle in achieving an efficient algorithm for a general analytic curve. For example, straight lines are two-parameter analytical curves, and hence the dimension of the parameter space is only two. On the other hand, an ellipse has five parameters (h, k: translation parameters, a, b: size parameters, and 0: the orientation) and thus the parameter space has dimension five. One way to reduce the time and space complexity of a Hough transform is to decompose the parameter * Correspondingauthor. space. Thus, instead of calculating all parameters simultaneously, they are partitioned into groups, and each derived sequentially. Since an ellipse has five parameters, Hough transforms for ellipse detection presented in the literature usually involve some sort of parameter space decomposition. A common strat- egy for reducing the parameter space for an ellipse is to first determine the ellipse's center (translation parameters) using some geometric property of an ellipse (Tsuji and Yatsumoto, 1978; Yeun et al., 1988). The remaining parameters are then found using curve fitting or by employing further Hough transforms (Tsukune and Goto, 1983). An interesting parameter space decomposition is presented by Pao et al. (1990) where the polar equation of a general ellipse is decomposed into its intrinsic (size and orientation) and translation terms. Furthermore, a method to detect ellipses based on the signature of an ellipse in straight line Hough transform (SLHT) space is also presented. By using the rotational and translational distortion equations of Krishnapuram and Casasent (1987), an ellipse is detected by nor- malizing its signature in SLHT space and then per- 0167-8655/96/$12.00 © 1996ElsevierScienceB.V. All rights reserved PII SO167-8655(96)00014- 1

Hough transform based ellipse detection algorithm

  • Upload
    ps-nair

  • View
    222

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Hough transform based ellipse detection algorithm

ELSEVIER Pattern Recognition Letters 17 (1996) 777-784

Pattern Recognition Letters

Hough transform based ellipse detection algorithm

P.S. Nair *, A.T. Saunders, Jr. Department of Computer Science, Creighton University, Omaha, NE 68178-209000, USA

Received 30 May 1995; revised 2 November 1995

Abstract

A new ellipse detection algorithm based on the straight line Hough transform (SLHT) is presented. A parameter space to image space Hough transform locating ellipse centers is developed. The remaining parameters are found from the edge image of the scene. The average time complexity of the algorithm is O(N2).

Keywords: Hough transfoLn?; Ellipse detection; Computer vision

1. Introduction

The Hough transform has long been recognized as an efficient means for extracting straight lines from a digital image (Dyer, 1983; Inigo et al., 1988; Shu et al., 1988). In fact, the Hough transform can be applied to detect any analytic curve. However, the dimension of parameter space grows exponentially with the number of parameters and thus presents a major hurdle in achieving an efficient algorithm for a general analytic curve. For example, straight lines are two-parameter analytical curves, and hence the dimension of the parameter space is only two. On the other hand, an ellipse has five parameters (h, k: translation parameters, a, b: size parameters, and 0: the orientation) and thus the parameter space has dimension five.

One way to reduce the time and space complexity of a Hough transform is to decompose the parameter

* Corresponding author.

space. Thus, instead of calculating all parameters simultaneously, they are partitioned into groups, and each derived sequentially. Since an ellipse has five parameters, Hough transforms for ellipse detection presented in the literature usually involve some sort of parameter space decomposition. A common strat- egy for reducing the parameter space for an ellipse is to first determine the ellipse's center (translation parameters) using some geometric property of an ellipse (Tsuji and Yatsumoto, 1978; Yeun et al., 1988). The remaining parameters are then found using curve fitting or by employing further Hough transforms (Tsukune and Goto, 1983). An interesting parameter space decomposition is presented by Pao et al. (1990) where the polar equation of a general ellipse is decomposed into its intrinsic (size and orientation) and translation terms. Furthermore, a method to detect ellipses based on the signature of an ellipse in straight line Hough transform (SLHT) space is also presented. By using the rotational and translational distortion equations of Krishnapuram and Casasent (1987), an ellipse is detected by nor- malizing its signature in SLHT space and then per-

0167-8655/96/$12.00 © 1996 Elsevier Science B.V. All rights reserved PII SO167-8655(96)00014- 1

Page 2: Hough transform based ellipse detection algorithm

778 P.S. Nair, A.T. Saunders, Jr./Pattern Recognition Letters 17 (1996) 777-784

forming a one-dimensional correlation between the detected signature and the ideal signature of an ellipse in the SLHT space. A major advantage of this approach is that an accumulator array is not required since only the structure of the parameter is needed. However, extracting the distorted ellipse signature from among several possible signatures is not a trivial problem.

In this paper, a new technique is presented to make use of the SLHT to detect ellipses. A geomet- ric property of ellipses is used in tandem with the ellipse's signature in SLHT parameter space to lo- cate ellipse centers. The method presented does not require an accumulator array and does not rely too heavily on the ability to normalize an ellipse's SLHT signature.

2. Ellipse detection

The ellipse detection algorithm proposed in this paper has seven stages. First, the SLHT of a scene is computed. Then the loci of lines possibly passing through ellipse centers are calculated. The third stage introduces a new variant of the Hough transform that maps the loci to the x, y locations of possible ellipse centers. Next a simple cluster detecting procedure is used and locations of these clusters are taken as initial estimates of ellipse centers. In the fifth stage the exact center is determined from the estimated values and the edge image. Next we determine all parameters. Finally a verification algorithm is used to check the findings of the Hough transform.

2.1. Straight line Hough transform

The first step in the ellipse detection algorithm is to compute the SLHT of the scene being examined. The SLHT presented here is similar to that of Duda and Hart 's (1972) except that a gradient operator is used to estimate 0 and no accumulator array is used. For every pixel in the image whose gradient magni- tude is above the edge threshold (i.e., every edge pixel), the 0, p coordinates of the parameter points are calculated such that

p = x c o s 0 + y s i n 0,

where 0 is derived from the direction of the gradi- ent. Instead of incrementing the accumulator cell

corresponding to 0, p, we add a node containing p to a linked list associated with 0. Since the SLHT tends to spread votes in the p-direction when 0 is finely quantized (Van Veen and Groen, 1981), the nodes in the linked list represent a vertical segment. If the p value to be inserted is an endpoint of a segment, it is added to that segment in the SLHT parameter space. If the p value connects two seg- ments, then they are joined. If the p value is an isolated point, it becomes the basis for a new seg- ment. The effect of p-spreading is then minimized by referring to these segments by their midpoints.

2.2. Loci of lines passing through ellipse centers

In order to generate the loci of lines possibly passing through the center of ellipses, we make use of a basic property of ellipses-diameter bisection. The principle of diameter bisection states that two points on an ellipse whose tangent lines are parallel are the endpoints of an ellipse diameter. Conse- quently, the midpoint of these two points is the center of the ellipse. Therefore, if the endpoints of the ellipse diameter can be located, then the center of the ellipse can be computed.

The SLHT provides a convenient way to accom- plish this task. Note that parameter points sharing a common 0 represent edge pixels with parallel tan- gent lines. Thus given a pair of parameter points (( P0, 0), (p~, 0)), they may represent two parallel tangent lines corresponding to the opposite endpoints of an ellipse diameter. Hence (( P0 + p ] ) / 2 , 0) rep- resent a line parallel to both tangent lines passing through the center of the ellipse. Therefore, by com- puting the midpoints of all pairs of parameter points having the same 0 value, a loci of lines possibly passing through ellipse centers can be constructed.

In practice, it is not necessary to generate a midpoint for every pair of parameter points with the same 0 value. If the distance between a pair of edge pixels is too small or too large, then they probably do not represent a diameter pair. Hence a pair of minimum and maximum distance thresholds should be used when constructing the loci.

2.3. The parameter to image space Hough transform

The loci of lines computed above do not directly lead to the location of ellipses in the image. To

Page 3: Hough transform based ellipse detection algorithm

P.S. Nair, A.T. Saunders, Jr./Pattern Recognition Letters 17 (1996) 777-784 779

derive this information, the intersection of these lines has to be computed. For this purpose, a new variant of the Hough transform - the parameter space to image space Hough transform - is used. The new transform proceeds as follows. Let M = (M 0, M I . . . . . M m) be a set of loci, where M i repre- sents the set of parameter points describing lines with slope angles normal to 0i possibly passing through ellipse centers. For i, j where 1 ~< i ~< j ~< m, compute the intersection of lines represented in M i

and Mj if M i and Mi are nonempty. Note that the x, y coordinates of the intersection can be computed analytically. For example, if ( Pi, Oi) ~ Mi and (p: , 0 j )~ Mj then the intersection point (x, y) is given by

Pi s i n 0 j - p j sin 0 i X =

s i n ( 0 i -- Oj)

and

pj COS 0 i - - P i COS Oj

Y = sin( 0 i - Oj)

From a theoretical perspective, any nonempty pair of sets M i, Mj is a viable candidate for computing centers. However, since an ellipse has a large distri- bution of tangent line orientations, we can restrict ourselves to using only adjacent, nonempty sets and still generate enough signal for clusters in the bit array. If our goal had been to detect some other shape with 180 ° rotational symmetry, such as a square or a rectangle, this would not have worked. Those shapes only have two different tangent line orientations. Thus this technique helps to weed out other shapes for which the principle of diameter bisection holds.

We use a two-dimensional bit array to record the ( x, y) coordinates of intersections. In this case, there can be clusters of votes around the center of ellipses. Thus without the aid of an accumulator array, the translation parameters can be computed.

2.4. Cluster detection

Much research has been done in the area of sharpening peaks in an accumulator array (Ballard, 1981; Davies, 1987; Van Veen and Groen, 1981). Because of discretization errors, the votes generated

by a Hough transform tend to cluster about some ideal point. Therefore peak sharpening amounts to the translation of a cluster into a single point with high signal. In this paper, the problem of detecting peaks is replaced with the task of locating the under- lying clusters. As such, we do not need an accumula- tor array because clusters are structural phenomena. Hence a two-dimensional bit array can be used in lieu of an array of accumulators. After the parameter to image space Hough transform maps the loci to their points of intersection by turning on the corre- sponding bits in the bit array, we search the bit array for clusters. This is accomplished by inspecting ev- ery ON bit and then counting the number of ON bits in a w × w window centered on the bit being exam- ined. The x, y location of the cell in the bit array with the maximum ON bits in a w × w window is considered the center of a cluster and hence the probable location of a ellipse.

2.5. Processing the initial estimate

Since there are errors in the SLHT's mapping, we can expect the parameter to image space Hough transform to compound these errors. In order to avoid further errors during the subsequent phases of the algorithm, it is necessary to improve upon the initial guess. This first estimate is probably some- where near the true center, so if we refer back to the edge image of the original scene, we can make use of structural information to compute the ellipse's center.

Recall that the bit array in which we detect clus- ters is congruent to the image space. Consequently, we can make the (x, y) coordinate of the cluster the origin in the edge image. If there is an ellipse in the edge image and the cluster is not too far from the true center, then the ellipse should envelop the ori- gin. Let K be the set of feature points encircling the origin, i.e., the feature points comprising the ellipse. We can compute K by calculating the closest feature point to the origin in the 0 direction for all 0 from 0 to 2zr. During the construction of K, we keep track of the feature point k ~ K that is furthest from the origin. We claim that this feature point is an end- point of the ellipse's major axis.

We now proceed to justify our claim. Note that the property is invariant under both translation and

Page 4: Hough transform based ellipse detection algorithm

780 P.S. Nair, A.T. Saunders, Jr./Pattern Recognition Letters 17 (1996) 777-784

rotation. Hence it is enough to show our claim to be true for a standard ellipse. Assume, without loss of generality, that a point P is in the first quadrant. First, it will be shown that the point S on the ellipse at maximum distance from P must be in quadrant three. Suppose S is in the second quadrant. Let R be the reflection of S through the x-axis. Also, let Q be the foot of the normal drawn from P to SR (ex- tended if required). Since right triangles SQP and RQP share a common base QP, QS < QR implies PS < PR. Hence S cannot be in the second quadrant. A similar argument prevents S from being in the fourth quadrant. Hence S must be in the third quad- rant. See Fig. 1.

Let A be the endpoint of the major axis on the opposite side of the y-axis from P. We now proceed to show that S = A so long as digital images are involved. Let B be the endpoint of the minor axis such that the curve AB bounds the third quadrant. Now construct the perpendicular bisector of the seg- ment AB. It is easy to see that all points in the first quadrant above the perpendicular bisector are further from B than from A. Similarly, those points below it are further from A than from B. Now consider some possible locations from S. We can see that as S moves from B to A, the perpendicular bisector of AS approaches the major axis. See Fig. 2.

Regardless of where S is, the points lying be- tween the major axis and the perpendicular bisector are further from A than from S. Consequently, if the point P is near the major axis and A is not the point at maximum distance from P, then P lies above the perpendicular bisector of AS. Since the perpendicu- lar bisector of AS approaches the major axis as S nears A, and it is close to the major axis, then S must be close to A. Thus we get PA = PS. In the case of digital images, distances are quantized into

Fig. 1.

Fig. 2.

units of pixels. Although strictly speaking, PS > PA, any small difference between the two lengths is lost in the quantization. Thus, for all practical purposes, PS = PA, making S = A.

To make use of the principle just discussed, let the point at maximum distance from the approximate center be labeled Po. By definition of the major axis, the point P] in the set K at maximum distance from P0 is the other endpoint of the major axis. Then the true center of the ellipse (h, k) is the midpoint of Po Pl"

2.6. Deriving the remaining parameters

After ascertaining the true center, we have the translation parameters (h, k). The other parameters can be deduced from the set K. The semimajor axis (a) is half of PoPv The orientation of the ellipse is the slope angle of the major axis. Thus if P0 = (x0, Y0)and P] = (x], yj), then

(tan 1 ( y ' - y ° )

- - otherwise.

To determine the semiminor axis (b), we look at the two points in set K that lie on the line perpendic- ular to 0 passing through (h, k). Theoretically these two points should be equidistant from (h, k), how- ever, due to the discretization of the ellipse, this is usually not the case. Hence we choose as the semiminor axis the distance furthest from the center. The algorithm is now able to return the parameter vector [h, k, a, b, 0] describing the ellipse detected to a calling procedure.

Page 5: Hough transform based ellipse detection algorithm

P.S. Nair, A.T. Saunders, Jr./Pattern Recognition Letters 17 (1996) 777-784 781

2.7. Verification

A peak in the parameter space does not guarantee that the object to be detected is indeed in the image. Consider a binary image consisting solely of ran- domly distributed pixels. If the SLHT is used to map this image to parameter space, then the clusters we find represent points that happen to be collinear. We therefore need some way to verify the findings of any Hough transform based algorithm.

A convenient way to check the findings of the Hough transform is to make use of a signature number. This number is the average squared distance from the ellipse center to the boundary points for all 0. We then compare this number to the ideal signa- ture number given by the size parameters. The ideal signature number is found by evaluating

27r a2b2 dO/fo 2~" f dO, Siaeal = "0 a2sin20 -}- b 2cOS20

which in closed form becomes

Sideal ~ Z ~ tan-I ~z-(b2 - a2 + v/~-)

- t a n - ' -~z- z f ' y ( b2 - a 2 + ~x ) ,

where x = a 4 - b 4, y = 2 a 2 - b 2 - 2 ~ x , and z = 2a 2 - b 2 + 2~/x-. The equation for Sidea I is undefined when a = b, a = 0, b = 0. Thus we supplement this formula by making s~aea t = a 2 when a = b. When the length of either the semimajor or semiminor axis is zero, we know we have not found an ellipse. Hence we can set Sidea I to some value denoting failure.

3. Complexity of the algorithm

The complexity analysis is done by examining each stage of the algorithm.

The complexity of the SLHT grows linearly with the number of feature points (i.e., edge pixels) in the image. To determine the feature points, we must examine every image pixel. Thus the complexity of this stage for an N × N image is O(N2).

The next stage involves the determination of the loci of lines possibly passing through ellipse centers.

To determine the complexity, we need some idea of the average number of parameter points in SLHT space having the same 0 value. Suppose there are m different orientations and n feature points. Then the average value per 0 is n/m. But the Hough trans- form is a many-to-one mapping, so it is unlikely there will be n parameter points. This is especially true in scenes containing manufactured objects as they usually contain many collinear points, Therefore the average number of parameter points with the same 0 value, denoted u, is much smaller then n/m. If each of the m values of 0 contain u parameter points then the complexity of constructing m loci sets is O(mu:) .

Now we have to map pairs of midpoints back to x, y space to determine their intersection. Since we do this for adjacent, nonempty sets, we are operating on at most m - 1 pairs of loci sets. For each pair, we compute (~)(~) intersections. Therefore the complex- ity of this stage is O(mu4).

After the parameter to image space Hough trans- form has been completed, we need to search for clusters in the bit array. To test for the presence of clusters, we must search for clusters in the bit array. To test for the presence of clusters, we must look at every cell in the bit array. Thus we examine N 2 bits. To measure the effect of determining the density in a w X w window at each ON bit in the array, we need a measure of the number of unique mappings gener- ated by the parameter-to-image space Hough trans- form. Let that number be 6. Since each ON bit is a possible ellipse center, and we can not have more ellipses than feature points, we conclude that 0 ~< 6 ~< n. So given 6 ON bits, the complexity of cluster finding is O(N 2 + 6w2). Since 6 ~< n ~< N 2, the complexity is given by O(N2).

To characterize the complexity of the entire pro- cess, we choose the terms with the highest degree. Thus we get O(N 2 + m y 4) for an N X N image. Because v is the average number of parameter points in SLHT parameter space for a given 0, it is reason- able to assume v << N. Thus the average time com- plexity of the algorithm is O(N2).

4. Implementation

An algorithm based on the ideas presented in this paper was written in C and executed on an Intel

Page 6: Hough transform based ellipse detection algorithm

782 P.S. Nair, A.T. Saunders, Jr.~Pattern Recognition Letters 17 (1996) 777-784

(a)

. ¢ , " ,

. : ; , . . " . . , , (

................................ ::. :.:.~ :.'..-. :.bz ".,..... - .... :~ ; . ; , , : " ; " , . . , .. ;a ; ' , -': . . . . . . . . , '

~. ,,4.,," .~,, , , ,..

' " "" ;'~,I.~.L... ~ , ' "

(b)

- , . 1 " . .

. ,~, ,,,,... ' ,

.... . , , . '-:~,., f • , , , . , ) . ~ : : : : , ' . . . . . . . . . t . ~ ~ - - . . r . - J . - . : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

, .~, • ,~: I~ aI I~

." -.-,..~.;.~. ,, .. m~

:.:~ 't ',. '" ~;~

[

| :~ 1

"'.L, ',::

(b)

N' , : , : .',' :..~." .ff.i :;~, r::. . . . . . . . . . . ; . . . : q . + ; . . . : . . . . . . . . . . . . . . . . . . . . . . . . . . . .

, - t " . . . . ,v~ "t"

• ' 'r , ~ r ' 3 ' ' ~: ¢#:....^ t o , , , .

• . . . ' t . p

" , 1 . : ' "

,,,--,. ' ... ~ i , /o>

0 0

0

(d)

0

'°'

(o)

O

Fig. 3. (a) Original image, (b) S L H T transform o f the image. (c) Result o f S L H T parameter space to (edge) image space transform. (d) Ellipses detected within the image.

Page 7: Hough transform based ellipse detection algorithm

P.S. Nair, A.T. Saunders, Jr./Pattern Recognition Letters 17 (1996) 777-784 783

Table 1 Run-time performance

Algorithm Image size Computer Run-time

Tsuji and Matsumoto (1978) 128 × 128 PDP 8 / E Tsukune and Goto (1983) 256 × 256 Vax 11/780 Milenkovic (1986) 512 × 512 Vax 11/780 Pao et al. 1 (1993) 700 × 700 Sun Sparc-1 Pao et al. 2 [9] (1993) 700 × 200 Sun Sparc-I Nair-Saunders 320 × 200 lntel 386/25

13 m 20 s total 1-1.5 m per ellipse 20 m per ellipse 7 m partial time 12.6 m partial time 20.7 s per ellipse

80386/25 computer. The test data used consisted of 320 X 200 64-gray-level images. The results of sev- eral trial runs are shown in Fig. 3.

To implement a multiple ellipse detecting algo- rithm, an iterative version of the method presented above was constructed. This was accomplished using a persistence threshold. Whenever a cluster is de- tected, its signal is erased from the bit array. If the verification algorithm determines that the cluster de- tected does not represent an instance of an ellipse in the image, a false alarm is signaled. The persistence threshold is the number of consecutive false alarms tolerated before terminating the algorithm. In the examples shown in Fig. 3, the persistence threshold was 1 when the scene was sparse (~< 1500 feature points) and was 5 when the scene was cluttered ( > 1500 feature points).

The run-time performance of different ellipse de- tection algorithms is presented in Table 1. These data are partially available in (Pao et al., 1993). It can be seen that the executed speed of our algorithm com- pares favorably with the others.

5. Conclusion

The method presented in this paper is an efficient detecting algorithm that performs well even on a personal computer. By using the principle of diame- ter bisection and the signature of an ellipse in SLHT space, we were able to detect ellipses without the need of an accumulator array. A novel parameter to image space Hough transform is introduced which allowed us to use simple cluster detection to locate ellipses as opposed to seeking maxima in an accumu- lator array. By referring back to image space the ellipse's parameters were computed without com-

pounding error. This resulted in an algorithm whose workload grows proportionally with the number of pixels in the image. It can be easily implemented on a personal computer and its run-time compares fa- vorable with those reported in literature.

References

Ballard, D.H. (1981). Generalizing the Hough transform to detect arbitrary shapes. Pattern Recognition 13, 111-122.

Davies, E.R. (1987). A new framework for analysing the proper- ties of the generalised Hough transform. Pattern Recognition Lett. 6, 1-7.

Duda, R.O. and P.E. Hart (1972). Use of the Hough transforma- tion to detect lines and curves in pictures. Commun. ACM 15, 11-15.

Dyer, C.R. (1983). Gange inspection using Hough Transform. IEEE Trans. Pattern Anal. Mach. lntell. 5, 621-623.

Inigo, R.M., E.S. McVey, B.J. Berger and J. Kittler (1988). Ellipse detection using the Hough transform. Proc. 4th Alvey Vision Conf., Manchester, 31 August-2 September 1988, 820-826.

Krishnapuram, R. and R. Casasent (1987). Hough space transfor- mations for discrimination and distortion estimation. Comput. Vision Graphics Image Process. 44, 299-316.

Milenkovic, V.J. (1986). Multiple resolution search techniques for the Hough transform in high dimensional parameter spaces. In: A. Rosenfeld, Ed., Techniques for 3-D Machine Perception. North-Holland, Amsterdam.

Pao, D., H.F. Li and R. Jayakumar (1990). Detecting parametric curves using the straight line Hough transform. Proc. lnternat. Conf. Pattern Recognition.

Pao, D., H.F. Li and R. Jayakumar (1993). A decomposable parameter space for the detection of ellipses. Pattern Recogni- tion Lett. 14, 951.

Shu, D.B., C.C. Li, J.F. Mancuso and Y.N. Sun (1988). A line extraction method for automated SEM inspection of VLSI resist. IEEE Trans. Pattern Anal. Mach. lntell. 10, 117-120.

Tsuji, S. and F. Matsumoto (1978). Detection of ellipses by a modified Hough transform. IEEE Trans. Cornput. 27, 777 -781.

Page 8: Hough transform based ellipse detection algorithm

784 P.S. Nair, A.T. Saunders, Jr./Pattern Recognition Letters 17 (1996) 777-784

Tsukune, H. and K. Goto (1983). Extracting elliptical figures from an edge vector field. Proc. IEEE Conf. Comput. Vision Pat- tern Recognition Washington, 138-141.

van Veen, T.M. and F.C.A. Groen (1981). Discretization errors in the Hough transform. Pattern Recognition 14, 137-145,

Yeun, H.K., J. lllingworth and J. Jittler (1988). Ellipse detection using the Hough transform. Proc. 4th Alvey Vision Conf., Manchester, 31 August-2 September 1988, 265-271.