Vous êtes sur la page 1sur 13

ALGORITMO PARA DETECCIN DE BORDES Y ULTERIOR

DETERMINACIN DE OBJETOS EN IMGENES DIGITALES


Ledda I. Larcher
1
, Enrique M. Biasoni
1
, Carlos A. Cattaneo
1
, Ana I. Ruggeri
2
, A.
Cecilia Herrera
1

1
Facultad de Agronoma y Agroindustrias, Universidad Nacional de Santiago del Estero, Av.
Belgrano Sud 1927, G4200ABT Santiago del Estero, Argentina, llarcher@unse.edu.ar,
http://faa.unse.edu.ar
2
Facultad de Ciencias Exactas y Tecnologa, Universidad Nacional de Santiago del Estero, Av.
Belgrano Sud 1927, G4200ABT Santiago del Estero, Argentina, http://fce.unse.edu.ar
Palabras clave: procesamiento de imgenes, segmentacin
Se considera a una imagen bidimensional como una funcin que, a cada par de coordenadas
(i,j), le asocia un valor relativo a alguna propiedad del punto que representa. Dependiendo de la
ubicacin de los pxeles y de los valores que tienen, se definen relaciones de vecindad y
conectividad entre los mismos.
En este trabajo se propone un algoritmo para la segmentacin de imgenes digitales binarias con
el objetivo de reconocer objetos, para lo que se utiliza el concepto de conectividad.
El algoritmo desarrollado inspecciona una imagen pxel a pxel examinando aquellos que no
hayan sido asignados a ningn objeto. Se realiza un recorrido secuencial de la matriz imagen
(M) y, para cada pxel M(i, j) con valor 1, se agregan sus coordenadas a una lista. A
continuacin, usando el concepto de 8-vecindad, se inspeccionarn los vecinos buscando
aquellos con valor 1; por cada uno que se encuentre se lo agrega a la lista, guardando sus
coordenadas y asocindolas a M(i, j). Las coordenadas de los vecinos recientemente
incorporados sern usadas para repetir el proceso de bsqueda de vecinos conectados a stos. Al
terminar de verificar los pxeles conectados al originalmente encontrado, se han almacenado las
coordenadas de cada uno de los pxeles que forman un objeto. De esta manera, cada elemento
de la lista es un objeto. Luego se retorna al recorrido secuencial de la matriz original, buscando
nuevos pxeles con valor 1, que no hayan sido previamente agregados y se repite el proceso de
bsqueda de vecinos conectados.
El programa desarrollado result robusto y con bajo consumo computacional. Actualmente se
trabaja en la introduccin de nuevas funciones que permitan trabajar con imgenes en escala de
grises y color.
1 INTRODUCCIN
La visin artificial tiene como finalidad la extraccin de informacin del mundo
fsico a partir de imgenes, utilizando para ello una computadora.
Un sistema de visin artificial acta sobre una representacin de una realidad que le
proporciona informacin sobre brillo, colores, formas, etctera. Estas representaciones
suelen estar en forma de imgenes estticas, escenas tridimensionales o imgenes en
movimiento. Se trabajar sobre imgenes estticas.
La digitalizacin, es el proceso de paso del mundo continuo (o analgico) al mundo
discreto (o digital) mediante el cual se genera una imagen bidimensional, que es una
funcin que a cada par de coordenadas (x, y) asocia un valor relativo a alguna propiedad
del punto que representa (por ejemplo su brillo o su matiz).
2 ETAPAS DE UN SISTEMA DE VISIN ARTIFICIAL
Se sabe que el ser humano captura la luz a travs de los ojos, y que esta informacin
circula a travs del nervio ptico hasta el cerebro, donde se procesa. Existen razones
para creer que el primer paso de este procesado consiste en encontrar elementos ms
simples en los que descomponer la imagen (como segmentos y arcos). Despus el
cerebro interpreta la escena y por ltimo acta en consecuencia. La visin artificial, en
un intento de reproducir este comportamiento, define tradicionalmente cuatro fases
principales:
La primera fase, que es puramente sensorial, consiste en la captura o
adquisicin de las imgenes digitales mediante algn tipo de sensor.
La segunda etapa consiste en el tratamiento digital de las imgenes, con
objeto de facilitar las etapas posteriores. En esta etapa de procesamiento
previo es donde, mediante filtros y transformaciones geomtricas, se eliminan
partes indeseables de la imagen o se realzan las partes de inters.
La siguiente fase, conocida como segmentacin, consiste en aislar los
elementos que interesan de una escena para comprenderla.
Por ltimo se encuentra la etapa de reconocimiento o clasificacin, en la que
se pretende distinguir los objetos segmentados, gracias al anlisis de ciertas
caractersticas que se establecen previamente para diferenciarlos.
Estas cuatro fases no se siguen siempre de manera secuencial sino que, en ocasiones,
suelen retroalimentarse (Figura 1). As, puede ser necesario volver a la etapa de
segmentacin si falla la etapa de reconocimiento, o a la de preproceso, o incluso a la de
captura.


