apunte completo.pdf

110
Cátedra de Visión Artificial Apuntes de cátedra Universidad Nacional de Quilmes. Ingeniería en Automatización y Control Industrial. IACI 2013.

Upload: artspl

Post on 28-Dec-2015

171 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: APUNTE COMPLETO.pdf

CatedradeVision

ArtificialApuntes de cátedra

Universidad Nacional de Quilmes. Ingeniería en Automatización y Control Industrial. IACI 2013.

Page 2: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Comandos comunes de Matlab para el procesamiento de imágenes 1

Comandos de MatLab utilizados para el procesamiento de imágenes. Cargar imágenes en matrices: A=double(imread(NombreImagen,Formato)); Donde NombreImagen representa el nombre de la imagen con el path completo y

Formato representa el formato de la imagen. La función double se utiliza para poder realizar operaciones con la matriz A que implican números decimales (hay ciertas operaciones que no se pueden hacer con variables del tipo uint8 como lo son los niveles de gris de las imágenes que utilizamos generalmente). El formato de imagen comúnmente utilizado es el tif .

Ejemplo: A=double(imread('C:\MATLAB6p5\toolbox\images\imdemos\circuit.tif','tif')); En el caso de imágenes en formato jpg, se debe hacer un paso más para obtener la i-

magen en escala de grises (debido a la forma en que se almacena la imagen jpg). Ejemplo: A=double(imread('C:\MATLAB6p5\toolbox\images\imdemos\football.jpg','jpg')); A=A(:,:,1); Visualizar imágenes a partir de una matriz: imshow(uint8(A)) Donde A es la matriz que representa la imagen y uint8 se utiliza para convertir los ele-

mentos de A en enteros de 8 bits (256 niveles de gris). Si la imagen ya está en formato uint8 no es necesario usar la función ‘uint8’.

Visualizar más de una imagen en una misma ventana: subplot(2,2,1);imshow(uint8(A)) subplot(2,2,2);imshow(uint8(B)) subplot(2,2,3);imshow(uint8(C)) subplot(2,2,4);imshow(uint8(D)) En este caso, se visualiza un arreglo de imágenes de 2x2. Lo mismo se puede hacer

para ver otro tipo de gráficos. Operaciones con matrices: u=[1 2 3 4]; % Crea un vector columna u=[1;2;3;4]; % Crea un vector fila

Page 3: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Comandos comunes de Matlab para el procesamiento de imágenes 2

A=[1 2 3;4 5 6]; % Crea una matriz de 2x3 con los elementos indicados A=ones(n,m); % Crea una matriz de 1’s de nxm A=ones(n); % Crea una matriz de 1’s de orden n [n,m]=size(A); % Almacena en n y m el número de filas y columnas, respecti-

vamente, de A B=ones(size(A)); % Crea una matriz de 1’s del mismo tamaño de A A=zeros(n,m); % Crea una matriz de 0’s de nxm A=zeros(n); % Crea una matriz de 0’s de orden n B=zeros(size(A)); % Crea una matriz de 0’s del mismo tamaño de A C=A.’; % C es la transpuesta de A # Cuando se trabaja con matrices que no son reales se puede utilizar lo siguiente C=A’; % C es la transpuesta conjugada de A A=B+C; % Suma de matrices A=B-C; % Resta de matrices A=B.*C; % Multiplicación elemento a elemento de matrices B=(A>umbral)*k; % B será una matriz del mismo tamaño de A cuyos elementos

serán 0 o k dependiendo si los elementos análogos de A son mayores que el umbral

A(i,j) representa el elemento de la fila i y la columna j de la matriz A A(i:j,u:v) es la matriz formada por los elementos de la matriz A que se encuentran

entre las filas i y j y las columnas u y v. Ejemplo: Algunas sentencias: Bucle for Generalmente se utiliza en la siguiente forma: for Variable=ValorInicial:Incremento:ValorFinal .... end

=

16151413121110987654321

A

=⇒

121187

)4:3,3:2(A

Page 4: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Comandos comunes de Matlab para el procesamiento de imágenes 3

Ejemplos: nU=10; u=zeros(1,nU); for i=2:2:nU u(i)=u(i-1)+i; end Luego, u=[0 2 0 4 0 6 0 8 0 10]. # Si el incremento es 1 no es necesario explicitarlo (for i=2:nU). Al igual que en la mayoría de los lenguajes de programación se pueden anidar los bu-

cles for. Por ejemplo, for i=1:nA for j=1:mA ........... end end Para establecer los límites y el incremento de la variable que rige el bucle se pueden u-

tilizar expresiones (siempre utilizando paréntesis, como se indica en el ejemplo): i=1; j=1; nU=10; u=zeros(1,nU); for i=(i+j):2:nU u(i)=u(i-1)+i; end Condicional if Su forma general es la que sigue: if Expresión .... elseif Expresión .... else .... end Donde Expresión representa la condición (o condiciones) que debe cumplirse para que

se ejecuten las instrucciones que siguen a continuación. elseif se utiliza para evitar colocar varios if...end. Tanto elseif como else son opcionales.

Para construir la Expresión se pueden utilizar los siguientes operadores: ==, <, >, <=, >=, o ~= (distinto). Ejemplos:

Page 5: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Comandos comunes de Matlab para el procesamiento de imágenes 4

if I == J A(I,J) = 2; elseif abs(I-J) == 1 A(I,J) = -1; else A(I,J) = 0; end También se pueden utilizar los operadores | o & que representan las operaciones or y

and, respectivamente. Ejemplo: for i=1:nC for j=1:mC if (Ruido(i,j)<200 | Ruido(i,j)>255) Ruido(i,j)=0; end end end Funciones y comandos relacionados con las transformadas: Transformada discreta de Fourier en dos dimensiones Fa=fft2(A); Esta función mapea las frecuencias altas en el centro del espectro mientras que las

frecuencias más bajas se encuentran en la periferia. Para colocar la frecuencia cero en el centro del espectro se debe utilizar, además, la función fftshift de la siguiente forma:

Fa=fft2(A); Fa=fftshift(Fa); o Fa=fftshift(fft2(A)); Antitransformada discreta de Fourier en dos dimensiones A=ifft2(Fa); Debido a que Fa es una matriz compleja, al antitransformar pueden quedar ciertos resi-

duos de números imaginarios que se deben a la precisión limitada del cálculo. Esto hace que la imagen resultante esté constituida por algunos píxeles con nivel de gris complejo, algo que es absurdo.

Para evitar esto, se utiliza la función abs que devuelve el módulo de los elementos de una matriz.

A=abs(ifft2(Fa));

Page 6: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Comandos comunes de Matlab para el procesamiento de imágenes 5

Visualización de la transformada discreta de Fourier En realidad, lo que se grafica en tres dimensiones es la magnitud de la transformada

discreta de Fourier. mesh(abs(Fa)) Como en la mayoría de los casos, se utiliza una escala logarítmica en el espacio de

frecuencias. Esto se realiza de la siguiente forma: mesh(log(abs(Fa))) Filtro Digital: Y= filter2(B,X); La función filter2 filtra los datos en X con el núcleo dado por la matriz B. El resultado, Y,

es calculado por medio de una correlación en dos dimensiones y es del mismo tamaño que X.

Generalmente, se debe pasar a la función un parámetro adicional para que devuelva la

parte central de la correlación: Y= filter2(B,X,’same’); Filtro de Mediana: B=medfilt2(A,[M N]); Realiza el filtro de mediana sobre la imagen B. M y N

son el número de filas y el de columnas de la máscara Algunas funciones especiales: b=fix(a); % Toma la parte entera del número a c=round(a); % Redondea al entero más cercano B=min(B,100); % En este ejemplo, min devuelve el valor más bajo entre B y 100 B=max(B,50); % En este ejemplo, max devuelve el valor más alto entre B y 50

=

892709910012

17845255B )100,min(BB =

=⇒

892709910012

10045100B

=

892709910012

10045100B )100,max(BB =

=⇒

8950509910050

10050100B

Page 7: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Comandos comunes de Matlab para el procesamiento de imágenes 6

v=mean(u); % Calcula el promedio del vector u b=mean(A); % Calcula los promedios de las columnas de A. B es un vector

fila b=mean(mean(A)); % Calcula el promedio de la matriz A v=sum(u); % Calcula la suma de los elementos del vector u b=sum(A); % Calcula la suma de las columnas de A. B es un vector fila b=sum(sum(A)); % Calcula la suma de los elementos de A [I,J]=find(A); % Devuelve los índices de las filas y columnas de los

elementos distintos de cero de la matriz A pixval % Muestra las coordenadas y el nivel de gris del píxel señalado

por el puntero del mouse cuando éste se ubica sobre la imagen en una figura

H=hist(A); % Calcula el histograma de A. A debe estar en formato uint8,

de lo contrario, se debe convertir: uint8(A) imhist(A) % Muestra en una figura el histograma de A (que debe ser un

array uint8) Aeq=histeq(A); % Realza la imagen A (que debe ser una matriz de uint8) c=and(a,b); % AND lógica c=and(a>1,b~=0); c=or(a,b); % OR lógico c=or(a>1,b~=0); Algunos ejemplos: for i=2:f-2 for j=2:col-2 C(i,j)=abs([1 1 1]*A((i-1):(i+1),j-1)-[1 1 1]*A((i-1):(i+1),j+1)); end end for i=2:f-2 for j=2:col-2 D(i,j)=abs([1 1 1]*(A(i,(j-1):(j+1)))'-[1 1 1]*(A(i+1,(j-1):(j+1)))'); end end for i=2:f-2 for j=2:col-2 E(i,j)=max(C(i,j),D(i,j)); end

Page 8: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Comandos comunes de Matlab para el procesamiento de imágenes 7

end N2=ones(5)/25; for i=4:f-4 for j=4:col-4 Aux=N2.*A((i-2):(i+2),(j-2):(j+2)); Aux1=0; for h=1:25 Aux1=Aux(h)+Aux1; end H(i,j)=Aux1; end end

Page 9: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Filtrado Espacial 1

Filtrado Espacial Introducción El filtrado espacial es la operación que se aplica a una imagen para resaltar o atenuar

detalles espaciales con el fin de mejorar la interpretación visual o facilitar un procesamien-to posterior, y constituye una de las técnicas comprendidas dentro del realce de imáge-nes. Ejemplos comunes incluyen aplicar filtros para mejorar los detalles de bordes en imá-genes, o para reducir o eliminar patrones de ruido. El filtrado espacial es una operación "local" en procesamiento de imagen, en el sentido de que modifica el valor de cada píxel de acuerdo con los valores de los píxeles que lo rodean; se trata de transformar los nive-les de gris originales de tal forma que se parezcan o diferencien más de los correspon-dientes a los píxeles cercanos.

Frecuencia Espacial La frecuencia espacial define la magnitud de cambios en el nivel de gris por unidad de

distancia en una determinada zona de la imagen. Las áreas de la imagen con pequeños cambios o con transiciones graduales en los valores de los datos se denominan áreas de bajas frecuencias. Las áreas de grandes cambios o rápidas transiciones se conocen como áreas de altas frecuencias (por ejemplo, los bordes). Así, los filtros espaciales se pueden dividir en tres categorías:

- Filtros pasa bajos: enfatizan las bajas frecuencias, suavizando las imágenes y ate-

nuando ruidos. Se trata de asemejar el nivel de gris de cada píxel al nivel de gris de los pí-xeles vecinos, reduciendo la variabilidad espacial de la imagen. Ello produce un borronea-do de los bordes, perdiéndose en nitidez visual de la imagen, pero ganando en homoge-neidad.

- Filtros pasa altos: enfatizan las altas frecuencias, para mejorar o afilar las caracterís-

ticas lineales como los límites en general. Realizan por tanto el efecto contrario a los filtros pasabajos, eliminando las bajas frecuencias.

- Filtro detectores de bordes: realizan otro tipo de operaciones con los píxeles, pero

siempre con el resultado de enfatizar los bordes que rodean a un objeto en una imagen, para hacerlo más fácil de analizar. Estos filtros típicamente crean una imagen con fondo gris y líneas blancas y negras rodeando los bordes de los objetos y características de la imagen.

Convolución Espacial El filtrado espacial se realiza trasladando una matriz rectangular de dos dimensiones

(también llamada ventana, kernel, máscara o núcleo) que contiene "pesos" o ponderacio-nes sobre la imagen en cada localización de píxel. Se evalúa el píxel central de la ventana de acuerdo con los píxeles de alrededor y sus valores de ponderación. Cuando un nuevo valor es así calculado, se desplaza la ventana sobre el siguiente píxel, realizando la mis-

Page 10: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Filtrado Espacial 2

ma operación. Este proceso de evaluar la vecindad ponderada del píxel se denomina "convolución bidimensional", y a la matriz de filtro se le conoce como "kernel de convolu-ción".

En general, la convolución de una imagen f de MxN con una máscara h de mxn está

dada por la siguiente expresión: Por ejemplo, consideremos la máscara de convolu-

ción mostrada en la figura 1 y una imagen genérica re-presentada por f. Dado que m=3 y n=3, a y b son iguales a 1. Teniendo en cuenta todo lo anterior, la respuesta a la máscara de convolución dada, o sea, g(x,y), está da-da por la expresión anterior. Luego, evaluando la res-puesta para un punto cualquiera, por ejemplo, (5,4), ob-tenemos lo siguiente:

Filtros Pasabajos El resultado de aplicar un filtro pasabajos a una imagen es simplemente el promediado

de los píxeles contenidos en el vecindario (o entorno) de la máscara utilizada. Si bien anteriormente se dieron los usos de los filtros pasabajos, generalmente se los

utiliza para atenuar los detalles irrelevantes en una imagen. Otra de las utilidades del filtro pasabajos, aparte de las más obvia que es la atenuación del ruido, es el suavizado de los falsos contornos producidos por una cuantización con un número insuficiente de niveles de gris.

El procedimiento básico del filtro pasabajos es reemplazar el valor de cada píxel en u-

na imagen por el promedio de los niveles de gris del vecindario definido por la máscara. La figura 2 muestra dos máscaras (o núcleos) de 3x3. Usando la primera se obtiene el

promediado estándar de los píxeles abarcados por aquella. Se debe notar que, en lugar de ser 1/9, los coeficientes de la máscara son todos 1’s. Esto se hace así debido a que es más eficiente computacionalmente tener todos los coeficientes con el valor 1. Luego, la i-magen completa se divide por 9 (o sea, por la suma de todos los coeficientes).

( , ) ( , ). ( , )a b

i a j bg x y f x i y j h i j

=− =−

= + +∑ ∑2

1,2

1 −=

−=

nbma

∑∑−= −=

++=1

1

1

1),().4,5()4,5(

i jjihiifg

)1,1().5,6()0,1().4,6()1,1().3,6()1,0().5,5()0,0().4,5()1,0().3,5()1,1().5,4()0,1().4,4()1,1().3,4()4,5(

hfhfhfhfhfhfhfhfhfg

++−++++−+−+−+−−=

Figura 1: Máscara de convolución.

Page 11: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Filtrado Espacial 3

La segunda máscara de la figura 2 produce un promedio ponderado. Como se puede

ver, los píxeles son multiplicados por diferentes coeficientes, dándoles así más importan-cia (peso) a algunos píxeles que a otros. En el caso particular de la máscara de la figura 2, el píxel del centro se multiplica por el valor más alto, mientras que los demás píxeles son pesados teniendo en cuenta la inversa de su distancia al centro. La razón de darle más importancia al píxel central y menos importancia a los píxeles más alejados al centro, radica en la necesidad de reducir el borroneado durante el proceso de suavizado. Como se hacía en el caso anterior, primero se multiplican los píxeles por los coeficientes de la máscara, que son números enteros potencias de 2 (mayor eficiencia, rapidez), y luego se divide por la suma de todos los coeficientes de la máscara, o sea, 16.

En la figura 3 pueden verse los efectos del filtro espacial pasabajos, o suavizado. Te-

niendo en cuenta la imagen original, figura 3 (a), las figuras 3 (b) a 3 (f) son el resultado de filtrar la imagen original utilizando núcleos cuadrados de n=3, 5, 9, 15 y 35, respectiva-mente. Para la máscara de 3x3, notamos un leve borroneado general de la imagen, pero los detalles que tienen aproximadamente el mismo tamaño que el núcleo han sido afecta-dos considerablemente. Para n=9, se ve un borroneado mucho mayor, y también que el 20% del círculo negro casi se confunde con el fondo, ilustrando así el efecto de mezclado que el borroneado produce sobre aquellos objetos cuyos niveles de gris son parecidos a los de sus vecinos. Otro efecto que se puede notar es la reducción del ruido en los rectán-gulos. Para n=15 y 35, se puede ver que el borroneado es excesivo. Este tipo de borrone-ado se utiliza para eliminar los objetos pequeños en una imagen.

Figura 2: Dos máscaras de 3x3 para realizar un filtrado pasabajos (suavizado, promediado)

a) b)

b)a)

Page 12: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Filtrado Espacial 4

Como ya lo mencionamos, una aplicación importante de este tipo de filtrado es el bo-

rroneado de una imagen con el fin de obtener una presentación burda de los objetos de interés, de manera que la intensidad de los objetos pequeños se confunda con la del fon-do y los objetos grandes sean fáciles de detectar.

Por último, presentaremos la implementación general para filtrar una imagen de MxN

con una máscara de promedio ponderado de mxn (m y n impares):

donde el denominador es simplemente la suma de los coeficientes de la máscara y, por lo tanto, una constante que sólo debe calcularse una vez.

∑∑

∑∑

−= −=

−= −=

++= a

ai

b

bj

a

ai

b

bj

jih

jihjyixfyxg

),(

),().,(),(

c) d)

Figura 3: a) Imagen original, 500x500 píxeles. (b) – (f) Resultados de suavizar con máscaras cuadradas de n=3, 5, 9, 15 y 35, respectivamente.

e) f)

Page 13: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Filtrado Espacial 5

En el apéndice se presentan algunos algoritmos en scripts de Matlab que realizan los diferentes tipos de filtrado que se verán en este apunte.

Filtros estadísticos: filtro de mediana Los filtros estadísticos son filtros espaciales no lineales cuya respuesta está basada en

ordenar los píxeles abarcados por una máscara y luego reemplazar el valor del píxel cen-tral con el valor determinado por el resultado del ordenamiento. El más conocido de estos filtros es el filtro de mediana, el cual reemplaza el valor del píxel central por la mediana de los niveles de gris del vecindario de ese píxel (el valor original del píxel es incluido en el cálculo de la mediana). Los filtros de mediana son muy usados debido a que, para ciertos tipos de ruidos aleatorios, proveen una excelente reducción de ruido y un borroneado con-siderablemente menor que los filtros lineales de suavizado del mismo tamaño. Los filtros de mediana son particularmente efectivos cuando el ruido es del tipo impulso (también lla-mado ruido sal y pimienta) debido a que aparece como puntos negros o blancos sobre-puestos en la imagen.

La mediana, ξ, de un conjunto de valores es aquella en la que la mitad de los valores

en el conjunto son menores o iguales que ξ, y la otra mitad es mayor o igual a ξ. Por e-jemplo, si en una imagen tomamos un conjunto de píxeles de 3x3 con valores {1, 9, 5, 0, 8, 7, 1, 2, 4} la mediana para este caso será el valor 4, ya que la mitad de este conjunto es menor (o igual) y la otra mitad es mayor (o igual) a éste: {0, 1, 1, 2, 4, 5, 7, 8, 9}.

El procedimiento general para realizar el filtro de mediana en cualquier punto consiste

en ordenar los valores de dicho píxel y los de su vecindario, determinar la mediana, y a-signar éste último valor al píxel en cuestión. Para un vecindario de 3x3, la mediana es el 5to valor más grande; para uno de 5x5 es el 13mo valor más grande, y así. Cuando algunos valores en un vecindario son iguales, éstos se ven agrupados. Por ejemplo, supongamos que un vecindario de 3x3 tiene los valores {10, 20, 20, 20, 15, 20, 20, 25, 100}. Ordenan-do este conjunto nos queda {10, 15, 20, 20, 20, 20, 20, 25, 100}, de donde se ve que la mediana es 20. Así, la principal función de los filtros de mediana es hacer que los puntos con niveles de gris distintos sean más parecidos a los de su vecindario.

En la figura 4 puede verse los efectos que produce el filtro de mediana en una imagen

contaminada con ruido sal y pimienta.

Figura 4: a) Imagen con ruido sal y pimienta. b) Filtrado de (a) con un filtro de suavizado de 3x3. c) Reducción de ruido con un filtro de mediana de 3x3.

a) b) c)

Page 14: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Filtrado Espacial 6

La figura 4 (b) es el resultado de promediar la imagen original, figura 4 (a), con una máscara de 3x3, mientras que la 4 (c) es la consecuencia de filtrar la original con un filtro de mediana de 3x3. Se puede ver claramente que el filtro de mediana es más efectivo a la hora de remover ruido sal y pimienta que los filtros de promediado. No obstante, el precio que se paga es un borroneado considerable.

Filtros Pasaaltos El objetivo principal de estos filtros es resaltar los detalles delicados de una imagen

(por ejemplo, los bordes) o realzar los detalles de una imagen borroneada. Anteriormente, vimos que el suavizado de una imagen, en el dominio espacial, se lo-

graba promediando el vecindario de cada píxel. Dado que el promediado es análogo a la integración, es lógico pensar que en el proceso de filtrado con un pasaaltos se realicen o-peraciones de diferenciación espacial. Fundamentalmente, la magnitud de la respuesta de un operador derivada es proporcional al grado de discontinuidad de la imagen en el punto en donde este operador está siendo aplicado. Por esta razón, la diferenciación de una i-magen realza o enfatiza los bordes y otras discontinuidades tales como el ruido y atenúa aquellas áreas cuyos niveles de gris varían lentamente.

Los filtros pasaaltos que estudiaremos aquí están basados en la primer y segunda de-

rivada. Las derivadas de una función discreta se definen en términos de diferencias. Exis-ten muchas maneras de definir estas diferencias. Sin embargo, existen requerimientos que debe cumplir cualquier definición de aquéllas. La primer derivada debe ser:

- cero en las zonas que tienen un nivel de gris constante; - distinta de cero ante un cambio del tipo escalón o rampa en el nivel de gris; - y distinta de cero en toda la zona que tiene un cambio del tipo rampa; Similarmente, cualquier definición de segunda derivada debe ser: - cero en zonas con nivel de gris constante; - distinta de cero al principio o al final de un cambio del tipo escalón o rampa; - y debe ser cero en toda la zona que tiene un cambio del tipo rampa con pendiente

constante. Las definiciones básicas para la primer y segunda derivada de una función bidimensio-

nal discreta con respecto a x y a y son las siguientes: Como ya lo hemos discutido, los bordes en una imagen están relacionados con los

