Técnicas para exploración de bases de datos · está formada por siluetas de animales marinos. El...

8
Técnicas para exploración de bases de datos Daniel Aceituno Gómez Estudiante Ing. Telecomunicación Universidad Carlos III de Madrid Avenida de la Universidad, 30 28911, Leganés (Madrid-España) [email protected] Miguel Alcolea Sánchez Estudiante Ing. Telecomunicación Universidad Carlos III de Madrid Avenida de la Universidad, 30 28911, Leganés (Madrid-España) [email protected] RESUMEN El objetivo del trabajo es conseguir las imágenes más parecidas a una dada dentro de una base de datos de 6600. Para ello se utilizarán dos técnicas de búsqueda, una de ellas basada en agrupamiento (k-medias) y otra según el criterio de mínima distancia (distancia Euclídea). La base de datos proporcionada está formada por siluetas de animales marinos. El código Matlab desarrollado debe ser capaz de encontrar los contornos más parecidos al de muestra, independientemente de la rotación, posicionamiento y escalado de éste. Categorías y Descriptores de Temas [Exploración de bases de datos]: agrupamiento, técnicas y aplicaciones de búsqueda de imágenes, visión artificial. Términos Generales Clustering, Matlab, algoritmos de búsqueda, exploración de bases de datos. Palabras clave K-medias, Euclídea, bases de datos. 1. INTRODUCCIÓN Uno de los principales objetivos de la visión artificial [1] es poder diferenciar los objetos presentes en una imagen (en este caso, en una imagen digital), de tal manera, que esto logre que la identificación de los mismos sea una tarea más fácil de realizar. En el problema de diferenciar los objetos en cualquier imagen, como es hecho por los seres humanos, una importante pregunta abierta aparece: ¿Qué información es, tanto suficiente como necesaria, para poder llevar a cabo esta tarea? Es muy difícil poder expresar este conocimiento o información de una manera algorítmica. Dentro de la visión artificial se encuentra el procesamiento de imágenes, y dentro de éste, una parte muy importante se encarga del análisis de las mismas. Esto es, dada una imagen, lo que se desea obtener es una descripción de dicha imagen. Por otra parte, la segmentación se encarga de simplificar y/o cambiar la representación de una imagen en otra más significativa y más fácil de analizar. Se usa tanto para localizar objetos como para encontrar los límites de estos dentro de una imagen. Más precisamente, la segmentación [2] de la imagen es el proceso de asignación de una etiqueta a cada píxel de la imagen de forma que los píxeles que compartan la misma etiqueta también tendrán ciertas características visuales similares. El resultado de la segmentación de una imagen es un conjunto de segmentos que cubren en conjunto a toda la imagen, o un conjunto de las curvas de nivel extraídas de la imagen (detección de bordes). Cada uno de los píxeles de una región son similares en alguna característica, como el color, la intensidad o la textura. Regiones adyacentes son significativamente diferentes con respecto a la(s) misma(s) característica(s). En la sección 2 del presente trabajo se analizarán las técnicas y métodos necesarios para llevar a cabo el desarrollo del algoritmo de exploración y clasificación. En la sección 3 se describirá detalladamente el funcionamiento del código Matlab realizado y en la sección 4 se presentarán los resultados de las pruebas. Por último, en la sección 5 se detallarán las conclusiones. 2. DESARROLLO TEÓRICO A continuación, se describirán las técnicas usadas para el desarrollo del algoritmo de exploración. 2.1 Descriptores de imágenes Un descriptor de una imagen es una forma de representar a una imagen por sus características, con fines de almacenamiento y recuperación, en donde el descriptor es una formulación matemática. La formulación del descriptor se realiza tanto para características locales como globales. Existen tres grandes grupos de descriptores: de frontera, de región y relacionales. 1) Descriptores de frontera: extraen información de la forma del contorno de los objetos. 2) Descriptores de región: caracterizan no al contorno de la forma, sino al interior de la misma. 3) Descriptores relacionales: describen la estructura de los objetos y las relaciones (cercanía, inclusión…) entre sus componentes. Debida a la naturaleza de las imágenes de la base de datos proporcionada y para cumplir los requisitos de independencia de rotación, posición y escalado, se va a trabajar con los de frontera y en concreto con los descriptores de Fourier [3].

