Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

Multi-Circle Detection on Images Using Artificial
Bee Colony (ABC) Optimization
Erik Cuevas, Felipe Sención-Echauri, Daniel Zaldivar and Marco Pérez-Cisneros
Departamento de Ciencias Computacionales
Universidad de Guadalajara, CUCEI
Av. Revolución 1500, Guadalajara, Jal, México
{erik.cuevas, felipe.sencion, 1daniel.zaldivar, marco.perez}@cucei.udg.mx
Abstract
Hough transform (HT) has been the most common method for circle detection, exhibiting robustness, but adversely
demanding considerable computational effort and large memory requirements. Alternative approaches include
heuristic methods that employ iterative optimization procedures for detecting multiple circles. Since only one circle
can be marked at each optimization cycle, multiple executions must be enforced in order to achieve multi-detection.
This paper presents an algorithm for automatic detection of multiple circular shapes that considers the overall process
as a multi-modal optimization problem. The approach is based on the artificial bee colony (ABC) algorithm, a swarm
optimization algorithm inspired by the intelligent foraging behavior of honey bees. Unlike the original ABC
algorithm, the proposed approach presents the addition of a memory for discarded solutions. Such memory allows
holding important information regarding other local optima which might have emerged during the optimization
process. The detector uses a combination of three non-collinear edge points as parameters to determine circle
candidates. A matching function (nectar- amount) determines if such circle candidates (bee-food-sources) are actually
present in the image. Guided by the values of such matching functions, the set of encoded candidate circles are
evolved through the ABC algorithm so that the best candidate (global optimum) can be fitted into an actual circle
within the edge-only image. Then, an analysis of the incorporated memory is executed in order to identify potential
local optima, i.e., other circles. The proposed method is able to detect single or multiple circles from a digital image
through only one optimization pass. Simulation results over several synthetic and natural images, with a varying
range of complexity, validate the efficiency of the proposed technique regarding its accuracy, speed, and robustness.
Keywords: Circle detection; artificial bee colony; nature-inspired algorithms; intelligent image processing.

1. Introduction
The problem of detecting circular features holds paramount importance for image analysis in industrial
applications such as automatic inspection of manufactured products and components, aided vectorization
of drawings, target detection, etc. [1]. Solving common challenges for object localization is normally
approached by two techniques: deterministic and stochastic. The former includes the application of
Hough transform-based methods [2], the use of geometric hashing and other template or model-based
matching techniques [3, 4]. On the other hand, stochastic techniques include random sample consensus
techniques [5], simulated annealing [6] and genetic algorithms (GA) [7].
Template and model matching techniques were the first approaches to be applied to shape detection.
Although several methods have now been developed for solving such a problem [8], shape coding
techniques and a combination of shape properties have been successfully tested on representing different
objects. Their main drawbacks are related to the contour extraction step from real images and to their
deficiencies in dealing with pose invariance except for very simple objects.
The circle detection in digital images is commonly solved through the Circular Hough Transform [9]. A
typical Hough-based approach employs an edge detector and some edge information to infer locations
and radii values. Peak detection is then performed by averaging, filtering and histogramming within the
transform space. Unfortunately, such an approach requires a large storage space as the 3-D cells include
parameters (x, y, r) that augment the computational complexity and yield a low processing speed. The
accuracy of parameters for the extracted circles is poor, particularly under noisy conditions [10].
In the particular case of a digital image holding a significant width and height, and some densely
populated edge pixels, the required processing time for Circular Hough Transform makes it prohibitive to

1

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

be deployed in real time applications. In order to overcome such a problem, some other researchers have
proposed new approaches following Hough transform principles, yielding the probabilistic Hough
transform [11], the randomized Hough transform (RHT) [12], the fuzzy Hough transform [13] and some
other topics as is widely discussed by Becker in [14].
As an alternative to Hough Transform-based techniques, the problem of shape recognition in computer
vision has also been handled through optimization methods. Ayala–Ramirez et al. presented a GA based
circle detector [15] that is capable of detecting multiple circles over real images, but fails frequently while
detecting imperfect circles. On the other hand, Dasgupta et al. [16] have recently proposed an automatic
circle detector using the bacterial foraging optimization algorithm (BFOA) as optimization procedure.
However, both methods employ an iterative scheme to achieve multiple-circle detection, which executes
the algorithm as many times as the number of circles to be found demands. Only one circle can be found
at each run yielding quite a long execution time.
An impressive growth in the field of biologically inspired meta-heuristics for search and optimization has
emerged during the last decade. Some bio-inspired examples like genetic algorithm (GA) [17] and
differential evolution (DE) [18] have been applied to solve complex optimization problems, while swarm
intelligence (SI) has recently attracted interest from several fields. The SI core lies in the analysis of the
collective behavior of relatively simple agents working on decentralized systems. Such systems typically
gather an agent’s population that can communicate with each other while sharing a common environment.
Despite a non-centralized control algorithm regulating its behavior, the agent can solve complex tasks by
analyzing a given global model and harvesting cooperation to other agents. Therefore, a novel global
behavior evolves from interaction among agents as can be seen in case of ant colonies, animal herding,
bird flocking, fish schooling, honey bees, bacteria, and many more. Swarm-based algorithms, such as
particle swarm optimization [19], ant colony optimization [20] and bacterial foraging optimization
algorithm (BFOA) [21] have already been successfully applied to several engineering applications.
Karaboga has recently presented one bee-swarm algorithm for solving numerical optimization problems,
which is known as the artificial bee colony (ABC) method [22]. Inspired by the intelligent foraging
behavior of a honeybee swarm, the ABC algorithm consists of three essential components: food source
positions, nectar- amount and different honey bee classes. Each food source position represents a feasible
solution for the problem under consideration, and the nectar-amount of a food source represents the
quality of such solution corresponding to its fitness value. Each class of bees symbolizes one particular
operation for generating new candidate food source positions (candidate solutions).
The ABC algorithm starts by producing a randomly distributed initial population (food source locations).
After initialization, an objective function evaluates whether such candidates represent an acceptable
solution (nectar-amount) or not. Guided by the values of such an objective function, the candidate
solutions are evolved through different ABC operations (honey bee types). When the fitness function
(nectar-amount) cannot be further improved after a maximum number of cycles, its related food source is
assumed to be abandoned and replaced by a new randomly chosen food source location. However, in
order to contribute towards the solution of multi-modal optimization problems, our proposal suggests that
such abandoned solutions are not to be discarded; instead, they are to be arranged into a so-called
“exhausted-source memory” that contains valuable information regarding global and local optima that
have been emerging with the evolution of optimization.
Although ABC draws several similarities with other bio-inspired algorithms, there are some significant
issues to be discussed: ABC does not depend upon the best member within the population in order to
update the particle’s motion as is done by PSO [23]; it does not require all particles for computing
parameters such as the pheromone concentration, which determines the overall performance, as is
demanded by ACO [24]. In contrast, ABC uses randomly chosen particles to calculate new motion
vectors, contributing towards augmenting the population diversity. Similar to DE, ABC does require a
selection operation that allows individuals to access a fair chance of being elected for recombination
(diversity). However, ABC holds a second modification operation that follows a random “roulette
selection”, allowing some privileges for best located solutions and augmenting the convergence speed
[25]. In contrast to the local particle modifications executed by BFOA, ABC employs operators that
tolerate modifications over the full search space for each parameter, avoiding typical oscillations around
the optimum produced by BFOA [26]. The performance of ABC algorithm has been compared with other
optimization methods such as GA, DE and PSO [27,28]. The results showed that ABC can produce
optimal solutions and thus is more effective than other methods in several optimization problems. Such