cambios en el nivel de gris, o sea, con las altas frecuencias. A continuación se desarrolla-rán diferentes métodos utilizados para la detección de líneas y bordes en general; méto-dos asociados con la primer derivada, el gradiente, y métodos asociados con la segunda derivada, el laplaciano.

),(),1( yxfyxfdxdf

−+= ),(2),1(),1(2

2

yxfyxfyxfdxfd

−−++=

),()1,( yxfyxfdydf

−+= ),(2)1,()1,(2

2

yxfyxfyxfdyfd

−−++=

Page 15: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Filtrado Espacial 7

Detección de líneas Consideremos las máscaras de la figura 5. Si convolucionamos la primer máscara con

una imagen, la respuesta será mayor para líneas del ancho de un píxel orientadas hori-zontalmente. Siempre que el fondo sea uniforme, la respuesta será máxima cuando la lí-nea pase a lo largo de la segunda fila de la máscara. La segunda máscara de la figura 5 responderá mejor a líneas orientadas a 45º; la tercera máscara a líneas verticales; y la úl-tima a líneas orientadas a -45º. Estas direcciones se pueden establecer observando que para la dirección de interés las máscaras presentan valores mayores que para otras posi-bles direcciones. Si denotamos con R1, R2, R3 y R4 las respuestas de las cuatro máscaras de la figura 5 para un píxel en particular, entonces si se cumple que |Ri|>|Rj| con j≠i, será más probable que dicho píxel esté asociado a la dirección correspondiente a la máscara i.

Detección de bordes Operador Gradiente. El gradiente de una imagen f(x,y) en la posición (x,y) viene dado por el vector El vector gradiente siempre apunta en la dirección de la máxima variación de la ima-

gen f en el punto (x,y). En la detección de bordes es muy importante la magnitud de este vector, denominado simplemente como gradiente de la imagen, denotado por ∇f y dado por

Esta cantidad representa la variación de la imagen f(x,y) por unidad de distancia en la

dirección del vector ∇f. En general, el gradiente se suele aproximar mediante la expresión

que es mucho más simple de implementar en la práctica. La dirección del vector gradiente también es una cantidad importante. Sea α(x,y) el ángulo del vector ∇f en el punto (x,y). Entonces se tiene que

Figura 5: Máscaras de línea

∂∂∂∂

=

=∇

xfxf

ff

fy

x

22|||| yx fff +=∇

|||| yx fff +≈∇

),(),(

arctan),(yxfyxf

yxx

y=α

Page 16: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Filtrado Espacial 8

donde los ángulos se miden con respecto al eje de abscisas. El cálculo del gradiente se basa en obtener las derivadas parciales para cada píxel.

Las derivadas se pueden implementar digitalmente de varias formas. En la figura 6 se pueden ver los operadores de Robert, Prewitt, Sobel y Frei-Chen para determinar las derivadas parciales. Sin embargo, los operadores de Sobel y de Frei-Chen tienen la ven-taja de que proporcionan un suavizado además del efecto de derivación. Ya que la deriva-ción acentúa el ruido, el efecto de suavizado es particularmente interesante, puesto que e-limina parte del ruido. El requisito básico de un operador de derivación es que, como ya habíamos dicho, la suma de los coeficientes de la máscara sea cero.

Laplaciano. El Laplaciano de una imagen I(x,y) es una derivada de segundo orden definida por En general, se suele tomar el valor negativo del Laplaciano. Al igual que en el caso del

gradiente se puede implementar en forma digital de varias formas. Puesto que el Laplaciano es un operador de derivación, la suma de los coeficientes

debe ser cero. Además, el coeficiente asociado con el píxel central debe ser positivo y to-dos los demás coeficientes negativos o cero, o viceversa.

En la figura 7 (c) podemos ver una máscara para el Laplaciano. En este caso, la ex-

presión para determinar el Laplaciano viene dada por

Figura 6: Operadores de derivación: (a) de Roberts, (b) de Prewitt, (c) de Sobel, y (d) de Frei-Chen.

2

2

2

22

yf

xff

∂∂

+∂∂

=∇

),1()1,()1,(),1(),(4 yxfyxfyxfyxfyxf +−+−−−−−

Page 17: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Filtrado Espacial 9

Aunque el Laplaciano responde a transiciones en la intensidad de la imagen, se em-

plea en pocas ocasiones en la práctica. Debido a que es un operador de segunda deriva-das es excesivamente sensible a la presencia de ruido. Además, el Laplaciano da lugar a bordes dobles y no permite determinar direcciones. En general, juega un papel secundario en la detección de bordes para determinar si un píxel está en la zona clara o en la zona oscura del borde a través del signo del Laplaciano.

El Laplaciano se puede utilizar para realzar una imagen de la siguiente forma: El cálculo anterior se puede simplificar teniendo en cuenta que el Laplaciano es un o-

perador lineal. En lugar de sumar (o restar) la imagen original, f(x,y), con el Laplaciano de esta, obtenido con alguna de las máscaras de la figura 7, se puede utilizar una máscara e-quivalente que realice las dos operaciones en un solo paso. Por ejemplo, para realzar una imagen, f(x,y), usando la máscara laplaciana 7 (a), las operaciones serían las siguientes:

O lo que es equivalente: Por lo tanto, la operación de realce se ve simplificada cuando se utiliza una máscara

que realice todas las operaciones. Para el ejemplo anterior, la máscara usada se muestra en la figura 8 (a).

En la figura 8 se puede ver cómo se realza una imagen con el Laplaciano. Las figuras

8 (a) y 8 (b) muestran las dos máscaras que se usan generalmente. La figura 8 (c) corres-ponde a la imagen original (filamento de tungsteno escaneado con un microscopio electró-nico). Las figuras 8 (d) y 8 (e) son el resultado de filtrar la imagen original con las másca-ras 8 (a) y 8 (b), respectivamente. Comparando la imagen original con las filtradas, nota-mos que ambas máscaras producen un realce efectivo, pero la resultante de filtrar con la máscara 8 (b) muestra mejor los bordes y las formas.

Los mismos resultados hubiésemos obtenido de haber restado la imagen original con

el Laplaciano de ésta (calculado con la máscara 7 (a) o 7 (b)).

∇+∇−

=),(),(),(),(

),( 2

2

yxfyxfyxfyxf

yxgsi el coeficiente central de la máscara es negativo

si el coeficiente central de la máscara es positivo

)}1,()1,(),1(),1(),(4{),(),( −+++−+++−−= yxfyxfyxfyxfyxfyxfyxg

)}1,()1,(),1(),1({),(5),( −+++−++−= yxfyxfyxfyxfyxfyxg

Figura 7: Máscaras utilizadas para implementar los diferentes Laplacianos.

a) b) c) d)

Page 18: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Filtrado Espacial 10

Filtros High-boost y Unsharp masking Anteriormente, vimos cómo resaltar las altas frecuencias en una imagen para enfatizar

bordes y las formas. Para ello, utilizamos máscaras que realizaban operaciones de deriva-ción. Ahora veremos dos tipos de filtros muy utilizados para el mismo fin pero que emple-an otras operaciones.

Un procedimiento usado para agudizar las formas en una imagen es el unsharp mas-

king, que consiste en restar a la imagen original una versión promediada de ésta (por ejemplo, la imagen original filtrada con un pasabajos). Esto es,

Una generalización del unsharp masking es el denominado filtro high-boost que con-

siste en lo siguiente:

),(),(),( yxfyxfyxfs −=

a)

b)

c)

Figura 8: (a) y (b) Máscaras laplacianas compuestas. c) Imagen original. (d) y (e) Resultado de filtrar la imagen original con las máscaras (a) y (b), respectivamente.

d) e)

Page 19: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Filtrado Espacial 11

donde A es mayor o igual a 1. La expresión anterior puede ser rescrita como Cuando A es igual a 1, obtenemos una imagen filtrada con una pasaaltos, y cuando A

es mayor a 1, parte de la imagen original se añade al resultado del filtrado con pasaaltos, lo que recupera parcialmente las componentes de bajas frecuencias perdidas en el proce-so de filtrado con pasaaltos.

La última expresión del filtro high-boost es aplicable en general y no especifica cómo

obtener la imagen filtrada con un pasaaltos. Si para ello elegimos el Laplaciano, entonces fhb(x,y) puede calcularse de la siguiente forma

El filtrado high-boost puede realizarse en un solo paso usando alguna de las máscaras

de la figura 9. El filtrado high-boost se aplica principalmente cuando la imagen original es más oscura

que la deseada. Variando el coeficiente A, generalmente se puede obtener un incremento global del nivel de gris de la imagen. Esto se puede ver en la figura 10.

),(),(.),( yxfyxfAyxfhb −=

),(),().1(),( yxfyxfAyxf shb +−=

∇+∇−

=),(),(.),(),(.

2

2

yxfyxfAyxfyxfA

fhbsi el coeficiente central de la máscara laplaciana es negativo

si el coeficiente central de la máscara laplaciana es positivo

Figura 9: Máscaras usadas para el filtrado high-boost.

a) b)

Page 20: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Filtrado Espacial 12

La figura 10 (a) es una versión más oscura de la imagen de la figura 8 (c). La figura 10

(b) muestra el Laplaciano calculado con la máscara 9 (b), con A=0. La figura 10 (c) se ob-tuvo usando la máscara 9 (b) pero con A=1. Como era de esperar, se han resaltado las altas frecuencias en la imagen original (o sea, los bordes y las formas), pero la imagen ob-tenida sigue siendo tan oscura como la original. Por último, la figura 10 (d) muestra el re-sultado de emplear la máscara 9 (b) con A=1.7. Este resultado es mucho más aceptable ya que el nivel de gris promedio fue aumentado, haciendo a la imagen más clara y natural.

Figura 10: a) Imagen original. b) Laplaciano de (a) calculado con la máscara 9 (b), usando A=0. c) Imagen realzada con el Laplaciano usando para ello la máscara 9 (b), A=1. d) Lo mismo que (c) pero usando A=1.7.

e) d)

Page 21: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Filtrado Espacial 13

Apéndice A continuación se presentarán algunos algoritmos utilizados para filtrar una imagen en

el dominio espacial. A=double(imread('c:\MATLAB6p5\toolbox\images\imdemos\ic.tif','tif')); [f,c]=size(A); % Detección de bordes verticales for i=2:f-1 for j=2:c-1 C(i,j)=abs([1 1 1]*A((i-1):(i+1),j-1)-[1 1 1]*A((i-1):(i+1),j+1)); end end % Promediado con mascara de 3x3 for i=2:f-1 for j=2:c-1 D(i,j)=sum(sum(A((i-1):(i+1),(j-1):(j+1)))); D(i,j)=D(i,j)/9; end end % Laplaciano for i=2:f-1 for j=2:c-1 E(I,j)=4*A(i,j)-A(i-1,j)-A(i,j-1)-A(i,j+1)-A(i+1,j); end end Como vemos, existe más de una forma de implementar un filtro en los scripts de

Matlab. Por supuesto que hay algunas que son más eficientes que otras pero como des-ventaja no son soportadas en otros lenguajes de programación. Por ejemplo, la función sum de Matlab está muy optimizada pero difícilmente esté implementada en otro lengua-je. Lo mismo sucede con el producto de matrices.

Ahora se va a presentar una función de Matlab que realiza la correlación de una ima-

gen con una máscara dada, pero es aconsejable hacer antes algunos algoritmos de filtrado de manera genérica y aceptable en cualquier lenguaje de programación. La función de la que hablamos es la que sigue:

B=filter2(N,A,’same’);

donde N representa el núcleo o máscara y A la imagen que se desea filtrar. El parámetro ‘same’ se utiliza para que la función devuelva la parte central de la correlación (que es del mismo tamaño que la imagen A).

Por ejemplo, para promediar una imagen con un núcleo de 3x3 se hace lo siguiente: Np=1/9*ones(3); Ap=filter2(N,A,’same’);

Page 22: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Filtrado Espacial 14

Para detectar bordes horizontales, la máscara es la que sigue (operador de Prewitt): Nh=[1 1 1;0 0 0;-1 -1 -1]; Laplaciano: Ng=[0 1 0;1 –4 1;0 1 0]; Ó Ng=[1 1 1;1 –8 1;1 1 1]; Por último, se presentarán dos formas de implementar el filtro de mediana. Primero, to-

memos una imagen cualquiera y agreguémosle ruido del tipo sal y pimienta: A=double(imread('circuit.tif','tif')); [f,c]=size(A); Ar=A; for i=1:f*c if rand<0.05 Ar(i)=0; end if rand>0.95 Ar(i)=255; end end Veamos ahora una forma de aplicar el filtro de mediana con una máscara de 3x3: F=zeros(size(A)); for i=2:f-1 for j=2:c-1 F(i,j)=median([Ar(i-1,(j-1):(j+1)) Ar(i,(j-1):(j+1)) Ar(i+1,(j-1):(j+1))]); end end El algoritmo anterior simplemente forma un vector concatenando 3 filas de 3 elemen-

tos cada una, que corresponden a una ventana de 3x3 de la matriz Ar, y luego obtiene la mediana de ese vector por medio de la función de Matlab median. Como no podía ser de otra manera, Matlab también tiene una función que aplica el filtro de mediana a una ima-gen cualquiera para un tamaño de ventana dado. Es la siguiente:

Fmat=medfilt2(Ar,[3 3]); Donde el vector [3 3] indica que la ventana deseada es de 3x3. Comparemos los resul-

tados: figure, imshow(uint8(A)) figure, imshow(uint8(Ar)) figure, imshow(uint8(F)) figure, imshow(uint8(Fmat))

Page 23: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 1

Filtrado en el Dominio de la Frecuencia En el apunte de Filtrado Espacial se presentaron las diferentes técnicas usadas ge-

neralmente para el realce de una imagen en el dominio espacial. Ahora afrontaremos el problema desde el dominio de la frecuencia, más precisamente, con la transformada de Fourier.

Introducción a la Transformada de Fourier y al dominio de la frecuencia La transformada de Fourier, F(u), de una sola variable, de una función continua, f(x),

se define como De la misma forma, dada F(u), podemos obtener f(x) a través de la transformada in-

versa de Fourier Las expresiones anteriores pueden extenderse fácilmente a dos variables, u y v: Y, similarmente, la transformada inversa queda definida como Ahora bien, en el procesamiento de imágenes se trata con funciones discretas. Por es-

ta razón, presentamos la transformada de Fourier de una función discreta (TDF) de una variable, f(x), con x=0, 1, ..., M-1:

Para u=0, 1, ..., M-1. Análogamente, dada F(u), la transformada discreta de Fourier in-

versa está definida como Para x=0, 1, ..., M-1. Cada uno de los M términos de F(u) es llamado componente de

frecuencia de la transformada. Los valores de u en los que la F(u) está definida se llama dominio de la frecuencia.

Una propiedad importante de la TDF (y su inversa) es que, a diferencia del par conti-

nuo, aquéllas siempre existen. Lo mismo sucede con la TDF para una función de dos va-riables. En algunos casos, es conveniente expresar la TDF, F(u), en coordenadas polares:

∫+∞

∞−

−= dxexfuF xuj ..2).()( π

∫+∞

∞−

= dueuFxf xuj ..2).()( π

dydxeyxfvuF yvxuj∫ ∫+∞

∞−

+∞

∞−

+−= )...(2).,(),( π

dvduevuFyxf yvxuj∫ ∫+∞

∞−

+∞

∞−

+= )...(2).,(),( π

∑−

=

=1

0

..2

).(1)(M

x

Mxuj

exfM

uFπ

∑−

=

=1

0

..2

).()(M

u

Mxuj

euFxfπ

)(.|)(|)( ujeuFuF φ−=

Page 24: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 2

donde

es llamado magnitud de la transformada de Fourier, y

se denomina fase o argumento de la transformada de Fourier. R(u) e I(u) son la parte real y la imaginaria de F(u), respectivamente.

Transformada discreta de Fourier bidimensional La transformada discreta de Fourier de una función (imagen) f(x,y) de tamaño MxN es-

tá dada por la siguiente expresión:

(1) Similarmente, dada F(u,v), obtenemos f(x,y) a través de la transformada de Fourier in-

versa, definida por la siguiente expresión: Para x=0, 1, ..., M-1 e y=0,1, ..., N-1. Las variables u y v son las variables transforma-

das o de frecuencia, y x e y son las variables espaciales o de imagen. Como en la sección anterior, definimos el espectro de Fourier, la fase y la magnitud:

donde R(u,v) e I(u,v) son la parte real y la imaginaria de F(u,v), respectivamente. En la práctica es común multiplicar a función f(x,y) (imagen) por (-1)x+y antes de calcu-

lar la transformada de Fourier. Debido a las propiedades de las exponenciales se puede demostrar que

(2)

donde TDF( ) representa la transformada discreta de Fourier. Esta expresión coloca al o-rigen de la TDF de f(x,y).(-1)x+y [o sea, F(0,0)] en u=M/2 y v=N/2. En otras palabras, mul-tiplicando f(x,y) por (-1)x+y se traslada el origen de F(u,v) a las coordenadas (M/2,N/2), las cuales coinciden con el centro del área de MxN ocupada por la transformada discreta de Fourier bidimensional.

El valor de la transformada en (u,v)=(0,0) está dado por la ecuación (1),

)()(|)(| 22 uIuRuF +=

= −

)()(tan)( 1

uRuIuφ

∑∑−

=

=

+−

=1

0

1

0

...2).,(

.1),(

M

x

N

y

Nyv

Mxuj

eyxfNM

vuFπ

∑∑−

=

=

+

=1

0

1

0

...2).,(),(

M

u

N

v

Nyv

Mxuj

evuFyxfπ

),(),(|),(| 22 vuIvuRvuF +=

= −

),(),(tan),( 1

vuRvuIvuφ

)2/,2/(),}()1).(,({ NvMuFvuyxfTDF yx −−=− +

Page 25: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 3

(3)

de la cual vemos que es el promediado de f(x,y). En otras palabras, si f(x,y) es una ima-gen, el valor de la transformada en el origen es promediado de los niveles de gris de la i-magen. Dado que ambas frecuencias son cero en el origen, F(0,0) es llamado a veces componente continua (dc) del espectro.

Si f(x,y) es real, es fácil demostrar que su TDF es hermítica y que la magnitud de ésta

es simétrica. La figura 1 (a) muestra un rectángulo blanco de 20x40 píxeles sobre un fondo negro

de 512x512. La imagen fue multiplicada por (-1)x+y antes de aplicarle la TDF de manera que la frecuencia cero quede en el centro del espectro (figura 1 (b)). Antes de mostrar la TDF, se le aplicó una transformación logarítmica, F’(u,v)=c*log(1+F(u,v)), para realzar el detalle en los niveles de gris.

Algunas deducciones básicas del dominio de la frecuencia Como la frecuencia está directamente relacionada con la velocidad de los cambios en

el nivel de gris, es fácil asociar intuitivamente las frecuencias en la TDF con patrones en las variaciones de la intensidad del nivel de gris. Como mencionamos, la componente de frecuencia de variación más lenta (u=v=0) corresponde al promediado de los niveles de gris en la imagen. A medida que nos alejamos del origen de la transformada, la frecuencia

∑∑−

=

=

=1

0

1

0),(

.1)0,0(

M

x

N

y

yxfNM

F

Figura 1: a) Imagen de un rectángulo de 20x40 sobre un fondo negro. b) Espectro de Fourier centrado (con la aplicación de una transformación logarítmica).

a) b)

Page 26: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 4

de las componentes va aumentando correspondiendo a variaciones en la intensidad cada vez más rápidas.

Procedimiento para filtrar en el dominio de la frecuencia Para filtrar en el dominio de la frecuencia se deben seguir los siguientes pasos: i) Multiplicar la imagen de entrada por (-1)x+y para centrar la transformada, como

lo indica la ecuación (2). ii) Calcular la TDF de la imagen, F(u,v), mediante la ecuación (1). iii) Multiplicar F(u,v) por una función H(u,v) que actúe como filtro. iv) Calcular la TDF inversa del resultado hallado en (iii). v) Obtener la parte real del resultado de (iv). vi) Multiplicar el resultado de (v) por (-1)x+y. La razón por la que H(u,v) actúa como filtro es que esta función elimina o atenúa cier-

tas frecuencias en la transformada y deja a otras sin cambios. Consideremos que f(x,y) es la imagen de entrada del paso (i) del procedimiento antes

descripto, y F(u,v) su transformada de Fourier. Entonces, la transformada de Fourier de la imagen filtrada está dada por:

La multiplicación de H y F involucra funciones bidimensionales, o sea, es el resultado

de multiplicar elemento a elemento dos matrices. En general, los elementos de F son nú-meros complejos pero los filtros (H(u,v)) que se usan frecuentemente son reales. Estos fil-tros multiplican de igual forma la parte real y la imaginaria de los elementos de F y, por lo tanto, sólo modifican la magnitud de la transformada manteniendo invariable el argumen-to.

La imagen filtrada se obtiene aplicando la transformada inversa de Fourier a G(u,v) y

multiplicando el resultado por (-1)x+y. Cuando la imagen f(x,y) y el filtro H(u,v) son reales, la transformada inversa de Fourier de G(u,v) debería ser real, pero en la práctica no es a-sí ya que existen componentes complejos parásitos que aparecen como consecuencia del error numérico computacional. Estos componentes deben ser ignorados (son desprecia-bles pero pueden influir en cálculos posteriores).

Algunos filtros básicos Filtro Notch Supongamos que queremos poner a cero el nivel de gris promedio de una imagen. De

acuerdo con la ecuación (3), el nivel de gris promedio de una imagen está dado por F(0,0). Si hacemos que esta componente sea cero en el dominio de la frecuencia y calcu-lamos la TDF inversa, entonces el nivel de gris promedio de la imagen resultante será ce-ro. Consideremos ahora que hemos centrado la transformada según la ecuación (2). El procedimiento anterior de filtrado se realiza multiplicando F(u,v) por la siguiente función filtro:

),().,(),( vuFvuHvuG =

Page 27: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 5

Los filtros notch son herramientas excepcionalmente útiles cuando es posible identifi-

car efectos espaciales en la imagen causados por componentes de frecuencias específi-cos y localizados.

Como lo discutimos en el apunte de “Filtrado Espacial”, las frecuencias bajas en la

TDF son responsables del nivel de gris general de las áreas suaves en una imagen, mien-tras que las frecuencias altas son responsables de los detalles (bordes y ruido). Un filtro que atenúa las altas frecuencias mientras que deja pasar las bajas lo denominábamos fil-tro pasa-bajos. Un filtro que tiene las características opuestas a las del anterior lo denomi-nábamos pasa-altos.

La figura 2 muestra los efectos del filtrado con un pasa-bajos y con un pasa-altos. Am-

bos filtros H(u,v), figura 2 (b) y 2 (d), son circularmente simétricos. Como era de esperar, la imagen filtrada con el pasa-bajos de la figura 2 (b) que se exhibe en 2 (c) se ve que es-tá suavizada o borroneada con respecto a la original de la figura 2 (a). De igual forma, la i-magen filtrada con el pasa-altos de la figura 2 (d) que se exhibe en 2 (e) muestra muy po-ca variación suave de nivel de gris que la original (F(0,0) fue forzada a cero) pero con ma-yor detalle en los bordes y las formas.

≠⇔=⇔

=)2/,2/(),(1)2/,2/(),(0

),(NMvuNMvu

vuH

Figura 2: a) Imagen original. b) Filtro pasa-bajos bidimensional (espectro centrado). c) Resultado de filtrar la imagen (a) con el pasa-bajos (b). d) Filtro pasa-altos bidimensional (espectro centrado). e) Resultado de filtrar la imagen (a) con el pasa-altos (d).

a)

b) c)

Page 28: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 6

Correspondencia entre el filtrado en el dominio del espacio y de la frecuencia Teorema de la convolución En el apunte de “Filtrado Espacial” presentamos una expresión que utilizaríamos para

calcular la convolución entre una imagen f(x,y) de MxN y una máscara de h(x,y) de mxn. Es la siguiente:

Ahora presentaremos la expresión más formal para la convolución discreta entre dos

funciones f(x,y) y h(x,y) de tamaño MxN denotada por f(x,y) ∗h(x,y): Con la excepción de los límites de la sumatoria, el signo menos y la constante, esta

expresión es similar a la dada en el apunte anterior. En particular, el signo menos lo que hace es reflejar f o h sobre su origen; es algo inherente en la definición de convolución.

Si F(u,v) y H(u,v) denotan la TDF de f(x,y) y h(x,y), respectivamente, una parte del

teorema de la convolución establece que la convolución f(x,y) ∗h(x,y) y el producto F(u,v)H(u,v) son un par transformado de Fourier, esto es

O sea que la convolución espacial de f(x,y) con h(x,y) puede obtenerse calculando la

TDF inversa del producto F(u,v)H(u,v). La otra parte del teorema establece que el produc-to f(x,y)h(x,y) y la convolución F(u,v) ∗H(u,v) constituyen también un par transformado de Fourier, esto es,

d)

e)

( , ) ( , ). ( , )a b

i a j bg x y f x i y j h i j

=− =−

= + +∑ ∑2

1,2

1 −=

−=

nbma

∑∑∑∑−

=

=

=

=

−−=−−=∗1

0

1

0

1

0

1