Transcript of Técnicas para exploración de bases de datos · está formada por siluetas de animales marinos. El...

Page 1: Técnicas para exploración de bases de datos · está formada por siluetas de animales marinos. El código Matlab desarrollado debe ser capaz de encontrar los contornos más parecidos

Técnicas para exploración de bases de datos

Daniel Aceituno Gómez Estudiante Ing. Telecomunicación Universidad Carlos III de Madrid Avenida de la Universidad, 30

28911, Leganés (Madrid-España) [email protected]

Miguel Alcolea Sánchez Estudiante Ing. Telecomunicación Universidad Carlos III de Madrid Avenida de la Universidad, 30

28911, Leganés (Madrid-España) [email protected]

RESUMEN El objetivo del trabajo es conseguir las imágenes más parecidas a una dada dentro de una base de datos de 6600. Para ello se utilizarán dos técnicas de búsqueda, una de ellas basada en agrupamiento (k-medias) y otra según el criterio de mínima distancia (distancia Euclídea). La base de datos proporcionada está formada por siluetas de animales marinos. El código Matlab desarrollado debe ser capaz de encontrar los contornos más parecidos al de muestra, independientemente de la rotación, posicionamiento y escalado de éste.

Categorías y Descriptores de Temas [Exploración de bases de datos]: agrupamiento, técnicas y aplicaciones de búsqueda de imágenes, visión artificial.

Términos Generales Clustering, Matlab, algoritmos de búsqueda, exploración de bases de datos.

Palabras clave K-medias, Euclídea, bases de datos.

1. INTRODUCCIÓN Uno de los principales objetivos de la visión artificial [1] es poder diferenciar los objetos presentes en una imagen (en este caso, en una imagen digital), de tal manera, que esto logre que la identificación de los mismos sea una tarea más fácil de realizar.

En el problema de diferenciar los objetos en cualquier imagen, como es hecho por los seres humanos, una importante pregunta abierta aparece: ¿Qué información es, tanto suficiente como necesaria, para poder llevar a cabo esta tarea? Es muy difícil poder expresar este conocimiento o información de una manera algorítmica.

Dentro de la visión artificial se encuentra el procesamiento de imágenes, y dentro de éste, una parte muy importante se encarga del análisis de las mismas. Esto es, dada una imagen, lo que se desea obtener es una descripción de dicha imagen. Por otra parte, la segmentación se encarga de simplificar y/o cambiar la representación de una imagen en otra más significativa y más fácil de analizar. Se usa tanto para localizar objetos como para encontrar los límites de estos dentro de una imagen. Más

precisamente, la segmentación [2] de la imagen es el proceso de asignación de una etiqueta a cada píxel de la imagen de forma que los píxeles que compartan la misma etiqueta también tendrán ciertas características visuales similares.

El resultado de la segmentación de una imagen es un conjunto de segmentos que cubren en conjunto a toda la imagen, o un conjunto de las curvas de nivel extraídas de la imagen (detección de bordes). Cada uno de los píxeles de una región son similares en alguna característica, como el color, la intensidad o la textura. Regiones adyacentes son significativamente diferentes con respecto a la(s) misma(s) característica(s).

En la sección 2 del presente trabajo se analizarán las técnicas y métodos necesarios para llevar a cabo el desarrollo del algoritmo de exploración y clasificación. En la sección 3 se describirá detalladamente el funcionamiento del código Matlab realizado y en la sección 4 se presentarán los resultados de las pruebas. Por último, en la sección 5 se detallarán las conclusiones.

2. DESARROLLO TEÓRICO A continuación, se describirán las técnicas usadas para el desarrollo del algoritmo de exploración.

2.1 Descriptores de imágenes

Un descriptor de una imagen es una forma de representar a una imagen por sus características, con fines de almacenamiento y recuperación, en donde el descriptor es una formulación matemática. La formulación del descriptor se realiza tanto para características locales como globales. Existen tres grandes grupos de descriptores: de frontera, de región y relacionales.

1) Descriptores de frontera: extraen información de la forma del contorno de los objetos.

2) Descriptores de región: caracterizan no al contorno de la forma, sino al interior de la misma.

3) Descriptores relacionales: describen la estructura de los objetos y las relaciones (cercanía, inclusión…) entre sus componentes.

