Вы находитесь на странице: 1из 5

Deteccin de crculos usando

Autmatas de aprendizaje
Erik Cuevas, Fernando Wario, Daniel Zaldivar y Marco Prez-Cisneros
Departamento de Ciencias Computacionales
Universidad de Guadalajara, CUCEI
Av. Revolucin 1500, Guadalajara, Jal, Mxico
{erik.cuevas, fernando.wario, daniel.zaldivar, marco.perez}cucei.udg.mx
Resumen
La deteccin de crculos en imgenes digitales ha recibido una atencin considerable en los
ltimos aos en el rea de visin por computadora. Por otra parte los Autmatas de
Aprendizaje (LA por su nombre en ingls Learning Automata) son un mtodo heurstico que
puede ser utilizado para encontrar la solucin a complejos problemas de optimizacin. LA es
una tcnica para la adaptacin de parmetros en optimizacin, donde la bsqueda se lleva a
cabo en el espacio probabilstico en lugar del espacio de parmetros como sucede en otros
algoritmos de optimizacin tradicionales. En este trabajo, se presenta un detector de crculos
basado en LA en el cual el proceso de deteccin es abordado de manera similar a un proceso
de optimizacin. El algoritmo utiliza la combinacin de tres puntos que forman parte de un
borde como los parmetros de crculos candidatos (x, y, r), mientras que una funcin objetivo
determina si estos crculos candidatos se encuentran en realidad presentes en la imagen. De
esta manera el esquema de parmetros reduce el espacio de bsqueda evitando probar con
crculos que resultan poco probables o imposibles. El algoritmo resultante permite detectar
crculos a alta velocidad con precisin a nivel sub-pixel, incluso en condiciones complicadas.
1. Introduccin.
El problema de deteccin de crculos se presenta en diferentes reas del procesamiento de
imgenes y es de particular importancia en aplicaciones de tipo industrial como la inspeccin
automtica de productos manufacturados, vectorizacin asistida de dibujos, deteccin de
objetivos, etc. Los problemas de deteccin de objetos son resueltos principalmente por dos
tipos de tcnicas: Las primeras son tcnicas determinsticas, incluyendo aquellos mtodos
basados en la transformada de Hough y tcnicas de ajuste de modelos. Por otro lado estn las
tcnicas estocsticas, incluyendo tcnicas de muestreo aleatorio y algoritmos genticos (GA
por su nombre en ingls: Genetic Algorithms).
Tradicionalmente, la deteccin de crculos en imgenes digitales se lleva a cabo con el mtodo
de la transformada circular de Hough [1]. Un mtodo tpico basada en la transformada de
Hough comienza obteniendo el mapa de bordes de la imagen, la informacin obtenida se utiliza
para deducir la ubicacin de los centros (x, y) y los valores de los radios (r), por ltimo se lleva
a cabo la deteccin de mximos. La desventaja de este mtodo es la alta demanda de recursos
computacionales. La exactitud en los parmetros obtenidos por esta clase de sistemas es
pobre, particularmente en presencia de ruido y debido a la alta demanda de recursos
computacionales esta opcin es totalmente inadecuada para procesamientos en tiempo real.
Con la intencin de evitar estos problemas, algunos investigadores han propuesto nuevas
variaciones a la transformada de Hough, entre ellas la probabilistic Hough transform [2].
Como una alternativa a las tcnicas basadas en la transformada de Hough, el problema de
deteccin de formas en el rea visin por computadora ha sido tambin abordado con mtodos
de bsqueda estocsticos. En particular GA, los cuales han sido utilizados recientemente en
importantes tareas de reconocimiento de formas e.g. Roth y Levine propusieron el uso de GA
en la extraccin de primitivas en imgenes [3]. Yao et al propusieron un GA multi-poblacin
para detectar elipses [4]. Ayala-Ramirez et al presentaron un detector de crculos basado en
GA [5]. Su propuesta es capaz de detectar mltiples crculos en imgenes reales, pero falla
frecuentemente en la deteccin de crculos imperfectos. El inters de utilizar los algoritmos de
LA surge del hecho de que en ellos la bsqueda del valor ptimo se realiza en un espacio de
probabilidades en lugar de un espacio de parmetros como sucede en otros algoritmos de