0),().,(

.1),().,(

.1),(),(

M

m

N

n

M

m

N

nnymxhyxf

NMnmhnymxf

NMyxhyxf

),(),(),(),( vuHvuFyxhyxf ⇔∗

),(),(),(),( vuHvuFyxhyxf ∗⇔

Page 29: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 7

Filtros Ideales Pasa-bajos El filtro pasa-bajos más simple que podemos imaginar es aquel que elimina todas las

componentes de alta frecuencia de la transformada de Fourier que se encuentren a una distancia D0 del origen del espectro (centrado). Este filtro está dado por

donde D0 es un número no negativo (a veces llamado frecuencia de corte) y D(u,v) es la distancia del punto (u,v) al centro del espectro. Debido a que, como mencionamos ante-riormente en este apunte, es más práctico trabajar con un espectro centrado (la frecuen-cia cero de la TDF en el centro), el centro del espectro está dado por (u,v)=(M/2,N/2).

El nombre de filtro ideal se debe a que todas las frecuencias que se encuentran en el

interior del círculo de radio D0 ‘pasan’ sin atenuación mientras que las que se encuentran fuera del círculo son completamente atenuadas. Como se sabe, los filtros ideales no pue-den realizarse físicamente mediante componentes electrónicos, pero sí pueden ser imple-mentados en una computadora.

Pasa-altos El filtro pasa-altos ideal es el opuesto al pasa-bajos ideal en el sentido de que el prime-

ro fuerza a cero todas aquellas frecuencias interiores al círculo de radio D0 mientras ‘deja pasar’ sin atenuación a aquellas que se encuentren afuera. Su definición es la siguiente:

Los filtros ideales tienen características que generalmente son contraproducentes. Un

ejemplo de esto son las oscilaciones indeseadas que aparecen en la imagen filtrada. Es-tos efectos son conocidos como ringing en el idioma inglés. La figura 3 ilustra lo comen-tado en este párrafo.

>⇔≤⇔

=0

0

),(0),(1

),(DvuDDvuD

vuH 22 )2/()2/(),( NvMuvuD −+−=

>⇔≤⇔

=0

0

),(1),(0

),(DvuDDvuD

vuH 22 )2/()2/(),( NvMuvuD −+−=

Figura 3: a) Original. b) Resultado de filtrar la imagen original con un pasa-bajos ideal con D0 = 30. Aquí se puede ver el efecto conocido como ‘ringing’ (oscilaciones).

a) b)

Page 30: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 8

Filtro Butterworth Pasa-bajos La función de transferencia de un filtro Butterworth pasa-bajos de orden n, y con una

frecuencia de corte a una distancia D0 del origen, está definida por En la figura 4 (a) se puede ver la forma de un filtro Butterworth pasa-bajos, en la 4 (b)

se muestra al filtro como una imagen, mientras que en la 4 (c) se presenta el perfil del fil-tro Butterworth para distintos n.

A diferencia del filtro ideal pasa-bajos, la función de transferencia del filtro Butterworth

no tiene una discontinuidad evidente que establezca una frecuencia de corte bien determi-nada. Para aquellos filtros que tienen una función transferencia continua (o suavizada) es común definir una frecuencia de corte en un punto tal que H(u,v) esté por debajo de una cierta fracción de su máximo. En el caso del filtro Butterworth, H(u,v)=0.5 (50% de su máximo valor, o sea, 1) cuando D(u,v)=D0.

Para n=1, el filtro Butterworth no presenta oscilaciones; para n=2, las oscilaciones son

casi imperceptibles; mientras que para n>2, los filtros Butterworth presentan oscilaciones indeseadas Si bien se utilizan diferentes n para el cálculo del filtro Butterworth, el de se-gundo orden (n=2) es el que generalmente se elige ya que tiene un buen compromiso en-tre un filtrado pasa-bajos efectivo y oscilaciones de intensidad aceptable.

Pasa-altos La función de transferencia de un filtro Butterworth pasa-altos de orden n, y con una

frecuencia de corte a una distancia D0 del origen, está definida por

n

DvuD

vuH .2

0

),(1

1),(

+

= 22 )2/()2/(),( NvMuvuD −+−=

Figura 4: a) Perspectiva de un Butterworth pasa-bajos. b) El filtro mostrado como una imagen. c) Perfil del filtro para distintos n.

c) a) b)

n

vuDD

vuH .20

),(1

1),(

+

=22 )2/()2/(),( NvMuvuD −+−=

Page 31: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 9

Filtros basados en funciones Gaussianas Este tipo de filtro es de particular importancia ya que su forma está fácilmente especifi-

cada y porque tanto su TDF como su TDF inversa son funciones Gaussianas reales. Filtro Gaussiano Pasa-bajos La forma de este filtro está dada por:

donde D(u,v) es la distancia al origen del punto (u,v) (asumiendo que se ha centrado la transformada). Como vemos, este tipo de filtro tiene su máximo en (0,0) que es 1, y luego su valor comienza a disminuir según la función Gaussiana cuya dispersión (o apertura) está dada por la constante σ. Una expresión más familiar del filtro Gaussiano es aquella en donde aparece la frecuencia de corte D0:

Cuando D(u,v)>D0, los valores del filtro están por debajo del 60,7% de su máximo. Otra de las particularidades del filtro Gaussiano es que la TDF inversa de este tipo de

filtro no presenta los efectos conocidos como ringing, algo que sí sucedía para el caso de los filtros Butterworth (para n>1).

Filtro Gaussiano Pasa-altos La función transferencia del filtro Gaussiano pasa-altos con frecuencia de corte ubica-

da a una distancia D0 del origen está dada por la siguiente expresión: Filtrado Homomórfico Una imagen f(x,y) puede expresarse como el producto de la iluminación y los compo-

nentes de reflectancia (la reflectancia es una función que depende de las características de reflexión de un objeto, vale 0 para las superficies totalmente opacas y 1 para aquellas que reflejan toda la luz que incide sobre ellas):

donde i(x,y) denota la iluminación y r(x,y) la reflectancia. El modelo iluminación-reflectancia recién descripto puede usarse para desarrollar un pro-cesamiento en el dominio de la frecuencia que mejore la apariencia de una imagen por medio de la compresión del nivel de gris y del realce del contraste.

22 .2/),(),( σvuDevuH −= 22 )2/()2/(),( NvMuvuD −+−=

20

2 .2/),(),( DvuDevuH −= 22 )2/()2/(),( NvMuvuD −+−=

20

2 .2/),(1),( DvuDevuH −−= 22 )2/()2/(),( NvMuvuD −+−=

),().,(),( yxryxiyxf =

Page 32: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 10

La expresión anterior no se puede usar directamente para operar separadamente so-bre los componentes de frecuencia de la iluminación y la reflectancia debido a que la transformada de Fourier de dos funciones no es separable. Es decir,

Supongamos, sin embargo, que definimos Entonces O

donde Fi(u,v) y Fr(u,v) son la transformada de Fourier de ln [i(x,y)] y ln [r(x,y)], respec-tivamente.

Si filtramos Z(u,v) por medio de una función H(u,v), como lo veníamos haciendo, en-

tonces

donde S(u,v) es la transformada de Fourier del resultado. En el dominio espacial,

(4)

donde TDFI representa la transformada (discreta) de Fourier inversa. Si ahora suponemos que

la ecuación (4) se puede expresar de la siguiente forma Finalmente, dado que z(x,y) se definió tomando el logaritmo de la imagen original

f(x,y), la operación inversa, o sea, la exponencial, nos dará como resultado la imagen re-alzada (filtrada), g(x,y); esto es

donde

son la componente de iluminación y reflectancia de la imagen resultante, respectivamente. La componente de iluminación de una imagen generalmente está caracterizada por

variaciones espaciales lentas, mientras que la componente de reflectancia tiende a variar abruptamente, en particular, en las uniones de objetos disímiles. Estas características per-miten asociar las bajas frecuencias de la transformada de Fourier del logaritmo de una i-magen con la iluminación y las altas frecuencias con la reflectancia. Aunque esta relación es una aproximación, puede utilizarse como ventaja en el realce de imagen.

Con un filtro homomórfico se puede ganar mucho control sobre la componente de ilu-

minación y reflectancia. Este control requiere la especificación de un filtro H(u,v) que afec-

)},({)}.,({)},({ yxrTDFyxiTDFyxfTDF ≠

[ ] [ ] [ ]),(ln),(ln),(ln),( yxryxiyxfyxz +==

[ ] [ ] [ ]}),({ln}),({ln}),({ln)},({ yxrTDFyxiTDFyxfTDFyxzTDF +==

),(),(),( vuFvuFvuZ ri +=

),().,(),().,(),().,(),( vuFvuHvuFvuHvuZvuHvuS ri +==

)},().,({)},().,({)},({),( vuFvuHTDFIvuFvuHTDFIvuSTDFIyxs ri +==

)},().,({),(' vuFvuHTDFIyxi i= )},().,({),(' vuFvuHTDFIyxr r=

),('),('),( yxryxiyxs +=

),().,(.),( 00),('),('),( yxryxieeeyxg yxryxiyxs ===

),('0 ),( yxieyxi = ),('

0 ),( yxreyxr =

Page 33: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 11

te las bajas y las altas frecuencias de diferente forma. La figura 5 muestra la sección de un filtro homomórfico. Si los parámetros γL y γH se eligen de manera que γL<1 y γH>1, el fil-tro mostrado en la figura 5 tiende a disminuir la contribución hecha por las bajas frecuen-cias (iluminación) y a aumentar la contribución hecha por las altas frecuencias (reflectan-cia). El resultado de esto es la compresión del rango dinámico y el realce del contraste.

La curva de la figura 5 puede aproximarse usando la expresión básica de cualquiera

de los filtros pasa-altos presentados anteriormente. Por ejemplo, usando una forma lige-ramente modificada del filtro Gaussiano dada por

donde D(u,v) es la distancia al origen de la transformada (centrada) y la constante c fue introducida para controlar la pendiente del filtro en la transición de γL a γH.

Referencias Digital Image Processing Second Edition, Rafael C. Gonzalez – Richard E. Woods,

capítulo 4

Figura 5: Perfil de un filtro circularmente simétrico. D(u,v) es la distancia al origen (transformada centrada).

( ) LDvuDc

LH evuH γγγ +−−= − )/),(.( 20

2

1).(),(

Page 34: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 12

Apéndice A continuación se presentarán algunos algoritmos hechos en scripts de Matlab para

procesar una imagen en el dominio de la frecuencia. Comencemos mostrando cómo sería un algoritmo que calcule la transformada discreta

de Fourier. Para ello, usaremos una imagen de tamaño chico dado que el cálculo de la TDF para las imágenes grandes puede llevar algunos minutos.

A=fix(255*rand(20)); [f,c]=size(A); for u=1:f for v=1:c FA(u,v)=0; for x=1:f for y=1:c FA(u,v)=FA(u,v) + A(x,y)*exp( -j*2*pi*(u*x/f + v*y/c) ); end end end end FA=fftshift(FA); % Colocamos la frecuencia cero en el centro del espectro figure, mesh(abs(log(FA+1))) title('Transformada Discreta de Fourier (algoritmo propio)') Comparemos el resultado obtenido con el que nos brinda la función fft2 de Matlab: FA_mat=fft2(A); FA_mat=fftshift(FA_mat); % Colocamos la frecuencia cero en el centro del

% espectro figure, mesh(abs(log(FA_mat+1))) title('Transformada Discreta de Fourier (funcion de Matlab "fft2")') Para centrar la TDF hemos utilizado la función de Matlab fftshift. Esta misma tarea se

podría realizar con un algoritmo propio, de la siguiente forma: for i=1:f for j=1:c Aaux(i,j)=A(i,j)*(-1)^(i+j); end end Los resultados serían los mismos. Veamos, ahora, una de las maneras en que se puede proceder para filtrar una imagen

con un pasa-bajos ideal. A=double(imread('circuit.tif','tif')); [f,c]=size(A);

Page 35: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 13

% Calculo la transformada discreta de Fourier (DFT) DFT_A=fft2(A); % Centro el espectro DFT_A=fftshift(DFT_A); % Construyo un filtro ideal pasabajos D0=f/2/15; PasabajosIdeal=zeros(f,c); for i=1:f for j=1:c D=sqrt((i-f/2)^2+(j-c/2)^2);% Determino la distancia al centro del

% punto (i,j) if D<D0 PasabajosIdeal(i,j)=1; end end end % Multiplico la transfomada de la imagen por el filtro ideal DFT_A_filtrada=DFT_A.*PasabajosIdeal; % Multiplico elemento a elemento % Aplico la DFT inversa A_filtrada=ifft2(DFT_A_filtrada); % Tomo el modulo para descartar cualquier residuo de tipo complejo A_filtrada=abs(A_filtrada); figure, imshow(uint8(A)) title('Imagen original') figure, mesh(abs(log(DFT_A+1))) title('Espectro de la imagen original') figure, mesh(abs(log(DFT_A_filtrada+1))) title('Espectro de la imagen filtrada') figure, imshow(uint8(A_filtrada)) title('Imagen filtrada') figure, imshow(PasabajosIdeal) title('Filtro pasabajos ideal')

Page 36: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Segmentación por Umbralización – Método de Otsu 1

Segmentación por Umbralización Método de Otsu Introducción La umbralización es una técnica de segmentación ampliamente utilizada en las aplica-

ciones industriales. Se emplea cuando hay una clara diferencia entre los objetos a extraer respecto del fondo de la escena. Los principios que rigen son la similitud entre los píxeles pertenecientes a un objeto y sus diferencias respecto al resto. Por tanto, la escena debe caracterizarse por un fondo uniforme y por objetos parecidos.

Al aplicar un umbral, T, la imagen en escala de grises, f(x,y), quedará binarizada; eti-

quetando con ‘1’ los píxeles correspondientes al objeto y con ‘0’ aquellos que son del fon-do. Por ejemplo, si los objetos son claros respecto del fondo, se aplicará:

En el caso de que los objetos sean oscuros respecto del fondo, la asignación sería a la

inversa: El umbral puede depender de f(x,y), de alguna propiedad local del píxel, p(x,y), y hasta

de su propia posición: Si el umbral sólo depende de f(x,y) se dice que es un umbral global; en el caso de que

además dependa de p(x,y), por ejemplo, el valor medio de los píxeles vecinos, el umbral es denominado local; y si depende también de la posición (x,y) del píxel, se denominará dinámico.

La mayoría de las técnicas de umbralización se basan en estadísticas sobre el histo-

grama unidimensional (el que vimos hasta ahora) de una imagen. También se utiliza la matriz de co-ocurrencia de una imagen. Para localizar los umbrales se pueden usar pro-cedimientos paramétricos y no paramétricos. En los paramétricos, la distribución de los niveles de gris de una clase de objeto lleva a encontrar los umbrales. En los procedimien-tos no paramétricos, los umbrales se obtienen de forma óptima de acuerdo a algún crite-rio. En particular, el método de Otsu, que es el objetivo de este apunte, elige el umbral óp-timo maximizando la varianza entre clases (between-class variance) mediante una bús-queda exhaustiva.

Si bien hay diferentes métodos para hallar un umbral, la mayoría de ellos no dan bue-

nos resultados cuando se trabaja con imágenes del mundo real debido a la presencia de ruido, histogramas planos o una iluminación inadecuada. Por el contrario, el método de Otsu fue uno de los mejores métodos de selección de umbral para imágenes del mundo

≤⇔>⇔

=TyxfTyxf

yxg),(0),(1

),(

≥⇔<⇔

=TyxfTyxf

yxg),(0),(1

),(

),),,(),,(( yxyxpyxfTT =

Page 37: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Segmentación por Umbralización – Método de Otsu 2

real. Sin embargo, como anticipamos, este método usa una búsqueda exhaustiva para e-valuar el criterio para maximizar la varianza entre clases. A medida que el número de cla-ses de una imagen aumenta, el método de Otsu necesita mucho más tiempo para selec-cionar un umbral multinivel adecuado. Para determinar el umbral de una imagen eficiente-mente, vamos a proponer una varianza entre clases modificada para el método de Otsu. Esta modificación del método disminuirá considerablemente el tiempo de cálculo.

La importancia del método de Otsu radica en que es automático, es decir, no necesita

supervisión humana ni información previa de la imagen antes de su procesamiento. Breve descripción del Método de Otsu para un umbral óptimo Una imagen es una función bidimensional de la intensidad del nivel de gris, y contiene

N píxeles cuyos niveles de gris se encuentran entre 1 y L. El número de píxeles con nivel de gris i se denota como fi, y la probabilidad de ocurrencia del nivel de gris i en la imagen está dada por

(1) En el caso de la umbralización en dos niveles de una imagen (a veces llamada binari-

zación), los píxeles son divididos en dos clases: C1, con niveles de gris [1, ...., t]; y C2, con niveles de gris [t+1, ...., L]. Entonces, la distribución de probabilidad de los niveles de gris para las dos clases son:

(2)

(3)

donde También, la media para la clase C1 y la clase C2 es Sea µT la intensidad media de toda la imagen. Es fácil demostrar que Usemos un ejemplo para tener bien claro lo visto hasta aquí. Supongamos un imagen

de N=100 píxeles con cuatro niveles de gris comprendidos en [1,4] (1 el negro, 4 el blan-co) y supongamos también que el número de píxeles con nivel de gris 1 es 10; con nivel de gris 2, 20; con nivel de gris 3, 30; y con nivel de gris 4, 40; es decir, f1=10, f2=20, f3=30, y f4=40. Luego, p1=f1/N=0.1, p2= 0.2, p3= 0.3, y p4= 0.4. Entonces, para una umbralización en dos niveles de esta imagen tomemos t=2 de manera que la clase C1 consista en los to-nos de gris 1 y 2, y la clase C2 posea los tonos 3 y 4. De esta manera, ω1(t)=0.1+0.2=0.3 y

Nfp i

i =

)(,....,

)( 11

1

tp

tp t

ωω:1C

)(,....,

)(,

)( 22

2

2

1

tp

tp

tp Ltt

ωωω++:2C

∑=

=t

i

i

tpi

1 11 )(

µ

∑+=

=L

tiipt

12 )(ω∑

=

=t

iipt

11 )(ω

∑+=

=L

ti

i

tpi

1 22 )(

µ

121 =+ωωTµµωµω =+ 2211 ..

Page 38: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Segmentación por Umbralización – Método de Otsu 3

ω2(t)=0.3+0.4=0.7, y se comprueba que ω1(t)+ω2(t)=1. Por último, la media para la clase C1 y para la clase C2 estará dada por:

y Sigamos con el método. Usando análisis discriminante, Otsu definió la variancia entre

clases de una imagen umbralizada como

(4) Para una umbralización de dos niveles, Otsu verificó que el umbral óptimo t* se elige

de manera que σB2 sea máxima; esto es

(5)

En el apéndice se incluye un algoritmo que calcula un umbral óptimo usando el método

de Otsu para luego poder binarizar correctamente una imagen. El método puede de Otsu extenderse fácilmente a múltiples umbrales. Asumiendo que

hay M-1 umbrales, {t1, t2, ..., tM-1}, los cuales dividen a la imagen en M clases: C1 para [1, ..., t1], C2 para [t1+1, ..., t2], ..., Ci para [ti-1+1, ..., ti], ..., y CM para [tM-1, ..., L], los umbrales óptimos {t1*, t2*, ..., tM-1*} se eligen maximizando σB

2 como sigue:

(6) Donde,

(7) Con ωk es conocido como momento acumulado de orden cero de la k-ésima clase Ck, y el

numerador de la última expresión es conocido como momento acumulado de primer orden de la k-ésima clase Ck; esto es,

357,3*7,0667,1*3,0.. 2211 ≈+=+= µωµωµT

667,13,0

2,0*21,0*1)(

.2

1 11 ≈

+== ∑

=i

i

tpi

ωµ

57.37,0

4,0*43,0*3)(

.4

3 22 ≈

+== ∑

=i

i

tpi

ωµ

222

211

2 ).().( TTB µµωµµωσ −+−=

)}({* 2 tMaxt Btσ= Lt ≤≤1

)},...,,({*}*,...,*,{ 1212

,...,,121121

−−−

= MBtttM tttMaxtttM

σ

Ltt M <<<≤ −11 ...1

2

1

2 ).( Tk

M

kkB µµωσ −= ∑

=

∑∈

=kCi

ik pω ∑∈

=kCi k

ik

piω

µ .

∑∈

=kCi

ipik .)(µ

Page 39: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Segmentación por Umbralización – Método de Otsu 4

Formulación alternativa del método de Otsu Independientemente del número de clases que se consideren durante el proceso de

umbralización, la suma de las funciones de probabilidad acumulada de las M clases son iguales a 1, y la media de la imagen es igual a la suma de las medias de las M clases ponderadas por sus correspondientes probabilidades acumuladas; esto es,

(8) y (9)

Usando las expresiones (7) y (8), la varianza entre clases en la ecuación (7) de la ima-

gen umbralizada puede rescribirse de la siguiente forma

(10) Debido a que el segundo término en la expresión (10) depende de la elección de los

umbrales {t1, t2, ..., tM-1}, los umbrales óptimos {t1*, t2*, ..., tM-1*} pueden ser elegidos ma-ximizando una varianza entre clase modificada (σB’)2, definida como la sumatoria de los términos del lado derecho de la expresión (10). En otras palabras, los valores de los um-brales óptimos {t1*, t2*, ..., tM-1*} se eligen por

(11)

Donde,

(12) De acuerdo al criterio de la expresión (6) para σB

2 y al de la expresión (11) para (σB’)2, para encontrar los umbrales óptimos, el campo de búsqueda para el máximo σB

2 y para el máximo (σB’)2 es 1 ≤ t1 < L-M+1, t1+1 ≤ t2 < L-M+2, ..., y tM-1+1 ≤ tM-1 < L-1, como se ilus-tra en la figura 1. Esta búsqueda exhaustiva involucra (L-M+1)M-1 combinaciones posibles. Además, comparando la expresión (12) con la (7), encontramos que la resta en la expre-sión (7) no es necesaria. Así, la expresión (12) es mejor que la expresión (7) ya que elimi-na M.(L-M+1)M-1 restas del cálculo de los umbrales.

∑=

=M

kk

11ω ∑

=

=M

kkkT

1.µωµ

22

1121

2 .),...,,( Tk

M

kkMB ttt µµωσ −= ∑

=−

}},...,,{)'{(*}*,...,*,{ 1212

,...,,121121

−−−

= MBtttM tttMaxtttM

σ

Ltt M <<<≤ −11 ...1

2

1

2 .)'( k

M

kkB µωσ ∑

=

=

t1

t2

tM-1L-1

L-M+2

L-M+1

M-1

2

1

t1 t2 tM-1 L 1

Figura 1: Campo de búsqueda para {t1, t2, ..., tM-1}.

Page 40: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Segmentación por Umbralización – Método de Otsu 5

Referencias 1) Nobuyuki Otsu, “A threshold selection method from gray-level histogram”, IEEE

Transactions on System Man Cybernetics, Vol. SMC-9, No. 1, 1979, pp. 62-66. 2) Ping-Sung Liao, Tse-Sheng Chen and Pau-Choo Chung, “A Fast Algorithm for

Multilevel Thresholding”, Journal of Information Science and Engineering 17, 713-727 (2001).

3) Digital Image Processing Second Edition, Rafael C. Gonzalez – Richard E. Woods,

capítulo 10.

Page 41: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Segmentación por Umbralización – Método de Otsu 6

Apéndice A continuación se mostrará un función hecha en un script de MatLab que calcula el um-

bral óptimo para binarizar una imagen utilizando el método de Otsu desarrollado anterior-mente.

function umbralOptimo = umbralOtsu(Imagen) % % umbralOptimo = umbralOtsu(Imagen) % Esta funcion calcula el umbral optimo para binarizar una imagen mediante el % Metodo de Otsu. % % Universidad Nacional de Quilmes % Ingeniería en Automatización y Control Industrial % Cátedra: Visión Artificial - Octubre de 2005 Imagen = fix(double(Imagen)); [f,c]=size(Imagen); % Calculo de la distribucion de probabilidad de los niveles de gris P=zeros(1,256); for i=1:f*c P(Imagen(i)+1) = P(Imagen(i)+1) + 1; end P = P / (f*c); % Calculo del momento acumulado de orden cero y del de primer orden omega = zeros(1,256); omega(1) = P(1); mu = zeros(1,256); for i=2:256 omega(i) = omega(i-1) + P(i); mu(i) = mu(i-1) + (i-1)*P(i); end % Calculo del umbral optimo segun Otsu sigmaB2max = 0; sigmaB2 = 0; mut = mu(256); % Intensidad media total de la imagen umbralOptimo = 0; for t=1:256 omega1 = omega(t); omega2 = 1 - omega1; if omega1~=0 & omega2~=0 mu1 = mu(t) / omega1; mu2 = (mut-mu(t)) / omega2; sigmaB2 = omega1 * (mu1-mut)^2 + omega2 * (mu2 - mut)^2; if sigmaB2 > sigmaB2max sigmaB2max = sigmaB2; umbralOptimo = t-1; end end end

Page 42: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Segmentación por Umbralización – Método de Otsu 7

Comparemos ahora los resultados de binarizar una imagen con el método de Otsu y