Debida a la naturaleza de las imágenes de la base de datos proporcionada y para cumplir los requisitos de independencia de rotación, posición y escalado, se va a trabajar con los de frontera y en concreto con los descriptores de Fourier [3].

Page 2: Técnicas para exploración de bases de datos · está formada por siluetas de animales marinos. El código Matlab desarrollado debe ser capaz de encontrar los contornos más parecidos

2.1.1 Descriptores de Fourier Representan la forma del objeto destacando que, los primeros descriptores indican la forma general del objeto y los últimos los más pequeños detalles. Para una clasificación correcta, un pequeño conjunto de descriptores puede ser suficiente. La gran ventaja de los descriptores de Fourier es que son invariantes frente a la traslación, la rotación, la escalabilidad y son tolerantes al ruido. Un requisito indispensable para aplicar estos descriptores es que los objetos o contornos deben ser cerrados.

Una curva cerrada puede ser representada mediante series de Fourier con una parametrización adecuada. Si se considera un contorno x(n) constituido por N puntos en el plano XY [4]:

x n( ) = xn,yn[ ],n =1...N (1)

donde cada punto se puede considerar como un número complejo:

x n( ) = xn + jyn (2)

Empezando en un punto arbitrario del contorno y siguiendo alguna dirección de avance (por ejemplo, a favor de las agujas del reloj), se tiene una secuencia de números complejos. La transformada discreta de Fourier X = F(x) de la secuencia se obtiene mediante la siguiente ecuación:

X k( ) = x n( )exp − j2πkn /N( ) 0 ≤ k ≤ N −1n= 0

N−1

∑ (3)

De esta forma, los descriptores de Fourier pueden representar un contorno cerrado arbitrario. Esta representación tiene la ventaja de que, generalmente, se logra una buena descripción en base a pocos términos. Sea la base de datos de nbase siluetas:

SR i( ),1≤ i ≤ nr con 1≤ R ≤ nbase

Cada silueta se regulariza a N puntos (N es potencia de 2):

SR i( )→ ZR n( ) 1≤ n ≤ N

Supóngase que se tiene una silueta escena

S__

obtenida de una imagen y regularizada a N puntos:

S__→ Z

__n( ) 1≤ n ≤ N

El problema consiste en identificar

Z__

con alguna silueta

Z__

R bajo la hipótesis de que puede haber sufrido:

1) Desplazamiento en el origen de referencia del vector de la silueta: δ

2) Rotación respecto al centro de masas del objeto: θ

3) Escalado de la imagen: λ

4) Desplazamiento del centro de masas del objeto Cx , Cy en la coordenada x-y respectivamente.

A continuación, se analiza cuál es la transformación en la transformada de Fourier de una silueta bajo cada una de estas operaciones:

1) Desplazamiento δ

Sea la secuencia:

x n( )→ X k( ) = x n( )exp − j2πkn /N( ) 0 ≤ k ≤ N −1 (4)n= 0

N−1

∑Se define la nueva secuencia:

x__n( ) =

x__n( ) = x n + δ( ) , 0 ≤ n ≤ N −1−δ

x__n( ) = x n − N + δ( ) , N -δ ≤ n ≤ N −1

(5)

Sustituyendo en (4) se tiene:

X__k( ) = x

__n( )exp − j2πkn /N( ) =

n= 0

N−1

= x n + δ( )exp − j2πkn /N( ) + x n − N + δ( )exp − j2πkn /N( )n=N−δ

N−1

∑n= 0

N−1−δ

∑ (6)

Intercambiando coeficientes y reagrupando se obtiene que:

X__k( ) = X k( )exp j2πkn /N( ) (7)

2) Rotación θ

Sea la secuencia x(n), la nueva secuencia es:

x__n( ) = exp jθ( )x n( ) (8)

La relación entre transformadas de Fourier es:

X__k( ) = exp jθ( )X k( ) (9)

3) Escalado λ

Sea la secuencia x(n), la nueva secuencia es:

x__n( ) = λx n( ) (10)

La relación entre transformadas es:

X__k( ) = λX k( ) (11)

4) Desplazamiento c=cx+jcy Sea la secuencia x(n), la nueva secuencia es:

x__n( ) = x n( ) + c (12)

La relación entre transformadas es:

X__k( ) = X k( ) + cN (13)

Page 3: Técnicas para exploración de bases de datos · está formada por siluetas de animales marinos. El código Matlab desarrollado debe ser capaz de encontrar los contornos más parecidos