2

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

characteristics have motivated the use of ABC to solve different sorts of engineering problems such as
signal processing [29,30], flow shop scheduling [31], structural inverse analysis [32], clustering [33,34],
vehicle path planning [35] and electromagnetism [36].
This paper presents an algorithm for the automatic detection of multiple circular shapes from complicated
and noisy images, which does not take into consideration the conventional-Hough transform principles.
The detection process is approached as a multi-modal optimization problem. The ABC algorithm searches
the entire edge-map looking for circular shapes by considering a combination of three non-collinear edge
points that represent candidate circles (food source locations) in the edge-only image of the scene. An
objective function is used to measure the existence of a candidate circle over the edge-map. Guided by the
values of such an objective function, the set of encoded candidate circles are evolved through the ABC
algorithm so that the best candidate can be fitted into the most circular shape within the edge-only image.
A subsequent analysis of the incorporated exhausted-source memory is then executed in order to identify
potential useful local optima (other circles). The approach generates a fast sub-pixel detector that can
effectively identify multiple circles in real images despite circular objects exhibiting significant occluded
sections. Experimental evidence shows the effectiveness of the method for detecting circles under various
conditions. A comparison with one state-of-the-art GA-based method [15], the BFOA [16] and the RHT
algorithm [12] on different images has been included to demonstrate the performance of the proposed
approach. Conclusions of the experimental comparison are validated through statistical tests that support
the discussion suitably.
The paper is organized as follows: Section 2 provides information regarding the ABC algorithm. Section
3 depicts the implementation of the proposed circle detector. The complete multiple-circle detection
procedure is presented in Section 4. Experimental outcomes after applying the proposed approach are
stated in Section 5 and some relevant conclusions are discussed in Section 6.

2. Artificial Bee Colony (ABC) algorithm
The ABC algorithm assumes the existence of a set of operations that may resemble some features of the
honey bee behavior. For instance, each solution within the search space includes a parameter set
representing food source locations. The “fitness value” refers to the food source quality that is strongly
linked to the food’s location. The process mimics the bee’s search for valuable food sources yielding an
analogous process for finding the optimal solution.
2.1 Biological bee profile
The minimal model for a honey bee colony consists of three classes: employed bees, onlooker bees and
scout bees. The employed bees will be responsible for investigating the food sources and sharing the
information with recruit onlooker bees. They, in turn, will make a decision on choosing food sources by
considering such information. The food source having a higher quality will have a larger chance to be
selected by onlooker bees than those showing a lower quality. An employed bee, whose food source is
rejected as low quality by employed and onlooker bees, will change to a scout bee to randomly search for
new food sources. Therefore, the exploitation is driven by employed and onlooker bees while the
exploration is maintained by scout bees. The implementation details of such bee-like operations in the
ABC algorithm are described in the next sub-section.
2.2 Description of the ABC algorithm
Resembling other swarm based approaches, the ABC algorithm is an iterative process. It starts with a
population of randomly generated solutions or food sources. The following three operations are applied
until a termination criterion is met [28]:
1. Send the employed bees.
2. Select the food sources by the onlooker bees.
3. Determine the scout bees.

2.2.1 Initializing the population

3

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

The algorithm begins by initializing N p food sources. Each food source is a D-dimensional vector
containing the parameter values to be optimized, which are randomly and uniformly distributed between
and the upper initial parameter bound x high
.
the pre-specified lower initial parameter bound x low
j
j

x j ,i = xlow
+ rand(0,1) ⋅ ( x high
− x low
j
j
j );
j = 1, 2,K , D; i = 1, 2,K , N p .

(1)

with j and i being the parameter and individual indexes respectively. Hence, x j ,i is the jth parameter of the
ith individual.
2.2.2 Send employed bees
The number of employed bees is equal to the number of food sources. At this stage, each employed bee
generates a new food source in the neighborhood of its present position as follows:

v j ,i = x j ,i + φ j ,i ( x j ,i − x j , k );

k ∈ {1, 2,K , N p } ; j ∈ {1, 2,K , D}

(2)

