  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.