2.2 Método de agrupamiento

El objetivo del análisis de agrupamiento [5], visto como procedimiento de clasificación, es determinar grupos dentro de una muestra multivariada que tengan algún grado de asociación o similitud entre los miembros de cada grupo y, simultáneamente, los miembros de distintos grupos presenten bajo grado de asociatividad o similaridad. El resultado del análisis de agrupamiento es poner de relieve las similitudes entre los datos. El problema del Agrupamiento: Dado un conjunto S de n puntos en un espacio Euclídeo de dimensión Rm, el problema es como particionar S en k grupos, clases o nidos. Si llamamos Pk a todas las particiones de S en k nidos, y definimos un criterio de agrupamiento W(Pk) donde cada P es una medida de la confiabilidad de la partición en k nidos. El problema es, entonces, encontrar la partición P' que maximiza (o minimiza) el criterio sobre todas las particiones en k nidos. Existen muchos algoritmos para resolver este problema. Se puede hacer una clasificación primaria en: métodos jerárquicos y no jerárquicos. 1) Métodos jerárquicos: En estos métodos, los individuos no se particionan en clusters de una sola vez, sino que se van haciendo particiones sucesivas a distintos niveles de agregación o agrupamiento.

Fundamentalmente, los métodos jerárquicos suelen subdividirse en métodos aglomerativos (ascendentes), que van sucesivamente fusionando grupos en cada paso; y métodos divisivos (descendentes), que van desglosando en grupos cada vez más pequeños el conjunto total de datos.

Dentro de este grupo se encuentran los algoritmos de los “vecinos más cercanos” y “vecinos lejanos”. 1.1) Vecinos más cercanos:

El criterio de agrupamiento que se utiliza es:

dmin Di,Dj( ) =min x −x ′

donde x pertenece a Di y x´ a Dj. Cuando el algoritmo se termina con la verificación de un umbral sobre la función de criterio de agrupamiento, se conoce como “algoritmo de encadenamiento simple”. Este algoritmo siempre genera un árbol (los bordes entre clases siempre evolucionan a distintas clases) es decir que no se generan ciclos.

1.2) Vecinos lejanos:

El algoritmo es igual al anterior pero la función de criterio de agrupamiento es:

dmax Di,Dj( ) =max x −x ′

Además si se agrega un criterio de terminación sobre esta función, se conoce como “algoritmo de encadenamiento completo”.

Con el algoritmo de vecinos cercanos la distancia entre clases es la distancia entre las muestras más cercanas. En el de vecinos lejanos la distancia entre clases es la de muestras más lejanas.

2) Métodos no jerárquicos: Estos métodos generan grupos disjuntos, es decir, que la intersección de a pares es vacío. Son muy útiles cuando el conjunto de datos es plano. Hay tres ejemplos claros de este tipo de método: algoritmo k-medias, k-medias secuencial y Fuzzy k-medias. Éste último se basa en el concepto de lógica difusa que toma lo relativo de lo observado como posición diferencial. Las fronteras entre los conjuntos son difusas, es decir, los elementos presentan un “grado de pertenencia” a un conjunto en vez de formar parte de uno exclusivamente.

El candidato elegido para el trabajo ha sido el k-medias.

2.2.1 El algoritmo k-medias

El algoritmo K-medias [6] es una técnica iterativa que se utiliza para dividir una imagen en K clusters. Una primera aproximación a su funcionamiento es la siguiente:

1) Se escogen K centros de clusters, ya sea de forma aleatoria o basándose en alguno método heurístico.

2) Se asigna a cada píxel de la imagen el clúster que minimiza la varianza entre el píxel y el centro del clúster.

3) Se recalculan los centros de los clusters haciendo la media de todos los píxeles del clúster.

4) Se repiten los pasos 2 y 3 hasta que se consigue la convergencia (por ejemplo, los píxeles no cambian de clusters).