captura

preproceso

Segmentacin

Reconocimiento

Figura 1. Fases de un sistema de visin artificial
Las imgenes digitales son seales discretas, que suelen tener origen en una
seal continua.
En el proceso de obtencin de imgenes digitales se distinguen dos etapas. La
primera, conocida como captura, utiliza un dispositivo, generalmente ptico, con el que
obtiene informacin relativa a una escena. En la segunda etapa, que se conoce como
digitalizacin, se transforma esa informacin, que es una seal con una o varias
componentes continuas, en la imagen digital, que es una seal con todas sus
componentes discretas.
2.1 Muestreo
La obtencin de una imagen digital se realiza mediante un proceso denominado
muestreo.
De esta manera se convierte una imagen
C
I , que es algo continuo, en una matriz
discreta
D
I de NxM pxeles. El nmero de muestras por unidad de espacio sobre el
objeto original lleva al concepto de resolucin espacial de la imagen, definida como la
distancia entre dos pxeles adyacentes, sobre el objeto original.
De esta forma, el proceso de muestreo para una imagen, que asocia a cada punto un
valor real, cambia una imagen del formato (ecuacin 1):
R y x I
C
e ) , ( donde R y x e , (1)
al formato:
R y x I
D
e ) , ( donde N y x e , y 1 0 , 1 0 s s s s M y N x
que se puede representar en forma matricial (ecuacin 2):


|
|
|
|
|
.
|

\
|


=
) 1 , 1 (
) 1 , 2 (
) 1 , 1 ( ...
) 1 , 1 (
) 1 , 2 (
) 1 , 1 (
) 0 , 1 (
...
) 0 , 2 (
) 0 , 1 (
) , (
M N I
M I
M I
N I
I
I
N I
I
I
y x I
D
D
D
D
D
D
D
D
D
D
(2)
3 RELACIONES BSICAS ENTRE PXELES
Dependiendo de la situacin de los pxeles y de los valores que tienen, se definen
ciertas relaciones de vecindad y conectividad.
3.1 Vecindad
Para todo punto p de coordenadas (x, y) se dice que un pxel q pertenece a sus 4-
vecinos y se escribe ) (
4
p N qe si y slo si q tiene las coordenadas indicadas en la
ecuacin 3:
) , 1 ( y x o ) 1 , ( y x o ) , 1 ( y x + o ) 1 , ( + y x (3)
Para todo punto p de coordenadas (x, y) se dice que un pxel q pertenece a sus 8-
vecinos y se escribe ) (
8
p N qe si y slo si q tiene coordenadas (ecuacin 4):
) , 1 ( y x o ) 1 , ( y x o ) , 1 ( y x + o ) 1 , ( + y x o ) 1 , 1 ( y x o ) 1 , 1 ( + y x
o ) 1 , 1 ( + y x o ) 1 , 1 ( + + y x (4)
Las figuras 2 y 3 muestran lo enunciado:
2
4 5
7
Figura 2. Un pxel y sus 4 vecinos

1 2 3
4 5
6 7 8
Figura 3. Un pxel y sus 8 vecinos
3.2 Conectividad
Se ha visto que una imagen se asimila a una matriz, cada uno de cuyos elementos es
un pxel. Entre los pxeles de esta matriz se puede definir una relacin que define dos
pxeles como conectados cuando son vecinos y sus valores son similares desde algn
punto de vista. Formalmente (ecuacin 5), se define un conjunto V que representa los
valores compatibles para que dos pxeles que sean vecinos se diga que estn conectados:
V = {Valores de los pxeles que definen conectividad} (5)
Se dice que dos pxeles p y q con valores en V estn 4-conectados si ) (
4
p N qe .
Se dice que dos pxeles p y q con valores en V estn 8-conectados si ) (
8
p N qe .
El uso de la 8 conectividad puede dar lugar a ciertas ambigedades en ciertos anlisis
de conectividad. Para eliminar esta ambigedad se define la m-conectividad.
Se dice que dos pxeles p y q con valores en V estn m-conectados si | | ) (
4
p N qe o
| | ( ) ) ( ) ( / ) (
4 4 8
p N q N x x y p N q e e x no tiene valores en V. Es decir estn m-
conectados si estn cuatro conectados o si estn 8 conectados y no tienen ningn 4
vecino comn 4 conectado.
3.3 Camino
Un camino desde el pxel p, de coordenadas (x, y), al pxel q, de coordenadas (s, t), es
una secuencia de pxeles distintos de coordenadas (ecuacin 6):
(x
0
, y
0
), (x
1
, y
1
), ... , (x
n
, y
n
) (6)
Donde (x
0
, y
0
)=(x, y) y (x
n
, y
n
)=(s, t) y (x
i
, y
i
) est conectado a (x
i-1
, y
i-1
), siendo n la
longitud del camino. Se puede hablar de 4, 8 y m-caminos dependiendo del tipo de
conexin involucrada.
3.4 Componente conexa
Para todo pxel p de una imagen, el conjunto de los pxeles hasta los que hay un
camino desde p se dice que forman su componente conexa. Adems se cumple que dos
componentes conexas distintas tienen conjuntos de pxeles disjuntos (Vlez Serrano et
al., 2003).
4 SEGMENTACIN
El fin ltimo de la mayora de las aplicaciones computarizadas es la identificacin de
objetos nicos en la imagen que sean relevantes para la aplicacin especfica. La
segmentacin se refiere al proceso de separar los objetos de inters del fondo de la
imagen. Pueden usarse varias tcnicas, que varan desde lo ms simple (como
umbralizado y mscaras) a lo ms complejo (como la deteccin de bordes). La literatura
contiene cientos de tcnicas de segmentacin pero no existe un mtodo nico que pueda
considerarse ptimo para todo tipo de imgenes (Bovick, 2009) Los mtodos de
segmentacin varan dependiendo de la modalidad de la imagen, el dominio de
aplicacin y otros factores especficos. Mientras que algunos mtodos emplean tcnicas
de reconocimiento de patrones basadas en intensidad pura, tales como el umbralizado
seguido del anlisis de componentes conectados (Higgins et al. 1989, Niki et al. 1993),
otros mtodos aplican modelos especficos para extraer informacin (Molina et al.
1994, Klein et al., 1997). Dependiendo de la calidad de la imagen y de factores
generales como -por ejemplo- el ruido, algunos mtodos de segmentacin podran
requerir un pre procesamiento de la imagen antes de aplicar el algoritmo de
segmentacin (Guo y Richardson, 1998, Sato et al., 1998). Por otra parte, algunos
mtodos aplican post procesamiento para resolver problemas que surgieran de una
sobre-segmentacin. Sobre todo, los mtodos de segmentacin pueden ser ampliamente
categorizados en basados en un punto, basados en bordes y basados en regiones
(Bovick, 2009)
La segmentacin es el proceso que divide una imagen digital en regiones
homogneas con respecto a una o ms caractersticas (como, por ejemplo, el brillo o el
color) con el fin de facilitar un posterior anlisis o reconocimiento automtico.
Localizar la cara de una persona dentro de la imagen de una fotografa o encontrar los
lmites de una palabra dentro de una imagen de un texto, son ejemplos de problemas de
segmentacin.
De acuerdo a Baxes (1994), la segmentacin debe verse como un proceso que, a
partir de una imagen, produce otra en la que cada pxel tiene asociada una etiqueta
distintiva del objeto al que pertenece. As, una vez segmentada una imagen, se podra
formar una lista de objetos consistentes en las agrupaciones de los pxeles que tengan la
misma etiqueta.
La segmentacin termina cuando los objetos extrados de la imagen se corresponden
unvocamente con las distintas regiones disjuntas a localizar en la misma. En este caso
se habla de segmentacin completa de la escena o imagen y en el caso contrario, de
segmentacin parcial. En una escena compleja, el resultado de la segmentacin podra
ser un conjunto de regiones homogneas superpuestas y en este caso, la imagen
parcialmente segmentada deber ser sometida despus a un tratamiento posterior con el
fin de conseguir una segmentacin completa.
El proceso de segmentacin de una imagen depende del problema que se desee
resolver. Por ejemplo, sobre una imagen de una pgina de texto se pueden segmentar las
palabras y los caracteres que las forman (si se desea hacer OCR de los mismos), o los
logotipos y membretes (si se desea clasificar el documento), etc. Por ello, dentro de una
misma imagen pueden realizarse diferentes segmentaciones.
5 ALGORITMO
Utilizando el concepto de componente conexa, se puede plantear el detectar los
objetos presentes en una imagen al encontrar las componentes conexas de la misma.
Esto ocurre cuando los objetos tienen un color uniforme y distinto del fondo, lo que
permite asegurar que los contornos del objeto se corresponden con los bordes de la
componente conexa. En el caso de imgenes en blanco y negro las componentes
conexas suelen corresponder a los objetos directamente.
Se usa una matriz O, cuyo tamao cambiar a lo largo de la ejecucin del programa.
En ella se almacenarn las coordenadas de los pxeles que componen a los diferentes
objetos.
Se toma una imagen digital binarizada, representada en una matriz I de NxM pxeles,
y se recorre de izquierda a derecha, de arriba hacia abajo.
La inspeccin de vecinos se realiza tomando como casos especiales las esquinas
superiores derecha e izquierda, los bordes izquierdo y derecho, las esquinas inferiores
izquierda y derecha y el borde inferior.
Se recorre la matriz I elemento a elemento.
Para cada pxel p(i, j) = 1 se anotan sus coordenadas en una lista y se buscan entre
sus 8 vecinos aquellos que estn conectados.
Cada vecino v(k, l) que se encuentra con el valor 1, es agregado a la matriz O, a
continuacin del pxel p(i,j). En este momento, el inters se centrar en el pxel v(k, l)
para quien se buscarn los vecinos distintos de cero. A medida que se los encuentre, se
chequea que no hayan sido previamente seleccionados y se los agrega a la matriz O
pasando a ser el nuevo pxel de inters.
A efectos de no agregar pxeles repetidos (con el consecuente consumo de memoria)
ni inspeccionar pxeles ya chequeados (lo que insumira tiempo computacional), cada
uno es anulado en el momento de agregarlo a la lista.
El proceso se repite hasta no encontrar ms vecinos conectados. En este momento se
incrementa el ndice fila de la matriz O que, de esta manera, almacena un trayecto por
fila, cada uno de stos ser considera un objeto de la imagen.
El algoritmo retorna el control al recorrido general de la matriz, pasando p(i, j+1) a
ser el nuevo pxel de inters y se contina el recorrido secuencial sobre I.
La figura 4 muestra el diagrama de bloques del proceso descrito y puede observarse
en la figura 5 un ejemplo prctico




Figura 4. Diagramas de los diferentes procesos. Slo se presenta la rutina vec5 ya que slo deben cambiarse los ndices











Figura 5. Matriz I con la lista de objetos encontrados. Por cada objeto se listan las coordenadas de cada
elemento
6 RESULTADOS
El algoritmo presentado se program usando Matlab utilizando una PC con
procesador Intel Core2 Quad Q8200 con 2 Gigabytes de RAM.
Para realizar el conteo de objetos se utilizaron imgenes color, que fueron sometidas
a un pre-procesamiento usando algoritmos de umbralizado por entropas de Shannon y
el mtodo de Otsu con el objetivo de obtener imgenes binarizadas. (Figuras..)
Las imgenes en formato jpg se transforman a matrices para su procesamiento.
A partir de imgenes generadas por simulacin de crecimiento de granos (Cattaneo y
Silvetti, 2009), se obtuvo la figura 6, que representa un crecimiento de granos en
aluminio a 773 K con 20 orientaciones cristalogrficas distintas en un tiempo de
simulacin de 480 lazos. En la Figura 7 puede observarse el resultado del pre
procesamiento. Por ltimo, la Figura 8 se muestra el conteo manual, que coincide con el
nmero de granos encontrados por el programa (44 objetos). La imagen es de 300 x 300
y el tiempo de procesamiento fue de 31 minutos
Al 773 K - 20 orientaciones - t=480
50 100 150 200 250 300
50
100
150
200
250
300

Figura 6. Crecimiento de granos en aluminio a 773 K con 20 orientaciones cristalogrficas distintas en un
tiempo de simulacin de 480 lazos
(1,2) (1,3) (2,3) (2,4) (1,5) (2,5)
(4,6) (4,7)
(6,3) (6,4) (7,2) (6,5) (7,5)
Cantidad de
objetos
encontrados
Cantidad de elementos en cada
objeto


Figura 7. Imagen binarizada Figura 8. Conteo manual de objetos
A los fines de probar la eficacia se utiliz la Figura 9 que tiene como dimensiones
440x231 pxeles. Los resultados entre el conteo usando el programa y el realizado
manualmente coincidieron (12 objetos) y fue realizado en 173 segundos.


Figura 9
A continuacin se prob utilizando la Figura 10 en la que, no slo vara la cantidad
de objetos, sino tambin el tamao de los mismos. Los resultados obtenidos no
coincidieron con el conteo manual, aunque una verificacin posterior permiti
determinar que se deba a defectos en la conexin de los pxeles, como se muestra en la
Figura 11. El tiempo de procesamiento fue de 442 segundos para una imagen de
450x470 pxeles.

Figura 10
7 CONCLUSIONES
El programa demostr, alta eficiencia en distintas aplicaciones, siendo el tiempo
computacional directamente proporcional al tamao de los objetos.
El proceso es altamente dependiente de una correcta umbralizacin como pudo
comprobarse al usar la figura 10 sin realizar umbralizado. En la Figura 11 se muestra la
distorsin y diferentes tonos de gris para que el ojo humano perciba al grupo de pxeles
como una curva; durante el procesamiento, los niveles de gris muy claros eran tomados
como blanco, los oscuros como negro resultando as pequeos objetos separados, por lo
que el conteo era incorrecto.

Figura 11. Imagen sin umbralizar y detalle de uno de los objetos
Al probar el funcionamiento del programa, con una matriz diseada como una matriz
cuadrada con la diagonal principal de valor 1 (uno) el resultado es correcto; sin embargo
si la situacin fuera al contrario (que la diagonal principal se encuentre en cero
dividiendo la matriz en dos objetos), el conteo obtenido es incorrecto debido a la
comprobacin del vecino 6, con lo que se contabiliza como si fuera un objeto nico.
(Ver Figura 12). Sin embargo situaciones de este tipo (objetos con slo un pxel de
separacin entre los mismos) son muy poco probables en imgenes reales.
El equipo de investigacin se encuentra en este momento trabajando en la resolucin
del problema antes mencionado, as como en la relacin rea permetro para evitar
contar como nico dos objetos solapados.

1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

0 1 1 1
1 0 1 1
1 1 0 1
1 1 1 0

Figura 12. Situacin problemtica al comprobar los vecinos
REFERENCIAS
G.A. Baxes, Digital Image Processing: Principles and Applications, J. Wiley & Sons,
1994.
A. Bovik The essential guide to image processing. Academic Press, 2009.
C. A. Cattaneo, S. P. Silvetti. Efectos de la difusin en borde de grano en el crecimiento
anormal de grano. Mecnica Computacional XXVIII: 2425-2433, 2009
D. Guo and P. Richardson. Automatic vessel extraction from angiogram images. IEEE
Comput. Cardiol., 25:441444, 1998.
W. E. Higgins,W. J. T. Spyra, E. L. Ritman, Y. Kim, and F. A. Spelman. Automatic
extraction of the arterial tree from 3-D angiograms. IEEE Conf. Eng. Med. Biol.,
2:563564, 1989.
A. K. Klein, F. Lee, and A. A. Amini. Quantitative coronary angiography with
deformable spline models. IEEE Trans. Med. Imaging, 16:468482, 1997.
C. Molina, G. Prause, P. Radeva, and M. Sonka. 3-D catheter path reconstruction from
biplane angiograms. SPIE, 3338:504512, 1998.
N. Niki, Y. Kawata, H. Satoh, and T. Kumazaki. 3D imaging of blood vessels using x-
ray rotational angiographic system. IEEE Med. Imaging Conf., 3:18731877, 1993.
Y. Sato, S.Nakajima, N. Shiraga, H. Atsumi, S.Yoshida, T. Koller, G. Gerig, and R.
Kikinis. 3Dmultiscale line filter for segmentation and visialization of curvilinear
structures in medical images. IEEE Med. Image Anal., 2:143168, 1998.
J. F. Vlez Serrano, A. B. Moreno Daz, . Snchez Calle, J. L. Esteban Snchez-
Marn. Visin por computador. Editorial Dykinson, 2003

Vous aimerez peut-être aussi