optimizacin. Cabe destacar que los algoritmos de LA han sido utilizados para resolver
diferentes problemas de ingeniera [6]. Recientemente, se han propuesto algunos algoritmos
basados en LA que resultan efectivos para la optimizacin de complejas funciones con
mltiples mnimos (vea [7]). Adems, se ha demostrado experimentalmente que el desempeo
de estos algoritmos de optimizacin es comparable o mejor que el de los algoritmos genticos
en [7].
2. Autmatas de Aprendizaje
En la figura 1 se muestra la arquitectura tpica de un sistema LA. El autmata selecciona de
manera probabilstica una accin (X). Dicha accin es aplicada al ambiente, y la funcin de
evaluacin del desempeo provee una seal de refuerzo . Esta seal es utilizada para
actualizar la distribucin de probabilidades interna del autmata, de forma tal que aquellas
acciones que obtienen un desempeo favorable son recompensadas incrementando su
probabilidad, mientras que aquellas con un desempeo no favorable son penalizadas o su
probabilidad permanece sin cambios, dependiendo del mtodo de aprendizaje empleado. Con
el tiempo, el desempeo promedio del sistema se ver mejorado hasta llegar a un lmite. En
trminos de optimizacin, la accin que resulte con la mayor probabilidad representara el
mnimo global.

Ambiente
aleatorio

Conjunto de
acciones
X

Costo
J

Evaluacin
desempeo

Automata
De
aprendizaje

Fig 1. Sistema de aprendizaje por reforzamiento

Existen una gran cantidad de algoritmos para el aprendizaje en los LA, uno de los ms
utilizados es el de linear reward/inaction ( LRI ) scheme, del cual ha sido demostrada su
convergencia [7]. En respuesta a la accin xi seleccionada en el instante n, las probabilidades
son actualizadas de la siguiente manera:

pi (n + 1) = pi (n ) + (n ) (1 pi ( n ))

(1)

p j (n + 1) = p j (n ) (n ) p j (n ) , si i j
Donde es un parmetro de aprendizaje y 0 < < 1 y [0,1] es la seal de refuerzo; si
= 1 significa que se obtuvo la mejor respuesta del ambiente, de manera contraria = 0 es
una respuesta nula. Eventualmente la probabilidad de acciones exitosas se incrementar hasta
aproximarse a la unidad. En caso de que una sola accin resulte exitosa durante mucho
tiempo, se considera que el autmata ha convergido.
3. Deteccin de crculos con LA

La primera tarea del algoritmo consiste en obtener el mapa de bordes por medio del algoritmo
de Canny, los puntos obtenidos son los nicos candidatos potenciales para la definicin de
crculos. Con el objetivo de mejorar la velocidad del algoritmo se eligen de manera aleatoria un
porcentaje representativo de los puntos-borde (alrededor del 5%) de la imagen, las

coordenadas de estos puntos son archivados en un vector P = p1 , p2 , , pN p

} con

N p como el

nmero de puntos-borde tomados. Con el fin de construir cada crculo candidato (accin en el
caso del enfoque para LA), se generan todas las combinatorias posibles de 3 elementos de los
puntos-borde, as se asume que el contorno del crculo (accin) pasa por los puntos elegidos
pi , p j y pk , las acciones generadas hasta el momento son codificadas en las coordenadas del
centro x0 , y0 y radio r del crculo que pasa por los tres puntos, estos parmetros pueden ser
calculados con las siguientes ecuaciones:

x0 =

det( A )
det(B)
, y0 =
,
4(( x j xi )( y k y i ) ( xk xi )( y j y i ))
4(( x j xi )( y k y i ) ( xk xi )( y j y i ))

(2)

r = ( x0 xd )2 + ( y 0 y d )2 ,

(3)

donde

x 2 + y 2j ( x 2j + y i2 ) 2 ( y j y i )
2 ( x j xi ) x 2j + y 2j ( xi2 + y i2 )
(4)
,
A = 2j
B
=

2
2
2
2
2
2
2
xk + y k ( xi + y i ) 2 ( y k y i )
2 ( xk xi ) xk + y k ( xi + y i )
det() es la operacin determinante y d {i, j , k} . La figura 2 muestra los parmetros definidos
por las ecuaciones (2) y (3).

pi

pj

( x0 , y0 )

pk

Fig. 2. Circulo candidato (accin) formado por la combinacin de los puntos pi , p j y pk .

El conjunto de acciones resultante se filtra para eliminar aquellos crculos con un radio fuera de
los limites de inters (eliminando crculos pequeos que generalmente son ruido), adems, el
algoritmo comprueba que todos los crculos considerados como acciones sean distintos, de
esta manera se reduce la cantidad de acciones y por consiguiente el tiempo de ejecucin del
algoritmo, pues se evita que dos acciones con los mismos parmetros compitan entre ellas. La
solucin del LA al problema de deteccin es encontrada mediante la evolucin de las
probabilidades asociadas a cada circulo (accin), las cuales son modificadas de acuerdo a la
seal de refuerzo (C ) obtenida. Para calcular (C ) se generan las coordenadas de los
puntos de la circunferencia correspondiente a la accin elegida. Las coordenadas son
generadas por el midpoint circle algorithm (MCA) [8] y se colocan en el vector
S = {s1 , s2 , , s Ns } , con N s como el nmero de puntos que forman la circunferencia. Despus se
revisa si los puntos del vector S coinciden con puntos en el mapa de bordes y se evala la
siguiente formula:
Ns