En este caso, la varianza es la diferencia absoluta entre un píxel y el centro del clúster. En general, la diferencia se basa típicamente en el color, la intensidad, la textura, y la localización del píxel, o una combinación ponderada de estos factores. El número K se puede seleccionar manualmente, aleatoriamente, o por una heurística. Este algoritmo garantiza la convergencia, pero puede devolver una solución que no sea óptima. La calidad de la solución depende de la serie inicial de clusters y del valor de K. En estadística y aprendizaje automático, el algoritmo de las k-medias es un algoritmo de agrupamiento para dividir objetos (N) en K grupos, donde K < N. Es similar al algoritmo de maximización de expectativas para las mezclas de gaussianas ya que ambos pretenden encontrar los centros de agrupaciones naturales de los datos. El modelo requiere que los atributos del objeto correspondan a los elementos de un espacio vectorial. El objetivo es intentar alcanzar al mínima varianza total entre clusters, o, la función de error al cuadrado.

El algoritmo de las k-medias usa una heurística de refinamiento conocida como el algoritmo de Lloyd [7]. Funciona de la siguiente manera:

1) Comienza dividiendo los puntos de entrada en K conjuntos iniciales, ya sea al azar o usando algunos datos heurísticos y a continuación, calcula el punto medio o centro de gravedad de cada conjunto.

2) Se construye una nueva partición, asociando cada punto con el centro de gravedad más cercano.

3) Se recalculan los baricentros para los nuevos clusters,

4) El algoritmo se repite alternando la aplicación de estos dos pasos (2 y 3) hasta que converja. Dicha convergencia se obtiene cuando los puntos ya no

Page 4: Técnicas para exploración de bases de datos · está formada por siluetas de animales marinos. El código Matlab desarrollado debe ser capaz de encontrar los contornos más parecidos

cambian de clúster (o los centros de gravedad ya no se modifican).

Los algoritmos de Lloyd y de las K-medias a menudo se utilizan como sinónimos, pero en realidad el algoritmo de Lloyd es una heurística para resolver el problema de las K-medias, como ocurre con ciertas combinaciones de puntos de partida y baricentros. El algoritmo de Lloyd puede converger a una solución incorrecta. Existen otras variantes, pero el algoritmo de Lloyd es el más popular, porque converge muy rápidamente. En cuanto al rendimiento, el algoritmo no garantiza que se devuelva un óptimo global.

La calidad de la solución final depende en gran medida del conjunto inicial de clusters, y puede, en la práctica, ser mucho más pobre que el óptimo global. Dado que el algoritmo es extremadamente rápido, es un método común ejecutar el algoritmo varias veces y devolver las mejores agrupaciones obtenidas. Un inconveniente del algoritmo de las k-medias es que el número de clusters K es un parámetro de entrada. Una elección inadecuada de K puede dar malos resultados. El algoritmo también asume que la varianza es una medida adecuada de la dispersión del cluster.

A continuación, se presenta una explicación matemática del algoritmo: Suponga que se tienen n características en vectores x1, x2, ..., xn, donde cada x, está representado en un espacio m dimensional y se sabe que están agrupados en k cúmulos (k < n).

Se define mj como la media del j-ésimo cúmulo. Si los cúmulos están bien separados, se puede usar una mínima distancia de clasificación para separarlos. Se puede decir que xi está en el j-ésimo cúmulo si || xi – mj || es el mínimo con respecto a los k cúmulos.

Ésto sugiere el siguiente algoritmo para encontrar la k medias:

1) Se hace una estimación inicial para la k medias m1, m2, ..., mk. Mientras no cambie alguna media:

Se usa la media estimada para clasificar los datos en cúmulos. b(i,j) = 1 si el i-ésimo dato, es el más cercano a la j-ésima media.

2) Para cada uno de los cúmulos, se calcula la nueva media mj, utilizando la nueva clasificación.

En la siguiente imagen hay un ejemplo que muestra la ejecución del algoritmo k-medias.

Éste puede ser visto como un algoritmo voraz para particionar en k cúmulos. Pero este algoritmo tiene algunas debilidades:

1) La manera de inicializar no se especifica.

2) Los resultados dependerán del valor inicial de las medias y frecuentemente ocurre que particiones subóptimas son encontradas. La solución estándar es calculada utilizando diferentes puntos de arranque.

3) Puede pasar que un conjunto de ejemplos cercano a una media esté vacío, por lo que no puede ser modificada. Esto es un inconveniente del método y debe ser manejado en la implementación, pero puede ser ignorado.

4) Los resultados dependen de la métrica utilizada para medir || x - mj ||. Una solución popular es normalizar cada variable por la desviación estándar, aunque no siempre es deseable.