con un umbral arbitrario. clear all, close all A=double(imread('rice.tif','tif')); Binaricemos la imagen original usando la función anterior, ‘umbralOtsu’: Botsu = A > umbralOtsu(A); Binaricemos otra vez la imagen pero usando un umbral global arbitrario, por ejemplo,

110: Bglobal = A > 110; Agreguemos a la imagen original ruido gaussiano de media 0 y varianza 20: r=20*randn(size(A)); Ar=fix(min(max(A+r,0),255));

Figura 2: Imagen original que se desea binarizar.

Figura 3: Imagen con ruido gaussiano de media cero y varianza 20 que se desea binarizar.

Page 43: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Segmentación por Umbralización – Método de Otsu 8

Binaricemos ahora la imagen con ruido gaussiano usando tanto el umbral dado por el método de Otsu como el umbral arbitrario usado antes:

Botsur = A > umbralOtsu(Ar); Bglobalr = Ar > 110; Finalmente, mostremos las imágenes binarias resultantes de los dos métodos de binari-

zación, para el caso de la imagen sin ruido, y con ruido gaussiano: figure, subplot(1,2,1), imshow(Botsu) title('Imagen binarizada con umbral Otsu') subplot(1,2,2), imshow(Botsur) title('Imagen con ruido binarizada con umbral Otsu') figure, subplot(1,2,1), imshow(Bglobal) title('Imagen binarizada con umbral arbitrario') subplot(1,2,2), imshow(Bglobalr) title('Imagen con ruido binarizada con umbral arbitrario')

Figura 4: a) Imagen resultante de binarizar la original usando un umbral calculado con el método de Otsu. b) Imagen resultante de binarizar la imagen con ruido gaussiano mediante Otsu.

Figura 5: a) Imagen resultante de binarizar la original usando un umbral arbitrario. b) Imagen resultante de binarizar la imagen con ruido gaussiano usando el mismo umbral arbitrario.

Page 44: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Segmentación por Umbralización – Método de Otsu 9

Como se puede ver en la figura 4, la imagen sin ruido binarizada con el umbral calcu-lado mediante el método de Otsu es idéntica a la imagen con ruido gaussiano binarizada usando el mismo método. Sin embargo, la imagen resultante de binarizar la imagen sin ruido con el umbral arbitrario difiere en gran medida de la obtenida luego de binarizar la imagen con ruido gaussiano con el mismo umbral arbitrario.

De esta manera, podemos comprobar la robustez o capacidad del método de Otsu para

encontrar un umbral óptimo con el que se pueda binarizar correctamente una imagen con-taminada con ruido gaussiano. Dado que no se puede comprobar en este apunte la efi-ciencia y rapidez del método para calcular el umbral óptimo, tendremos que confiar en el gran uso que se hace de él en la industria a la hora de binarizar imágenes reales en tiem-po real y que están inmersas en todo tipo de perturbaciones.

Si bien hemos verificado mediante un simple ejemplo las ventajas del método de Otsu

para hallar un umbral óptimo en una imagen con ruido gaussiano, se puede extender su utilidad para aquellos casos en que la iluminación no es uniforme o es en general inade-cuada.

Page 45: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Tipos de iluminación 1

Iluminación para las aplicaciones de Visión Artificial La iluminación es el aspecto más decisivo de cualquier aplicación de visión artificial. Eli-

giendo la técnica adecuada de iluminación se puede lograr un aumento en la exactitud, en la fiabilidad del sistema y en su tiempo de respuesta. Es un error muy serio y costoso asu-mir que se puede compensar una iluminación inadecuada con un algoritmo.

El desarrollo constante de nuevas tecnologías de visión artificial a permitido a tales sis-

temas ser utilizados en problemas como medición, inspección y monitoreo de procesos en la industria. La llegada de las computadoras rápidas, los integrados de procesamiento di-gital de señales y los lenguajes de nivel más alto han incrementado la capacidad de la vi-sión artificial. Hoy en día, en la mayoría de las grandes industrias existe un equipo de tra-bajo que tiene una especialización en las aplicaciones de visión artificial. Los avances en el hardware, software y las cámaras de visión redujeron los costos y el tiempo del desa-rrollo de la aplicación. Sin embargo, aún hay un área que sigue siendo indefinida y poco equipada: la iluminación. La iluminación es una problema único en el desarrollo de la apli-cación de visión artificial.

El observador humano usa un amplio rango de señales, obtenidas a partir del color, la

perspectiva, el sombreado, y una vasta librería de experiencias individuales. La percep-ción visual depende únicamente de la capacidad humana de realizar juicios. Sin embargo, un sistema de visión artificial no tiene una experiencia de base de la cual tomar decisiones mediante una comparación. Todo debe estar específicamente definido. Problemas sim-ples como encontrar un orificio o juzgar puntos finos, se vuelven una tarea complicada de definiciones en la visión artificial. Para reducir el número de variables, el sistema de visión debe estar provisto con la mejor imagen que sea posible. En un sistema de visión artificial, la mejor imagen es aquella que tiene el mayor contraste donde las áreas de interés se destacan del fondo (background) intrascendente. La mejor imagen es aquella que facilita la tarea del sistema de visión.

Muchas aplicaciones buenas han fallado por la falta de una iluminación apropiada. Los

sistemas de iluminación que trabajan correctamente en el laboratorio no siempre lo hacen en la planta industrial donde la iluminación fluctuante del ambiente causa distorsiones.

Aunque ha habido muchos progresos en los sistemas de iluminación, todavía queda

mucho por aprender. Hay gran cantidad de soluciones posibles de iluminación para real-zar una característica específica de un objeto, como también hay un gran número de apli-caciones.

La iluminación en las aplicaciones de visión artificial, como todas las tecnologías involu-

cradas, dependen del continuo avance tecnológico para perfeccionar los sistemas que mejoran la calidad de los productos fabricados en la actualidad.

Fundamentos de la iluminación. Existen reglas bien establecidas para la elección de un tipo de lente. Por el contrario,

son mucho menos las reglas establecidas para la elección de una buena iluminación, aún

Page 46: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Tipos de iluminación 2

cuando esta última es tan importante como la elección adecuada de la lente para obtener imágenes utilizables. Para que una característica aparezca en una imagen, la luz debe ve-nir de la fuente de iluminación, reflejarse en el objeto y ser recolectada por la lente (figura 1).

En nuestra experiencia diaria, usa-

mos la luz del ambiente para poder ver. Como ya se mencionó, en las aplicacio-nes de visión artificial la luz del ambien-te de trabajo es peligrosa debido a que puede cambiar cuando menos lo espe-ramos. Por esta razón, necesitamos proveer de luz controlada de manera que se acentúen las características de interés y se minimicen aquellas intras-cendentes.

La óptica (lentes) del dispositivo utili-

zado para tomar las imágenes y la ilu-minación se diseñan mucho mejor to-mándolos como un mismo sistema. El que diseña la iluminación debe procurar que todos los haces de luz reflejados por el objeto sean tomados por la lente como parte de la imagen. Al mismo tiempo, debe evitar aquellos haces que no serán parte de la imagen (por ejem-plo, los rayos que caen fuera del campo de visión de la lente). Estos rayos inter-ferentes solo pueden contribuir a producir resplandor, lo que disminuye el contraste de la imagen. A menos que la óptica y la iluminación del sistema de visión sean diseñadas con-juntamente, la coordinación de estas dos es difícil de realizar.

Tipos de Reflexión. La luz es reflejada por los objetos de dos maneras llamadas reflexión especular y refle-

xión difusa. En la reflexión especular, cada rayo incidente se refleja en una única dirección (los rayos reflejados son paralelos). Una pista de estaño en un circuito o un espejo exhi-ben reflexión especular. Por otro lado, en la reflexión difusa los rayos incidentes son dis-persados en un rango de ángulos salientes. Un pedazo de papel es un reflector difuso.

En realidad, los objetos exhiben todas las clases de conductas entre los extremos de la

reflexión especular y la difusa. Los rayos de luz reflejados por una superficie pulida de metal tienen una componente direccional dominante (reflexión especular) pero que es di-fundida parcialmente por irregularidades de la superficie (reflexión difusa). El papel pre-senta algunas propiedades especulares, como se puede comprobar al leer con luz muy in-tensa. También hay que decir que existen muchos objetos cuyas partes reflejan de mane-

Figura 1

Page 47: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Tipos de iluminación 3

ra diferente. Por ejemplo, un conector eléctrico posee pines brillantes (especular) de metal y partes opacas (difusa) de plástico.

Reflexiones Especulares. Las reflexiones especulares son brillantes pero poco confiables. Son brillantes porque

la intensidad de la reflexión es comparable con la intensidad de la luz que proviene de la fuente. En muchos casos, las reflexiones especulares saturan al sensor de la cámara. Las reflexiones especulares no son confiables debido a que un pequeño cambio en el ángulo entre la fuente de luz, el objeto y las lentes puede causar que la reflexión especular desa-parezca completamente. A menos que estos ángulos estén bien controlados, es mejor e-vitar la presencia de este tipo de reflexiones. El mejor método para iluminar partes que producen reflexiones especulares es la iluminación difusa.

Reflexiones Difusas. Las reflexiones difusas son tenues pero estables. La intensidad de la reflexión puede

ser de 10 a 1000 veces menor que la intensidad de la fuente de luz. La intensidad de la luz reflejada cambia lentamente con el ángulo. Las superficies difusas pueden ser ilumi-nadas correctamente usando fuentes de luz difusas como así también fuentes de luz pun-tuales.

Técnicas de iluminación. Iluminación posterior (backlight). La iluminación posterior permite delinear el contorno de las piezas, minimiza la visibili-

dad de gabinetes traslúcidos y permite visualizar perforaciones pasantes. Esta técnica brinda un contraste muy alto y es fácil de implementar. En las imágenes tomadas bajo es-ta técnica, el fondo (background) aparece uniformemente blanco y el objeto se visualiza mediante se silueta.

Dentro de las técnicas de iluminación posterior se pueden encontrar la difusa y la direc-

cional. En la iluminación posterior difusa (figura 4) los rayos de luz se transmiten en diver-

Figura 2: Reflexión Especular Figura 3: Reflexión Difusa

Page 48: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Tipos de iluminación 4

sos ángulos, como ya se mencionó. En la iluminación posterior direccional (figura 5), un colimador hace que todos los rayos de luz se propaguen en direcciones paralelas.

Aplicaciones típicas incluyen la medición de

las dimensiones exteriores, la ubicación de los puntos de sujeción (perforaciones para torni-llos) y la medición de la opacidad de materi-ales traslúcidos o de su espesor.

Iluminación Frontal Oblicua y Direccional. La dirección de la iluminación, conocida como el ángulo de incidencia, es él ángulo for-

mado por el plano normal a la superficie y el rayo incidente. Cuando los haces de luz for-man un ángulo de 20 grados con la superficie, se puede maximizar el contraste en objetos con relieves de manera que los bordes aparezcan brillantes frente al fondo oscuro que for-man las superficies planas del objeto. En la iluminación frontal direccional, el ángulo entre los rayos incidentes y la superficie es de 30º, lo que reduce un poco el contraste pero in-crementa la cantidad de información obtenible de las superficies planas.

Figura 4 Figura 5

Figura 6: Dispositivo comercial de iluminación posterior (backlight)

Page 49: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Tipos de iluminación 5

Entre los dispositivos comerciales se pueden encontrar los anillos y los domos. Los ani-

llos son adecuados para superficies planas y difusas. Están disponibles en espectro blan-co, rojo, IR, UV, azul, verde, iluminación continua o pulsante, con lente difusor o no difu-sor. Los domos producen una iluminación difusa y uniforme. Se utilizan para iluminar su-perficies reflectivas. Están disponibles con luz continua o pulsante y fuentes conectadas mediante fibra óptica.

Iluminación Frontal Axial (difusa). Mediante esta técnica se puede iluminar desde el mismo

eje de la cámara con luz uniforme, incluyendo el centro de la imagen. Permite iluminar uniformemente superficies re-flectivas, realza detalles grabados y crea contraste entre superficies especulares y difusas / absorbentes.

El dispositivo comercial de la figura 10 envía luz median-

te el divisor de haces prácticamente a 90 grados. Provee i-luminación uniforme para superficies reflectivas planas. De

Figura 6: Iluminación Frontal Oblicua Figura 7: Iluminación Frontal Direccional

Figura 8: Anillo Figura 9: Anillo con difusor Figura 9: Domo

Page 50: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Tipos de iluminación 6

esta forma, las superficies reflectivas perpendiculares a la cámara se ven iluminadas, mientras que aquellas que se encuentran a otros ángulos aparecen oscuras.

Por entregar una mayor uniformidad, logra incrementar la precisión y repetibilidad del

sistema de visión.

1) Matriz de leds de alta luminosidad. 2) Filtros difusores. 3) Cristal semireflectante. 4) Anclaje para cuatro tornillos.

Page 51: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Tipos de iluminación 7

Iluminación de Día Nublado (cloudy day ilumination, CDI). Suministra iluminación difusa en la misma dirección que el eje de la cámara. Ha sido

diseñada para las aplicaciones más complejas y difíciles con superficies especulares i-rregulares que necesitan luz completamente uniforme .La CDI proporciona una completa uniformidad, con un máximo de desviación del 10% en el campo de visión.

CDI es el sistema más perfecto de iluminación difusa que existe, el efecto que se consi-

gue con este tipo de iluminación es el de "Un Día Nublado". La CDI combina un sistema óptico patentado con una esfera difusora para proporcionar un ambiente de iluminación di-fusa que no tiene comparación en el mundo de la tecnología de iluminación. La figura 11 muestra un esquema típico de CDI.

La CDI ha sido diseñado para aplicaciones criticas que están basados en objetos con

superficies altamente especulares donde cualquier reflexión puede confundirse con un defecto. Ejemplos de este tipo de aplicaciones incluyen: verificación de discos compactos, y la inspección de patrones en circuitos impresos o placas electrónicas. Los dispositivos comerciales de CDI permiten inspeccionar productos incluso dentro de su envoltorio, tales como blisters farmacéuticos o chips de ordenador dentro de su envoltura transparente.

Figura 12: Dispositivo de CDI

Figura 13: Ejemplo de las ventajas de la CDI

Figura 11: Dispositivo de CDI

Page 52: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Tipos de iluminación 8

Iluminación de Campo Oscuro (dark field). Se trata de luz directa de alta intensidad que se hace incidir sobre el objeto con un án-

gulo muy pequeño respecto a la superficie donde descansa (figura 14). De esta manera conseguimos que sobre superficies que presentan hendiduras o elevaciones, éstas inter-fieran en la trayectoria de la luz produciéndose zonas brillantes.

Esta técnica consiste en hileras de LEDs montadas a 75 o 90º con respecto al eje ópti-

co. La iluminación puede ser continua o pulsante (strobe). Además del modelo en anillo, también se fabrican con haces paralelos ajustables indi-

vidualmente. La iluminación de campo oscuro realza el contraste de los detalles superficiales tales

como grabados, marcas y defectos. Array de luces. La luz producida por el array de luces llega direc-

tamente al objeto. Produce un gran contraste y re-salta las texturas, relieves y fisuras del objeto ilumi-nado debido a que cualquier relieve, por pequeño que sea, produce una sombra muy definida.

El ángulo de incidencia de la luz respecto al pla-

no de iluminación determinará el grado de resalte de los relieves. Para ángulos muy pequeños res-pecto a la horizontal, la luz producirá sombras en los relieves de la pieza.

Para ángulos cercanos a 90 grados respecto a la

horizontal, solo será detectable la sombra en los grandes relieves.

Figura 14: Esquema de iluminación de Campo Oscuro Figura 15: Dispositivo comercial

Figura 16: Esquema de iluminación del array de luces

Page 53: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Tipos de iluminación 9

Se encuentran en el mercado en forma de fuente puntual (figura 17), cuadrada, rectan-gular (figura 18), etc. Provee iluminación económica de uso general unidireccional. Puede utilizarse para los métodos de campo oscuro (creando sombras y reflexión especular) y para los métodos de campo claro (o brillante) en el caso de superficies difusas.

Iluminación de campo claro (o brillante). La fuente de luz es uniforme y difusa (sua-

ve) e incide con un pequeño ángulo sobre la superficie reflectante del objeto a inspeccionar.

La cámara se coloca con el mismo ángulo

de forma que obtenga una imagen reflejada de la fuente de luz en la superficie el objeto ins-peccionado. Una posible imperfección en el mismo producirá una mancha oscura en la i-magen captada por la cámara. La mancha os-cura que se apreciará en la cámara es debida a la variación del ángulo de reflexión que pro-duce la imperfección con respecto al ángulo de la luz incidente, perdiéndose el reflejo de la fuente de iluminación.

Indicado para detectar rayas, fisuras y deformaciones en objetos con superficies planas

y brillantes. La técnica de campo claro o brillante puede realizarse con un array de leds, como se

mencionó anteriormente.

Figura 18: Array de leds comercial Figura 17: Spot (luz puntual)

Figura 20: Esquema del campo claro

Page 54: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Tipos de iluminación 10

Otro punto de vista de la elección del tipo de iluminación. Anteriormente, se presentaron las distintas formas de iluminar un objeto teniendo en

cuenta las técnicas de iluminación existentes para las diferentes aplicaciones. A continu-ación, el enfoque estará puesto en los dispositivos comerciales que se utilizan en la actua-lidad: Fibra óptica, Fluorescentes, LED y Láser. Cada uno de ellos tiene sus ventajas y desventajas con respecto a los otros. Y dependiendo del tipo de aplicación deberá utilizar-se uno u otro.

Hay cuatro factores que condiciona el tipo de iluminación, que son: Intensidad lumínica,

Duración, Flexibilidad de diseños y Precio. Los sistemas de iluminación para aplicaciones industriales pueden emitir luz de forma continua o de forma pulsada (estroboscópica).

Iluminación por Fibra Óptica. La iluminación por fibra óptica, es actualmente, la que puede proporcionar la luz más

intensa de todos los tipos de iluminación que se utilizan en visión artificial. La idea básica es conducir la luz procedente de una bombilla halógena, o de xenón, que se encuentra en un fuente de iluminación, a través de un haz de fibras ópticas que termina en un adapta-dor específico para cada tipo de aplicación. Estos adaptadores pueden tener forma circu-lar, lineal, puntual o de panel, y puede ser de distintos tamaños y dimensiones.

En los haces de fibra óptica hay cierta perdida de intensidad con relación a la longitud o

distancia. Normalmente no se aconseja utilizar haces de fibra óptica de una longitud supe-rior a 5 metros, ya que por una parte se pierde intensidad y por otra el precio se hace un factor determinante. Una de las ventajas de la fibra óptica es que proporciona luz fría, y por tanto es ideal en aplicaciones donde los sistemas que puedan emitir calor sean un in-conveniente o también en entornos deflagrantes.

Las fuentes de iluminación acostumbran a incorpo-

rar una bombilla halógena y generalmente incluyen un estabilizador de corriente, con una fuente de ali-mentación para la lámpara halógena (150W) que se aloja en un espacio donde se conecta el haz de fibra óptica. La potencia de iluminación de la lámpara haló-gena se controla mediante un reóstato. La vida media de las lámparas halógenas utilizadas con este tipo de iluminación oscila entre 1000 y 2000 horas.

Algunas fuentes de iluminación incorporan control de intensidad vía puerto serie RS-

232 de forma que se puede controlar desde un elemento externo como un PC. Iluminación por Fluorescente. Los tubos fluorescentes se usan en muchas ocasiones en aplicaciones de visión artifi-

cial, aunque debido a su limitada variedad de formas, también es limitada su utilización.

Figura 21

Page 55: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Tipos de iluminación 11

Para las aplicaciones industriales es importante que los fluorescentes funcionen a alta frecuencia al menos a 25kHz. En aplicaciones de visión no pueden utilizarse fluorescentes estándar debido a su efecto de parpadeo, que dependiendo de la velocidad a la que la cá-mara funcione, puede verse reflejado en la intensidad de la imagen capturada.

Los tubos fluorescentes estándar no presentan

un balance de color uniforme, incorporando longitu-des de onda mayoritariamente azules. Para aplica-ciones de visión artificial es necesario utilizar fluo-rescentes con espectro conocido. Así es habitual u-tilizar en según qué aplicaciones, fluorescentes casi monocromáticos: ultravioletas, amarillos, verdes, a-zules, etc.

Para aplicaciones donde se requiere una gran in-

tensidad de iluminación y una larga longitud, se utili-zan fluorescentes de apertura, en estos fluorescentes la luz se emite solo en una direc-ción y con un ángulo muy estrecho, esto permite que la intensidad lumínica pueda ser hasta 10 veces superior a la de un fluorescente estándar.

Las fuentes de alimentación que proporcionan electricidad a los fluorescentes pueden

venir equipados con fotodiodos, que permiten controlar y regular automáticamente la esta-bilidad de la luz en todo momento, de forma que cuando la intensidad de la luz del fluores-cente disminuye la fuente hace que aumente la potencia hasta devolver la intensidad an-terior. La vida media de los tubos fluorescentes es algo superior a las 10000 horas.

Iluminación por LED. Para aplicaciones donde no se requiera una gran intensidad de iluminación se puede

utilizar la iluminación por LED (Light Emiting Diodes). Los LED proporcionan una intensi-dad de iluminación relativa a un coste muy interesante, y además tienen una larga vida, a-proximadamente 100.000 horas. Otra consideración a tener en cuenta es que sólo requie-ren un cable de alimentación y no un haz de fibra óptica que en ocasiones es muy delica-do.

La intensidad de la iluminación continua por LED no

es tan intensa como otros tipos de iluminación pero ac-tualmente se están introduciendo los LED de alta inten-sidad que empiezan a proporcionar una iluminación mucho más potente. Si los LED se conectan a un sis-tema estroboscópico se pueden alcanzar potencias lu-mínicas muy similares a los de la luz halógena.

Recientemente se han introducido una nueva tecno-

logía de LED que se denomina chip-on-board y que permite concentrar un gran número de LED en una superficie muy reducida y por tanto aumentar aún más el poder lumínico.

Figura 22

Figura 23

Page 56: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Tipos de iluminación 12

Aunque los sistemas con LED más comunes emiten luz de color rojo y se utilizan para aplicaciones monocromas, actualmente se está extendiendo el uso de otros colores como infrarrojo, verde, azul o blanco. El motivo por el que los LED rojos son los más utilizados en los sistemas de visión es porque son los más fáciles de encontrar y los más baratos. La vida media de los sistemas de LED pueden alcanzar hasta las 100000 horas.

Iluminación por LÁSER. La iluminación mediante láser o luz estructurada se utiliza normalmente para resaltar o

determinar la tercera dimensión de un objeto. El método utilizado es colocar la fuente de luz láser en un ángulo conocido con respecto al objeto a iluminar y con respecto a la cá-mara. Viendo la distorsión de la luz puede interpretarse la profundidad de los objetos a medir.

La luz estructurada se utiliza en muchas aplicaciones para obtener la percepción de

profundidad y para inspecciones en 3D. Para hacerse una idea, se genera una línea de luz y se visualiza de forma oblicua. Las distorsiones en la línea se traducen en variaciones de altura. Y de aquí se puede desprender los cambios de profundidad o altura de un obje-to. Por tanto se puede también determinar la falta o exceso de material, o bien se puede llegar a hacer una reconstrucción en tres dimensiones del objeto.

Para obtener la mejor reconstrucción 3D se debe obtener un tamaño de línea lo más

delgada posible sobre un fondo con muy baja o nula iluminación. La mayoría de lásers que se utilizan en visión industrial usan lentes cilíndricas para

convertir el punto láser en un patrón. Aunque a primera vista esta sistema parece correc-to, la intensidad lumínica a lo largo presenta una forma gausiana, haciendo la detección mucho más difícil a nivel de software. Los sistemas de láser más avanzados utilizan siste-mas complejos no gausianos que proporcionan una iluminación relativamente constante a lo largo de toda la línea, y que de esta forma facilitan las medidas en las aplicaciones de visión.

Existen un gran número de patrones disponibles, entre los que se incluyen: una línea,

múltiples líneas paralelas, patrones de puntos, círculos concéntricos, mallas, y cruces, que se utilizan dependiendo de la aplicación. Los sistemas de luz estructurada láser está disponible en distintos tipos de potencia y longitudes de onda. Así mismo se han realizado diseños específicos para aplicaciones concretas tales como: sistemas de líneas ultra fi-

Figura 24 Figura 25