x j ,i is a randomly chosen j parameter of the ith individual and k is one of the N p food sources, satisfying
the condition i ≠ k . If a given parameter of the candidate solution vi exceeds its predetermined
boundaries, that parameter should be adjusted in order to fit the appropriate range. The scale factor φ j ,i is
a random number between [−1,1] . Once a new solution is generated, a fitness value representing the
profitability associated with a particular solution is calculated. The fitness value for a minimization
problem can be assigned to each solution vi by the following expression:

 1

fiti =  1 + J i
1 + abs ( J )
i


if J i ≥ 0

(3)

if J i < 0

where J i is the objective function to be minimized. A greedy selection process is thus applied between

vi and xi . If the nectar- amount (fitness) of vi is better, then the solution xi is replaced by vi ; otherwise,
xi remains.
2.2.3 Select the food sources by the onlooker bees
Each onlooker bee (the number of onlooker bees corresponds to the food source number) selects one of
the proposed food sources, depending on their fitness value, which has been recently defined by the
employed bees. The probability that a food source will be selected can be obtained from the following
equation:

Probi =

fiti

(4)

Np

∑ fit

i

i =1

where fiti is the fitness value of the food source i, which is related to the objective function value ( J i )
corresponding to the food source i. The probability of a food source being selected by onlooker bees
increases with an increase in the fitness value of the food source. After the food source is selected,
onlooker bees will go to the selected food source and select a new candidate food source position inside
the neighborhood of the selected food source. The new candidate food source can be expressed and
calculated by (2). In case the nectar-amount, i.e., fitness of the new solution, is better than before, such
position is held; otherwise, the last solution remains.

4

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

2.2.4 Determine the scout bees
If a food source i (candidate solution) cannot be further improved through a predetermined trial number
known as “limit”, the food source is assumed to be abandoned and the corresponding employed or
onlooker bee becomes a scout. A scout bee explores the searching space with no previous information,
i.e., the new solution is generated randomly as indicated by (1). In order to verify if a candidate solution
has reached the predetermined “limit”, a counter Ai is assigned to each food source i. Such a counter is
incremented consequent to a bee-operation failing to improve the food source’s fitness.

2.3 Exhausted-source memory
Though the classic ABC algorithm eliminates the abandoned food sources, our approach considers the
exhausted food sources (solutions) through avoiding their discharge by saving them into the exhaustedsource memory. Such recorded solutions contain valuable information regarding global and local optima
that emerged during the optimization process.

3. Circle detection using ABC
3.1 Data preprocessing
The ABC circle detector involves a pre-processing stage that requires marking the object’s contour by
applying a single-pixel edge detection method. For our purpose, such a task is accomplished by the
classical Canny algorithm. Then, the locations of the found edge pixels are stored within the

{

}

vector P = p1 , p2 ,K , pE p , E p being the total number of edge pixels in the image.
3.2 Individual representation
In order to construct each candidate circle C (or food-source within the ABC framework), indexes i1 , i2
and i3 representing three edge points previously stored in vector P must be combined. Therefore, each
food-source is encoded as one circle

C = { pi1 , pi2 , pi3 } , which is characterized by three

points pi1 , pi2 and pi3 that lie on its own circumference. Such candidate circle is labeled as a potential
solution for the detection problem. Considering the configuration of the edge points in Fig. 1, the circle
centre ( x0 , y0 ) and the radius r of C can be calculated using simple geometric equations [37].

pi1

pi2

r

( x0 , y0 )
C

pi3

Fig. 1. Circle candidate (individual) built from the combination of points pi1 , pi2 and pi3 .

3.3 Objective function

5

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

In order to calculate the matching error produced by a candidate circle C, its circumference coordinates
are calculated as a virtual shape that must be validated, i.e., confirm whether C really exists in the edgemap. Such circumference coordinates are grouped within the test set S = {s1 , s2 ,K , sN s } , with

N s representing the number of points over which the existence of an edge point, corresponding to C ,
should be verified.
In this approach, the set S is generated by the midpoint circle algorithm (MCA) [38]. The MCA, which is
considered to be the quickest method providing a sub-pixel precision [39,40], calculates the required
points for digitally drawing a circle. Considering that the function f Circle ( x, y ) = x 2 + y 2 − r 2 defines a
circular primitive, MCA introduces an error e as a measurement for the deviation of the halfway pixel
position (sub-pixel distance) characterized by e = fCircle ( x, y ) , with e being zero for locations lying on the
circumference, positive for those outside and negative for those occupying the interior. The minimum
error (i.e., the error shown by the pixel lying closer to the ideal circumference) is used to decide which
pixel should be set next as the best circle boundary approximation. On the other hand, the computation
time of MCA is reduced by considering the symmetry among circles. Circle sections lying at adjacent
octants within one quadrant, are symmetric with respect to the 45° line dividing two octants. Taking
advantage of such symmetry property, MCA generates all pixel positions around a circle by calculating
only the first octant. Therefore, other octants are inferred from the first one by using simple symmetry
relationships. For more details, see [41].
The objective function J(C) represents the matching error produced between the pixels S (calculated by
MCA) of the circle candidate C and the pixels that actually exist in the edge image, yielding:
Ns

∑ E (s )

(5)

v

J (C ) = 1 −

v =1

Ns

where E ( sv ) is a function that verifies the pixel existence in the sv location ( sv = ( xv , yv )) , with sv ∈ S
and N s being the number of pixels lying on the perimeter corresponding to C currently under testing.
Hence, the function E ( sv ) is defined as:

1 if the pixel ( xv , yv ) is an edge point
E ( sv ) = 
otherwise
0

Pi 2

(6)

Pi 2

C

Pi1

Pi1

Pi 3

(a)

(b)

Pi 3

(c)