5) La solución depende del número de cúmulos seleccionado.

2.3 Distancia Euclídea La distancia Euclídea [8] es la disimilaridad más conocida y más sencilla de comprender, pues su definición coincide con el concepto más común de distancia. En un espacio bidimensional, la distancia euclidiana entre dos puntos P1 y P2 de coordenadas (x1, y1) y (x2, y2) respectivamente, es:

dE P1,P2( ) = x2 − x1( )2 + y2 − y1( )2

A continuación, se ilustra la formulación matemática:

Page 5: Técnicas para exploración de bases de datos · está formada por siluetas de animales marinos. El código Matlab desarrollado debe ser capaz de encontrar los contornos más parecidos

La distancia Euclídea, a pesar de su sencillez de cálculo y de que verifica algunas propiedades interesantes tiene dos graves inconvenientes:

1) El primero de ellos es que es una distancia sensible a las unidades de medida de las variables. Las diferencias entre los valores de variables medidas con valores altos contribuirán en mucha mayor medida que las diferencias entre los valores de las variables con valores bajos. Como consecuencia de ello, los cambios de escala determinarán, también, cambios en la distancia entre los individuos.

Una posible vía de solución de este problema es la tipificación previa de las variables, o la utilización de la distancia Euclídea normalizada.

2) El segundo inconveniente no se deriva directamente de la utilización de este tipo de distancia, sino de la naturaleza de las variables. Si las variables utilizadas están correlacionadas, estas variables darán una información, en gran medida redundante. Parte de las diferencias entre los valores individuales de algunas variables podrían explicarse por las diferencias en otras variables. Como consecuencia de ello la distancia euclídea inflará la disimilaridad o divergencia entre los individuos.

La solución a este problema pasa por analizar las componentes principales (que están incorrelacionadas) en vez de las variables originales. Otra posible solución es ponderar la contribución de cada par de variables con pesos inversamente proporcionales a las correlaciones, lo que conduce a la utilización de la distancia de Mahalanobis.

La distancia Euclídea será, en consecuencia, recomendable cuando las variables sean homogéneas y estén medidas en unidades similares y/o cuando se desconozca la matriz de varianzas.

3. FUNCIONAMIENTO DEL ALGORITMO

En esta sección se detallará minuciosamente el proceso que se sigue en el procesado de las imágenes, el cálculo de los descriptores, las dos técnicas empleadas para la exploración de la base de datos y la obtención de los resultados. El esquema básico es el siguiente:

Este esquema se ha plasmado en un programa creado en Matlab que se llama agrupamiento.

function []=agrupamiento(numeroImagen,tipoClasificador)

Dicha función recibe como parámetros de entrada el índice de la imagen de muestra de la que se quieren obtener imágenes similares de la base de datos y el tipo de clasificador a utilizar (k-medias o distancia mínima). El resultado de la ejecución es un conjunto de imágenes similares a la de entrada. El tamaño de dicho conjunto es de 20 imágenes como máximo. Es el criterio de parada que se ha utlizado para la subdivision en el algoritmo de k-medias.

3.1 Carga de imágenes

En primer lugar, hay que cargar en Matlab las imágenes contenidas en la base de datos. Éstas están almacenadas en archivos con extensión .con y suman un total de 6600. Tras leer y almacenar dichos ficheros, se obtienen los pares de puntos correspondientes a cada silueta o contorno. Posteriormente se realiza una conversion de las coordenadas al dominio complejo para calcular los descriptores de Fourier. Debido a que las imágenes son muy diversas, hay que encontrar una manera de normalizar los contornos. De esta manera, todos tendrán el mismo número de coeficientes. Se ha fijado este valor en 700 ya que es, aproximadamente, el valor medio del número de puntos que hay en cada imagen.

Carga de imágenes y conversión a complejo

Cálculo de los descriptores de Fourier

Procesado invarianza de escalado y rotación

K-medias Distancia Euclídea

BBDD: siluetas animales marinoos

Nº Imagen

1 2

Imágenes similares Imágenes similares

Algoritmo?

Page 6: Técnicas para exploración de bases de datos · está formada por siluetas de animales marinos. El código Matlab desarrollado debe ser capaz de encontrar los contornos más parecidos

Imagen 1 Imagen 2 Imagen 3 - Imagen

6600

Coef 1

Coef 2