Page 57: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Tipos de iluminación 13

nas, o sistemas láser conectados a fibra óptica para aplicaciones en ambientes con peli-gro de deflagración.

Dependiendo de la longitud de onda y de la potencia de los láser estos se clasifican se-

gún su grado de afectación o peligrosidad. Los láser utilizados para visión artificial acos-tumbran a corresponder a las Clases II, IIIA, o IIIB.

Page 58: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Noviembre de 2005

Efectos de la Iluminación 1

Efectos de la Iluminación Este apunte tiene como objetivo ilustrar los efectos de una iluminación inadecuada so-

bre las imágenes obtenidas bajo esas condiciones. También se presenta una forma de compensar los efectos de una iluminación no uniforme sobre una imagen ya adquirida, cuando se conoce de antemano las características de la fuente de iluminación.

La formación de una imagen I(x,y) se puede ver como

(1)

donde R(x,y) es la componente de reflectancia y L(x,y) la de iluminación (se pueden en-contrar más detalles en la sección correspondiente al Filtrado Homomórfico del apunte “Filtrado en el Dominio de la Frecuencia.pdf”). Vamos a ver cuál es el efecto de la componente de iluminación L(x,y) de cara a poder segmentar la imagen I(x,y).

Vamos a considerar la función de reflectancia R(x,y) generada con una computadora

que se expone en la figura 1 (a). El histograma de esta función, como se aprecia en la fi-gura 1 (b), es claramente bimodal y la imagen se puede segmentar fácilmente mediante un umbral situado en el valle del histograma. Consideramos ahora la función de ilumina-ción L(x,y) generada por computadora de la figura 1 (c). Multiplicando las funciones de re-flectancia e iluminación obtenemos la imagen I(x,y) mostrada en la figura 1 (d). En el his-tograma de la imagen I(x,y), figura 1 (e), el valle prácticamente ha desaparecido por com-pleto, por lo que la segmentación mediante un único umbral es en este caso imposible. Aunque en general casi nunca se dispone de la función de reflectancia aislada, este ejem-plo muestra que la naturaleza reflectiva de los objetos y del fondo son tales que son fácil-mente separables. Sin embargo, debido a una mala iluminación, la imagen resultante es muy difícil de segmentar.

La razón por la que el histograma de la reflectancia se ve modificado por la iluminación

se puede explicar de forma sencilla. Vamos a tomar logaritmos en la ecuación (1) obte-niendo otra imagen

(2)

),().,(),( yxLyxRyxI =

),('),('),(ln(),(ln),(ln),( yxLyxRyxLyxRyxIyxZ +=+==

a) b)

Page 59: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Noviembre de 2005

Efectos de la Iluminación 2

Si R’(x,y) y L’(x,y) son variables independientes, el histograma de Z(x,y) viene dado

por la convolución de los histogramas de R’(x,y) y L’(x,y). Si la iluminación L(x,y) es constante, L’(x,y) también lo es, y su histograma será un impulso. La convolución de este impulso con el histograma de la reflectancia R’(x,y) no la modifica y por lo tanto, la ima-gen I(x,y) tiene el mismo histograma que la reflectancia R(x,y). Si por el contrario, la ilumi-nación L’(x,y) tiene un histograma más ancho, el proceso de la convolución con el histo-grama de la reflectancia R’(x,y) dará lugar a que el histograma de la imagen I(x,y) sea sustancialmente diferente al histograma de la componente de reflectancia R(x,y). El grado de distorsión dependerá de cuán ancho sea el histograma de la componente de ilumina-ción L(x,y), es decir, de cuán no uniforme sea la iluminación.

Cuando se tenga acceso a la fuente de iluminación, una solución que se emplea habi-

tualmente para compensar la no uniformidad de ésta consiste en proyectar la iluminación sobre una superficie clara y plana. Esta proyección dará lugar a una imagen G(x,y)=k.L(x,y), donde k es una constante que depende de la reflectividad de la superfi-cie. Ahora, para cualquier otra imagen I(x,y) formada a partir de la ecuación (1) para una función de reflectividad dada, R(x,y), y para la misma función de la iluminación L(x,y), po-demos compensar la iluminación haciendo

(3)

kyxR

yxLkyxLyxR

yxGyxIyxH ),(

),(.),().,(

),(),(),( ===

c) d)

Figura 1: (a) Función de reflectancia R(x,y) generada por computadora. (b) Histograma de la función reflectancia. (c) Función de iluminación L(x,y) generada por computadora. (d) Imagen I(x,y) producto de las funciones de reflectancia eiluminación. (e) Histograma de la imagen.

e)

Page 60: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Noviembre de 2005

Efectos de la Iluminación 3

Luego, si R(x,y) se puede segmentar empleando un umbral T, entonces la imagen H(x,y) también empleando un umbral T/k. Este método se puede emplear siempre que la iluminación no cambie de imagen a imagen.

Ejemplo de Compensación de Iluminación En su Proyecto Final de Carrera, que consistía en un Sistema de Visión para la inspec-

ción de blisters, la egresada de la Universidad Nacional de Quilmes, Iris Herrero, tuvo que resolver el problema de la iluminación no uniforme (puede encontrarse un breve resumen del proyecto en el apunte “Aspectos de un Proyecto de Visión Artificial.pdf” o el infor-me completo de tal proyecto en la referencia (2)).

El problema se debía a que la forma rectangular de la estructura, donde se colocaba la

fuente de luz y la cámara de video, ocasionaba que la iluminación fuera más intensa en el centro de las imágenes, perdiendo la uniformidad siempre deseada. Para solucionar esto, se incluyó en el sistema de visión una rutina de inicialización que consistía en capturar u-na imagen de un fondo blanco y plano, que se almacenaba para luego ser utilizada por u-na rutina de compensación de iluminación por software. De esta manera, cada imagen to-mada del producto se preprocesaba para compensar la iluminación antes de proceder a realizarle los análisis necesarios.

En el anexo puede encontrarse una forma concreta de cómo compensar la iluminación

cuando conocemos las características de ésta última. Referencias 1) Digital Image Processing Second Edition, Rafael C. Gonzalez – Richard E. Woods,

capítulo 10. 2) Iris Herrero, “Control de Blisters mediante Visión Artificial”, Informe del Proyecto

Final de la carrera de Ingeniería en Automatización y Control Industrial de la Universidad Nacional de Quilmes.

Page 61: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Noviembre de 2005

Efectos de la Iluminación 4

Anexo En este anexo se mostrará un procedimiento usado para compensar la iluminación so-

bre una imagen ya adquirida mediante un algoritmo. Para ello, vamos a suponer que co-nocemos con cierta exactitud las características de la distribución de luz en la imagen.

Como primer paso, carguemos una imagen y supongamos que ésta ha sido tomada

bajo la condición de una iluminación uniforme, es decir, L(x,y) = 1 para todo (x,y): R = double(imread('blood1.tif','tif')); [f,c] = size(R); L = ones(f,c); I = R.*L; % I coincide con R figure, imshow(uint8(I)), title('Imagen con Iluminacion Uniforme') Recordar que para aplicar el modelo iluminacion-reflectancia, I(x,y) = R(x,y)*L(x,y),

se debe realizar un producto elemento a elemento de matrices usando ‘.*’. Ahora, vamos a considerar que la iluminación (L) no es uniforme, sino que varía según

algún patrón (en este caso, una onda sinusoidal): L = zeros(f,c); for x=1:f L(x,:) = 0.9 + 0.1*cos(2*pi*x/f); end figure, imshow(uint8(L*255)), title('Iluminacion') Hecho esto, tengo en cuenta el modelo iluminacion-reflectancia presentado en este a-

punte, I(x,y) = R(x,y)*L(x,y) (R sería la imagen original, L la iluminación, e I la imagen re-sultante):

I_ilu = R.*L; figure, imshow(uint8(I_ilu)), title('Imagen con Iluminacion No Uniforme') Para solucionar el problema de la iluminación no uniforme vamos a definir la siguiente

matriz, que representará 1 / [k.L(x,y)] y vamos a suponer que k = 1: Comp = 1./L; figure, imshow(uint8(Comp*255*0.6)), title('Compensacion') Por ultimo, apliquemos la compensación a la imagen mal iluminada (I_ilu): I_compensada = Comp.*I_ilu; figure, imshow(uint8(I_compensada)) title('Imagen con Iluminacion Compensada') El script de Matlab anterior puede encontrarse en la página de la materia, con el nom-

bre “prueba_compensación_iluminación.m”. Ese script también muestra las imágenes resultantes obtenidas y los efectos de una iluminación no uniforme a la hora de binarizar una imagen.

Page 62: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 1

Aspectos de un Sistema de Visión Artificial Este apunte tiene como objetivo presentar brevemente los pasos fundamentales de un

proyecto de visión artificial. La visión artificial es una técnica basada en la adquisición de imágenes, generalmente

en dos dimensiones, para luego procesarlas digitalmente mediante algún tipo de CPU (computadora, microcontrolador, DSP, etc), con el fin de extraer y medir determinadas propiedades de la imágenes adquiridas. Se trata, por tanto, de una tecnología que combi-na las computadoras con las cámaras de video para adquirir, analizar e interpretar imáge-nes de una forma equivalente a la inspección visual humana.

Actualmente se aplica en diversos procesos científicos y militares, extendiéndose su u-

so además, en un amplio rango de sectores industriales para la automatización de tareas anteriormente reservadas para la inspección visual humana. Este tipo de incremento de u-tilización a nivel industrial es debido a que se trata de una tecnología especialmente útil en labores de inspección o supervisión, siendo cuantitativamente más objetivos y consis-tentes que la inspección humana. Un segundo aspecto complementario de estas técnicas es la automatización derivada de esta inspección y la posibilidad de actuar sobre el proce-so de fabricación o inspección modificando parámetros de la máquina de producción. Las técnicas de visión artificial, como demuestra su gran uso en la industria, son particular-mente apropiadas para la realización de trabajos visuales altamente repetitivos que sean fatigosos o difíciles de realizar para un operario, especialmente cuando este trabajo es i-neficiente o costoso en términos económicos o temporales.

Un sistema de visión artificial se compone básicamente de los siguientes elementos: • Fuente de luz: es un aspecto de vital importancia ya que debe proporcionar unas

condiciones de iluminación uniformes e independientes del entorno, facilitando ade-más, si es posible, la extracción de los rasgos de interés para una determinada a-plicación.

• Sensor de imagen: es el encargado de recoger las características del objeto bajo

estudio.

• Tarjeta de captura o adquisición de imágenes: es la interfaz entre el sensor y la computadora o módulo de proceso que permite al mismo disponer de la informa-ción capturada por el sensor de imagen.

• Algoritmos de análisis de imagen: es la parte inteligente del sistema. Su misión

consiste en aplicar las transformaciones necesarias y extracciones de información de las imágenes capturadas, con el fin de obtener los resultados para los que haya sido diseñado.

• Computadora o módulo de proceso: es el sistema que analiza las imágenes recibi-

das por el sensor para extraer la información de interés en cada uno de los casos implementando y ejecutando los algoritmos diseñados para la obtención de los ob-jetivos.

Page 63: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 2

• Sistema de respuesta en tiempo real: con la información extraída, los sistemas de visión artificial pueden tomar decisiones que afecten al sistema productivo con el fin de mejorar la calidad global de producción.

Fuentes de luz La fuente de luz es un factor de vital importancia en los sistemas de visión artificial y a-

fectan de forma crucial a los algoritmos de visión que se vayan a utilizar bajo esas condi-ciones. Una iluminación arbitraria del entorno no suele ser aceptable ya que muy proba-blemente se obtengan imágenes con un bajo contraste, reflexiones especulares, además de sombras y detalles espurios. Los objetivos de una iluminación adecuada son, básica-mente, independizar las condiciones del entorno y resaltar los rasgos de interés de una determinada aplicación.

Tipos de iluminación A continuación sólo se enuncian los diferentes tipos de iluminación. En el apunte

“Tipos de Iluminación.pdf” se pueden encontrar los detalles acerca de las técnicas de i-luminación más comunes y generalmente usadas.

• Iluminación posterior (backlight). • Iluminación Frontal Oblicua y Direccional. • Iluminación Frontal Axial (difusa). • Iluminación de Día Nublado (cloudy day ilumination, CDI). • Iluminación de Campo Oscuro (dark field). • Array de luces. • Iluminación de campo claro (o brillante).

Algoritmos de procesamiento

Tarj

eta

Adqu

isid

ora

Interfase

Computadora (CPU o módulo de proceso) Cámara

y lentes Fuente de luz (iluminación)

Actuadores externos del proceso

Figura 1: Elementos de un sistema de visión artificial.

Page 64: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 3

Sensores de imagen Los sensores de imagen son componentes sensibles a la luz que modifican su señal e-

léctrica en función de la intensidad luminosa que perciben. La tecnología más habitual en este tipo de sensores es el CCD (charge coupled devices o dispositivos de acoplamiento de carga) donde se integra en un mismo chip los elementos fotosensibles y el conjunto de puertas lógicas y circuitería de control asociada. En éstos, la señal eléctrica que transmi-ten los fotodiodos es función de la intensidad luminosa que reciben, su espectro, y el tiem-po de integración (tiempo durante el cual los fotodiodos son sensibles a la luz incidente). Otra tecnología que está empezando a extenderse son los sensores CMOS (complemen-tary metal oxide semiconductor) dada las ventajas de éstos sobre los CCD, y la reducción de precios de estos dispositivos. En cuanto al rango dinámico (rango de amplitud entre los valores máximos y mínimos que un elemento puede producir, medido en decibeles) se pa-sa de los 70dB de los sensores CCD a los 120dB de los sensores CMOS, valor más cer-cano a los 200dB del ojo humano, lo que facilita la autoadaptación en el propio chip al bri-llo existente en el entorno. El sensor CMOS puede amplificar de forma individual la res-puesta de los píxeles en función de sus respectivas condiciones de iluminación. El acceso multipíxel permite configurar individualmente distintos intervalos de tiempo de integración, mejorando la calidad de imagen mediante la selección del mejor tiempo de exposición de cada píxel.

Resolución Existen diferentes arquitecturas de sensores. En primer lugar están los sensores linea-

les. En éstos, el sensor es una línea de fotodiodos. Esta arquitectura permite la utilización de sensores de 1x1024, 1x2048, 1x4096, e incluso 1x6000 píxeles, lo que la hace muy a-decuada para trabajar con altas resoluciones sobre superficies en movimiento. Para con-diciones de iluminación muy exigentes o velocidades de trabajo muy altas existe la posibi-lidad del uso de sensores TDI (time delay integrated). Esta tecnología consiste en el uso de varias líneas de captura sobre la misma línea del objeto, con el fin de sumar su carga y obtener así una mayor sensibilidad. En segundo lugar están los sensores de área. Estos alcanzan resoluciones habituales de 1024x1024, aunque existen en el mercado algunas casas que disponen de cámaras especiales con resoluciones de hasta 3072x2048. En es-te caso existen tecnologías de adquisición de imágenes, entrelazada y no entrelazada. El método entrelazado captura las líneas pares e impares que forman una imagen en instan-tes de tiempo diferentes. La tecnología de no entrelazado (progressive scan) captura to-das las líneas en el mismo instante de tiempo. Es más costoso económicamente, pero in-dispensable para trabajar con objetos en movimiento.

Cuantización Independientemente de la arquitectura utilizada, existen otros aspectos importantes en

estos sensores. La cuantización (conversión analógica-digital) determina el número de bits usados para representar la información capturada. Por ejemplo, usando un sistema blanco y negro de 8 bits tenemos 256 niveles diferentes mientras que, usando un sistema de 10 bits, obtendríamos 1024 niveles de gris diferentes, lo que permite una mayor defini-ción.

La evolución de las capacidades y características técnicas de estos dispositivos ha se-

guido una tendencia muy favorable, potenciado en parte por el mayor uso industrial de es-tos sistemas. Por tanto, en el mercado existen hoy en día numerosos dispositivos para a-

Page 65: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 4

bordar cualquier tipo de aplicación, ya sea en blanco y negro o color, a las velocidades re-queridas en los procesos de producción.

Entre los avances más significativos, además de la utilización de puertos de comunica-

ción cada vez más potentes y fiables, está una capacidad de proceso más o menos rele-vante e integrada en la propia cámara. Por ejemplo, la cámara lineal OPSIS 5150ALC dis-pone de FPGA (Field-programmable gate array, matriz de puertas programable por cam-po) programable y de un microprocesador Motorola Power PC con sistema operativo en tiempo real VxWorks que permite realizar procesamiento de imágenes. De esta forma se puede transmitir la imagen, la imagen preprocesada, o los resultados del procesamiento de la imagen a través de los puertos de comunicación de que dispone la cámara, hacien-do innecesario el uso de tarjetas de captura.

Tarjetas de captura (o adquisidora) Las tarjetas de captura de imagen permiten transferir la imagen de la cámara a la me-

moria de la computadora con el fin de que ésta pueda realizar el procesamiento adecuado a las imágenes.

Aspectos importantes en la adquisidora: velocidad de transmisión, el formato de los

datos, la profundidad de píxel, la capacidad de captura por disparo, la capacidad de pre-procesado de la imagen, la velocidad de transferencia de la imagen de la memoria de la tarjeta a la memoria de la computadora, el reset asíncrono o la capacidad de controlar pa-rámetros de la cámara en tiempo real. Evidentemente, todos los datos relativos a veloci-dades de transmisión son especialmente importantes para poder trabajar en tiempo real. Este aspecto ha mejorado notablemente en los últimos años. Otro parámetro que ha evo-lucionado muy favorablemente es el formato de los datos. Con la estandarización definiti-va de los formatos EIA-644 o LVDS, y del IEEE 1394, se consigue no sólo aumentar la ve-locidad de transferencia, sino que también se hace con una mayor inmunidad al ruido y con longitudes de cableado aceptadas mucho mayores (de 2-10 metros a 25 metros de distancia cámara – tarjeta). La capacidad de sincronizar la captura de las imágenes con una señal externa también se ha mejorado con el reset asíncrono, lo que habilita el inicio de la captura sin tener que esperar el siguiente vertical blank (es decir, sin necesidad de finalizar completamente la captura de anterior). La capacidad de controlar la cámara con salidas RS-232 de la tarjeta facilita la variación de parámetros de la cámara, fundamen-talmente la ganancia de los canales RGB, o de ópticas motorizadas en tiempo real.

Un aspecto relativamente reciente es la capacidad de poder trabajar con multitap. E-

xisten tarjetas capaces de trabajar con varias cámaras a la vez (hasta 6 cámaras de 8 bits por píxel), o usar los canales de que dispone para trabajar con cámaras multitap que transmiten a la vez varios píxeles por cada uno de los canales. Por ejemplo, a 40 MHz, u-na tarjeta puede recibir la información por un canal de 8 bits a 40 Mbytes/seg mientras que si usa dos canales, la información la puede recibir a 80Mbytes/seg, incrementándose de forma proporcional al número de canales la velocidad de transmisión.

En cuanto a la capacidad de proceso de las tarjetas, actualmente sólo existe la posibi-

lidad de incorporar un Procesador Digital de Señal (DSP), que permite realizar determina-dos algoritmos de análisis de imagen en la propia memoria de la tarjeta, acelerando la im-

Page 66: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 5

plementación de los algoritmos de visión. El desarrollo de módulos de proceso altamente especializados ha sido abandonado debido a la evidencia de la evolución superior en prestaciones de los procesadores convencionales, que hacen que el costo de desarrollo de las placas altamente especializadas no sea rentable para las casas fabricantes de la misma, al ser éstos rápidamente superados por los constantes incrementos en velocidad y mejoras internas de los procesadores convencionales.

Otra de las recientes ventajas en cuanto a las tarjetas de captura de imágenes es la in

integración de la tarjeta de captura, la visualización, y el módulo de proceso (CPU) en un solo elemento. Estos equipos se proporcionan en un chasis adecuado para trabajar en en-tornos industriales.

Algoritmos de análisis de imagen y reconocimiento de formas Los algoritmos relacionados con visión artificial son muy variados y abarcan numero-

sas técnicas y objetivos. Los pasos más comunes en que consiste el análisis o procesa-miento de imagen se muestran en la figura 2.

Filtrado o Pre-procesamiento Cuando se adquiere una imagen mediante cualquier sistema de captura, por lo general

esta no es directamente utilizable por el sistema de visión. La aparición de variaciones en intensidad debidas al ruido, por deficiencias en la iluminación, o la obtención de imágenes de bajo contraste, hace necesario un preprocesamiento de la imagen con el objetivo fun-damental de corregir estos problemas, además de aplicar aquellas transformaciones a la imagen que acentúen las características que se deseen extraer de las mismas, de manera que se facilite las operaciones de las etapas posteriores. A este campo pertenecen las técnicas de transformaciones geométricas, las basadas en el histograma, el filtrado espa-cial (apunte “Filtrado Espacial.pdf”) y el filtrado frecuencial (apunte “Filtrado en el do-minio de la frecuencia.pdf”). Aunque existen líneas de investigación abiertas, no es el campo más activo en ese sentido, y las técnicas existentes son bastante útiles para la ma-yoría de las aplicaciones.

Algunas de las técnicas más habituales son: • Conversión de los niveles de gris: su objetivo es la mejora de la calidad de la ima-

gen.

Filtrado o preprocesamiento

Segmentación Cálculo de características

Clasificación

Selección de características

Diseño del clasificador

Implementación

Diseño

Figura 2: Etapas de un proceso de reconocimiento de formas.

Page 67: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 6

• Transformaciones geométricas: los objetivos de ésta son la corrección de la pers-pectiva y la reconstrucción tridimensional de los objetos de la escena.

• Transformación del histograma: las transformaciones del histograma pueden facili-tar la segmentación de objetos de la imagen, aunque habitualmente sólo sirve para modificar el contraste de la imagen y el rango dinámico de los niveles de gris.

• Filtrado espacial y frecuencial: dado que pueden suponer una importante modifica-ción de la imagen original, generalmente sólo se consideran filtrados aquellas ope-raciones realizadas en el dominio espacial o frecuencial que suponen transforma-ciones pequeñas de la imagen original.

Segmentación o aislamiento de los objetos de interés Cuando ya se dispone de la imagen capturada y filtrada, es necesario aislar o separar

los objetos de interés de la escena. Se pretende por tanto dividir una imagen en diferentes regiones, o dicho de otra forma, detectar automáticamente los bordes entre los elementos o regiones. Las operaciones de segmentación de una escena dependen de la propia es-cena y de la información que se busque dentro de la imagen. Por ejemplo, en fotografía a-érea se utiliza para separar regiones pobladas, agrícolas, bosques, aguas, etc. En imagen médica se usa para aislar zonas enfermas de los órganos, o para detectar y contar micro-organismos en microscopia. Industrialmente, se usa como primer paso para la medición de piezas, para determinar la correcta disposición del etiquetado de los envases (aislar el envase, aislar la etiqueta, determinar si la relación entre estos dos objetos es correcta), para la medición de irregularidades en superficies homogéneas, para la detección de cambios de texturas en las que el sistema ha de determinar si es un defecto o no lo es, etc.

Las técnicas básicas de segmentación se pueden dividir en tres grupos: • Aplicación de umbrales de niveles de gris (apunte “Segmentación por umbraliza-

ción - Método de Otsu.pdf”). • Agrupación por rasgos comunes. • Extracción de bordes. La segmentación de imagen es una temática actual de investigación y se han definido

numerosos métodos diseñados para aplicaciones particulares. No obstante, no hay méto-dos que sean útiles en una amplia variedad de situaciones, por lo que cada problema ne-cesita la adaptación o desarrollo de nuevas técnicas.

Extracción y selección de características Con los objetos a estudiar ya definidos, es necesario extraer una serie de medidas que

los caractericen adecuadamente, en forma de vector de características. Como norma general, para la elección de características se intenta que: • Sean discriminantes, es decir, tengan valores numéricos diferentes para clases di-

ferentes. • Sean fiables, es decir, tengan valores parecidos dentro de una misma clase.

Page 68: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 7

• Estén incorreladas, es decir, obtener la misma información con el mínimo número de características.

• Se calculen en un tiempo aceptable, de manera que sea utilizable en problemas de tiempo real.

Dado que las características relevantes son a menudo desconocidas a priori, habitual-