Fig. 2. Procedure to evaluate the objective function J(C): (a) the original edge-map, (b) the virtual shape generated by
MCA considering C = { pi1 , pi2 , pi3 } . (c) shows the comparison operation between the original edge-map shown in (a)
and the virtual shape presented by (b).

A value near to zero of J(C) implies a better response from the “circularity” operator and represents a
better nectar- amount within the ABC framework. Fig. 2 shows the procedure to evaluate the objective
function J(C). First, three edge points (as they are exhibited by Fig. 2a) encode a candidate circle C.
Then, by using the MCA, a circular virtual shape is built (see Fig. 2b). Such virtual shape, which is

6

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

characterized by the vector S, groups a determined number N s of pixel coordinates that are shown by Fig.
2b as 56. Finally, the virtual shape is compared with the original edge-map, point by point, in order to
find matches between virtual and edge pixels. Fig. 2c shows the comparison operation between the
original edge-map (Fig. 2a) and the virtual shape (Fig. 2b). As a result, only eighteen edge pixels are
Ns

common to both images yielding:

∑ E ( x , y ) = 18 and therefore, J (C ) ≈ 0.67 .
v

v

v =1

3.3. ABC Implementation
The implementation of the proposed algorithm can be summarized by the following steps:
Step 1:

Apply the Canny filter to the original image and store edge pixels within vector P.

Step 2:

Initialize required parameters of the ABC algorithm. Set the colony’s size, the abandonment
limit and the maximum number of cycles.

Step 3:

Initialize N C circle candidates Cb (original food sources) with b ∈ (1,K , N C ) , and clear all
counters Ab .

Step 4:
Step 5:
Step 6:
Step 7
Step 8:

Obtain the matching fitness (food source quality) for each circle candidate Cb using (5).
Repeat steps 6 to 10 until a termination criterion is met.
Modify the circle candidates as stated by (2) and evaluate its matching fitness (send employed
bees onto food sources). Likewise, update all counters Ab .
Calculate the probability value Probb for each circle candidate Cb . Such probability value
will be used as a preference index by onlooker bees (4).
Generate new circles candidates (using the (2)) from current candidates according to their
probability Probb (Send onlooker bees to their selected food source). Likewise, update
counters Ab .

Step 9:
Step 10:

Step 11:

Obtain the matching fitness for each circle candidate Cb and calculate the best circle
candidate (solution).
Stop modifying the circle candidate Cb (food source) whose counter Ab has reached its
counter “limit” and save it as a possible solution (global or local optimum) in the exhaustedsource memory. Clear Ab and generate a new circle candidate according to (1).
Analyze solutions previously stored in the exhausted-source memory (see Section 5). The
memory holds solutions (any other potential circular shape in the image) generated through
the evolution of the optimization algorithm.

In ABC algorithm, the steps 6 to 10 are repeated until a termination criterion is met. Typically, two stop
criteria have been employed for meta-heuristic algorithms: either an upper limit of the fitness function is
reached or an upper limit of the number of generations is attained [42]. The first criterion requires an
extensive knowledge of the problem and its solutions [43]. On the contrary, by considering the stop
criterion based on the number of generations, feasible solutions may be found by exploring the search
space through several iterations. For our purpose, the number of iterations as stop criterion is employed in
order to allow the multi-circle detection. Hence, if a solution representing a valid circle appears at early
stages, it would be stored in the exhausted-source memory and the algorithm continues detecting other
feasible solutions until depleting the iteration number. Therefore, the main issue is to define a fair
iteration number, which should be big enough to allow finding circles at the image and small enough to
avoid an exaggerated computational cost. For this study, such a number was experimentally defined as
300.
4. The multiple-circle detection procedure
The original ABC algorithm considers the so-called abandonment limit, which aims to stop the local
exploration for a candidate solution after a trial number is reached. All “stuck solutions”, i.e., those that
do not improve further during the optimization cycle are supposed to be discarded and replaced by other
randomly generated solutions. However, this paper proposes the use of an “exhausted-source memory” to

7

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

store information regarding local optima that represent possible solutions for the multi-circle detection
problem.
Several heuristic methods have been employed for detecting multiple circles as an alternative to classical
Hough transform-based techniques [15, 16]. Such strategies imply that only one circle can be marked per
optimization cycle, forcing a multiple execution of the algorithm in order to achieve multiple-circle
detection. The surface representing J(C) holds a multimodal nature, which contains several global and
local optima that are related to potential circular shapes in the edge-map. This paper aims to solve the
objective function J(C) using only one optimization procedure by assuming the multi-detection problem
as a multimodal optimization issue.
The multi-detection problem can be summarized as follows: guided by the values of a matching function,
the set of encoded circle candidates are evolved through the ABC algorithm and the best circle candidate
(global optimum) is considered to be the first detected circle over the edge-only image. Then, an analysis
of the incorporated exhausted-source memory is executed in order to identify other local optima (other
circles). The analysis includes two operations: arraignment and extraction. In the arraignment, food
sources that are held by the memory are organized in descending order according to their J(C). Once the
exhausted-source memory has been arranged, the goal is to extract circles considered to be different (local
optima) from it. Such discrimination is accomplished by comparing all elements in the arranged memory.
Several local optima (i.e., circles slightly shifted or holding small deviations) can represent the same
circle. Therefore, a distinctiveness factor Esdi is required to measure the mismatch between two given
circles (food-sources) as follows:

Esdi =

( xA − xB ) + ( y A − yB ) + ( rA − rB )
2

2

2

(7)

where ( x A , y A ) and rA are the coordinates of the centre and radius of the circle C A respectively, while

( xB , yB ) and

rB are the corresponding parameters of the circle CB . In order to decide whether two circles

must be considered different, a threshold value EsTH is defined as follows:

ESTH = α

( cols − 1)

2

+ ( rows − 1) + ( rmax − rmin )
2

2

(8)