E(x , y )
i

(C ) =

i =1

Ns

(5)

Donde E ( xi , yi ) representa la cantidad de puntos de S que coinciden con puntos en el mapa de


bordes; N s es el nmero de pixeles en el permetro del crculo que corresponde a la accin C
que se est evaluando. De ah que el algoritmo busca maximizar a (C ) , dado que un valor
mayor representa una mejor respuesta de circularidad por parte del operador. Se ejecuta el
algoritmo del LA con un limite de ciclos preestablecido, si durante la ejecucin de estos ciclos
una de las acciones elegidas genera un error por debajo de un limite previamente establecido
se toma esta accin como la solucin a este problema, de manera similar, si alguna de las
acciones presenta un valor de probabilidad suficientemente alto como para no ser revertido en
los ciclos restantes, el entrenamiento se interrumpe y se toma dicha accin como la optima; en
caso contrario se ejecutan todos los ciclos y se toma como solucin a nuestro problema de
deteccin de circulo aquella accin con la probabilidad ms alta.
4. Resultados experimentales

Se realizaron una serie de experimentos con el fin de evaluar el desempeo de nuestro


detector de crculos. A continuacin se presentan algunos de los resultados obtenidos con el
sistema. En la figura 3 se muestra el circulo detectado en la imagen en color rojo, adems de la
distribucin de probabilidades de las acciones a lo largo de las iteraciones, se puede apreciar la
convergencia del algoritmo hacia una sola accin.

(a)

(b)

(c)
Fig. 3. Deteccin de un crculo y la evolucin de los parmetros de densidad de probabilidad. (a) Imagen original, (b) el
crculo detectado se muestra en rojo, (c) Evolucin de las densidades de probabilidad.

Una de las ventajas de considerar el problema de deteccin con un enfoque de optimizacin,


es la posibilidad de poder detectar arcos de crculos, crculos ocluidos o bien crculos que
presenten imperfecciones de forma. Esto se debe a que el algoritmo LA es capaz de encontrar
los parmetros del crculo que de acuerdo al valor de probabilidad p ( Ai ) mejor aproximen al
arco, al circulo ocluido o bien al circulo imperfecto. La figura 4a muestra uno de estos
ejemplos, en el cual la figura circular, en este caso la luna muestra parte de su circunferencia
ocluida. Otro de los resultados obtenidos se presenta en la imagen 4b, la imagen consta de 6
objetos, entre ellos 3 crculos, el primero de ellos un crculo casi perfecto, el segundo un crculo
que por encontrarse en una de los extremos de la imagen aparece ocluido y por ltimo una
figura circular dibujada a mano.

(a)

(b)

Fig. 4. Deteccin de crculos en condiciones complejas. (a) Deteccin de crculos ocluidos y (b) crculos dibujados a
mano.

5. Conclusiones

En este artculo hemos presentado un nuevo mtodo para deteccin de crculos basado en LA.
El mtodo es capaz de detectar crculos con precisin a nivel sub-pixel tanto en imgenes
reales como artificiales. El detector de crculos es capaz de detectar de manera confiable
figuras circulares inclusive si estas se encuentran significativamente ocluidas, tambin figuras
circulares dibujadas a mano y arcos. La principal debilidad de nuestro sistema surge con la
bsqueda de crculos pequeos. Este problema se debe a la capacidad de nuestro sistema de
trabajar con crculos imperfectos, es decir, cuando un pequeo sector circular pueda ser
inscrito, ser detectado como un imperfecto pero probable crculo. El comportamiento de
nuestro sistema con respecto a pequeos crculos puede ser ajustado al contexto de trabajo.
Referencias

[1] 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. 15561559.
[2] Shaked, D., Yaron, O., Kiryati, N., 1996. Deriving stopping rules for the probabilistic Hough
transform by sequential analysis. Comput. Vision Image Understanding 63, 512526.
[3] Roth, G. and Levine, M. D.: Geometric primitive extraction using a genetic algorithm. IEEE
Trans.Pattern Anal. Machine Intell. 16 (9), 901905, 1994.
[4] Yao, J., Kharma, N., and Grogono, P.: Fast robust GA-based ellipse detection. In: Proc. 17
Int. Conf. on Pattern Recognition ICPR-04, vol. 2, Cambridge, UK, pp. 859862, 2004.

th

[5] 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, 27, 652657,
2006.
[6] Seyed-Hamid Z., 2008. Learning automata based classifier, Pattern Recognition Letters.
[7] Najim, K., Poznyak, A.S., 1994. Learning Automata - Theory and Applications. Pergamon
Press, Oxford.
[8] J.E. Bresenham: A Linear Algorithm for Incremental Digital Display of Circular Arcs.
Communications of the ACM 20, 100-106. (1987).

Вам также может понравиться