mente se introducen muchas características candidatas para intentar representar mejor las clases, aún cuando muchas de ellas puedan ser parcial o completamente redundantes o irrelevantes. No obstante, existen unas técnicas para mejorar las prestaciones del con-junto de características escogido inicialmente. Éstas están íntimamente ligadas al recono-cimiento de formas en su etapa de diseño del clasificador.

Reconocimiento de formas e inteligencia artificial Normalmente, la visión artificial se utiliza para tomar decisiones a partir de la informa-

ción proporcionada por el sistema de adquisición de imágenes y las transformaciones y o-peraciones realizadas con ellas. La información extraída se puede considerar como un vector que recoge las características o rasgos diferenciadores de la imagen analizada. En el caso de que se trate de una aplicación de medición, este vector recoge todas aquellas medidas que se deseaban obtener. En aplicaciones de inspección, y sobre todo, en apli-caciones de clasificación, este vector es el conjunto de datos con los que ha de trabajar un reconocedor o clasificador encargado de extraer las conclusiones posibles a partir del vector de entrada. Para el diseño del clasificador es necesaria una etapa de selección de características y una etapa de aprendizaje o entrenamiento. Generalmente, se usa el pro-pio clasificador como evaluador del conjunto de características en prueba dado que el mé-todo que proporciona la mayor fiabilidad, aunque sea el más costoso temporalmente y de menor generalidad o capacidad de aplicación del clasificador a otros problemas. Respecto a los métodos clásicos de búsqueda secuencial, actualmente uno de los campos de inves-tigación abiertos es el uso de algoritmos genéticos para la selección en paralelo de carac-terísticas.

En el reconocimiento de formas aplicado a la visión artificial se utilizan técnicas de re-

conocimiento geométrico de formas, como el aprendizaje supervisado (se conoce la clase a la que pertenece cada vector) en condiciones estadísticas o algoritmos de clasificación no supervisados o clustering y, además, las redes neuronales, siendo estas últimas espe-cialmente interesantes por su capacidad de aprendizaje adaptativo. Existen numerosos al-goritmos para cada una de estas técnicas y se investiga ampliamente el desarrollo de nuevos algoritmos e implementaciones hardware de éstos. El problema fundamental de estas técnica, es que cada una de ellas suele ser la más adecuada para las característi-cas de un tipo específico de problema no conocidas a priori, lo que dificulta la selección de la técnica con la que se desea abordar inicialmente el problema.

CPU o módulo de proceso Se trata del sistema encargado de recibir y analizar, mediante los algoritmos adecua-

dos, las imágenes a la velocidad necesaria para poder interactuar con el entorno en tiem-

Page 69: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 8

po real. Es, pues, la parte del sistema encargada de implementar las funciones y objetivos para los que se haya diseñado el sistema.

Los altos requerimientos computacionales de esta tecnología no se pueden especificar

de una forma genérica. Un ejemplo demostrativo de estos requerimientos es el del reco-nocimiento automático de matrículas mediante una cámara de 8 bits y una resolución de 640x480 (307.200 píxeles). En esta aplicación se necesita una etapa de filtrado, una bina-rización que convierta la imagen de 256 niveles de gris a sólo 2, una de segmentación que aísle cada caracter de la matrícula y una de clasificación. Las operaciones necesarias se resumen en la siguiente tabla:

Comparaciones Sumas y restas Multiplicaciones Divisiones Op. en coma

flotante Total

Filtrado 0 2.457.600 0 307.200 0 2.764.800Binarización 307.200 0 0 0 0 307.200Segmentación 1.229.310 1.510 0 1.000 0 1.231.820Clasificación 0 3.304 129.857 0 417 133.578Total 1.536.510 2.462.414 129.857 308.200 417 4.437.398 Si se tiene en cuenta que el sistema ha de trabajar en tiempo real, capturando para e-

llo 30 imágenes por segundo, se necesita una capacidad de cálculo de 133.121.940 ins-trucciones por segundo (133 MIPS). Teniendo en cuenta que el ejemplo comentado es u-na aplicación relativamente simple, podemos comprender los altos requerimientos compu-tacionales para el uso de estas técnicas.

Quizás sea este el campo que más rápidamente ha evolucionado, debido al uso gene-

ralizado de este tipo de sistemas en todos los campos. La rápida evolución de los proce-sadores de propósito general ha desbancado la utilización de procesadores especializa-dos (más caros y de una evolución más lenta por la demanda del mercado), excepto para casos muy concretos. Por tanto, la potencia de los procesadores actuales, junto con las arquitecturas hardware y software que soportan los sistemas multiprocesadores, permiten el desarrollo de algoritmos complejos con tiempo de respuesta muy cortos y dentro de los requerimientos de las aplicaciones en tiempo real.

Entre las mejoras más destacadas podemos mencionar: • Pipeline: capacidad de separar la ejecución de cada instrucción en varias etapas, lo

que permite que varias instrucciones se ejecuten en paralelo. El primer procesador Pentium dispone de 5 etapas mientras que el Pentium IV dispone de 20.

• Tecnologías de ejecución dinámica: éstas permiten una ejecución especulativa su-perando la secuenciación lineal de las instrucciones de búsqueda y ejecución de instrucción. El procesador Pentium contiene un buffer de 40 instrucciones, mientras que el Pentium IV tiene un buffer de 126 instrucciones y un algoritmo mejorado pa-ra la predicción de saltos.

• Juegos de instrucciones SIMD (Single Instruction, Multiple Data): las 57 instruccio-nes MMX de 64 bits que aparecieron con los primeros Pentium MMX permitían un alto paralelismo en la ejecución de instrucciones con tipos de datos multimedia, co-mo son, por ejemplo, las imágenes utilizadas en los sistemas de visión. Esto se tra-duce en importantísimas mejoras en los tiempos de ejecución de determinadas o-

Page 70: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 9

peraciones muy utilizadas en los algoritmos de procesamiento de imágenes, como las convoluciones o las transformadas de Fourier. Los procesadores Pentium IV disponen del juego de instrucciones de 128 bits SSE2 con 144 instrucciones nue-vas.

• Cachés de 2º nivel: estas cachés permiten disponer de memoria para instrucciones y datos dentro de la propia pastilla del procesador, lo que evita los ciclos de acceso a la memoria convencional, incapaz de proporcionar los datos a las velocidades que los procesadores pueden consumirlas. El procesador Pentium II dispone de 512Kb de caché L2 para código y datos, y un bus de 64 bits para conseguir altas transferencias de datos entre la caché y el procesador.

• Unidades de ejecución en coma flotante FPU avanzadas: soporte del formato IEEE 754 de 32, 64 y 80 bits.

No obstante, para aplicaciones de muy elevados requerimientos computacionales y

estrictos requerimientos de tiempo, la existencia de hardware especializado o, principal-mente, la utilización de otras arquitecturas paralelas que hagan uso de DSP o sistemas FPGA aseguran la viabilidad en este sentido de cualquier aplicación de visión artificial, al permitir la utilización de sistemas multiprocesadores con los DSP en paralelo que se ne-cesiten en la aplicación.

Paralelamente al hardware utilizado, se han desarrollado librerías software que imple-

mentan numerosas funciones utilizadas habitualmente en esta tecnología, lo que permite reducir el ciclo de desarrollo de las aplicaciones y facilita la obtención e implementación de algoritmos complejos con tiempos de ejecución adecuadamente bajos.

Sistemas de respuesta Se trata de automatismos que responden electromecánicamente con el fin de corregir

o evitar, por ejemplo, en los sistemas de producción, las causas generadoras de los pro-blemas de detección. Otra de las funciones de estos sistemas es la generación de esta-dísticas e informes de del proceso al que están asociados, lo que permite disponer de una información global de los procesos para facilitar la toma de decisiones.

En cuanto a los dispositivos electromecánicos utilizables en los sistemas de visión,

destacan los variadores de frecuencia para el control de motores y la comunicación entre las PC’s y los autómatas programables que gestionan los distintos dispositivos mediante redes de campo como “Profibus” o “WorldFIP”, y más recientemente mediante “Industrial Ethernet”, y protocolos Wireless. Estos buses permiten la integración de los sistemas de visión y sus acciones de respuesta dentro de la estructura CIM de las empresas, lo que supone un ahorro económico en los casos en que ya se disponga de esta estructura.

Page 71: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 10

Ejemplo de un Sistema de Visión: Control de Blisters En esta sección se presentará un breve resumen del proyecto final de carrera de la e-

gresada de la Universidad Nacional de Quilmes, Iris Herrero, de manera que puedan ver-se los aspectos de un sistema de visión en una aplicación probada y aprobada.

El proyecto consiste en el desarrollo de un sistema de visión para la inspección y su-

pervisión de blisters con base de PVC o aluminio. Tal inspección debe ser capaz de deter-minar la ausencia de comprimidos en los alvéolos, la presencia de comprimidos fuera de los alvéolos, alvéolos sobrecargados, presencia de cuerpos extraños, comprimidos parti-dos, comprimidos con desmoronamientos, y comprimidos manchados. Todo el análisis necesario debe tomar como máximo 1 segundo por cada paso de la blistera. Además, el proyecto cuenta con una interfase hombre-máquina que permite configurar ciertos pará-metros de la inspección (nivel de rigurosidad), proporcionar información del error detecta-do y generar estadísticas de producción. No obstante, nos concentraremos en lo relacio-nado a la inspección y supervisión.

El sistema El sistema consiste básicamente en la integración de un sensor, una CPU, un lente, un

software y una estructura de iluminación y montaje. Para la implementación del proyecto se definió la utilización de la tecnología de la

Smart-camera mvBlueLYNX, de la librería mvIMPACT-SDK de Matriz Vision para el pro-cesamiento y análisis de imágenes, y de la librería GNU-PicoGUI para la programación de la interfase hombre-máquina.

En particular, la Smart-camera mvBlueLYNX integra el sensor con el CPU, obteniendo

una potente herramienta de desarrollo para una amplia gama de aplicaciones. Su tamaño reducido, sumado al hecho de no necesitar una PC dedicada para que realice el procesa-miento, permite que el sistema sea altamente portable y adaptable a los diferentes mode-los de blisteras.

Sensor, tarjeta de captura y CPU Por lo dicho en el párrafo anterior, se eligió la Smart-camera mvBlueLYNX como ele-

mento sensor, que además integra la tarjeta de captura (necesaria para la digitalización de las imágenes) y el módulo de proceso o CPU. Puede encontrarse información detalla-da de esta cámara en la siguiente página web:

http://www.matrix-vision.com/manuals/mvBlueLYNX/main.html Fuente de luz. Tipo de Iluminación. Lentes Para resaltar los detalles de interés en los comprimidos, se optó por luz blanca difusa

como iluminación. Para ello, se utilizaron como fuentes de luz arrays de LEDs blancos. La técnica de iluminación frontal se logró mediante una combinación de difusión y reflexión.

Page 72: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 11

La fuente de luz, el difusor y la cámara se integraron mediante una estructura (campa-

na) rígida. Para favorecer la difusión de la luz aportada por los LEDs, la estructura se pin-tó interiormente de color blanco mate.

La primera estructura de iluminación desarrollada fue complementada con un lente de

4mm instalado en la Smart-camera. Luego de observar las imágenes obtenidas con esta estructura, se observó que ésta no brindaba un iluminación uniforme: era más intensa en el centro de las imágenes. Por este motivo se debió rediseñar la estructura eliminando las terminaciones en ángulos rectos. En esta segunda estructura se observó una mejora en la distribución de luz.

La utilización de un lente de 4mm generó una importante deformación geométrica de

la imagen. Para reducir este efecto no deseado, se decidió su reemplazo por un lente de 8mm. El cambio de lente implicó que la segunda estructura deba ser rediseñada para una nueva distancia cámara-objeto de 42.7cm, dando paso a la creación de la tercera estruc-tura de iluminación.

En las imágenes captadas usando la tercera estructura se observó que las deforma-

ciones geométricas se redujeron notablemente. Esto fue sumamente beneficioso para lo-grar mayor simplicidad y robustez en la etapa de procesamiento.

A pesar de haberse obtenido unas imágenes muy adecuadas para el procesamiento,

esta tercera estructura debió ser rediseñada una vez más. Este cambio se debió a que, por cuestiones operativas y de espacio, el tamaño de la estructura (que se ubica sobre la mesa de amasado de la blistera) debió ser reducido.

El diseño de la estructura definitiva tuvo en cuenta un sistema de montaje robusto para

la cámara, que la aísle de los cambios de luz del entorno y la resguarde mecánicamente. Software. Algoritmos de análisis de imagen El software está integrado por una lógica de control y análisis y una interfase hombre-

máquina. Para el funcionamiento del sistema, el software requiere de la determinación de varios

parámetros. Por ello, se configuró de modo que como primera instancia, luego del arran-que automático, se carguen automáticamente dichos parámetros desde un archivo de configuración almacenado en el disco de la Smart-camera.

Como se mencionó, para el procesamiento y análisis de las imágenes se eligieron las

funciones contenidas en la librería mvIMPACT-SDK de Matrix Vision. En la figura 3, 4 y 5 se pueden ver diferentes diagramas de flujo que muestran esque-

máticamente la forma en que trabaja el software.

Page 73: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 12

Rutina Análisis

Encendido de la Smart-camera

Inicio automático del sistema

Carga de la configuración del sistema

Almacenamiento de la imagen con fondo blanco

Imagen en Vivo

Configuraró

Analizar?

Carga configuración

Detecta Pulso?

Captura Imagen

Realiza Análisis

Genera / Actualiza estadísticas

Detener?

SI

SI

NO NO

Analizar

Rutina Configuración

Captura de Imagen

Graba Configuración

Configurar

Rutina Análisis

Rutina Configuración

Figura 3: Diagrama de estados.

Page 74: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 13

Imagen en Vivo

Captura Imagen

Compensación de Iluminación

Define Zona de análisis

Calcula Histograma

Calcula Umbral Óptimo

Segmenta Imagen

Procesa Imagen

Filtra Objetos Extraños

Analizar Imagen

Calcula el Número de Calles

Guarda Configuración

Figura 4: Diagrama de la Rutina Configuración.

Page 75: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 14

A continuación se explica brevemente algunos de los pasos presentados en los diagra-mas.

Compensación de Iluminación: debido a la forma rectangular de la estructura de ilu-

minación del sistema, se debió proceder a realizar una compensación por software de la luminosidad de la imagen. La compensación de la intensidad de los píxeles de la imagen se realiza en base a la distribución de la intensidad detectada en una imagen con fondo blanco. Esta imagen es capturada por única vez al instalar el sistema y se encuentra al-macenada en el disco de la Smart-camera.

Define Zona de Análisis: esta función tiene como objetivo delimitar la zona de análi-

sis con el fin de descartar posible contaminación de la imagen, excluyendo zonas que ex-ceden los límites de interés.

Calcula Histograma: permite determinar en qué rango de intensidades se encuentra

centralizada la mayor cantidad de píxeles. Cálculo Umbral Óptimo: esta función permite el cálculo óptimo del umbral de una i-

magen o histograma, usando el método de Otsu. Segmentación de la Imagen: usando el umbral óptimo, se realiza la segmentación de

la imagen. Si el objeto y el fondo difieren en el nivel de gris, se pueden identificar los píxe-les que pertenecen al objeto mediante el proceso de segmentado. Para segmentar la ima-gen se utiliza la binarización: se etiqueta con cero los píxeles cuyo nivel de gris sean me-nores al valor del umbral óptimo y con 1 a los píxeles con nivel de gris mayor.

Proceso Imagen: la imagen utilizada para obtener la configuración es la imagen a to-

mar como patrón. De ésta, se obtienen los valores que determinarán qué comprimido cumple las especificaciones y cuáles no. Por este motivo se procesa esta imagen de mo-do de obtener los datos más exactos. Con este fin, en esta etapa se aplican dos funciones a los efectos de eliminar las fallas de iluminación u otros factores que afecten la definición de la imagen a establecer como patrón. Éstas son:

1) Transformada de Morfología Open: esta función se aplica sobre la imagen seg-

mentada (binarizada) y sirve para suavizar los contornos de los comprimidos, sepa-rando así objetos que se encuentren vinculados por pequeñas uniones.

2) Filtrado de Objetos por Área: esta función permite remover objetos basándose en su área. De este modo podemos filtrar (eliminar) todos los objetos de una imagen cuya área sea menor que un determinado valor.

Analizar Imagen: Esta etapa es la más importante de la rutina, dado que previo pro-

cesado de la imagen, se obtienen los parámetros esenciales del patrón. Estos componen la configuración que se utilizará como base para el control de la blisteada de este produc-to.

Los parámetros que se utilizaron para la creación de la configuración fueron: 1. Área (AREA); 2. Factor de forma (ROUDNESS); 3. Coordenadas del rectángulo perimetral (EXTREME_BOX).

Page 76: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 15

En base a las características de las fallas que se pretenden detectar, se comprobó em-píricamente que este conjunto de parámetros otorgaba una gran confiabilidad requiriendo un tiempo de procesamiento reducido.

Definición de los parámetros: Área (AREA): es el número de píxeles blancos en un objeto. El número de píxeles es

multiplicado por el valor del área del píxel. Los agujeros no contribuyen para el área. Factor de forma (ROUDNESS): este valor es derivado del perímetro y el área de un

objeto. Este parámetro tiene un rango de valores de 0 a 1. Un objeto circular tiene el máxi-mo valor del rango (1) y para objetos irregulares o alargados el parámetro tiende al míni-mo valor del rango (0). Su ecuación es:

Coordenadas del rectángulo perimetral (EXTREME_BOX): especifica la máxima y la

mínima coordenada de un objeto (bounding box). Las coordenadas son retornadas en dos puntos en las unidades especificadas: el punto superior izquierdo (XMIN,YMIN) y el punto inferior derecho (XMAX,YMAX). De modo que:

Guardo Configuración: los parámetros extraídos del análisis de la imagen patrón son

guardados en un archivo en el disco de la cámara con extensión ‘txt’. Los datos que se guardan son los siguientes: número de alvéolos; área mínima y máxima; factor de forma mínimo y máximo; valor del umbral; flag de descarte por comprimido fallado, ausente y manchado; tipo de fondo; coordenadas del rectángulo perimetral de cada alvéolo; número de calles; y posición de las calles.

El valor del umbral se calcula en forma automática y es un parámetro altamente afec-

tado por las variaciones en la iluminación. Por este motivo, es muy importante que el sis-tema de iluminación implementado permita un aislamiento adecuado del sistema a las va-riaciones externas de la luz, y que a su vez otorgue una iluminación constante y uniforme sobre la zona de análisis.

2

.4Perimetro

AreaRoudness π=

+−=+−=1

1

MinMax

MinMax

YYaltoXXancho

XMIN,YMIN

YMAX,YMIN

Page 77: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 16

Imagen en Vivo

NO

Carga Configuración

Detecta Pulso

Captura Imagen

Compensación de Iluminación

Segmenta Imagen

Procesa Imagen

Define Zona de Análisis p/Alvéolo

Función Control

Descarte?

Genera Señal de Descarte

Detener?

Último?

SI

SI

SI

NO

NO

Figura 5: Diagrama de flujo de la Rutina Analizar.

Page 78: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 17

A continuación se describen algunos de los pasos de la Rutina Analizar. Carga Configuración: carga en la memoria de la Smart-camera los parámetros guar-

dados en el archivo de configuración (en el disco de la cámara), correspondientes al tipo de blisteado a realizarse.

Detecta Pulso: una vez cargada la configuración, el sistema se queda a la espera de

la señal digital que envía el sensor a la Smart-camera para realizar la captura y procesa-miento de la imagen a analizar.

Compensación de Iluminación: Idem a la Rutina Configuración. Segmenta Imagen: se realiza usando el valor de umbral calculado en base a la ima-

gen patrón. Este valor es cargado del archivo de configuración. Proceso Imagen: a diferencia de la rutina configuración, en esta etapa no se realiza el

filtrado de objetos por área mínima. Si realizáramos ese filtrado en este paso, podríamos perder información importante para realizar la supervisión del correcto estado de los com-primidos de los blisters.

Define Zona de Análisis por Alvéolo: en esta etapa se define una subimagen por al-

véolo. El número total de alvéolos y sus correspondientes coordenadas son parámetros que se cargan del archivo de configuración. Las regiones definidas por estas coordenadas corresponden a los rectángulos externos de cada alvéolo de la imagen patrón con la que se realizó la configuración. Se trabaja con una subimagen para optimizar la búsqueda y minimizar el tiempo de requerido por el sistema para ejecutar la rutina de análisis.

Función Control: la subimagen definida en la etapa anterior es pasada como paráme-

tro a la Subrutina Control, donde se realiza un análisis y se determina el correcto estado del comprimido de ese alvéolo.

Genera Señal de Descarte: en caso de producirse la detección de un comprimido de-

fectuoso, la subrutina retorna un valor que indica que se produjo una falla en el comprimi-do de ese alvéolo, por lo que se genera en forma automática la señal de descarte de ese blister.

Fases del Proyecto A continuación se enunciarán las pasos que constituyeron el desarrollo del sistema de

visión (ordenados temporalmente): • Análisis de las características técnicas (alcances y limitaciones) de la Smart-came-

ra mvBlueLINX. • Puesta en funcionamiento de la Smart-camera mvBlueLYNX: Upgrade del softwa-

re, conexionado, configuración de interfases. • Configuración del puerto serial RS 232 requeridos para la comunicación e interac-

ción entre la Smart-camera mvBlueLYNX y la PC mediante el protocolo de comuni-cación TCP.

Page 79: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 18

• Configuración de la interfase Ethernet LAN para establecer la comunicación entre la Smart-camera mvBlueLYNX y una PC mediante el protocolo FTP (para enviar a la Smart-camera los programas compilados en la PC de desarrollo).

• Instalación, configuración y actualización de los programas y librerías requeridas para el desarrollo y compilación de los programas en la PC.

• Estudio de la librería mvIMPACT-SDK. • Programación en el entorno de desarrollo Visual C++ de las rutinas de configura-

ción y análisis mediante el uso de las funciones de análisis y procesamiento de i-mágenes definidas en la librería mvIMPACT-SDK.

• Prueba y ajuste del funcionamiento de las rutinas de configuración y análisis en la PC mediante el uso de la función import de la librería mvIMPACT-SDK, la cual per-mite la carga de imágenes guardadas en el disco.

• Estudio de la librería GNU-PicoGUI mediante el análisis de ejemplos y el manual de referencia API.

• Desarrollo de la interfase hombre-máquina mediante el uso de la librería GNU-PicoGUI.

• Acople a las rutinas de configuración y análisis de la interfase hombre-máquina. • Pruebas y ajustes del funcionamiento del nuevo software integrado en la Smart-

camera mvBlueLYNX. • Diseño y armado de la primera estructura de iluminación. • Cálculo de lente acorde a las dimensiones de la estructura de iluminación y la zona

de inspección definida. • Modificación del software para la captura de imágenes por detección de la señal

digital emitida por el sensor. • Montaje de la mesa de ensayos para el sistema integrado por la Smart-camera

mvBlueLYNX, el software, la estructura de iluminación y el lente. • Realización de pruebas y ajustes del sistema integrado en la mesa de ensayos. • Instalación y ensayo del prototipo en la planta. • Procesamiento de los resultados del ensayo. • Ajustes en el diseño de la estructura de iluminación. • Segundo ensayo en la planta. • Ajustes en el diseño y tamaño de la estructura de iluminación. • Cálculo del lente adecuado a la nueva estructura de iluminación. • Tercer ensayo en planta. • Rediseño de la estructura de iluminación para una mejor integración mecánica a la

línea de blisteado, e inclusión de un mecanismo para el montaje de la Smart-came-ra mvBlueLYNX.

• Adaptación del software a la nueva estructura de iluminación. • Pruebas y ajustes del sistema final. • Realización de prueba final en la mesa de ensayos con el sistema terminado. Resultados obtenidos • Durante las pruebas de funcionamiento, el sistema presentó una muy buena res-

puesta en la detección de comprimidos ausentes, manchados y calados.

Page 80: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Octubre de 2005

Aspectos de un Sistema de Visión Artificial 19

• Se presentaron algunos casos de no detección de comprimidos partidos, dado que la detección de éstos depende fuertemente del valor del umbral que calcula el sis-tema para la segmentación de la imagen. Otro factor que afecta a la detección de estos casos es la holgura (o la falta de la misma) existente entre el comprimido y el alvéolo. Se debe tener en cuenta que los casos no detectados por el sistema auto-mático tampoco son fácilmente detectables por el operador humano.