where rows and cols refer to the number of rows and columns in the image respectively. rmax and rmin are
the maximum and minimum radii for representing feasible candidate circles, while α is a sensitivity factor
affecting the discrimination between circles. A high value of α allows circles to be significantly different
and still be considered as the same shape while a low value would imply that two circles with slight
differences in radii or positions could be considered as different instances. The EsTH value calculated by
(8) allows discriminating circles with no consideration about the image size.
In order to find “sufficiently different” circles, the elements of the arranged exhausted-source memory
must be contrasted. Each element is compared with the others by using (7). A circle is considered
different enough if its distinctiveness factor Esdi (found in the comparison) surpasses the threshold EsTH .
The multiple-circle detection procedure can thus be described as follows:
Step 1:

The best solution found by the ABC algorithm and all candidate circles held by the
exhausted-source memory are organized in a decreasing order of their matching fitness,
yielding a new vector M C = {C1 ,K , CNe } , with Ne being the size of the exhausted-source

Step 2:

memory plus one.
The candidate circle C1 showing the highest matching fitness is identified as the first
circle shape CS1 as it is stored within a vector Ac of actual circles.

Step 3:

The distinctiveness factor Esdi for the candidate circle Cm (element m in M C ) is

8

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

compared with every element in Ac . If Esdi > ESTH is true for each pair of solutions
(those present in Ac and in the candidate circle Cm ), then Cm is considered as a new
circle shape CS and is added to the vector Ac . Otherwise, the next circle candidate Cm +1
is evaluated and Cm is discarded.
Step 4:

Step 3 is repeated until all Ne candidate circles in M C have been analyzed.

Summarizing the overall procedure, Fig. 3 shows the outcome of the ABC-based circular detector. The
input image (Fig. 3a) has a resolution of 256 x 256 pixels and shows two circles and two ellipses with a
different circularity factor. Fig. 3b presents the detected circles with a red overlay. Fig. 3c shows the
candidate circles held by the exhausted-source memory after the optimization process. Fig. 3d presents
the resulting image after the previously described discrimination procedure has been applied.

(b)

50

50

45

45
Radius

Radius

(a)

40

40

35

35

30
200

30
200
300

150
y Coordinate

0

200

100

100
50

300

150

200

100

y Coordinate

x Coordinate

100
50

0

x Coordinate

(c)
(d)
Fig. 3. ABC-based circular detector performance: (a) the original image and (b) all detected circles as an overlay (c)
Candidate circles held by the exhausted-source memory after optimization process and (d) remaining circles after the
discrimination process.

5. Experimental Results
Experimental tests have been developed in order to evaluate the performance of the circle detector. The
experiments address the following tasks:
(1) Circle localization,
(2) Shape discrimination,
(3) Circular approximation: occluded circles and arc detection.
Table 1 presents the parameters for the ABC algorithm in this study. They have been retained for all test
images after being experimentally defined.
Colony size

Abandonment limit

Number of cycles

20

100

300

Table 1. ABC detector parameters

9

α
0.05

limit
30

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

All the experiments have been executed over a Pentium IV 2.5 GHz computer under C language
programming. All the images are pre-processed by the standard Canny edge detector using the imageprocessing toolbox for MATLAB R2008a.

(a)

(b)

(c)
(d)
Fig. 4. Circle localization over synthetic images. The image (a) shows the original image while (b) presents the
detected circles as an overlay. The image in (c) shows a second image with salt & pepper noise and (d) shows
detected circles as a red overlay.

5.1 Circle localization
5.1.1. Synthetic images
The experimental setup includes the use of several synthetic images of 320x240 pixels. All images
contain varying amounts of circular shapes and some have also been contaminated by added noise so as to
increase the complexity of the localization task. The algorithm is executed over 100 times for each test
image, successfully identifying and marking all circles in the image. The detection has proved to be
robust to translation and scaling, requiring less than 1s. Fig. 4 shows the outcome after applying the
algorithm over two images taken from the experimental set.
5.1.2. Natural images
This experiment tests the circle detection on real-life images. Twenty five test images of 640x480 pixels
have been captured using a digital camera under an 8-bit color format. Each natural scene includes
circular shapes that have been pre-processed through the Canny edge detection algorithm before being fed
to the ABC procedure. Fig. 5 shows a multiple-circle detection over a natural image.

10

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

(a)

(b)

65

Radius

Radius

65

60

55
250

60

55
250
200

250
200

150
y Coordinate

100

200

250
200

150

150

y Coordinate

x Coordinate

(c)

150

100

x Coordinate

(d)

Fig. 5. Circle detection algorithm over natural images: (a) the original image (b) the detected circles as a red overlay
(c) candidate circles lying at the exhausted-source memory after the optimization and (d) detected circles after
finishing the discrimination process.

(a)
(b)
Fig. 6. Shape discrimination over synthetic images: (a) the original image contaminated by salt & pepper noise (b)
detected circles as an overlay.

5.2. Shape discrimination tests
This section discusses the detector’s ability to differentiate circular patterns over any other shape, which
might be present in the image. Fig. 6 shows five different synthetic shapes within an image of 540x300
pixels that has been contaminated by salt & pepper noise. Fig. 7 repeats the experiment over real-life
images.

11

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

(a)
(b)
Fig. 7. Shape discrimination in real-life images: (a) original image and (b) the detected circle as an overlay.