Coef 3

-

Coef 700

Esta tarea es muy costosa computacionalmente. Por lo tanto, solo se realizará una vez y el resultado se almacena en el archivo basededatos.mat que contiene las imágenes perfectamente normalizadas y listas para su uso en la aplicación.

3.2 Cálculo y procesado de los descriptores de Fourier

Para obtener los descriptores, se calcula la transformada de Fourier para cada imagen. En Matlab se utiliza la función fft que proporciona los coeficientes ak.

A partir de ellos se obtienen los descriptores. Para que sean invariantes frente a rotación, hay que eliminar la información de fase. Por ello se obtiene el módulo de cada coeficiente complejo.

Respecto al posicionamiento, no es necesario realizar ninguna operación ya que se ha de tener en cuenta que la transformada de Fourier para imagen tiene la propiedad de “desplazamiento circular”. Esto es, el módulo (que es lo que usa) para cada una de las siguientes imágenes es igual:

En cuanto al escalado, cada imagen se normaliza respecto al valor máximo de módulo. Para ello se divide cada coeficiente entre el máximo. De esta forma se asegura que el valor de los coeficientes de las imágenes son comparables entre sí independientemente del tamaño del contorno de cada una de ellas.

3.3 Agrupamiento por K-medias

Una vez que la base de datos está normalizada, se procede a seleccionar aquellas imágenes más parecidas a la de muestra. En caso de que el tipo de clasificador seleccionado sea el número 1, se ejecutará el algoritmo de k-medias.

El algoritmo se ejecuta como sigue:

1) Se ha diseñado el algoritmo para generar dos centroides. Se calcula la distancia de cada imagen a ellos. Cada uno estará asociado a las imágenes más cercanas, de esta forma se obtienen dos grupos. De esos dos grupos, se selecciona aquel en el que se encuentre la imagen de muestra para continuar con la búsqueda de las imágenes más parecidas a la elegida.

2) En el nuevo grupo formado, se vuelven a calcular dos centroides y las distancias de las imágenes a ellos por lo que se crean dos nuevos grupos. De nuevo, el grupo elegido para hacer otra subdivisión es aquel donde se encuentra la imagen de muestra.

3) Se repite el proceso hasta que quede un grupo formado por la muestra y un máximo de diecinueve imágenes.

Hay que tener en cuenta que este algoritmo se inicializa de forma aleatoria y posteriormente ajusta los centroides en función de las muestras. Debido a esa inicialización aleatoria, el resultado puede variar de una a otra ejecución.

Durante el proceso de subdivisión en dos grupos, se muestra por pantalla el número de imágenes que contiene el grupo seleccionado. De esta forma se puede ver el progreso del algoritmo.

Por último, se representa la imagen de muestra así como una figura con los mejores resultados encontrados.

3.4 Mínima distancia

Es una técnica simple que tiene bajo coste computacional y por tanto se ejecuta de una manera muy rápida. Como se comprobará en la posterior evaluación, de una forma más simple, se consiguen unos resultados muy buenos.

El funcionamiento es el siguiente:

1) Se calcula la distancia Euclídea entre el vector de descriptores de la imagen de referencia y el resto de imágenes. Cada uno de estos vectores tendrá dimensión 700.

2) Tras el cálculo, se eligen los veinte contornos que proporcionen menor distancia Euclídea. Hay que tener en cuenta que como primer resultado, el sistema obtendrá la imagen original que es la que tiene distancia cero.

La formulación matemática es la que sigue:

Cij: coeficiente i de la imagen j

Cir: coeficiente i de la imagen de referencia

Del vector distEucl_imgn_j, se obtienen las distancias mínimas y se mapea la distancia minima con la imagen de la base de datos que la produce.

Page 7: Técnicas para exploración de bases de datos · está formada por siluetas de animales marinos. El código Matlab desarrollado debe ser capaz de encontrar los contornos más parecidos

4. EVALUACIÓN

En esta sección se va a evaluar el programa desarrollado utilizando tres imágenes muy distintas.

El primer contorno (imagen de la izquierda) se puede corresponder con un tiburón, el segundo (centro) con una raya y el tercero con un animal marino prehistórico (derecha).

4.1 Imagen 739 4.1.1 Resultados por k-medias