• La forma rectangular de la estructura de iluminación (con su distribución no unifor-me de la luz) dificultó la determinación de un umbral único adecuado para la co-rrecta segmentación de toda la imagen. Por ello, se debió proceder a compensar por software el efecto de la iluminación a fin de evitar que el cálculo automático del umbral se vea afectado.

• El tiempo requerido por la Smart-camera mvBlueLYNX para realizar un análisis completo fue de aproximadamente 1.5 segundos, siendo el tiempo máximo admi-sible para el análisis de 1 segundo. En este punto se propone como solución posi-ble la adquisición de una Smart-camera mvBlueLYNX de mayor capacidad de pro-cesamiento.

A continuación se presenta un ejemplo de la puesta a prueba del sistema con una tan-

da de blisteado en el que se forzaron diferentes casos de comprimidos defectuosos.

Total comprimidos analizados 640 Total comprimidos OK 621 Total comprimidos NoOK 19 Total comprimidos ausentes 6 Total comprimidos fallados 10 Total comprimidos manchados 2 Total comprimidos superpuestos 1

Durante esta prueba, el sistema presentó tan sólo 2 falencias en la detección de

un total de 640 comprimidos analizados (Tasa de Error: 0,31%). Referencias 1) AITEX – Instituto Tecnológico Textil, “Análisis de la tecnología de visión artificial

aplicada al sector textil”. http://www.aitex.es/estudios/Vision_Artificial1.pdf 2) Iris Herrero, “Control de Blisters mediante Visión Artificial”, Informe del Proyecto

Final de la carrera de Ingeniería en Automatización y Control Industrial de la Universidad Nacional de Quilmes.

Page 81: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Procesamiento Global empleando la Transformada de Hough 1

Procesamiento Global empleando la Transformada de Hough En este apunte vamos a conocer a la transformada de Hough. A diferencia de los mé-

todos de análisis local que ya se han visto, la transformada de Hough considera las rela-ciones globales entre píxeles de borde permitiendo encontrar ciertos patrones en la ima-gen como líneas y círculos.

Supongamos que para n puntos de la imagen se desean encontrar aquellos subcon-

juntos de puntos que caen en líneas rectas. Una posible solución podría ser en primer lu-gar encontrar todas las líneas determinadas por cada par de puntos y entonces encontrar todos los subconjuntos de puntos que están cerca de cada recta en particular. Este pro-blema así planteado requiere encontrar n(n-1)/2~n2 rectas y realizar n(n(n-1))/2~n3 com-paraciones de cada punto a línea. Este método no será viable salvo en casos triviales.

Una alternativa al método de búsqueda exhaustiva es la transformada de Hough. Con-

sideramos un punto (xi,yi) y la ecuación de la recta, de la forma pendiente y ordenada al origen,

(1) Por el punto (xi,yi) pasan infinitas rectas, pero todas satisfacen la ecuación anterior pa-

ra diferentes valores de a y b. Sin embargo, escribiendo esta ecuación en la forma

(2)

y considerando el plano ab (también denominado espacio de parámetros) da lugar a una única recta para el par (xi,yi) constante. Si ahora consideramos un segundo punto (xj,yj), también va a tener su recta asociada en el espacio de parámetros. Estas dos rectas se cortarán en el espacio de parámetros en un punto (a’,b’), donde a’ es la pendiente y b’ la ordenada al origen de la recta que contiene a los puntos (xi,yi) y (xj,yj) en el plano xy, co-mo se puede ver en la figura 1. De hecho, todos los puntos de esa recta en el plano xy darán lugar a rectas diferentes en el espacio de parámetros que se cortan en un único punto (a’,b’).

El atractivo de la transformada de Hough proviene de subdividir el espacio de párame-

tros en celdas acumuladoras, como se puede ver en la figura 2, donde (amin,amax) y (bmin,bmax) son los rangos esperados para la pendiente y la ordenada al origen. La celda de coordenadas (i,j) con un valor de acumulador A(i,j) corresponde al cuadrado asociado

Figura 1: (a) Plano xy. (b) Espacio de parámetros.

baxy ii +=

ii yaxb +−=

Page 82: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Procesamiento Global empleando la Transformada de Hough 2

con las coordenadas (ai,bj) del espacio de parámetros. Inicialmente se ponen todos los a-cumuladores a cero. Entonces para cada punto (xk,yk) de la imagen, permitimos que el parámetro a pueda tomar cualquier valor de entre los ai permitidos y calculamos b usando la ecuación 2. Los valores resultantes para el parámetro b se redondean hasta los bj permitidos. Si para un valor ap resultó un valor bq se tiene que

(3)

Al final, un valor de M en el acumulador A(i,j) significa que M puntos del plano xy caen

sobre la recta y=aix+bj. La precisión en la colinealidad de estos puntos depende del nú-mero de celdas del espacio de parámetros.

Si subdividimos el eje a en K celdas, para cada punto (xk,yk), obtenemos K valores de

b correspondientes a los K posibles valores de A. Si la imagen tiene n puntos, la carga computacional es del orden de nK. La transformada de Hough es lineal en n, y el produc-to nK es mucho menor que si hubiéramos empleado una búsqueda exhaustiva, a menos que K sea del orden o exceda a n.

Un problema que surge al emplear la ecuación de la recta y=ax+b para representar u-

na línea es que tanto la pendiente como la ordenada al origen pueden llegar a valer infinito, según la línea se hace vertical. Una forma de solventar este problema consiste en utilizar la representación normal de la recta

(4)

En la figura 3 se puede ver el significado de los nuevos parámetros (ρ,θ). El uso de

esta representación para construir la tabla de acumuladores es similar al método explica-do para las rectas en la forma pendiente y ordenada al origen. A cada punto del plano xy corresponde ahora una sinusoide en el plano ρθ en lugar de una recta. Al igual que antes, M puntos colineales a la recta x cos θj + y sen θj = ρi darán lugar a M sinusoides que se

Figura 2: Celdas acumuladoras en el espacio de parámetros.

1),(),( += qpAqpA

ρθθ =+ senyx *cos*

Page 83: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Procesamiento Global empleando la Transformada de Hough 3

cortan en el punto (ρi,θj) en el espacio de parámetros. Incrementando θ y calculando ρ, obtendremos M entradas en el acumulador A(i,j) correspondiente al par (ρi,θj).

En la figura 4 podemos ver la tabla de acumuladores del espacio de parámetros en

este caso. El rango para el ángulo θ es ±90º, medido con respecto al eje de abscisas. Se permiten valores negativos de ρ para rectas por detrás del origen de coordenadas del pla-no xy. Por ejemplo, una recta horizontal corresponde a un valor de θ=0º y un valor de ρ i-gual a la ordenada al origen, mientras que una recta vertical corresponde a un valor de θ=90º y un valor de ρ igual a la abscisa en el origen.

En la figura 5 se ilustra con un ejemplo cómo funciona la transformada de Hough. La

imagen está deformada por cuatro puntos correspondientes a las esquinas de un cuadra-do. Estos cuatro puntos dan lugar a cuatro sinusoides en el espacio ρθ. Las cuatro sinu-

Figura 3: Representación normal de una recta

Figura 4: Celdas acumuladoras en el espacio ρθ.

Page 84: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Procesamiento Global empleando la Transformada de Hough 4

soides se cortan en seis puntos (en la figura 2 (b) aparecen ocho puntos, pero hay que recordar que los dos puntos para θ=90º son los mismos que los puntos para θ=-90º, por lo que de ocho son seis distintos), correspondientes a las seis rectas posibles que pasan por los cuatro puntos del plano xy, que son a saber, los cuatro lados del cuadrado y las dos diagonales.

Aunque hemos hecho un análisis para el caso de rectas, la transformada de Hough

también es aplicable a cualquier función de la forma

(5)

donde v es un vector de coordenadas y c es un vector de coeficientes. Por ejemplo, pun-tos que caen en el círculo

(6)

se pueden detectar empleando también la transformada de Hough. En este caso tenemos tres parámetros (c1, c2, c3), lo que dará lugar a un espacio de parámetros de tres dimen-siones, con celdas con forma de cubo y acumuladores de la forma A(i,j,k). El procedi-miento en este caso es para cada punto del plano xy, para cada c1 y para cada c2, calcu-lar el valor de c3 y actualizar el acumulador correspondiente a (c1, c2, c3). La complejidad de la transformada de Hough es claramente dependiente del tamaño del espacio de pará-metros.

(6)

En el apéndice se puede encontrar un algoritmo hecho en un script de Matlab que rea-

liza la transformación de Hough.

Figura 5: (a) Imagen con cuatro puntos de borde. (b) Transformada de Hough mostrando seis puntos de corte correspondientes a las seis rectas que pueden pasar por los cuatro puntos.

0),( =cvg

23

22

21 )()( ccycx =++−

23

22

21 )()( ccycx =++−

Page 85: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Procesamiento Global empleando la Transformada de Hough 5

Apéndice

% TRANSFORMADA DE HOUGH PARA DETECCION DE RECTAS % Universidad Nacional de Quilmes % Ingeniería en Automatización y Control Industrial % Cátedra: Visión Artificial - Agosto de 2005 A=double(imread('ruta2.bmp','bmp')); B=A>240; %Binarizacion de la imagen IMAGEN=B; [m,n]=size(IMAGEN); figure(1);imshow(IMAGEN);title('IMAGEN BINARIZADA'); %%%%%%%%%%%%%%%%%%%%%%%%%%%PARÁMETROS%%%%%%%%%%%%%%%%%%%%%%%%% NTITA=500; %cantidad de divisiones del eje tita NRO=500; %cantidad de divisiones del eje ro TITAmax=pi/2; %variacion de la variable tita TITAmin=-pi/2; TITAdelta=(TITAmax-TITAmin)/NTITA; %variacion minima de tita ROmax=sqrt(m^2+ n^2); %variacion de ro ROmin=0; ROdelta=(ROmax-ROmin)/NRO; %minima variacion de ro %%%%%%%%%%%%%%%%%%%%%%%%%CAMBIO DE COORDENADAS DE LAS RECTAS%%%%%%%%%%%%%%%% ET=zeros(NTITA,NRO); %ET: Espacio Transformado de (ro,tita) [X,Y]=find(IMAGEN); %Retorna las coordenas (x,y) de los ptos de la imagen if length(Y)>1 for i=1:length(Y) %Recorre la eje Y for j=1:NTITA %Recorre el eje TITA %%%CONVERSION DE COORDENADAS%%% TITAc=TITAmin + TITAdelta*(j-0.5); %Desplazamiento por casilleros ROc=X(i)*cos(TITAc)+ Y(i)*sin(TITAc); %Armado de senos a partir de

%(X,Y) ROg=floor((ROc/ROmax)*(NRO-1)+0.5)+1; %Redondeado de RO desplazando

%cada casillero if (ROg>=1)&(ROg<=NRO) %Si esta dentro de la grilla

%escribo el valor en ET ET(j,ROg)=ET(j,ROg)+1; %LLeno las grila con los

%puntos, Obtencion de Senos end %en funcion A TRANSFORMACION%%% end end end %%%%%%%%%%%%%%%%%%%%%%%BUSQUEDA DE LA RECTA MAS POPULAR%%%%%%%%%%%%%%%%%%% [TITA,RO]=find(ET==max(ET(:))); %Busqueda de la recta mas popular TITAr=TITAmin + TITAdelta*(TITA-0.5); %nuevos parametros para la reconstrucion ROr=ROmin + ROdelta*(RO-0.5); IMAGEN2=zeros(m,n,3); IMAGEN2(:,:,1)=IMAGEN*255; IMAGEN2(:,:,2)=IMAGEN*255; IMAGEN2(:,:,3)=IMAGEN*255; for xi=1:m yi=floor((ROr-xi*cos(TITAr))/sin(TITAr)+0.5); %Reconstruccion de de la recta if (yi>=1) &(yi<=n)

Page 86: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Procesamiento Global empleando la Transformada de Hough 6

IMAGEN2(xi,yi,1)=255; %Imagen reconstruida end end figure(2); imshow(uint8(IMAGEN2));title('Original y Reconstruida') %%%%%%%%%%%%%%%%%%%%%ELIMINACION DE LA PRIMERA RECTA ENCONTRADA%%%%%%%%%%%%%% for i=1:length(Y) %Recorre la eje Y for j=1:NTITA %Recorre el eje TITA ROc=0; ROg=floor((ROc/ROmax)*(NRO-1)+0.5)+1; %Redondeado de RO desplazando

%cada casillero if (ROg>=1)&(ROg<=NRO) %Si esta dentro de la grilla

%escribo el valor en ET ET(j,ROg)=ET(j,ROg)+1; %LLeno las grila con los puntos end end end %%%%%%%%%%%%%%%%%%%%%%%BUSQUEDA DE LA SEGUNDA RECTA MAS POPULAR%%%%%%%%%%%%%% [TITA,RO]=find(ET==max(ET(:))); %Busqueda de la recta mas popular TITAr=TITAmin + TITAdelta*(TITA-0.5); %nuevos parametros para la reconstrucion ROr=ROmin + ROdelta*(RO-0.5); for xi=1:m yi=floor((ROr-xi*cos(TITAr))/sin(TITAr)+0.5); %Reconstruccion de de la recta if (yi>=1) &(yi<=n) %Imagen reconstruida IMAGEN2(xi,yi,2)=255; end end figure(3); imshow(uint8(IMAGEN2));title('Original y Reconstruida')

Luego, las imágenes obtenidas con este algoritmo fueron las siguientes: La imagen original sobre la que se aplica el algoritmo es la que sigue:

Page 87: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Procesamiento Global empleando la Transformada de Hough 7

El resultado de binarizar la imagen original con un umbral de 240 es el siguiente: La recta más popular se puede ver en la siguiente figura:

Page 88: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Septiembre de 2005

Procesamiento Global empleando la Transformada de Hough 8

Por último, las dos rectas más populares se muestran en la figura que sigue:

Page 89: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 1ra parte 1

Operaciones Morfológicas en Imágenes Binarias Introducción La morfología matemática es una herramienta muy utilizada en el procesamiento de i-

mágenes. Las operaciones morfológicas pueden simplificar los datos de una imagen, pre-servar las características esenciales y eliminar aspectos irrelevantes. Teniendo en cuenta que la identificación y descomposición de objetos, la extracción de rasgos, la localización de defectos e incluso los defectos en líneas de ensamblaje están sumamente relaciona-dos con las formas, es obvio el papel de la morfología matemática.

La morfología matemática se puede usar, entre otros, con los siguientes objetivos: - Preprocesamiento de imágenes (supresión de ruido, simplificación de formas). - Destacar la estructura de objetos (extraer el esqueleto, marcado de objetos, envol-

vente convexa, ampliación, reducción). - Descripción cualitativa de objetos (área, perímetro, diámetro, etc). Representación de Imágenes Binarias Definiremos una imagen binaria como una función de dos variables discretas a[m,n]

que puede tomar dos valores, ‘0’ o ‘1’, dependiendo del nivel de gris de la imagen (una i-magen binaria tiene dos niveles: blanco y negro).

Se puede proponer una definición alternativa si consideramos que una imagen consiste

en un conjunto de coordenadas discretas (también pueden ser reales pero no es el objeti-vo de este estudio). En este sentido, el conjunto corresponde a todos aquellos puntos o píxeles que pertenecen a la imagen. Por lo tanto, se puede decir que en morfología mate-mática los conjuntos representan objetos en una imagen. Por ejemplo, el conjunto de to-dos los píxeles negros en una imagen binaria constituye una descripción completa de la misma. Más adelante veremos que el lenguaje de la morfología matemática es el de la te-oría de conjuntos.

Figura 1: Representación de una imagen binaria

Page 90: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 1ra parte 2

Aa∉

BA⊆

BAC Υ=

Como ya habíamos adelantado, en las imágenes binarias, los conjuntos en cuestión pertenecen al espacio Z2, donde cada elemento del conjunto es una 2-upla (vector 2-D) cuyas coordenadas son las coordenadas [m,n] de un píxel blanco (o negro, según la con-vención) de la imagen.

En la figura 2 se pueden ver dos conjuntos, A y

B. Observemos que se ha colocado un sistema de coordenadas. El conjunto (u objeto) A consiste en los puntos { [2,3]; [2,4]; [2,5]; [1,3]; [1,4]; [1,5]; [0,5] } mientras que el B contiene los puntos { [0,0]; [0,1]; [1,0] }.

En este punto se debe acotar que en la mayoría

de los lenguajes de programación los arrays de ele-mentos que serán los encargados de contener la i-magen no admiten índices negativos y en general menores a 1. Por lo tanto, será necesario realizar u-na pequeña modificación al sistema de coordena-das que consiste en un simple desplazamiento para poder operar sobre una imagen (con-tenida en un array). En los algoritmos de ejemplo incluidos en el apéndice se puede en-contrar la forma de realizar esta modificación.

Conceptos Básicos de la Teoría de Conjuntos Sea A un conjunto en Z2. Si a=(a1,a2) es un elemento de A, entonces podemos afirmar

que Similarmente, si a no es un elemento de A, decimos que El conjunto que no tiene elementos se llama conjunto vacío y se denota por el símbolo

Ø. Un conjunto se especifica por el contenido de dos llaves: { }. En este apunte, los ele-

mentos de un conjunto son las coordenadas de píxeles que representan objetos u otros rasgos de interés en la imagen. Por ejemplo, cuando escribimos la expresión C = { w | w = -d, d ∈ D} queremos decir que el conjunto C es el conjunto de elementos, w, tal que w sea el resultado de multiplicar por –1 cada una de las dos coordenadas de todos los ele-mentos de D.

Si cada elemento del conjunto A es también un elemento de otro conjunto B, se dice

que A es un subconjunto de B, y se expresa como La unión de dos conjuntos A y B, denotada por

Aa∈

Figura 2: Imagen binaria con dos conjuntos

Page 91: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 1ra parte 3

BAD ∩=

∅=∩ BA

}|{ AwwAc ∉=

cBABwAwwBA ∩=∉∈=− },|{

},|{B Bbbww ∈−==

},|{(A)Z Aazacc ∈+==

es el conjunto de todos los elementos pertenecientes a A o a B, o a ambos. De la misma forma, la intersección de dos conjuntos A y B, denotada por

es el conjunto de todos aquellos elementos que pertenecen tanto a A como a B. Dos conjuntos A y B se dicen mutuamente excluyentes o disjuntos si no tienen elemen-

tos en común. En este caso, El complemento de un conjunto A es el conjunto de elementos que no pertenecen a A: La diferencia de dos conjuntos A y B, denotada por A-B, se define como En la expresión vemos que este es el conjunto de elementos que pertenecen a A pero

no a B. Además de estas operaciones básicas, vamos a necesitar de otras adicionales que son

usadas ampliamente en morfología pero que generalmente no están en los textos básicos de la teoría de conjunto. La reflexión del conjunto B, que se escribe como

La traslación de un conjunto A por el punto (vector) z=(z1,z2), denotada (A)Z, se define

como Las siguientes figuras ejemplificarán las operaciones más comunes de la teoría de con-

juntos aplicadas a imágenes binarias.

Figura 3: a) Conjunto A. b) Conjunto B. c) Unión de A y B.

Figura 4: a) Conjunto A. b) Conjunto B. c) Intersección de A con B.

Page 92: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 1ra parte 4

Figura 5: a) Conjunto A. b) Complemento de A.

Figura 6: a) Conjunto A. b) Conjunto B. c) A-B.

Figura 7: a) Imagen. b) Imagen trasladada por el punto [-50,-50].

Figura 8: a) Imagen. b) Imagen reflejada.

Page 93: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 1ra parte 5

})ˆ(|{ ∅≠∩=⊕ ABzBA Z

}))ˆ((|{ AABzBA Z ⊆∩=⊕

Dilatación y Erosión Estas operaciones son fundamentales en el procesamiento morfológico. De hecho, la

mayoría de los algoritmos morfológicos están basados en estas dos operaciones. Elemento Estructural: Si bien los conjuntos A y B pueden ser considerados como una imagen (u objeto), ge-

neralmente se considera que A es la imagen y B es el elemento estructural. El elemento estructural es en morfología matemática lo que la máscara (o núcleo) de convolución es en los filtros lineales.

Los elementos estructurales más comunes son los conjuntos que están 4-conectados,

N4, y 8-conectados, N8, ilustrados en las siguientes figuras Dilatación Sean A y B conjuntos en Z2. La dilatación de A por B, expresada por A⊕B, se define

como Esta ecuación consiste en obtener la reflexión de B sobre su origen y trasladar este re-

flexión por z. La dilatación de A por B es entonces el conjunto de todos los desplazamien-tos, z, tal que la reflexión de B y A se solapan por al menos un elemento. Teniendo en cuenta lo anterior, la dilatación de A por B también se puede expresar como

En general, la dilatación aumenta el tamaño de un objeto. La cantidad y la forma en

que aumenta el tamaño depende de la elección del elemento estructural. Una de las aplicaciones más simples de la dilatación es la unión de píxeles relaciona-

dos. La figura 10 a) muestra un texto cuyos caracteres han perdido píxeles debido a un fil-trado con pasabajos. Se sabe que la longitud máxima de las rupturas es de dos píxeles. Si se dilata la imagen con un elemento estructurante de conectividad 4 (N4) como el que se muestra en la figura 9 a) se pueden unir los caracteres partidos y obtener como resul-tado la figura 10 b).

Figura 9: Elementos estructurales estándar. a) N4. b) N8.

Page 94: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 1ra parte 6

})(|{ ABzBA Z ⊆=Θ

Erosión Sean A y B conjuntos en Z2. La erosión de A por B, que se expresa como AΥB, se defi-

ne como Esta ecuación indica que la erosión de A por B es el conjunto de todos los puntos z ta-

les que B, trasladado por z, está contenido en A. Generalmente, la erosión disminuye el tamaño de los objetos. Como pasaba en la dila-

tación, la cantidad y la forma en que se produce esta disminución depende del elemento estructural elegido.

Uno de los usos más simples de la erosión es para la eliminación de detalles irrelevan-

tes (en términos de tamaño) de una imagen binaria. La figura 11 a) muestra una imagen compuesta por cuadrados cuyos lados tienen 1, 3, 5, 9, y 15 píxeles. Supongamos que queremos eliminar todos los cuadrados excepto los más grandes. Esto los podemos hacer erosionando la imagen con un elemento estructural cuyo tamaño sea un poco menor que el de los cuadrados que deseamos conservar. Por ejemplo, si elegimos un elemento es-tructural de 13x13 podemos obtener la imagen de la figura 11 b). Como se observa, sólo se han mantenido las porciones de los cuadrados más grandes. Luego, podemos restituir el tamaño de estos 3 cuadrados a su tamaño original de 15x15 dilatando la imagen ero-sionada (figura 11 b) con el mismo elemento estructural utilizado para la erosión. El resul-tado puede verse en la figura 11 c).

Figura 10: a) Texto de poca resolución con caracteres partidos. b) Dilatación de la imagen de (a) con el elemento estructurante N4.

Page 95: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 1ra parte 7

La dilatación y la erosión son operaciones duales con respecto a la complementación y

a la reflexión. Esto es La demostración de lo anterior, así como las diferentes propiedades de la dilatación y la

erosión, no serán desarrolladas en este estudio pero pueden encontrarse en la mayoría de los textos de morfología matemática.

Algoritmos Simples de Dilatación y Erosión Las expresiones que se dieron anteriormente para la dilatación y la erosión de imáge-

nes binarias son las definiciones formales y pueden resultar difíciles de comprender a la hora de construir algoritmos para tales fines. A continuación se enuncia la manera de ar-mar algoritmos de dilatación y erosión teniendo en cuenta la idea básica e intuitiva de es-tas dos operaciones:

Dilatación: tomar cada píxel del objeto (con valor “1”) y setear al valor “1” todos aque-

llos píxeles pertenecientes al fondo (background) que tienen una conectividad C (C=4, C=8, etc) con el píxel del objeto. En pocas palabras, poner a “1” los píxeles del fondo veci-nos a los píxeles del objeto.

Erosión: tomar cada píxel del objeto que tiene una conectividad C con los píxeles del

fondo y setearlo al valor “0”. En otras palabras, poner a “0” los píxeles del objeto vecinos a los píxeles del fondo.

En el apéndice puede encontrarse una forma bastante genérica de implementar estos

algoritmos. La programación se realizó en scripts de MatLab pero llevar los algoritmos a otro lenguaje es una tarea simple ya que están hechos con instrucciones comunes en los diferentes lenguajes.