5.3 Circular approximation: occluded circles and arc detection.
The ABC detector algorithm is able to detect occluded or imperfect circles as well as partially defined
shapes such as arc segments. The relevance of such functionality comes from the fact that imperfect
circles are commonly found in typical computer vision applications. Since circle detection has been
considered as an optimization problem, the ABC algorithm allows finding circles that may approach a
given shape according to fitness values for each candidate. Fig. 8a shows some examples of circular
approximation. Likewise, the proposed algorithm is able to find circle parameters that better approach an
arc or an occluded circle. Fig. 8b and 8c show some examples of this functionality. A small value for
J(C), i.e., near zero, refers to a circle while a slightly bigger value accounts for an arc or an occluded
circular shape. Such a fact does not represent any trouble as circles can be shown following the obtained
J(C) values.
5.4 Performance evaluation
In order to enhance the algorithm analysis, the ABC proposed algorithm is compared with the BFAOA
and the GA circle detectors over a set of common images.
The GA algorithm follows the proposal of Ayala-Ramirez et al., which considers the population size as
70, the crossover probability as 0.55, the mutation probability as 0.10 and the number of elite individuals
as 2. The roulette wheel selection and the 1-point crossover operator are both applied. The parameter
setup and the fitness function follow the configuration suggested in [15]. The BFAOA algorithm follows
the implementation from [16] considering the experimental parameters as: S=50, N c = 100 ,

N s = 4, N ed = 1, Ped = 0.25 , d attract = 0.1 , wattract = 0.2 , wrepellant = 10 hrepellant = 0.1 , λ = 400 and ψ = 6 .
Such values are found to represent the best configuration set according to [16].

(a)

12

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

(b)

(c)

Fig. 8. ABC approximating circular shapes and arc sections.

Images rarely contain perfectly-shaped circles. Therefore, aiming for a test on accuracy for a single-circle,
the detection is challenged by a ground-truth circle, which is determined manually from the original edgemap. The parameters ( xtrue , ytrue , rtrue ) of the reference circle are computed considering the best matching
circle that has been previously defined over the edge-map. If the centre and the radius of the detected
circle are defined as ( xD , yD ) and rD , then an error score (Es) can be chosen as follows:

Es=η ⋅ ( xtrue − xD + ytrue − yD ) + µ ⋅ rtrue − rD
The central point difference

(x

true

− xD + ytrue − yD

(9)

) represents the centre shift for the detected circle as it

is compared with a benchmark circle. The radio mismatch ( rtrue − rD ) accounts for the difference between
their radii. η and µ represent two weighting parameters, which are to be applied separately to the central
point difference and to the radius mismatch for the final error Es. In this study, they are chosen as
η = 0.05 and µ = 0.1 . This particular choice ensures that the radii difference would be strongly weighted
in comparison to the difference in the central circular positions of manually detected and machinedetected circles. In order to use an error metric for multiple-circle detection, the averaged Es produced
from each circle in the image is considered. Such criterion, defined as the multiple error (ME), is
calculated as follows:

 1  NC
ME= 
 ⋅ ∑ Es R
 NC  R =1

(10)

where NC represents the number of circles actually present the image. In case the ME is less than 1, the
algorithm is considered successful; otherwise it is said to have failed in the detection of the circle set.
Notice that for η = 0.05 and µ = 0.1 , it yields ME<1, which accounts for a maximal tolerated average
difference on radius length of 10 pixels, whereas the maximum average mismatch for the centre location
can be up to 20 pixels. In general, the success rate (SR) can thus be defined as the percentage of achieving
success after a certain number of trials.

13

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

Original image

Best case

(a)

(b)

(c)

(d)

(e)

(f)

14

Worst case

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

Fig. 9. Test images and their detected circles using the ABC detector. The results show the best and the worst case
obtained throughout 35 runs.

Fig. 9 shows six images that have been used to compare the performance of the GA-based algorithm [15],
the BFOA method [16] and the proposed approach. The performance is analyzed by considering 35
different executions for each algorithm over six images. Table 2 presents the averaged execution time, the
success rate (SR) in percentage and the averaged multiple error (ME). The best entries are bold-cased in
Table 2. Closer inspection reveals that the proposed method is able to achieve the highest success rate
with the smallest error, and still requires less computational time for most cases. Fig. 9 also exhibits the
resulting images after applying the ABC detector. Such results present the best and the worst cases
obtained throughout 35 runs.
A non-parametric statistical significance proof called Wilcoxon’s rank sum test for independent samples
[44-46] has been conducted at 5% significance level on the multiple error (ME) data of Table 2. Table 3
reports the p-values produced by Wilcoxon’s test for the pair-wise comparison of multiple error (ME)
between two groups. One group corresponds to ABC versus GA and the other corresponds to ABC versus
BFOA, one at a time. As a null hypothesis, it is assumed that there is no significant difference between
the mean values of the two groups. The alternative hypothesis considers a significant difference between
the mean values of both groups. All p-values reported in the table are less than 0.05 (5% significance
level), which is a strong evidence against the null hypothesis, indicating that the best ABC mean values
for the performance are statistically significant and have not occurred by chance.
Image

(a)
(b)
(c)
(d)
(e)
(f)

Averaged execution time ± Standard
deviation (s)

Success rate (SR) (%)

Averaged ME ± Standard deviation

GA

BFOA

ABC

GA

BFOA

ABC

GA

BFOA

ABC

2.23±(0.41)
3.15±(0.39)
4.21±(0.11)
5.11±(0.43)
6.33±(0.34)
7.62±(0.97)

1.71±(0.51)
2.80±(0.65)
3.18±(0.36)
3.45±(0.52)
4.11±(0.14)
5.36±(0.17)

0.21±(0.22)
0.36±(0.24)
0.20±(0.19)
1.10±(0.24)
1.61±(0.17)
1.95±(0.41)

94
81
79
93
87
88

100
95
91
100
94
90

100
98
100
100
100
98

0.41±(0.044)
0.51±(0.038)
0.48±(0.029)
0.45±(0.051)
0.81±(0.042)
0.92±(0.075)

0.33±(0.052)
0.37±(0.032)
0.41±(0.051)
0.41±(0.029)
0.77±(0.051)
0.88±(0.081)

0.22±(0.033)
0.26±(0.041)
0.15±(0.036)
0.25±(0.037)
0.37±(0.055)
0.41±(0.066)

Table 2. The averaged execution-time, success rate and the averaged multiple error for the GA-based algorithm, the
BFOA method and the proposed ABC algorithm, considering the six test images shown in Fig. 9
Image