Tras la ejecución, se han obtenido 17 contornos muy similares al de muestra. Además, se puede comprobar que la invarianza a rotación y escalado funciona perfectamente.

4.1.2 Resultados por distancia Euclídea

En este caso, mediante la distancia Euclídea se ha obtenido dos contornos más (19) que con el algoritmo k-medias.

4.2 Imagen 4482 4.2.1 Resultados por k-medias

De nuevo, para la raya se han conseguido devolver 17 contornos muy parecidos a ésta. Se observa que hay animales con la cabeza más redonda, otros la tienen más triangular, pero en general todos son similares.

4.2.2 Resultados por distancia Euclídea

Por el criterio de mínima distancia se devuelven 19 contornos pero se detectan errores. Ha clasificado 6 siluetas como rayas cuando realmente no lo son. Por lo tanto, en este caso los resultados por este segundo método, menos costoso computacionalmente, no son tan buenos como los que arroja el algoritmo k-medias.

Page 8: Técnicas para exploración de bases de datos · está formada por siluetas de animales marinos. El código Matlab desarrollado debe ser capaz de encontrar los contornos más parecidos

4.3 Imagen 4405 4.3.1 Resultados por k-medias

La clasificación para este tipo de animal es algo más difusa que en los casos anteriores. Se devuelven 17 contornos y todos ellos tienen relación con la imagen de muestra aunque hay algunos con menos similitud que otros.

4.3.2 Resultados por distancia Euclídea

En este ejemplo, se observa que la recuperación de imágenes es ligeramente mejor que con k-medias. La mayoría de contornos guardan una estrecha relación con la imagen de muestra. El criterio de mínima distancia es capaz de detectar los bordes puntiagudos del animal. Para este tipo de contorno, el k-medias recupera resultados con los bordes redondeados y suavizados alejándose un poco de la figura original. Da la sensación de que la mínima distancia tiene mayor poder expresivo.

5. CONCLUSIONES

Para determinar que técnica ofrece mejores resultados y cuál de ellas sería la óptima para ser incorporada en un sistema real, hay que tener en cuenta varios factores.

En primer lugar, es muy importante prestar atención a la naturaleza de las imágenes con las que se va a trabajar. El algoritmo de k-medias funciona bastante bien si los contornos o siluetas tienen bordes suavizados y redondeados. Por el contrario, si éstos tienen aristas más pronunciadas, hay que recurrir al poder expresivo de la mínima distancia. También hay que tener en cuenta el tiempo de ejecución de cada método. Se ha comprobado que el k-medias es mucho más pesado y más lento que la mínima distancia. Por otra parte, la formulación de ambos algoritmos dista mucho entre sí. El método que utiliza el k-medias es muy complejo comparado con la simple diferencia de descriptores que utiliza el método de mínima distancia.

Finalmente, en base a los distintos factores discutidos, no se puede concluir que uno de los métodos es bueno o malo. Se puede decir que ambos funcionan bien y hay que buscar un compromiso entre la fiabilidad de los resultados, el coste computacional y la naturaleza de las imágenes a recuperar.

6. AGRADECIMIENTOS

Queremos dar las gracias al profesor de la asignatura por darnos la oportunidad de investigar y trabajar en esta parte de la visión artificial.

7. REFERENCIAS

[1] Richard Szeliski. Computer Vision: Algorithm & Applications. 30 de Marzo 2008

[2] Segmentación http://dsp1.materia.unsl.edu.ar/Segmentacion.pdf

[3] Dengsheng Zhang and Guojun Lu. Gippsland School of Computing and Info Tech Monash University Churchill, Victoria 3842. Generic Fourier Descriptor for Shape-based Image Retrieval

[4] Elizabeth González García. Universidad de Matanzas, Cuba. Descriptores de Fourier para identificación y posicionamiento de objetos en entornor 2D. Septiembre 2004.

[5] Métodos de agrupamiento

http://davidcuria.blogspot.com.es/2009/07/analisis-de-atributos-metodos-de.html

[6] Wikipedia – K-means clustering http://en.wikipedia.org/wiki/K-means_clustering

[7] Prof. Leonard Schulman, Department of Computer Science, California Institute of Technology. A theoretical analysis of Lloyd’s algorithm for k-means clustering. 13 Noviembre 2009.

[8] Wikipedia – Distancia Euclídea http://en.wikipedia.org/wiki/Euclidean_distance