BABA CC ˆ)( ⊕=Θ

Figura 11: a) Imagen con cuadrados de 1, 2,3, 5, 7, 9 y 15 píxeles de lado. b) Erosión de (a) con un elemento estructural de 15x15. c) Dilatación de (b) con el mismo elemento estructural.

Page 96: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 2da parte 1

Apertura y Clausura (Opening and Closing) Como vimos, la dilatación y la erosión están muy relacionadas con la forma; la primera

operación expande la imagen mientras que la segunda la contrae. La dilatación y la ero-sión usualmente se usan de a pares, bien la dilatación seguida de la erosión o viceversa. En cualquier caso, el resultado de esta aplicación sucesiva de erosiones y dilataciones es una eliminación de detalles menores que no distorsiona la forma global del objeto.

La apertura de un conjunto A por el elemento estructural B, se define como Es decir, la apertura de A por B es la erosión de A por B seguida por la dilatación del

resultado por B.. De forma similar, la clausura de un conjunto A por el elemento estructural B, se define

como O sea, es la dilatación de A por B seguida por la erosión del resultado por B. La apertura generalmente suaviza los contornos de un objeto y elimina protuberancias

finas. La clausura también suaviza los contornos pero, contrariamente a la apertura, gene-ralmente fusiona las hendiduras finas y largas presentes en los objetos, elimina agujeros pequeños y rellena brechas en el contorno.

La figura 12 a) muestra un conjunto A y la figura 12 (b) muestra varias posiciones de un

elemento estructural con forma de disco durante el proceso de erosión. El resultado de la erosión se puede ver en la figura 12 (c). Se debe notar la eliminación de las uniones entre las dos secciones principales. El ancho de estas uniones era menor al diámetro del ele-mento estructural. Los elementos salientes donde el elemento estructural (con forma de disco) no cabía fueron eliminados. La figura 12 (d) muestra la dilatación del conjunto ero-sionado, y la figura 12 e) el resultado final de la apertura. Nótese que las esquinas exterio-res han sido redondeadas mientras que las esquinas interiores no fueron afectadas.

De manera similar, las figuras 12 (f) a 12 (i) muestran los resultados de la clausura de A con el mismo elemento estructural. Notamos que las esquinas interiores fueron redondea-das mientras que las esquinas exteriores permanecieron sin cambios. También se ve el suavizado que resultó en las partes del objeto luego de la apertura o de la clausura del conjunto A con el elemento estructural circular.

BBABA ⊕Θ= )(ο

BBABA Θ⊕=• )(

(a)

Page 97: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 2da parte 2

Figura 12: Apertura y clausura morfológica. El elemento estructural es el pequeño círculo mostrado en varias posiciones en (b). El punto negro es el centro del elemento estructural.

Como sucedía con la dilatación y la erosión, la apertura y la clausura son duales con

respecto a la complementación y a la reflexión. Esto es Las operaciones morfológicas pueden ser usadas para construir filtros conceptualmen-

te similares a los filtros espaciales. La imagen binaria de la figura 13 (a) muestra una parte de una huella digital contaminada con ruido. Aquí el ruido se manifiesta como elementos blancos en el fondo oscuro y como elementos negros en los componentes blancos de la huella digital. El objetivo es eliminar el ruido y sus efectos sobre la huella pero distorsio-nándola lo menos posible. Un filtro morfológico que consista en una apertura seguida de una clausura puede lograr este objetivo.

(b) (c)

(d) (e)

(f) (g)

(h) (i)

)ˆ()( BABA CC ο=•

Page 98: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 2da parte 3

El elemento estructural elegido se exhibe en la figura 13 (b). Las figuras restantes muestran paso a paso la operación de filtrado. La figura 13 (c) expone el resultado de ero-sionar A con el elemento estructural. El ruido del fondo fue completamente eliminado en la etapa de erosión de la apertura debido a que en este caso todos las componentes de rui-do son físicamente más pequeños que el elemento estructural. El tamaño de los elemen-tos de ruido (puntos negros) contenidos en la huella digital ha sido aumentado. La razón es que estos elementos son contornos interiores que deben aumentar en tamaño cuando el objeto es erosionado. Esta ampliación es contrarrestada cuando se aplica la dilatación sobre la figura 13 (c). La figura 13 (d) muestra el resultado. Las componentes de ruido contenidos en la huella digital fueron reducidos en tamaño o borrados completamente.

Las operaciones recién descriptas constituyen la apertura de A por B. Notamos en la

figura 13 (d) que el efecto neto de la apertura fue eliminar virtualmente todos las compo-nentes de ruido, tanto en el fondo como en la huella digital. Sin embargo, se crearon nue-vas grietas en los bordes de la huella digital. Para contrarrestar este efecto no deseado, realizamos la dilatación sobre la apertura, como se ve en la figura 13 (e). La mayoría de las rupturas han sido restauradas, pero los bordes se hicieron más gruesos, un efecto que debe ser arreglado por la erosión. El resultado, mostrado en la figura 13 (f), constituye la clausura de la apertura de la figura 13 (d). Este resultado final es notablemente libre de

(f)

(a) (b)

(c)

(d)

(e)

Figura 13: a) Imagen con ruido. b) Elemento estructural. c) Imagen erosionada.d) Apertura de A. e) Apertura de A. f) Clausura de la apertura.

Page 99: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 2da parte 4

ruido, pero tiene la desventaja de que algunos de los bordes de la huella no fueron com-pletamente reparados y aún contienen rupturas. Esto no es totalmente inesperado, ya que no se pusieron condiciones en el procedimiento de filtrado para mantener la conectividad.

Transformación Hit-or-Miss (o Ganancia - Pérdida) La transformación morfológica Hit-or-Miss es una herramienta básica para la detección

de formas. Permite destacar en una imagen una determinada disposición de espacial de los pixeles. Para ello, emplea dos elementos estructurales que permiten relacionar la ima-gen A con su complementaria AC.

Presentaremos este concepto con la ayuda de la figura 14 que muestra un conjunto A

que consiste de tres figuras u objetos (subconjuntos) llamados X, Y y Z. El sombreado en las figuras 14 (a), (b) y (c) indica los conjuntos originales, mientras que el sombreado en 14 (d) y (e) indica el resultado de las operaciones morfológicas. El objetivo es encontrar la ubicación de uno de los objetos: el X.

Consideremos que el origen de cada objeto o subconjunto está en su centro. Suponga-

mos que X está encerrado por una pequeña ventana, W. El fondo local de X con respecto a W se define como el conjunto (W-X), como se muestra en la figura 14 (b). La figura 14 (c) exhibe el complemento de A, que será utilizado luego. La figura 14 (d) muestra la ero-sión de A por X. Se debe recordar que la erosión de A por B es el conjunto de locaciones del origen de X, tales que X está completamente contenido en A. Otra interpretación sería que AΘX puede ser visto como geométricamente como el conjunto de todas las ubicacio-nes del origen de X en los cuales X encontró una coincidencia en A. Teniendo en cuenta esto, en la figura 14, A consiste solamente de tres conjuntos disjuntos: X, Y y Z.

La figura 14 (e) muestra la erosión del complemento de A por el conjunto del fondo lo-

cal, (W-X). La región sombreada exterior en la figura 14 (e) es parte de la erosión. Nota-mos que de la figura 14 (d) y (e) que el conjunto de ubicaciones para las cuales X encaja exactamente dentro de A es la intersección de la erosión de A por X y la erosión de AC por (W-X) como se muestra en la figura 14 (f). Esta intersección es precisamente la ubicación buscada. En otras palabras, si B representa el conjunto compuesto por X y su fondo (background), la coincidencia (o conjunto de coincidencias) de B en A es

Podemos generalizar la notación haciendo B = (B1,B2), donde B1 es el conjunto forma-

do por los elementos de B asociados con un objeto y B2 es el conjunto de los elementos de B asociados con el fondo correspondiente. De esta manera, B1 = X y B2 = (W-X). Con esta notación, la ecuación anterior se puede escribir

Así, el conjunto A⊗B contiene todos los puntos (origen) en los cuales, simultáneamen-

te, B1 encontró una coincidencia (hit) en A y B2 encontró una coincidencia en AC. Usando la definición de diferencia de conjuntos y la relación dual entre erosión y dilatación, pode-mos escribir la ecuación

))(()( XWAXABA C −Θ∩Θ=∗

)()( 21 BABABA CΘ∩Θ=∗

Page 100: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 2da parte 5

Figura 14: a) Conjunto A. b) Una ventana, W, y el fondo local de X con respecto a W, (W-X). c) Complemento de A. d) Erosión de A por X. e) Erosión de AC por (W-X). f) Intersección de (d) y (e), mostrando la posición del origen de X.

La razón por la que usamos un elemento estructural B1 asociado con los objetos y un

elemento B2 asociado con el background se basa en el hecho de que dos o más conjun-tos son distintos sólo si forman conjuntos disjuntos (desconectados). Esto queda garanti-zado si cada objeto está rodeado por un fondo de al menos un píxel de ancho. En algunas aplicaciones, podemos estar interesados en detectar ciertos patrones de 1’s y 0’s dentro de un conjunto, en cuyo caso no se requiere de un fondo. En tal caso, la transformada hit-or-miss se reduce a una simple erosión.

)ˆ()( 21 BABABA ⊕−Θ=∗

(f)

(a) (b)

(c) (d)

(e)

Page 101: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 3ra parte 1

Extracción de Frontera (Boundary Extraction) La frontera de un conjunto A, escrita como β(A), se puede obtener erosionando A por B

y luego calcular la diferencia entre A y su erosión. Esto es

donde B es un elemento estructural apropiado. A continuación se presenta un ejemplo de la operación de frontera. La figura 15 mues-

tra una imagen binaria y el resultado usando la ecuación anterior con un elemento estruc-tural de 3x3 estándar N8 (figura 9 (b)).

Si bien el elemento estructural usado es muy simple, existen otras elecciones más

complejas, por ejemplo, de tamaño 5x5 que ampliaría el grosor de la frontera a dos o tres píxeles.

Afinado o Adelgazamiento (Thinning) El afinado de un conjunto A por el elemento estructural B, puede ser definido en térmi-

nos de la transformada hit-or-miss como Una definición más útil para el afinado simétrico de A está basado en una sucesión de

elementos estructurales

donde Bi es una versión rotada de Bi-1. Considerando lo anterior, definimos el afinado por una sucesión de elementos estructurales como

)()( BAAA Θ−=β

Figura 15: Imagen binaria y el resultado de la extracción de frontera con un elemento estructural N8.

CBAABAABA )()( ∗∩=∗−=⊗

},...,,{}{ 321 nBBBBB =

Page 102: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 3ra parte 2

Es decir, el proceso consiste en afinar el conjunto A un paso con B1, luego afinar el re-

sultado con B2 y así sucesivamente hasta Bn. El proceso se repite hasta que no ocurren más cambios. Cada paso de afinado se realiza usando la primera ecuación.

La figura 16 (a) muestra una serie de elementos estructurales frecuentemente usados

para el afinado y la figura 16 (b) muestra un conjunto A que se desea afinar aplicando el procedimiento recién presentado. La figura 16 (c) exhibe el resultado de afinar A con B1, y las figuras 16 (d) a (k) son el resultado de afinar con los Bi restantes.

))...))((...((}{ 21 nBBBABA ⊗⊗⊗=⊗

(a)

(b) (d)

(e) (g)

(h) (j)

Figura 16: a) Secuencia de los elementos estructurales usados para el afinado. b) Conjunto A. c) Resultado de afinar A con el primer elemento. (d)-(i) Resultados del afinado con los siguientes 7 elementos. j) Resultado de afinar sucesivamente con los primeros 3 elementos.k) Resultado final (luego de la convergencia).

(k)

Page 103: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 3ra parte 3

Engrosamiento (Thickening) El engrosamiento es la operación morfológica dual del afinado y se define mediante la

siguiente expresión

donde B es un elemento estructural apropiado para el engrosamiento. Al igual que con el afinado, el engrosamiento se puede definir como una operación secuencial

Los elementos estructurales usados para el engrosamiento son los mismos que los del

afinado, pero cambiando los 1’s por 0’s y viceversa. Sin embargo, esta implementación no se suele usar en la práctica. El procedimiento usual consiste en afinar el fondo del conjun-to deseado y complementar el resultado. En otras palabras, para engrosar un conjunto A lo que se hace es formar el conjunto C=AC, afinar C y luego complementar.

Relleno de Región (Region Filling) En ciertas aplicaciones, es conveniente poder reconstruir una imagen que ha sufrido

varias erosiones o poder llenar un objeto que está definido por una frontera. Para ello, se puede utilizar una operación llamada relleno de región cuyos algoritmos están basados en dilataciones, complementaciones e intersecciones. La figura 17 muestra un conjunto que contiene un subconjunto cuyos elementos están 8-conectados y constituyen la frontera de una región. Comenzando por un punto p (conocido como ‘semilla’ o ‘seed’) que se en-cuentre dentro de la frontera, el objetivo es rellenar completamente la región con 1’s.

Consideremos que todos aquellos puntos que no pertenecen a la frontera son cero (el

fondo o background) y asignemos al punto p (la semilla) el valor uno. El siguiente procedi-miento, entonces, rellena la región determinada por el punto p con 1’s:

donde X0=p, y B es el elemento estructural de la figura 17 (c). El algoritmo converge cuan-do Xk = Xk-1. El conjunto resultante de la unión de Xk y A contiene a la región rellenada y su frontera.

Es importante notar que el proceso de dilatación rellenaría todo el conjunto. Sin embar-

go, la intersección en cada paso con AC limita el proceso a la región de interés (este tipo de dilatación recibe el nombre de dilatación condicionada). Aunque en este ejemplo sólo rellenamos una región o subconjunto, el concepto puede aplicarse a un número finito de regiones, siempre que conozcamos puntos dentro de éstas (las semillas).

La figura 18 muestra una imagen que contiene varios círculos blancos con círculos en

negros en su interior. Este tipo de imagen puede ser el resultado de aplicar un umbral a o-tra imagen que consistía de esferas brillantes. Los círculos negros son el resultado de las reflexiones. El objetivo es eliminar las reflexiones mediante el relleno de región. La figura 18 (a) muestra un punto (la semilla) dentro de una de las esferas, y la figura 18 (b) mues-

Ckk ABXX ∩⊕= − )( 1

,...3,2,1=k

Page 104: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 3ra parte 4

tra el resultado de rellenar esa región. Finalmente, la figura 18 (c) es el resultado de relle-nar todas las esferas.

Figura 17: Relleno de región. a) Conjunto A. b) Complemento de A. c) Elemento estructural B. d) Punto inicial dentro de la frontera (semilla). (e) a (h) Varios pasos del relleno. i) Resultado final producto de la unión de (a) con (h).

Figura 18: a) Imagen binaria (el punto blanco dentro de una de las regiones es el punto inicial o semilla para el algoritmo de relleno. b) Resultado de rellenar esa región. c) Resultadode rellenar todas las regiones.

Page 105: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 3ra parte 5

Esqueleto El esqueleto intenta representar la forma de un objeto con un número relativamente pe-

queño de píxeles. De esta forma, todos los píxeles del esqueleto son estructuralmente ne-cesarios.

La posición, orientación y longitud de las líneas del esqueleto se corresponden con a-

quellas equivalentes de la imagen original. La tarea de sacar características de una ima-gen queda simplificada al obtener su esqueleto.

Como se ve en la figura 19, el concepto de esqueleto, S(A), de un conjunto A es intui-

tivamente simple. De la figura deducimos que i) Si z es un punto de S(A) y (D)z es el disco más grande centrado en z y contenido

en A, no se puede encontrar un disco más grande (no necesariamente centrado en z) que contenga a (D)z y esté incluido en A. El disco (D)z se denomina disco máximo.

ii) El disco (D)z contacta a la frontera de A en dos o más puntos diferentes. El esqueleto de A puede ser expresado en términos de erosiones y aperturas. Esto es,

donde B es un elemento estructural, y (AΘkB) indica k erosiones sucesivas de A:

k veces, y K es el último paso iterativo antes de que A sea erosionado por completo (y se obtenga el conjunto vacío). En otras palabras

Las dos primeras expresiones sugieren que el esqueleto S(A) se puede obtener como

la unión de subconjuntos esqueleto Sk(A). También se puede demostrar que el conjunto original A puede ser reconstruido a partir de estos subconjuntos utilizando la siguiente e-cuación

donde (Sk(A) ⊕kB) representa k dilataciones sucesivas de Sk(A); es decir

UK

kk ASAS

0

)()(=

= BkBAkBAASk o)()()( Θ−Θ=

BBBAkBA ΘΘΘΘ=Θ ...)))(...()(

})(|max{ ∅≠Θ= kBAkK

UK

kk kBASA

0

))((=

⊕=

BBBASkBAS kk ⊕⊕⊕⊕=⊕ ...))))((...())((

Page 106: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 3ra parte 6

Poda (Pruning) Los métodos de poda son un complemento esencial al afinado y cálculo del esqueleto

ya que estos procedimientos tienden a dejar componentes parásitos que deben ser elimi-nados luego. Comenzamos la discusión con un problema de poda y después desarrollare-mos una solución morfológica basada en operaciones ya vistas.

Una aproximación común en el reconocimiento automático de caracteres manuscritos

es analizar la forma de los esqueletos de cada caracter. Estos esqueletos frecuentemente están caracterizados por espuelas (o puntas o crestas) que constituyen componentes pa-rásitos. Éstos se originan durante la erosión por no uniformidades en los trazos que for-man los caracteres. Vamos a considerar que la longitud de los componentes parásitos no exceden un determinado número de caracteres.

La figura 20 (a) muestra el esqueleto de una ‘a’ manuscrita. El complemento parásito

sobre el lado izquierdo del caracter es lo que queremos eliminar. La solución está basada en suprimir una bifurcación mediante la eliminación sucesiva de su punto final. Esto tam-bién eliminará cualquier otra bifurcación en el caracter pero, en este ejemplo vamos a a-sumir que cualquier bifurcación de 3 o menos píxeles será eliminada. El afinado de un conjunto A con una secuencia de elementos estructurales diseñados sólo para la detec-ción de puntos finales realiza la tarea deseada. Esto es

donde {B} representa la secuencia de elementos estructurales mostrados en las figuras 20 (b) y (c). Los elementos estructurales consisten de dos estructuras diferentes y donde ca-da una está rotada 90 grados.

Aplicando tres veces la ecuación anterior a A se consigue el conjunto X1 mostrado en la

figura 20 (d). El siguiente paso es restaurar el caracter a su forma original, pero sin las bi-furcaciones parásitas. Para hacer esto, primero se debe formar el conjunto X2 de manera que contenga todos los puntos finales en X1:

donde los Bk son los mismos detectores de puntos finales mostrados en la figura 20 (b) y (c). El siguiente paso es dilatar tres veces los puntos finales, usando al conjunto A como delimitador:

Figura 19: a) Conjunto A. b) Varias posiciones de los discos máximos con centro en el esqueleto de A. c) Otro disco máximo ubicado en un segmento diferente del esqueleto de A. d) Esqueleto completo.

}{1 BAX ⊗=

U8

112 )(

=

∗=k

kBXX

AHXX ∩⊕= )( 23

Page 107: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias – 3ra parte 7

donde H es un elemento estructural de 1’s. Finalmente, el resultado deseado se obtiene de la unión de X3 y X1 (figura 20 (g)). Referencias 1) Digital Image Processing Second Edition, Rafael C. Gonzalez – Richard E. Woods,

capítulo 9.

314 XXX ∪=

Figura 20: Imagen original. (b) y (c) Elementos estructurales usados para borrar los puntos finales. d) Resultado luego de 3 procesos de afinado. e) Puntos finales de (d). Dilatación de los puntos finales condicionada por A. g) Imagen podada.

Page 108: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias - Apéndice 1

Apéndice Ahora que hemos presentado las operaciones morfológicas más comunes que se em-

plean sobre imágenes binarias, vamos a construir algoritmos en scripts de Matlab que re-alicen estos procedimientos de la forma más genérica posible, de manera que puedan ser programados en otro lenguaje sin mayores inconvenientes.

Traslación Supongamos que el origen de coordenadas de la imagen se encuentra en su centro.

Luego la traslación de una imagen binaria contenida en a por el punto x se realiza como sigue

at=zeros(size(a)); x=[-50 -50]; % Determino los limites de los indices para no exceder las dimensiones de la %imagen nMax=min(n,n-x(1)); nMin=max(1,-x(1)+1); mMax=min(m,m-x(2)); mMin=max(1,-x(2)+1); for i=nMin:nMax for j=mMin:mMax at(i+x(1),j+x(2))=a(i,j); end end imshow(a), title('Imagen Original') figure, imshow(at), title('Imagen Trasladada')

Reflexión Ahora veamos como se refleja la imagen resultante de la traslación anterior respecto a

su origen:

% El punto sobre el cual se realiza la reflexion es el centro de la imagen b=zeros(size(a)); for i=1:n for j=1:m b(i,j)=at(n-i+1,m-j+1); end end imshow(at), title('Imagen Original') figure, imshow(b), title('Imagen Reflejada')

Resta de imágenes En este punto es necesario tener en cuenta el tipo de datos con el que se está traba-

jando, es decir, datos binarios, 1’s y 0’s, blanco y negro. Por ello, aquellos valores negati-vos en los píxeles que se obtienen como resultado de una resta carecen de sentido (en realidad, les corresponde el valor ‘0’). Nunca obtendríamos estos resultados si considera-mos la otra definición para la resta: A-B = A ∩BC . Concretando

Page 109: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias - Apéndice 2

res=a-at; imshow(a) figure , imshow(res)

ó

at_complemento=1-at; res=and(a,at_complemento); % intersección de a y at_complemento imshow(a) figure , imshow(res)

Dilatación Recordemos la idea intuitiva de la dilatación: Tomar cada píxel del objeto (con valor “1”) y setear al valor “1” todos aquellos píxeles

pertenecientes al fondo (background) que tienen una conectividad C (C=4, C=8, etc) con el píxel del objeto. En pocas palabras, poner a “1” los píxeles del fondo vecinos a los píxe-les del objeto.

Teniendo en cuenta lo anterior, consideremos que a contiene la imagen binaria que de-

seamos dilatar y que el elemento estructural está dado por una vecindad 4. Entonces, el algoritmo siguiente realiza la dilatación buscada. Cabe aclarar que en lo que sigue, los pí-xeles pertenecientes al objeto tienen el valor ‘1’ que corresponte al color blanco.

[n,m]=size(a); dilatada=zeros(size(a)); for i=2:n-1 for j=2:m-1 dilatada(i,j)=a(i,j); if (a(i,j)==0 & (a(i,j-1)==1 | a(i-1,j)==1 | a(i,j+1)==1 | a(i+1,j)==1)) dilatada(i,j)=1; end end end

Erosión Repasemos ahora la idea intuitiva de la erosión: Tomar cada píxel del objeto que tiene una conectividad C con los píxeles del fondo y

setearlo al valor “0”. En otras palabras, poner a “0” los píxeles del objeto vecinos a los pí-xeles del fondo.

Como se ve, la idea es casi la misma que para la dilatación. Luego

erosionada=zeros(size(a)); for i=2:n-1 for j=2:m-1 erosionada(i,j)=a(i,j); if (a(i,j)==1 & (a(i,j-1)==0 | a(i-1,j)==0 | a(i,j+1)==0 | a(i+1,j)==0)) erosionada(i,j)=0; end end end

Page 110: APUNTE COMPLETO.pdf

Universidad Nacional de Quilmes – Ing. en Automatización y Control Industrial Cátedra: Visión Artificial Agosto de 2005

Operaciones Morfológicas en Imágenes Binarias - Apéndice 3

Por último, comparemos los resultados de nuestros algoritmos de dilatación y erosión con los obtenidos con funciones de Matlab:

B=[0 1 0;1 1 1;0 1 0]; % ELEMENTO ESTRUCTURAL 4-conectado dilatada_matlab=imdilate(a,B); figure, subplot(1,2,1), imshow(dilatada) title('Dilatacion con algoritmo intuitivo') subplot(1,2,2), imshow(dilatada_matlab) title('Dilatacion con "imdilate" de Matlab') erosionada_matlab=imerode(a,B); figure, subplot(1,2,1), imshow(erosionada) title('Erosion con algoritmo intuitivo') subplot(1,2,2), imshow(erosionada_matlab) title('Erosion con "imerode" de Matlab')