(a)
(b)
(c)
(d)
(e)
(f)

p-Value

ABC vs. GA

ABC vs. BFOA

1.8061e-004
1.7454e-004
1.7981e-004
1.7788e-004
1.6989e-004
1.7012e-004

1.8288e-004
1.9011e-004
1.8922e-004
1.8698e-004
1.9124e-004
1.9081e-004

Table 3. p-values from Wilcoxon’s test, comparing ABC with GA and BFOA over the ME from Table 2.

Fig. 10 demonstrates the relative performance of ABC in comparison with the RHT algorithm following
the proposal in [12]. All images belonging to the test are complicated and contain different noise
conditions. The performance analysis is achieved by considering 35 different executions for each
algorithm over the three images. The results, exhibited in Fig. 10, present the median-run solution (when
the runs were ranked according to their final ME value) obtained throughout the 35 runs. On the other
hand, Table 4 reports the corresponding averaged execution time, success rate (in %), and average
multiple error (using (10)) for ABC and RHT algorithms over the set of images. Table 4 shows a decrease
in performance of the RHT algorithm as noise conditions change. Yet the ABC algorithm holds its
performance under the same circumstances.

15

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

Image

(I)
(II)
(III)

Average time ± Standard deviation (s)

Success rate
(SR) (%)

RHT
7.82±(0.34)
8.65±(0.48)
10.65±(0.48)

RHT
100
70
18

ABC
0.20±(0.31)
0.23±(0.28)
0.22±(0.21)

ABC
100
100
100

Average ME ± Standard deviation

RHT
0.19±(0.041)
0.47±(0.037)
1.21±(0.033)

ABC
0.20±(0.021)
0.18±(0.035)
0.23±(0.028)

Table 4. Average time, success rate and averaged error for ABC and HT, considering three test images

I

II

III

Original image

RHT

ABC

Fig. 10. Relative performance of RHT and ABC

6. Conclusions
This paper has presented an algorithm for the automatic detection of multiple circular shapes from
complicated and noisy images without considering the conventional Hough Transform principles. The
detection process is considered to be similar to a multi-modal optimization problem. In contrast to other
heuristic methods that employ an iterative procedure, the proposed ABC method is able to detect single or
multiple circles over a digital image by running only one optimization cycle. The ABC algorithm
searches the entire edge-map for circular shapes by using a combination of three non-collinear edge

16

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

points as candidate circles (food positions) in the edge-only image. A matching function (objective
function) is used to measure the existence of a candidate circle over the edge-map. Guided by the values
of this matching function, the set of encoded candidate circles is evolved using the ABC algorithm so that
the best candidate can fit into an actual circle. A novel contribution is related to the exhausted-source
memory that has been designed to hold “stuck” solutions which, in turn, represent feasible solutions for
the multi-circle detection problem. A post-analysis on the exhausted-source memory should indeed detect
other local minima, i.e., other potential circular shapes. The overall approach generates a fast sub-pixel
detector, which can effectively identify multiple circles in real images despite circular objects exhibiting a
significant occluded portion.
Classical Hough Transform methods for circle detection use three edge points to cast a vote for the
potential circular shape in the parameter space. However, they would require a huge amount of memory
and longer computational times to obtain a sub-pixel resolution. Moreover, HT-based methods rarely find
a precise parameter set for a circle in the image [47]. In our approach, the detected circles hold a sub-pixel
accuracy inherited directly from the circle equation and the MCA method.
In order to test the circle detection performance, both speed and accuracy have been compared. Score
functions are defined by (9)-(10) in order to measure accuracy and effectively evaluate the mismatch
between manually-detected and machine-detected circles. We have demonstrated that the ABC method
outperforms both the GA (as described in [15]) and the BFOA (as described in [16]) within a statistically
significant framework (Wilcoxon test). In contrast to the ABC method, the RHT algorithm [12] shows a
decrease in performance under noisy conditions. Yet the ABC algorithm holds its performance under the
same circumstances.
Finally, Table 2 indicates that the ABC method can yield better results on complicated and noisy images
compared with the GA and the BFOA methods. However, the aim of this study is not to beat all the circle
detector methods proposed earlier, but to show that the ABC algorithm can effectively serve as an
attractive method to successfully extract multiple circular shapes.
References
[1] da Fontoura Costa, L., Marcondes Cesar Jr., R., 2001. Shape Análisis and Classification. CRC Press,
Boca Raton FL.
[2] Yuen, H., Princen, J., Illingworth, J., Kittler, J., 1990. Comparative study of Hough transform
methods for circle finding. Image Vision Comput. 8 (1), 71–77.
[3] Iivarinen, J., Peura, M., Sarela, J., Visa, A., 1997. Comparison of combined shape descriptors for
irregular objects. In: Proc. 8th British Machine Vision Conf., Cochester, UK, pp. 430–439.
[4] Jones, G., Princen, J., Illingworth, J., Kittler, J., 1990. Robust estimation of shape parameters. In:
Proc. British Machine Vision Conf., pp. 43– 48.
[5] Fischer, M., Bolles, R., 1981. Random sample consensus: A paradigm to model fitting with
applications to image analysis and automated cartography. CACM 24 (6), 381–395.
[6] Bongiovanni, G., and Crescenzi, P.: Parallel Simulated Annealing for Shape Detection, Computer
Vision and Image Understanding, vol. 61, no. 1, pp. 60-69, 1995.
[7] Roth, G., Levine, M.D., 1994. Geometric primitive extraction using a genetic algorithm. IEEE Trans.
Pattern Anal. Machine Intell. 16 (9), 901–905.
[8] Peura, M., Iivarinen, J., 1997. Efficiency of simple shape descriptors. In: Arcelli, C., Cordella, L.P., di
Baja, G.S. (Eds.), Advances in Visual Form Analysis. World Scientific, Singapore, pp. 443–451.
[9] Muammar, H., Nixon, M., 1989. Approaches to extending the Hough transform. In: Proc. Int. Conf.
on Acoustics, Speech and Signal Processing ICASSP_89, vol. 3, pp. 1556–1559.
[10] T.J. Atherton, D.J. Kerbyson, “Using phase to represent radius in the coherent circle Hough
transform”, Proc, IEE Colloquium on the Hough Transform, IEE, London, 1993.

17

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

[11] Shaked, D., Yaron, O., Kiryati, N., 1996. Deriving stopping rules for the probabilistic Hough
transform by sequential analysis. Comput. Vision Image Understanding 63, 512–526.
[12] Xu, L., Oja, E., Kultanen, P., 1990. A new curve detection method: Randomized Hough transform
(RHT). Pattern Recognition Lett. 11 (5), 331–338.
[13] Han, J.H., Koczy, L.T., Poston, T., 1993. Fuzzy Hough transform. In: Proc. 2nd Int. Conf. on Fuzzy
Systems, vol. 2, pp. 803–808.
[14] Becker J., Grousson S., Coltuc D., 2002. From Hough transforms to integral transforms. In: Proc. Int.
Geoscience and Remote Sensing Symp., 2002 IGARSS_02, vol. 3, pp. 1444–144.
[15] Ayala-Ramirez, V., Garcia-Capulin, C. H., Perez-Garcia, A. and Sanchez-Yanez, R. E. Circle
detection on images using genetic algorithms. Pattern Recognition Letters, 2006, 27, pp. 652–657.
[16] Dasgupta, S., Das, S., Biswas A. and Abraham, A. Automatic circle detection on digital images whit
an adaptive bacterial foraging algorithm. Soft Computing, 2009, DOI 10.1007/s00500-009-0508-z.
[17] Holland, J.H., Adaptation in Natural and Artificial Systems, University of Michigan Press, Ann
Arbor, MI, 1975.
[18] K. Price, R. Storn, A. Lampinen, Differential Evolution a Practical Approach to Global
Optimization, Springer Natural Computing Series, 2005.
[19] J. Kennedy, R. Eberhart, Particle swarm optimization, in: IEEE International Conference on Neural
Networks (Piscataway, NJ), 1995, pp. 1942–1948.
[20] M. Dorigo, V. Maniezzo, A. Colorni, Positive feedback as a search strategy, Technical Report 91016, Politecnico di Milano, Italy, 1991.
[21] Liu Y, Passino K. Biomimicry of social foraging bacteria for distributed optimization: models,
principles, and emergent behaviors. J Optim Theory Appl 115(3):603–628, 2002.
[22] D. Karaboga. An idea based on honey bee swarm for numerical optimization, technical reportTR06,Erciyes University, Engineering Faculty, Computer Engineering Department 2005.
[23] N. Karaboga. A new design method based on artificial bee colony algorithm for digital IIR filters.
Journal of the Franklin Institute 346 (2009) 328–348.
[24] S. L. Ho, S. Yang. An artificial bee colony algorithm for inverse problems. International Journal of
Applied Electromagnetics and Mechanics, 31 (2009) 181–192.
[25] Ying-ping Chen, Pei Jiang. Analysis of particle interaction in particle swarm optimization.
Theoretical Computer Science 411(21), 2010, 2101-2115.
[26] Hongnian Zang, Shujun Zhang, Kevin Hapeshia. A Review of Nature-Inspired Algorithms. Journal
of Bionic Engineering 7(1), 2010, S232-S237.
[27] Josef Tvrdík. Adaptation in differential evolution: A numerical comparison. Applied Soft Computing
9(3), 2009, 1149-1155.
[28] Arijit Biswas, Swagatam Das, Ajith Abraham, Sambarta Dasgupta. Stability analysis of the
reproduction operator in bacterial foraging optimization. Theoretical Computer Science 411, 2010, 21272139.
[29] D. Karaboga, B. Basturk. On the performance of artificial bee colony (ABC) algorithm. Applied soft
computing, Volume 8, Issue 1, January 2008, Pages 687-697.

18

Please cite this article as:
Cuevas, E., Sención-Echauri, F., Zaldivar, D., Pérez-Cisneros, M. Multi-circle detection on images using artificial bee
colony (ABC) optimization, Soft Computing, 16 (2), (2012), pp. 281-296.

[30] D. Karaboga, B. Akay. A comparative study of Artificial Bee Colony algorithm. Applied
Mathematics and Computation 214 (2009) 108-132.
[31] Bresenham, J.E.: A Linear Algorithm for Incremental Digital Display of Circular Arcs.
Communications of the ACM 20, 100-106. (1987).
[32] Van Aken, J R. Efficient ellipse-drawing algorithm, IEEE Comp, Graphics applic., 2005. 4, (9), pp.
24-35.
[33] Aytug, H., Koehler, G.J.: New stopping criterion for genetic algorithms. European Journal of
Operational Research 126 (2000) 662–674.
[34] Greenhalgh, D., Marshall, S.: Convergence criteria for genetic algorithms. SIAM Journal on
Computing 20 (2000) 269–282.
[35] Wilcoxon F (1945) Individual comparisons by ranking methods. Biometrics 1:80–83.
[36] Garcia S, Molina D, Lozano M, Herrera F (2008) A study on the use of non-parametric tests for
analyzing the evolutionary algorithms’ behaviour: a case study on the CEC’2005 Special session on real
parameter optimization. J Heurist. doi:10.1007/s10732-008-9080-4.
[37] J. Santamaría, O. Cordón, S. Damas, J.M. García-Torres, A. Quirin, Performance Evaluation of
Memetic Approaches in 3D Reconstruction of Forensic Objects. Soft Computing, DOI: 10.1007/s00500008-0351-7, in press (2008).

19

