You are on page 1of 105

UNIVERSIDAD DE CASTILLA-LA MANCHA

ESCUELA POLITCNICA SUPERIOR

INGENIERA
EN INFORMTICA

PROYECTO FIN DE CARRERA


Algoritmo GRASP para registrado y fusin de imgenes digitales

Rafael Mrquez Caballero

Julio, 2012

UNIVERSIDAD DE CASTILLA-LA MANCHA


ESCUELA POLITCNICA SUPERIOR
Departamento de Sistemas Informticos

PROYECTO FIN DE CARRERA


Algoritmo GRASP para registrado y fusin de imgenes digitales

Autor:

Rafael Mrquez Caballero

Directores:

Jos Miguel Puerta Callejn


Jess Martnez Gmez

Julio, 2012

Algoritmo GRASP para registrado y fusin de imgenes digitales

AGRADECIMIENTOS Y DEDICATORIAS
Quiero agradecer a mis tutores D. Jos Miguel Puerta Callejn y D. Jess Martnez
Gmez la oportunidad de trabajar con ellos, por su disponibilidad, paciencia, dedicacin y
por sus muy valiosas y adecuadas indicaciones que han sido esenciales para realizar este
proyecto.
Tambin quiero agradecer a toda mi familia y en concreto a mis padres y a mi
hermano, su continuo apoyo y nimo desde el comienzo del Proyecto y por ensearme el
valor del trabajo, la constancia y la perseverancia por encima de todo.
Finalmente, no quiero olvidarme de dar las gracias a mis amigos y compaeros con
los que he compartido tantas vivencias y que siempre me han ayudado a lo largo de la
carrera.

Ingeniera en Informtica

Algoritmo GRASP para registrado y fusin de imgenes digitales

Ingeniera en Informtica

II

Algoritmo GRASP para registrado y fusin de imgenes digitales

RESUMEN
La fusin de imgenes es una de las reas de ms desarrollo dentro de la fotografa
actual. Gracias a ella es posible crear imgenes de mayor resolucin, de alto rango
dinmico, panormicas o eliminar ruido y personas u objetos indeseados.
Este proceso se descompone en tres fases: captura, registrado y unin de las
imgenes.
La captura de imgenes, comnmente proporcionar un conjunto de instantneas en
diferentes sistemas de referencia, debido a que fueron adquiridas en distintos momentos,
puntos de vista o con diversos dispositivos.
El registrado de imgenes consistir en encontrar la transformacin ptima entre los
pares de imgenes anteriores para conseguir que sus zonas comunes (aqullas que
representan la misma informacin) se superpongan.
Como realizaremos un registrado de imgenes basado en caractersticas ser
importante que la extraccin de las mismas sea rigurosa y veraz para obtener una
transformacin precisa y que la apariencia de la composicin resulte realista.
La ltima fase es la unin de las imgenes que se encarga de eliminar las distorsiones
producidas por las etapas anteriores.
En este proyecto pretendemos resolver todas esas deficiencias de manera conjunta
encontrando la mejor zona de unin entre las imgenes para que no se produzca un
impacto visual negativo.
Este proceso es de una complejidad elevada y se debe abordar mediante tcnicas
metaheursticas. Desarrollaremos un algoritmo GRASP que encontrar una lnea recta por
donde efectuar la fusin de las imgenes, basndose en las diferencias, los puntos
caractersticos invariantes a escalado y rotacin y los contornos existentes en las regiones
de solapamiento entre las imgenes.
Finalmente se ha diseado un mtodo para elegir cul de las posibles mezclas es la
ms apropiada y se ha aplicado un filtro de suavizado para atenuar la transicin entre las
imgenes.
La implementacin de este proyecto se ha realizado en C++ sobre el entorno de
programacin VisualStudio 2010 y empleando la librera de visin por computador
OpenCV y una implementacin de SIFT en cdigo abierto.

Ingeniera en Informtica

III

Algoritmo GRASP para registrado y fusin de imgenes digitales

Ingeniera en Informtica

IV

Algoritmo GRASP para registrado y fusin de imgenes digitales

NDICE DE CONTENIDO
AGRADECIMIENTOS Y DEDICATORIAS ....................................................................I
RESUMEN ........................................................................................................................ III
NDICE DE CONTENIDO ................................................................................................ V
NDICE DE FIGURAS ................................................................................................... VII
1.

INTRODUCCIN ........................................................................................................ 1
1.1 OBJETIVOS DEL PROYECTO: ............................................................................ 2
1.2 ENFOQUE: ............................................................................................................. 3

2.

ANTECEDENTES, ESTADO DE LA CUESTIN .................................................. 7


2.1 PROCESAMIENTO ESPACIAL: .......................................................................... 7
2.1.1 Umbralizacin: ............................................................................................... 7
2.1.2 Binarizacin: .................................................................................................. 8
2.1.3 Operaciones Aritmticas: ............................................................................... 8
2.1.4 Operaciones Lgicas: ..................................................................................... 9
2.2 FILTRADO DE LA IMAGEN: ............................................................................. 10
2.2.1 Filtros espaciales de paso bajo: ................................................................... 11
2.3 REGISTRADO DE IMGENES: ......................................................................... 12
2.3.1 Componentes de un sistema de registrado de imgenes: ............................. 13
2.3.2 Pasos del registrado de imgenes: ............................................................... 14
2.3.3 Transformaciones tpicas: ............................................................................ 15
2.3.4 Clasificacin:................................................................................................ 17
2.4 EXTRACCIN DE CARACTERSTICAS:......................................................... 20
2.4.1 Scale-Invariant Feature Transform (SIFT): ................................................. 21
2.4.2 Algoritmo CANNY: ....................................................................................... 23
2.4.3 Transformada de Hough: ............................................................................. 26
2.5 HOMOGRAFA: ................................................................................................... 28
2.5.1 Algoritmos para la estimacin de la homografa:........................................ 29
2.5.2 Funciones de costo: ...................................................................................... 31
2.5.3 Estimacin robusta: ...................................................................................... 32
2.6 RANDOM SAMPLE CONSENSUS (RANSAC): ............................................... 33
2.7 COMPOSICIN DE IMGENES:....................................................................... 34
2.8 TCNICAS METAHEURSTICAS: .................................................................... 37
2.8.1 Caractersticas: ............................................................................................ 39
2.8.2 Propiedades: ................................................................................................. 39
2.8.3 Clasificacin:................................................................................................ 40
2.9 GREEDY RANDOMIZED ADAPTIVE SEARCH PROCEDURE (GRASP): ... 41

Ingeniera en Informtica

Algoritmo GRASP para registrado y fusin de imgenes digitales

2.9.1 Fase de construccin: ................................................................................... 42


2.9.2 Fase de mejora: ............................................................................................ 43
3.

OBJETIVOS DEL PROYECTO .............................................................................. 45

4.

HIPTESIS DE TRABAJO ...................................................................................... 47


4.1 ENTORNO Y LENGUAJE DE PROGRAMACIN: .......................................... 47
4.1.1 Microsoft Visual Studio: ............................................................................... 47
4.1.2 C++: ............................................................................................................. 47
4.2 LIBRERAS Y HERRAMIENTAS: ..................................................................... 48
4.2.1 Open Source Computer Vision (OpenCV): .................................................. 48
4.2.2 Implementacin de SIFT: ............................................................................. 49

5.

METODOLOGA Y RESULTADOS....................................................................... 53
5.1 DISEO: ............................................................................................................... 53
5.2 IMPLEMENTACIN: .......................................................................................... 54
5.3 MATCHING Y CLCULO DE LA HOMOGRAFA: ........................................ 55
5.4 ALGORITMO GRASP: ........................................................................................ 58
5.4.1 Funcin de evaluacin: ................................................................................ 60
5.4.2 Fase de construccin: ................................................................................... 63
5.4.3 Fase de mejora: ............................................................................................ 64
5.4.4 Clculo de la complejidad del algoritmo GRASP: ....................................... 64
5.5 MTODO DE ELECCIN DE IMAGEN EN CADA ZONA DEL CORTE: ..... 65
5.6 FILTRO DE SUAVIZADO: ................................................................................. 66
5.7 RESULTADOS: .................................................................................................... 67

6.

CONCLUSIONES Y PROPUESTAS ....................................................................... 77


6.1 POSIBLES MEJORAS Y AMPLIACIONES: ...................................................... 78

7.

BIBLIOGRAFA ........................................................................................................ 83

ANEXO ............................................................................................................................... 87

Ingeniera en Informtica

VI

Algoritmo GRASP para registrado y fusin de imgenes digitales

NDICE DE FIGURAS
Figura 1.1: Tipos de ruido que se pueden producir en una imagen. .................................... 4
Figura 2.1: Representacin matricial de una imagen digital de MxN pxeles. .................... 7
Figura 2.2: Resultado de umbralizacin de una imagen. ..................................................... 8
Figura 2.3: Resta de dos imgenes. ...................................................................................... 9
Figura 2.4: Operaciones lgicas......................................................................................... 10
Figura 2.5: Esquema de funcionamiento de un filtro. ........................................................ 10
Figura 2.6: Aplicacin de un filtro de suavizado lineal...................................................... 12
Figura 2.7: Esquema general de un sistema de RI. ............................................................ 14
Figura 2.8: Pasos del registrado de imgenes.................................................................... 15
Figura 2.9: Ejemplos de traslacin, rotacin, escalado y cizalla. ..................................... 16
Figura 2.10: Ejemplo de transformacin de perspectiva.................................................... 17
Figura 2.11: Ejemplo de transformacin proyectiva. ......................................................... 17
Figura 2.12: Registrado de imgenes desde el enfoque de la bsqueda de
correspondencias. ........................................................................................ 19
Figura 2.13: Registrado de imgenes desde el enfoque de bsqueda de parmetros. ....... 20
Figura 2.14: Ejemplo de puntos clave obtenidos por SIFT. ............................................... 22
Figura 2.15: Diferencia entre aplicar 1 o 2 derivada Gaussiana. ................................... 23
Figura 2.16: Detector de bordes de Canny. ........................................................................ 24
Figura 2.17: Modelos de los distintos tipos de bordes que pueden aparecer en las
imgenes: ..................................................................................................... 24
Figura 2.18: Resultado de la deteccin de bordes mediante el algoritmo de Canny. ........ 25
Figura 2.19: Representacin de la recta en el: (a) Plano xy. (b) Espacio parmetro. ...... 26
Figura 2.20: Clulas acumulador en el espacio parmetro. .............................................. 27
Figura 2.21: Representacin polar de la recta. .................................................................. 28
Figura 2.22: Lneas obtenidas al aplicar la transformada de Hough. ............................... 28
Figura 2.23: Homografa entre dos puntos......................................................................... 28
Figura 2.24: Pseudocdigo para calcular N iterativamente. ............................................. 34
Figura 2.25: Composicin final obtenida al aplicar: (a) media (b) mediana (c) media
ponderada (d) Vornoi. .................................................................................. 36
Figura 2.26: Sistema creado por Uyttendaele: (a) imgenes superpuestas (b) Regiones
de diferencia (c) Grfico de coincidencias de RODs................................... 36
Figura 2.27: Composicin final a partir de un conjunto de 4 imgenes (Agarwala,
2004). ........................................................................................................... 37
Figura 2.28: Pseudocdigo del algoritmo GRASP. ............................................................ 41
Figura 2.29: Pseudocdigo de la fase de construccin de GRASP .................................... 43
Figura 2.30: Pseudocdigo de la fase de mejora de GRASP. ............................................ 44
Figura 4.1: Estructura bsica de OpenCV. ........................................................................ 49
Figura 4.2: Deteccin de puntos clave SIFT. ..................................................................... 50
Figura 4.3: RANSAC para calcular la transformacin. ..................................................... 50
Figura 5.1: Diagrama de clases.......................................................................................... 54
Figura 5.2: Modelo de rectas paralelas para seleccionar emparejamientos. .................... 56
Figura 5.3: Modelo de cruce de rectas en un punto para seleccionar emparejamientos. .. 56
Ingeniera en Informtica

VII

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 5.4: Ejemplo de zonas de superposicin en 2 imgenes. ........................................ 58


Figura 5.5: Imagen diferencia de las regiones de solapamiento anteriores. ..................... 59
Figura 5.6: Puntos SIFT de cada una de las regiones. ....................................................... 59
Figura 5.7: Puntos de contorno de cada una de las regiones. ........................................... 59
Figura 5.8: Pseudocdigo de nuestro algoritmo GRASP. .................................................. 60
Figura 5.9: Distancia de un punto P a la recta r. ............................................................... 61
Figura 5.10: Pseudocdigo de la fase de construccin de nuestro GRASP. ...................... 63
Figura 5.11: Pseudocdigo de la fase de mejora de nuestro GRASP. ............................... 64
Figura 5.12: Opcin 1 de eleccin de corte. ....................................................................... 65
Figura 5.13: Opcin 2 de eleccin de corte. ....................................................................... 66
Figura 5.14: Mtodo de eleccin del corte. ........................................................................ 66
Figura 5.15: Resultado de aplicar el filtro de suavizado.................................................... 67
Figura 5.16: Captura de imgenes para la creacin de una panormica.......................... 69
Figura 5.17: Puntos SIFT de la imagen 'edificio1'. ............................................................ 70
Figura 5.18: Matching entre las imgenes 'edificio1' y 'edificio2'. .................................... 70
Figura 5.19: Ejecucin de GRASP para 'edificio1' y 'edificio2'. ........................................ 71
Figura 5.20: Composicin con 2 imgenes......................................................................... 71
Figura 5.21: Ejecucin de GRASP para 'edificio3' y la composicin anterior. ................. 72
Figura 5.22: Composicin con 3 imgenes......................................................................... 72
Figura 5.23: Ejecucin de GRASP para 'edificio4' y la composicin anterior. ................. 72
Figura 5.24: Composicin con 4 imgenes......................................................................... 73
Figura 5.25: Ejecucin de GRASP para 'edificio5' y la composicin anterior. ................. 73
Figura 5.26: Composicin final. ......................................................................................... 73
Figura 5.27: Captura de imgenes para realizar la composicin. ..................................... 74
Figura 5.28: Ejecucin de GRASP para 'esii1' y 'esii2'. ..................................................... 74
Figura 5.29: Composicin con 2 imgenes......................................................................... 75
Figura 5.30: Ejecucin de GRASP para 'esii3' y la composicin anterior......................... 75
Figura 5.31: Composicin con 3 imgenes......................................................................... 75
Figura 5.32: Ejecucin de GRASP para 'esii4' y la composicin anterior......................... 76
Figura 5.33: Composicin final. ......................................................................................... 76
Figura 6.1: Comparacin de resultados obtenidos por ASIFT y SIFT. .............................. 79
Figura 0.1: Captura de imgenes del Consistorio. ............................................................. 88
Figura 0.2: Composicin final del Consistorio................................................................... 88
Figura 0.3: Captura de imgenes del CorteIngles.............................................................. 89
Figura 0.4: Composicin final del CorteIngles. ................................................................. 89
Figura 0.5: Captura de imgenes de Derecho. ................................................................... 90
Figura 0.6: Composicin final de Derecho......................................................................... 90
Figura 0.7: Captura de imgenes del Gimnasio. ................................................................ 91
Figura 0.8: Composicin final del Gimnasio...................................................................... 92
Figura 0.9: Captura de imgenes del Paraninfo. ............................................................... 92
Figura 0.10: Composicin final del Paraninfo. .................................................................. 93

Ingeniera en Informtica

VIII

Algoritmo GRASP para registrado y fusin de imgenes digitales

1.

INTRODUCCIN

Las imgenes son esenciales en nuestra sociedad. Desde que Joseph-Nicphore


Nipce tomara su primera fotografa en 1823, han tenido una enorme importancia en
campos como la publicidad, el periodismo, las artes y las ciencias. Esta importancia se ha
visto incrementada debido a la proliferacin de nuevas tecnologas y medios de captura
que han posibilitado que se haya extendido y facilitado su uso.
Hace tiempo que todas las formas de la informacin estn sufriendo un proceso de
digitalizacin y las imgenes estn incluidas en este proceso. Las imgenes digitales son
fciles de almacenar, de preservar, de reproducir, de transmitir, y posiblemente lo ms
interesante, de modificar o tratar.
El origen del tratamiento digital de imgenes se sita a mediados de la dcada de los
60, pero ha sufrido un desarrollo espectacular en los ltimos aos gracias a los avances en
el desarrollo del hardware y de los algoritmos utilizados. En la actualidad, constituye uno
de los sectores de investigacin ms activo.
El procesamiento de imgenes es la disciplina que trata la manipulacin, con la ayuda
de un computador, de las imgenes digitales para los propsitos de su correccin,
perfeccionamiento y/o extraccin de informacin. Las reas que abarca son muy extensas y
por tanto, se pueden clasificar bsicamente en cuatro grandes grupos:
1. Realce de imgenes: Pretende acentuar ciertas partes de la imagen para un
posterior anlisis. Ejemplos tpicos son el filtrado de ruido, contraste y deteccin de
bordes, etc.
2. Restauracin: El objetivo es la eliminacin o minimizacin de algn tipo de
degradacin en las imgenes. Incluye desenfoque, emborronamiento y correccin de
la distorsin geomtrica.
3. Codificacin: Representa una imagen con la menor cantidad de bits posibles,
preservando cierto nivel en la calidad de la imagen y una inteligibilidad aceptable. Se
suele utilizar para reducir el ancho de banda de un canal de comunicacin cuando se
transmite una imagen.
4. Anlisis: Realiza una descripcin simblica de la imagen. Debe ser suficiente para
la toma de decisiones por parte del robot respecto a cmo actuar en funcin del
entorno. Las aplicaciones del anlisis de imgenes, incluyen la visin por ordenador,
robtica e identificacin de objetos.
En este proyecto se abordarn aspectos concernientes al primer y cuarto grupo. Se
persigue mejorar el aspecto visual de una imagen compuesta por la fusin de varias
imgenes, como en el caso de panormicas o para solventar problemas de ruido,
aprovechando las posibilidades que ofrecen las tcnicas de realce de imgenes.

Ingeniera en Informtica

Algoritmo GRASP para registrado y fusin de imgenes digitales

Las transformaciones necesarias de las diversas imgenes digitales para que las
coincidencias sean las mximas posibles recibe el nombre de registrado de imgenes. Este
procedimiento consiste en la superposicin de stas, hacindolas corresponder por sus
partes iguales o similares. El resultado obtenido puede ser la inclusin total o parcial de
una imagen en la otra, o bien la composicin de una imagen de mayor orden a modo de
puzle. De entre las aplicaciones ms destacadas en las que el registrado interviene, se
encuentran las relacionadas con la medicina, la teledeteccin, robtica, defensa, etc.
Una vez unificadas todas las imgenes hay que seleccionar lo mejor de cada una de
ellas, intentando que la mezcla sea la mejor posible, aprovechando los aspectos
psicofsicos del sistema visual humano. Esto se conoce en ingls como Digital blending.
Por tanto, tendremos que elegir aquellas regiones de la imagen que eliminen el ruido
y produzcan menos distorsin en la imagen. La deteccin de los contornos adquiere gran
relevancia en este sentido, ya que representa un cambio de la intensidad de los niveles de
gris y delimitan los lmites de los objetos, proporcionando una buena zona de particin
donde llevar a cabo la unin de las imgenes.
Este problema es muy difcil de resolver de forma exacta en un tiempo razonable.
Debido a esta complejidad, los algoritmos de aproximacin o heursticos proponen
soluciones eficientes aproximadas. Pueden ser clasificados en dos tipos:
Constructivos: Generan soluciones empezando desde cero y aadiendo nuevos
resultados a la solucin.
Bsqueda local: Buscan soluciones de forma iterativa migrando a soluciones
vecinas, esperando que sean mejores.
Estos algoritmos tienen el inconveniente de quedar atrapados fcilmente en ptimos
locales al no poseer ningn mecanismo que les permita escapar de ellos. Para solventar
este problema, durante las dos ltimas dcadas se han introducido otro tipo de algoritmos
de bsqueda ms inteligentes, llamados metaheursticas, que mejoran la eficiencia de los
anteriores.
Las metaheursticas son procedimientos iterativos generales de alto nivel que se
encargan de guiar a los heursticos. Algunos ejemplos bien conocidos de metaheursticas
para resolver problemas de diferente dominio son: bsqueda tab, algoritmos evolutivos,
GRASP, templado simulado o la optimizacin por colonia de hormigas.

1.1 OBJETIVOS DEL PROYECTO:


El objetivo principal del proyecto consiste en desarrollar un procedimiento que
mejore la calidad, evite posibles ruidos y/o elimine personas u objetos indeseados de una
imagen digital.

Ingeniera en Informtica

Algoritmo GRASP para registrado y fusin de imgenes digitales

Se pretende que esta mejora no provenga del empleo de mtodos de mejora de la


imagen en el dominio espacial ni de la frecuencia (nicamente usaremos un filtro espacial
paso bajo o de suavizado), sino por la fusin de otras imgenes similares obtenidas bajo
diferentes condiciones (temporales, punto de vista, sensores o cualquier combinacin de
las anteriores) y la utilizacin de tcnicas relativas al realce de la imagen que ayuden a
seleccionar la unin ms adecuada para realizar la mezcla.
Adems, se pueden identificar los siguientes subobjetivos u objetivos secundarios:
Investigar sobre posibles libreras visuales que implementen funciones de
procesamiento digital de imgenes y elegir la ms conveniente.
Analizar la informacin y caractersticas que se extraen de las imgenes digitales.
Estudiar cmo se puede mejorar la seleccin de puntos invariantes comunes en dos
imgenes.
Entender los procesos y transformaciones necesarios que intervienen en el
registrado de imgenes.
Determinar el algoritmo ms apropiado de entre las posibles tcnicas
metaheursticas para llevar a cabo la unin de las imgenes.
Conocer qu tcnicas de realce de la imagen pueden servir y de qu manera, para
que la mezcla de imgenes sea la mejor posible.
Comprender las operaciones de procesamiento espacial que se pueden realizar para
fusionar imgenes digitales.
Adaptar un filtro de suavizado para aplicarlo a la zona donde se solapan las
imgenes.

1.2 ENFOQUE:
Hay veces que es imposible o muy difcil obtener una fotografa con la suficiente
calidad y nos encontramos con que las imgenes captadas presentan ciertas deficiencias. Es
frecuente que se produzcan errores de iluminacin, seales de ruido o elementos mviles.
La mayora de las imgenes tienen cierta cantidad de ruido, posiblemente debido a la
cmara o al medio de transmisin de la seal. El ruido, que podramos definir como la
informacin no deseada que contamina la imagen, se clasifica en los siguientes tipos:
1. Gaussiano: Produce pequeas variaciones en todos y cada uno de los pxeles que
componen la imagen, generalmente ocasionadas por diferentes ganancias en la
cmara, ruido en los digitalizadores o perturbaciones en la transmisin. Se considera
que el valor final del pxel sera el ideal ms una cantidad correspondiente al error, a
la denominaremos variable aleatoria gaussiana.
2. Impulsional: Tambin conocido como ruido de sal y pimienta. Causa saturacin
en un pxel sin afectar a los adyacentes. El valor que toma el pxel no tiene relacin
Ingeniera en Informtica

Algoritmo GRASP para registrado y fusin de imgenes digitales

con el valor ideal, sino con el valor del ruido que toma valores muy altos o bajos
(puntos blancos y/o negros) producidos por una saturacin del sensor o por un valor
mnimo captado, si se ha perdido la seal en ese punto.
3. Multiplicativo: La imagen obtenida es el resultado de la multiplicacin de dos
seales.
En la siguiente figura se refleja una imagen afectada por los distintos tipos de ruido:

Figura 1.1: Tipos de ruido que se pueden producir en una imagen.

El disponer de varias fotografas tomadas desde lugares similares, en diferentes


modalidades o con ms o menos luz de un mismo elemento, nos permitir disponer de un
conjunto de imgenes para fusionar, de las cules podremos elegir las caractersticas ms
adecuadas para mejorar la imagen resultante. El horquillado o bracketing es una tcnica
automtica que toma varias imgenes con un fuerte contraste de luces y sombras para
posteriormente unirlas en una sola, aumentando el rango dinmico de la imagen resultante.
En este punto es donde cobra especial relevancia los procesos involucrados en el
registrado de imgenes, como son la extraccin de caractersticas, la seleccin de puntos
invariantes coincidentes en ellas y el clculo de transformaciones para alinear las imgenes
en un mismo sistema de referencia.
Una vez unificadas las imgenes, tarea que sucede igualmente al formar las
panormicas, deberemos localizar la zona de solape entre ambas imgenes y detectar las
diferencias y los contornos que existen en cada una de ellas para posteriormente, mediante

Ingeniera en Informtica

Algoritmo GRASP para registrado y fusin de imgenes digitales

una tcnica metaheurstica, obtener una unin que permita que la transicin de una imagen
a otra sea lo ms leve posible.
La finalidad del proyecto ser la de automatizar este proceso y que no sea necesario
que uno mismo tenga que hacerlo con un editor de imgenes como puede ser Photoshop,
Illustrator o Photomatix.

Ingeniera en Informtica

Algoritmo GRASP para registrado y fusin de imgenes digitales

Ingeniera en Informtica

Algoritmo GRASP para registrado y fusin de imgenes digitales

2.

ANTECEDENTES, ESTADO DE LA CUESTIN

La visin artificial es una disciplina de la inteligencia artificial, que permite la


obtencin, procesamiento y anlisis de cualquier tipo de informacin contenida en las
imgenes digitales.
El trmino imagen se refiere a una funcin bidimensional f(x,y), que representa la
intensidad de luz, donde x e y son las coordenadas espaciales y el valor de f en cualquier
punto (x,y) es proporcional al brillo (o nivel de gris) de la imagen en ese punto.
Una imagen digital es una imagen que ha sido discretizada tanto en coordenadas
espaciales como en brillo. Se puede considerar una imagen digital como una matriz cuyos
ndices de filas y columnas identifican un punto en la imagen y el correspondiente
elemento de la matriz identifica el valor de gris en ese punto. (Figura 2.1).

Figura 2.1: Representacin matricial de una imagen digital de MxN pxeles.

2.1 PROCESAMIENTO ESPACIAL:


El procesamiento espacial est formado por aquellas tcnicas que operan
directamente sobre los valores de los pxeles de la imagen. Las transformaciones son de la
siguiente forma:
(, ) = ((, ))

(2.1)

Donde A(x,y) es la imagen original, B(x,y) la imagen resultante, y F la


transformacin.
2.1.1 Umbralizacin:
Tambin se conoce como thresholding y consiste en comparar los niveles de gris de
los pxeles de una imagen respecto a un valor predeterminado, conocido como umbral,
eliminando (poniendo a cero) los valores que sean inferiores a l. Permite eliminar las
zonas que no interesen y resaltar aquellas partes que sean de inters.
(, ) = (, ) ((, ) )

(2.2)

A continuacin mostramos un ejemplo de umbralizacin:

Ingeniera en Informtica

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 2.2: Resultado de umbralizacin de una imagen.

2.1.2 Binarizacin:
La binarizacin es una variante de la umbralizacin, consistente en dejar a cero todos
los pxeles menores de un umbral y a uno, aquellos que son iguales o mayores. La imagen
final queda constituida por un conjunto de unos y ceros, es decir, en blanco y negro.
(, ) = ((, ) )

(2.3)

2.1.3 Operaciones Aritmticas:

Las operaciones aritmticas ms usadas en el procesamiento de imgenes son la


suma, resta, multiplicacin y divisin. Para poder llevar a cabo estas operaciones, ambas
imgenes deben tener el mismo tamao.
Suma: La suma o adicin consiste en sumar los valores de los pxeles de dos
imgenes.
(, ) = (, ) + (, )

(2.4)

(, ) = (, ) (, )

(2.5)

Resta: La resta o substraccin calcula la diferencia entre los pxeles de dos


imgenes. Es muy utilizada cuando se busca el movimiento de un objeto dentro de
una escena. Se comparan dos imgenes correlativas en el tiempo mediante la
substraccin de ellas. Si algn objeto se ha movido se detecta inmediatamente porque
aparece en la imagen resultante. En caso que la escena est completamente quieta, la
imagen resultante ser cero.

En la Figura 2.3 se puede observar la utilidad de realizar la resta de dos imgenes.


Multiplicacin: Realiza la multiplicacin del valor de cada pxel de la imagen por
una constante. Aumenta la luminancia de cada pxel, consiguiendo que se incremente
el brillo de la imagen. Se utiliza para aadir textura a una imagen.
(, ) = (, )
Ingeniera en Informtica

(2.6)

Algoritmo GRASP para registrado y fusin de imgenes digitales

Divisin: Efecta la divisin del valor de cada pxel de la imagen por una constante,
disminuyendo la luminancia de cada pxel y por tanto, el brillo de la imagen. Suele
usarse para evitar la saturacin en una imagen.
(, ) = (, )/

(2.7)

Figura 2.3: Resta de dos imgenes.

2.1.4 Operaciones Lgicas:


Las principales operaciones lgicas son la conjuncin, disyuncin y negacin, y
tienen sentido cuando al menos una de las imgenes sobre las que se aplican es binaria. Se
utilizan en anlisis de imgenes y tambin para trabajar con mscaras y recortes de objetos.
El negro (0) se considera falso y el blanco (desde 1 hasta 255) se trata como
verdadero.
Conjuncin: Realiza la operacin lgica AND entre los bits de dos imgenes. Se
utiliza para borrar pxeles en una imagen.
(, ) = (, ) (, )

(2.8)

(, ) = (, ) (, )

(2.9)

(, ) = (, )

(2.10)

(, ) = 255 (, )

(2.11)

Disyuncin: Realiza la operacin lgica OR entre los bits de dos imgenes. Se usa
para aadir pxeles a una imagen.

Negacin: O complementacin, consiste en invertir el valor de los pxeles de la


imagen. Se cambia el nivel de los grises de forma que los blanco se convierten en
negro y viceversa. El efecto que se obtiene es como el negativo de una foto.

En la siguiente figura puede verse un ejemplo de estas operaciones:

Ingeniera en Informtica

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 2.4: Operaciones lgicas.

2.2 FILTRADO DE LA IMAGEN:


El filtrado de la imagen es el conjunto de tcnicas destinadas a obtener una imagen
ms adecuada para una aplicacin especfica.
Un filtro se puede definir como un mecanismo de cambio o transformacin de una
seal de entrada E a la que se le aplica una funcin H, conocida como funcin de
transferencia, para obtener una seal de salida S. (Vlez Serrano, J. F., Moreno Daz, A. B.,
Snchez Calle, A., Esteban Snchez-Marn, J. L.).

Figura 2.5: Esquema de funcionamiento de un filtro.

Por tanto, los filtros son operaciones que se aplican sobre los pxeles de una imagen
digital para optimizarla, resaltar cierta informacin o conseguir un efecto especial en ella.
Las implementaciones de filtros se realizan sobre dos dominios: el espacial y el
frecuencial.
Los filtros espaciales operan directamente con los valores de los pxeles de la imagen
mientras que los basados en el dominio de la frecuencia traducen stos a un mapa de
frecuencias mediante una transformada de Fourier.
Se pueden clasificar en tres tipos:
Paso bajo: Eliminan o atenan las componentes de alta frecuencia y dejan
inalteradas las bajas. Consiguen hacer ms borrosa la imagen.
Paso alto: Al revs que los de paso bajo, eliminan o atenan las componentes de
baja frecuencia y dejan inalteradas las altas. Consiguen resaltar los bordes de la
imagen.
Ingeniera en Informtica

10

Algoritmo GRASP para registrado y fusin de imgenes digitales

Paso banda: Obtiene las regiones de frecuencias entre un valor mnimo y otro
mximo.
Las altas frecuencias de una imagen se corresponden con los bordes y las bajas con el
contraste y la intensidad media.
A continuacin nos centraremos en los filtros espaciales de paso bajo o de suavizado,
que son los nicos relevantes para lo que pretendemos realizar.
2.2.1 Filtros espaciales de paso bajo:
Los filtros espaciales de paso bajo o de suavizado reducen el ruido de alta frecuencia
en una imagen. Se pueden distinguir dos clases: lineales y no lineales.
2.2.1.1 Filtros lineales:
Estos filtros realizan un promediado de los pxeles adyacentes al que se evala. Este
entorno de vecindad respecto al pxel central se denomina ventana, mscara o matriz de
convolucin.
Las matrices de convolucin pueden ser rectangulares o circulares, aunque suelen ser
cuadradas de 3x3 de 5x5 pxeles. A cada elemento se le asigna un peso en el clculo del
nuevo valor. Estos pesos se pueden asignar por medio de una distribucin Gaussiana,
disminuyendo con la distancia respecto al pxel central. La suma de los coeficientes debe
ser 1 para evitar ganancias indeseadas.
Algunos ejemplos de las mscaras ms frecuentes son:

1 1 1 1
1 1 1
9
1 1 1
3
1 6
=
8
249
6
3

6
8
14 19
19 25
14 19
6
8

1 1
2
16
1
6
14
19
14
6

2 1
4 2
2 1

3
6
8
6
3

(2.12)

En cada pxel de la imagen se aplica el filtro, que consiste en la suma de las


multiplicaciones de cada elemento de la mscara por el correspondiente valor del pxel. La
repeticin de este proceso en todos los pxeles genera la imagen resultante.
Cuanto mayor sea el tamao de la ventana o el nmero de veces que se realice el
filtrado ms se difuminar la imagen.
En la Figura 2.6 se puede observar el efecto que produce la aplicacin de un filtro de
suavizado lineal sobre una imagen:
Ingeniera en Informtica

11

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 2.6: Aplicacin de un filtro de suavizado lineal.

El filtro de la media es un caso particular perteneciente a los filtros lineales.


2.2.1.2 Filtros no lineales:
Este tipo de filtros estn basados en una operacin no lineal con los pxeles del
entorno de vecindad. Entre ellos se encuentran los siguientes:
Filtro del bicho raro: Compara la intensidad del pxel central con la de sus vecinos.
Si la diferencia es mayor que un umbral fijado previamente, se sustituye por la media
de los pxeles vecinos. Si no, se mantiene el valor del pxel central.
Filtro de mediana: Ordena los valores de los pxeles vecinos y asigna el valor del
medio al pxel central. Produce la homogeneidad de la imagen.
Filtro de moda: Al igual que el filtro de mediana, ordena los valores de los pxeles
vecinos y en este caso, asigna el valor ms repetido al pxel central. El efecto para una
imagen dispar ser de zonas bien diferenciadas y para una imagen homognea, de
mayor homogeneidad.
Filtro de mximo: Asigna al pxel central el valor ms alto encontrado entre sus
vecinos. Aumenta las zonas claras y disminuye las oscuras.
Filtro de mnimo: Al contrario que el filtro de mnimo, asigna al pxel central el
valor ms bajo encontrado entre sus vecinos, disminuyendo las zonas claras y
aumentando las oscuras.

2.3 REGISTRADO DE IMGENES:


El registrado de imgenes (RI) tiene como misin fundamental la de superponer o
solapar imgenes obtenidas en diferentes condiciones: con diversos sensores o dispositivos
de captura, en distintos instantes de tiempo, desde diferentes puntos de vista o cualquier
combinacin de ellas. El factor relevante a tener en cuenta es que cada imagen se encuentra
en un sistema de referencia diferente y por tanto, su superposicin es el resultado de
modificar el sistema de referencia, (posicin y orientacin de las imgenes) de una de
ellas para situarla en el sistema de coordenadas de la otra. Dicho cambio de coordenadas se
conoce como transformacin de registrado.
Ingeniera en Informtica

12

Algoritmo GRASP para registrado y fusin de imgenes digitales

El registrado de imgenes (Zitov y Flusser, 2003) proporciona una mejor


interpretacin del contenido de las imgenes por lo que se suele utilizar en un gran nmero
de tareas. De acuerdo al modo de adquisicin de la imagen, se pueden dividir cuatro
grandes grupos de aplicaciones:
a) Diferentes puntos de vista (anlisis multivista): Las imgenes de la misma escena
se obtienen desde diferentes puntos de vista. El objetivo es obtener mayores vistas 2D
o una representacin 3D de la escena.
b) Diferentes instantes (anlisis multitemporal): Las imgenes se obtienen en
distintos instantes de tiempo. El objetivo es encontrar y evaluar los cambios
aparecidos en la escena.
c) Diferentes sensores (anlisis multimodal): Las imgenes se obtienen utilizando
diversos sensores. El objetivo es integrar la informacin obtenida de diferentes
fuentes para lograr una representacin de la escena ms compleja y detallada.
d) Registro de escena/modelo: Se registran las imgenes y un modelo de la escena.
El modelo puede ser una representacin informatizada de la escena. El objetivo es
localizar la imagen en la escena/modelo y compararlas.
El registrado est presente en multitud de aplicaciones de muy diversa naturaleza,
como es el caso de la teledeteccin, medicina, visin por computador o antropologa, lo
que hace imposible proporcionar un mtodo de registrado universal.
El problema de registrado de imgenes se puede abordar en primer lugar desde una
perspectiva de resolucin lineal haciendo uso de mtodos directos (sistemas de
ecuaciones), cuando se trata de transformaciones simples y una correspondencia correcta
entre imgenes o mediante mtodos iterativos de optimizacin si el problema es de
naturaleza no lineal.
Los algoritmos desarrollados para abordar este segundo tipo de problemas son los
llamados exactos y aproximados. Los primeros garantizan encontrar la solucin ptima
pero, a veces, el tiempo empleado es inadmisible y los aproximados obtienen soluciones de
calidad aceptable en un tiempo mucho ms reducido.
2.3.1 Componentes de un sistema de registrado de imgenes:
Los sistemas de registrado de imgenes estn formados por un conjunto de
componentes que realizan un proceso iterativo de optimizacin:
- Dos imgenes: Denominadas escena (o imagen mvil) y modelo (o imagen fija),
cada una en su respectivo sistema de referencia.
- Una transformacin de registrado (f) o funcin paramtrica: Relaciona las
nuevas coordenadas (coordenadas transformadas) de la imagen escena con las de la

Ingeniera en Informtica

13

Algoritmo GRASP para registrado y fusin de imgenes digitales

imagen modelo. La eleccin del tipo de transformacin depender de la naturaleza de


los objetos y de los sistemas de adquisicin empleados.
- Una mtrica de similitud (F): Mide el grado de solapamiento entre las imgenes.
- Una estrategia de bsqueda (u optimizador): Su misin es la de encontrar
aquella transformacin de registrado que optimice la mtrica de similitud.
El esquema de un sistema de registrado de imgenes es el siguiente:

Figura 2.7: Esquema general de un sistema de RI.

2.3.2 Pasos del registrado de imgenes:


La mayora de mtodos de registrado consisten en los siguientes 4 pasos:
1. Deteccin de caractersticas: Deteccin de forma automtica o manual de
caractersticas descriptivas de las imgenes, representadas por sus puntos clave.
2. Emparejamiento de caractersticas: Se establece la correspondencia entre las
caractersticas detectadas en las imgenes.
3. Estimacin del modelo de transformacin: Se estima el tipo y los parmetros de las
funciones de mapeo, que alinean ambas imgenes. Estos parmetros se calculan
considerando los emparejamientos establecidos anteriormente.
4. Transformacin y remuestreo de la imagen: La imagen se transforma mediante las
funciones de mapeo anteriores y los valores intermedios se obtienen por la tcnica de
interpolacin apropiada.
En la siguiente figura se ilustran estos 4 pasos. En la primera fila se realiza la
extraccin de caractersticas, detectando las esquinas de los objetos. En la fila intermedia,
se lleva a cabo el emparejamiento entre descriptores invariantes (los pares se indican
mediante nmeros). Y en la ltima fila, a la izquierda, se estima el modelo segn las
correspondencias y a la derecha, se aplica la transformacin y remuestreo a la imagen.
Ingeniera en Informtica

14

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 2.8: Pasos del registrado de imgenes.

2.3.3 Transformaciones tpicas:


- Traslacin: La traslacin t, tambin conocida como desplazamiento, se basa en el
cambio de posicin de un objeto de acuerdo a la frmula:
=+

(2.13)

X e Y son vectores formados por las coordenadas de las imgenes y Z es un vector


que representa el desplazamiento realizado en cada eje.
- Rotacin: Realiza un giro de la imagen. Preserva escala, ngulos y orientacin.
cos
sen

=
Ingeniera en Informtica

cos

(2.14)

15

Algoritmo GRASP para registrado y fusin de imgenes digitales

- Escalado: Permite aumentar o reducir un objeto por un determinado factor. Si el


cambio que se produce es el mismo en todas las dimensiones (s1 igual a s2), se trata
de un escalado uniforme y si es distinto, de uno no uniforme.
s1
=
0

s2

(2.15)

- Isometra: Supone una rotacin y una traslacin. Tambin se conoce como


transformacin rgida o transformacin eucldea.
cos
sen


+
cos

(2.16)

- Similitud: Es una combinacin de traslacin, rotacin y escalado. Se puede expresar


como:
=

s1 cos
sen


+
2 cos

(2.17)

- Cizalla: Tambin conocida como transformacin afn. Esta transformacin


representa una deformacin que ejerce una fuerza paralela a la base, manteniendo sta
fija. Conserva invariante el paralelismo.
1

0
1

(2.18)

A continuacin se muestran ejemplos de estas transformaciones:

Figura 2.9: Ejemplos de traslacin, rotacin, escalado y cizalla.

- Transformacin de perspectiva: Esta transformacin convierte escenas 3D en


escenas 2D. Se caracteriza por hacer que parezca ms pequeo lo ms lejano a la
cmara. (Figura 2.10).
- Transformacin proyectiva: Se conoce tambin como homografa, es una
transformacin lineal no nica de coordenadas homogneas. (Figura 2.11).

Ingeniera en Informtica

16

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 2.10: Ejemplo de transformacin de perspectiva.

Figura 2.11: Ejemplo de transformacin proyectiva.

2.3.4 Clasificacin:
Los mtodos de registrado pueden clasificarse en funcin de varios criterios
(Santamara Lpez, J.):
Grado de interaccin software-usuario (Van den Elsen): Se consideran tres tipos:
o Interactivos: El usuario trata de superponer las imgenes probando, de forma
reiterada, mltiples valores para los parmetros de la transformacin de
registrado.
o Semiautomticos: Se reduce en gran medida la intervencin del usuario
mediante una etapa de procesamiento de imgenes previa al RI.
o Automticos: El sistema es el encargado de realizar el registrado de imgenes.
Diseo de componentes (Brown y Zitov): Dependiendo del diseo particular de
los componentes que formen el sistema de RI, se establecen distintas clasificaciones.
En los siguientes sub-apartados detallaremos cada una de ellas.
2.3.4.1 Imagen:
Se clasifican conforme a:
Tipo de escena u objeto: Si las imgenes provienen de un nico objeto se
consideran intrasujeto, y si provienen de diferentes objetos aunque similares, se trata
de intersujeto.
Ingeniera en Informtica

17

Algoritmo GRASP para registrado y fusin de imgenes digitales

Dimensionalidad: Da lugar a configuraciones 2D y 3D de las imgenes.


Modo de adquisicin de las imgenes: Dependiendo de si las imgenes se han
adquirido utilizando el mismo o diferentes dispositivos, se clasifican en Monomodal o
Multimodal, respectivamente.
Naturaleza de las imgenes: Permite establecer una clasificacin en funcin del
tipo de informacin considerada:
o Mtodos extrnsecos: Introducen objetos marcadores al margen de los que
aparecen en la propia imagen para detectarlos de forma fcil y precisa. Tienen un
carcter invasivo.
o Mtodos intrnsecos: emplean exclusivamente el contenido de las imgenes. A
su vez, los mtodos de registrado intrnsecos pueden clasificarse en:
Basados en intensidades: Operan directamente con la imagen original.
Basados en caractersticas: Trabajan con un conjunto reducido de
caractersticas relevantes en las imgenes y extradas previamente al
registrado por un mtodo de procedimiento de la imagen. En este caso, el
detector de caractersticas debe ser robusto ante cambios en la geometra de
las imgenes, condiciones radiomtricas, cambios de intensidad lumnica y
ruido.
2.3.4.2 Transformacin de registrado:
Los algoritmos de registrado tambin pueden clasificarse de acuerdo al modelo de
transformacin o mapeado que utilicen. En este caso, se pueden diferenciar dos categoras:
Transformaciones rgidas. Operan de forma global sobre la imagen. Incluyen las
transformaciones lineales, que son, en la mayora de los casos, aquellas producidas
por la combinacin de una rotacin, una traslacin y un escalado. Las
transformaciones afines tambin pertenecen a esta categora.
Estas transformaciones son de la forma:
=Y+Z

(2.19)

donde X, Y y Z representan vectores n-dimensionales y es una matriz nxn.

Transformaciones no rgidas o elsticas. Son capaces de modelar deformaciones


locales, transformando nicamente regiones concretas de la imagen.
Transformacin multinivel. Consiste en realizar un registrado rgido y,
posteriormente, realizar un segundo registrado no rgido. Este tipo de tcnicas se
utiliza en aplicaciones mdicas.

Ingeniera en Informtica

18

Algoritmo GRASP para registrado y fusin de imgenes digitales

2.3.4.3 Mtrica de similitud:


Una de las componentes ms importantes de cualquier mtodo de registrado de
imgenes es la mtrica de similitud. La misin que tiene es valorar el grado de
solapamiento de las imgenes o, en otro sentido, cmo de diferentes son las imgenes
modelo y escena para cierta transformacin (Santamara Lpez, J.). En funcin del tipo de
mtrica de similitud considerada, los mtodos pueden clasificarse en:
a) Atributos de la imagen: Tratan principalmente con primitivas elementales
haciendo uso del valor de nivel de grises de la imagen.
b) Geometra de la imagen: Las coordenadas de las primitivas son la fuente
principal para evaluar la mtrica.
El coste computacional de esta mtrica puede ser elevado cuando el volumen de
informacin de las imgenes es considerable y se necesita hacer uso de estructuras de
indexacin, como son el caso de Kd-tree o mapas de distancias, con el fin de mejorar la
eficiencia.
2.3.4.4 Estrategia de bsqueda:
A su vez los mtodos de registrado de imgenes pueden clasificarse segn el espacio
de bsqueda sobre el que trabaje la estrategia de bsqueda considerada. Existen dos
enfoques principales (Santamara Lpez, J.):
Bsqueda en el espacio de correspondencias: Esta estrategia, tambin conocida
como point matching, tiene por objetivo, en primer lugar, obtener un conjunto de
correspondencias (x) entre ambas imgenes. El siguiente paso consiste en calcular la
transformacin de registrado, implcita en el conjunto de correspondencias, haciendo
uso de mtodos numricos. (Figura 2.12).

Figura 2.12: Registrado de imgenes desde el enfoque de la bsqueda de correspondencias.

El principal problema del clculo de la transformacin es la observacin de valores


errneos o ruidosos (outliers), que no aportan ningn tipo de informacin de
importancia y alteran la estimacin de f.
Por tanto, la fase de correspondencia se convierte en una etapa fundamental y tiene
gran importancia el criterio adoptado para construir los emparejamientos ya que la
transformacin se ver afectada por la calidad de las correspondencias establecidas.
Ingeniera en Informtica

19

Algoritmo GRASP para registrado y fusin de imgenes digitales

Cuanto mejor sea la correspondencia entre ambas imgenes, ms prxima ser la


estimacin al valor ptimo de f.
Bsqueda en el espacio de parmetros de la transformacin. A diferencia del
anterior, este segundo enfoque implica realizar la bsqueda directamente en el
espacio de parmetros de la transformacin de registrado. En este caso, una solucin
(x) se representa mediante un vector de parmetros con la misma dimensin que el
nmero de parmetros del modelo de transformacin considerado.
De esta forma, la estrategia de bsqueda genera directamente posibles soluciones
al problema del registrado. Adems, el proceso de bsqueda est guiado por el valor
de funcin F, siendo un procedimiento de optimizacin de parmetros centrado en la
bsqueda de los mejores valores de f que optimicen F. (Figura 2.13).

Figura 2.13: Registrado de imgenes desde el enfoque de bsqueda de parmetros.

2.4 EXTRACCIN DE CARACTERSTICAS:


La extraccin de informacin de las imgenes, en ingls Information from imagery,
constituye un inmenso campo de estudio e investigacin en diversas disciplinas y posee
gran importancia en multitud de aplicaciones.
El sistema encargado de obtener la mxima informacin posible debe cumplir las
siguientes condiciones:
Eficiencia: El coste de extraccin de caractersticas no debe ser excesivo.
Discriminante: Deber servir para distinguir objetos de clases distintas.
Precisin: El error cometido en la estimacin de caractersticas debe ser lo menor
posible.
Robustez: Los resultados debern permanecer estables ante posibles cambios en la
escena.
Existen distintas caractersticas que pueden ser extradas de las imgenes:
Regiones: Determinan zonas de la imagen. Se representan a menudo por su centro
de gravedad.
Lneas: Representan segmentos o contornos de objetos mediante pares de puntos o
puntos intermedios.

Ingeniera en Informtica

20

Algoritmo GRASP para registrado y fusin de imgenes digitales

Puntos: Utilizados en intersecciones de lneas, deteccin de esquinas o


discontinuidades locales.
En el proceso de registrado de imgenes uno de los aspectos fundamentales es la
deteccin automtica de caractersticas y puntos clave entre las imgenes.
2.4.1 Scale-Invariant Feature Transform (SIFT):
El algoritmo SIFT desarrollado en 1999 por David G. Lowe, permite obtener una
serie de caractersticas y puntos clave. Surgi de la combinacin de las tcnicas basadas en
modelos geomtricos y en apariencia, que por separado presentaban ciertas deficiencias.
Fue patentado en Estados Unidos, por la Universidad de British Columbia donde el Dr.
Lowe era investigador y profesor.
Los puntos de inters encontrados en ste mtodo se caracterizan por permanecer
invariantes al escalado y rotacin, y parcialmente invariantes ante posibles cambios
producidos en la orientacin, iluminacin o ruido de una imagen.
El objetivo principal del algoritmo SIFT es la extraccin de unas caractersticas
distintivas, que describen de forma correcta los objetos que aparecen en las distintas
imgenes que se tienen recopiladas. Estas caractersticas locales se almacenan en
descriptores, que mediante determinadas variables, como el gradiente, describen zonas
importantes de la imagen. De esta forma se podrn observar las similitudes existentes entre
las imgenes.
El coste de extraer estos puntos se puede minimizar utilizando una aproximacin de
filtros en cascada, en la que las operaciones ms costosas se aplican slo a las
localizaciones que pasan un test inicial.
El algoritmo SIFT define cuatro etapas importantes para la generacin del conjunto
de puntos invariantes:
Deteccin de extremos en escala-espacio: Es la primera de las etapas, en las que se
buscan caractersticas estables en todas las posibles escalas y localizaciones en la
imagen. Mediante la funcin de la Diferencia de Gaussianas es posible realizar esta
tarea de forma eficiente, y as identificar los potenciales puntos clave invariantes a la
escala y orientacin.
Localizacin de los puntos clave: Para cada candidato a punto de inters se
determina su localizacin, orientacin y escala mediante un modelo. Los puntos clave
se eligen en base a las medidas de estabilidad. En esta etapa eliminamos y
descartamos aquellos puntos de inters que no sean adecuados, ya sea por su bajo
contraste o su mala localizacin.
Asignacin de la orientacin: A cada punto clave se le asigna una o ms
orientaciones basndose en las direcciones de gradiente local de la imagen. Para
Ingeniera en Informtica

21

Algoritmo GRASP para registrado y fusin de imgenes digitales

determinar la orientacin del punto clave, se calcula un histograma del gradiente de la


orientacin en los puntos vecinos al punto de inters. Los datos son transformados en
relacin a la orientacin asignada, escala y localizacin, y as, proporcionar
invariancia a estas transformaciones.
Descriptor del punto clave: Se genera el descriptor para cada punto a travs de un
conjunto de histogramas de orientacin creados sobre una regin NxN en los pxeles
vecinos. A cada sub-histograma se le aplica un umbral y una normalizacin para
aumentar su robustez. Cada descriptor contendr la siguiente informacin:
a) Posicin (x,y) en la imagen.
b) Orientacin.
c) Escala.
d) Descripcin de su entorno por medio de un conjunto de gradientes.
Los descriptores creados debern ser suficientemente distintivos y permanecer
invariantes ante posibles cambios de distorsin e iluminacin.
En la Figura 2.14 se muestra los puntos clave (representados por vectores) obtenidos
al aplicar SIFT en una imagen. Estos vectores indican la localizacin, escala y orientacin
que almacenar cada descriptor.

Figura 2.14: Ejemplo de puntos clave obtenidos por SIFT.

Los descriptores de los puntos clave son altamente distintivos y por tanto, si dos
imgenes contienen descriptores muy similares probablemente estn describiendo una
misma zona y sean correspondientes. El emparejamiento entre descriptores se estimar por
su grado de similitud (vecino ms cercano), que ser aqul que minimice la distancia
eucldea entre ellos.
En definitiva, mediante el algoritmo SIFT se pueden obtener los puntos clave que
caracterizan a los objetos de una imagen cualquiera, que posteriormente podrn ser
localizados en otras escenas en las que existan rotaciones, cambios de escala e iluminacin
y oclusiones parciales. De esta forma se podr realizar una bsqueda automtica de objetos
en distintas imgenes.

Ingeniera en Informtica

22

Algoritmo GRASP para registrado y fusin de imgenes digitales

2.4.2 Algoritmo CANNY:


En el rea de procesamiento de imgenes, la deteccin automtica de bordes es una
tarea esencial en muchas aplicaciones de interpretacin de imgenes. Suele ser muy
utilizada en el reconocimiento de objetos y la segmentacin de regiones.
Un borde se puede definir como aquella regin donde aparece una fuerte variacin
del nivel de intensidad de los pxeles adyacentes. Normalmente, se producen por la
interseccin de varios objetos, con diferentes niveles de reflectancia, generando
discontinuidades de intensidad en esos pxeles. Sin embargo, estas discontinuidades
tambin pueden aparecer, de forma no deseada, por la presencia de ruido o por el efecto de
una iluminacin no uniforme o sombras sobre los objetos de la escena.
Se han desarrollado multitud de algoritmos para la deteccin de los bordes, basados
en la aplicacin del operador derivada en un entorno de vecindad. Existen dos
posibilidades (Figura 2.15): emplear la primera derivada (gradiente) o la segunda derivada
(laplaciana). En el primer caso se buscan grandes cambios de intensidad y en el segundo,
cambios de signo en la seal, de positivo a negativo y viceversa (cruces por cero).

Figura 2.15: Diferencia entre aplicar 1 o 2 derivada Gaussiana.

Algunos ejemplos de tcnicas que utilizan la primera derivada Gaussiana son


Roberts, Prewitt, Sobel o Canny, y entre los que se fundamentan en la segunda derivada, se
encuentra Marr-Hildreth.
El detector de bordes o filtro de Canny (John F. Canny, 1986) consiste en un proceso
multifase donde se aplica mscaras de convolucin y la primera derivada. La primera
derivada Gaussiana toma el valor cero en todas las regiones donde no vara la intensidad y
tiene un valor constante en la transicin de intensidad. Por tanto, un cambio de intensidad
se manifiesta como un cambio brusco en la primera derivada, caracterstica que es usada
por Canny para detectar un borde.
Ingeniera en Informtica

23

Algoritmo GRASP para registrado y fusin de imgenes digitales

Resulta el mtodo ms idneo para detectar todos los bordes existentes en una
imagen, ya que optimiza tres criterios vitales:
Buena deteccin: Minimiza la probabilidad de eliminar bordes reales y detectar
falsos bordes.
Buena localizacin: La distancia entre el punto de contorno detectado y el punto
central del contorno verdadero debe ser mnima.
nica respuesta: Obtiene un nico borde por cada contorno, eliminando las dems
respuestas.
Canny formula matemticamente estos tres criterios y, como resultado de
optimizarlos, obtiene que el detector de bordes ptimo consiste en aplicar un suavizado por
convolucin con el gaussiano a la imagen y posteriormente obtener su gradiente.

Figura 2.16: Detector de bordes de Canny.

Un pxel de borde se describe mediante dos caractersticas importantes:


- Intensidad del borde, que es igual a la magnitud del gradiente.
- Direccin del borde, que es igual al ngulo del gradiente.
En las imgenes reales, los bordes normalmente se encuentran algo difuminados, por
lo que el contraste en el borde no se modela mediante un escaln perfecto sino mediante
una funcin de rampa. Canny parte de la suposicin de que en la imagen de entrada
solamente existe ruido blanco y contraste de tipo escaln o rampa. No detectar otros tipos
de borde (tipos cuadrada y triangular), ya que estos bordes son difciles de encontrar en las
imgenes y, frecuentemente, son debidos a ruido.

Figura 2.17: Modelos de los distintos tipos de bordes que pueden aparecer en las imgenes:
(a) Funcin escaln. (b) Funcin rampa. (c) Funcin cuadrada. (d) Funcin triangular.

Ingeniera en Informtica

24

Algoritmo GRASP para registrado y fusin de imgenes digitales

2.4.2.1 Fases en la aplicacin del algoritmo:


Intervienen cuatro fases en la aplicacin del filtro de Canny:
1. Suavizado de la imagen: La imagen original es suavizada mediante la
convolucin con una funcin gaussiana. Se debe de tener cuidado de no realizar un
suavizado excesivo, pues se podran perder detalles de la imagen.
2. Obtencin del gradiente: Se detectan los cambios de intensidad en la imagen
suavizada en la fase anterior y se calcula la magnitud y orientacin del vector
gradiente en cada pxel.
3. Supresin de no-mximos: Se eliminan aquellos bordes cuya magnitud sea
inferior a, al menos, uno de los dos vecinos que se encuentran en esa orientacin. El
resultado es una imagen con los bordes adelgazados como consecuencia de la
supresin.
4. Histresis de umbral: Es la fase ms delicada. Aplica un doble umbral para evitar
la posible presencia de bordes ruidosos y reducir la posibilidad de aparicin de
contornos falsos.
Generalmente, es habitual que se realice un ltimo paso en el algoritmo de Canny,
que consiste en cerrar los contornos que pudiesen haber quedado abiertos por problemas de
ruido.
El mtodo ms utilizado es el algoritmo de Deriche y Cocquerez. Este algoritmo
busca los extremos de los contornos abiertos y sigue la direccin del mximo gradiente
hasta cerrarlos con otro extremo abierto.
La popularidad del algoritmo de Canny se debe a su gran adaptabilidad a diversos
tipos de imagen, a sus buenos resultados ante la presencia de ruido y a su sencillez, que
permite una gran velocidad de procesamiento.
A continuacin podemos observar los bordes detectados al utilizar el algoritmo de
Canny:

Figura 2.18: Resultado de la deteccin de bordes mediante el algoritmo de Canny.

Ingeniera en Informtica

25

Algoritmo GRASP para registrado y fusin de imgenes digitales

2.4.3

Transformada de Hough:

La transformada de Hough es una de las tcnicas ms populares de extraccin de


caractersticas. Permite descubrir las formas que existen en una imagen mediante la
transformacin de los puntos de la imagen en un espacio de parmetros. La transformada
original, nicamente era capaz de extraer lneas y curvas, aunque una generalizacin,
propuesta por Ballard en 1981, logra identificar formas arbitrarias, ms complejas, como
crculos o elipses.
El algoritmo, patentado por Paul V. C. Hough en 1962 con el ttulo Method and
Means for Recognizing Complex Patterns, tiene el objetivo de detectar el conjunto de
rectas determinadas, probablemente, por una nube de puntos.
Para poder aplicarse, es necesario un procesado previo de la imagen, en el que se
extraigan los bordes y se realice una binarizacin.
La transformada de Hough parte de la consideracin de que para cualquier punto
(xi,yi), pasan un nmero infinito de lneas que satisfacen la ecuacin general de la recta en
su forma explcita, para distintos valores de a y b:
= +

(2.20)

= +

(2.21)

Sin embargo, si se reescribe esta ecuacin como:

Y asumimos el plano ab (tambin denominado espacio parmetro), obtenemos una


nica recta que pase por el punto (xi,yi).
Si repetimos el proceso para otro punto (xj,yj), veremos que su recta en el plano ab
corta a la anterior en un punto (a,b). La interseccin de estas rectas determina los
parmetros a y b de la recta que contiene a estos dos puntos en el plano xy.

Figura 2.19: Representacin de la recta en el: (a) Plano xy. (b) Espacio parmetro.

Ingeniera en Informtica

26

Algoritmo GRASP para registrado y fusin de imgenes digitales

Asimismo, todas las rectas en el plano ab correspondientes a los puntos


pertenecientes a la recta en el plano xy, se cortan en un nico punto (a,b).
El clculo de la transformada de Hough se basa en un esquema guiado por votacin,
por lo que realiza la subdivisin del espacio parmetro en las denominadas clulas
acumulador, donde (amn,amx) y (bmn,bmx) son los rangos esperados para la pendiente y la
ordenada en el origen. En la Figura 2.20 podemos ver un ejemplo:

Figura 2.20: Clulas acumulador en el espacio parmetro.

Para cada punto de la imagen, se fija el parmetro a a cada uno de los valores
permitidos y se calcula su respectiva b, utilizando la ecuacin anterior. El valor de b
obtenido se redondea al del ms prximo permitido. El resultado de esta celda, que
inicialmente est puesta a cero, se incrementa. Al final del procedimiento, el nmero que
contenga la celda indicar la cantidad de puntos contenidos en la recta y aquellas celdas
con los valores mximos determinarn las lneas que mejor se ajustan a los puntos
existentes.
La precisin del mtodo est determinada por el nmero de subdivisiones del plano
ab, al igual que la complejidad, que ser nk, donde n es el nmero de puntos imagen y k el
de incrementos de a o b.
Un problema que surge al emplear la ecuacin de la recta (2.20) para representar una
lnea es que tanto la pendiente como la ordenada en el origen tienden a infinito cuando la
lnea se acerca a la vertical. Una manera de evitar este problema consiste en utilizar la
representacin polar de la recta:
cos + =

(2.22)

De esta forma, es la distancia del origen a la recta y es el ngulo formado por el


segmento que une el origen con la recta y el eje de abscisas. La nica diferencia que se
produce es que ahora a cada punto del plano xy, le corresponder una sinusoide en el plano
, en lugar de una recta.

Ingeniera en Informtica

27

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 2.21: Representacin polar de la recta.

En definitiva, la transformada de Hough es una tcnica de segmentacin muy robusta


frente al ruido y a la existencia de huecos en la frontera de los objetos. Sin embargo, su
coste computacional es elevado, ya que depende del tamao del espacio parmetro.

Figura 2.22: Lneas obtenidas al aplicar la transformada de Hough.

2.5 HOMOGRAFA:
Una homografa es una transformacin proyectiva que establece una correspondencia
entre dos formas geomtricas, de modo que a un elemento de una de ellas, ya sea un punto
o una recta, le corresponde otro elemento semejante de la otra.
Una homografa, tambin llamada colineacin o proyectividad, es un mapeo
invertible de puntos y lneas en el plano proyectivo Pn. Dado un conjunto de puntos xi Pn
y su conjunto de puntos correspondientes xi Pn, consiste en calcular la transformacin
proyectiva que lleva xi a xi, es decir, calcular h: Pn
Pn, tal que h(x): x = H x.

Figura 2.23: Homografa entre dos puntos.

Ingeniera en Informtica

28

Algoritmo GRASP para registrado y fusin de imgenes digitales

Una transformacin proyectiva entre planos es una transformacin lineal sobre 3


vectores homogneos, representada por una matriz de homografa H, de 3x3 no singular,
de forma que la relacin entre puntos originales y transformados es xi = H xi .
1
11

2 = 21
31
3

12
22
32

1
13
23 2
3
33

(2.23)

Un vector homogneo arbitrario (x1,x2,x3)T representa el punto (x1/x3,x2/x3)T en P2. El


carcter homogneo de estos vectores permite que sus componentes puedan ser
multiplicadas por cualquier constante y seguir representando al mismo punto y que la
transformacin no se modifique.
El principal aspecto a considerar es el nmero de puntos o correspondencias
necesarios para estimar la matriz H. Es posible calcular una cota inferior teniendo en
cuenta los grados de libertad de los vectores homogneos.
El nmero de grados de libertad de un punto 2D es dos, que se corresponden con sus
coordenadas x e y. Por otro lado, la matriz H tiene nueve parmetros pero al estar definida
salvo una constante de proporcionalidad, tan slo posee ocho elementos independientes.
Como conclusin, se puede establecer que es necesario especificar como mnimo
cuatro correspondencias entre puntos para poder calcular completamente la matriz H.
2.5.1 Algoritmos para la estimacin de la homografa:
El mtodo de transformacin lineal directa, en ingls Direct Linear Transformation
(DLT), propuesto por los investigadores Y. I. Abzdel-Aziz y H. M. Karara en 1971, es un
algoritmo sencillo usado para la resolucin de la matriz de homografa H a partir de un
conjunto de cuatro puntos 2D en correspondencia, xi = H xi . Al trabajar con
coordenadas homogneas, esta ecuacin puede escribirse de la siguiente manera siendo c
una constante distinta de cero:
11

= 21
31
1

12
22
32

13

23
1
33

(2.24)

Operando se obtienen las siguientes ecuaciones:

= 11 + 12 + 13

= 21 + 22 + 23

(2.25)

= 31 + 32 + 33

Ingeniera en Informtica

29

Algoritmo GRASP para registrado y fusin de imgenes digitales

Resolviendo el sistema por sustitucin y considerando h33=1, por ser la componente


homognea de la matriz H, se obtiene:
(31 + 32 ) = 11 + 12 + 13

(31 + 32 ) = 21 + 22 + 23

(2.26)

Que en forma matricial es:

1
0

0
1

11

12
13
21

22

23
31
32

(2.27)

Para cada correspondencia entre puntos, se genera esta ecuacin matricial, que tienen
la forma = . Formando un sistema con n correspondencias, se obtiene un vector b
con dimensin 2n y una matriz A que tiene 2n filas y ocho columnas. Por lo tanto, con n=4
es suficiente para calcular la matriz h, con la nica restriccin de que tres puntos no pueden
ser colineales (no pueden pertenecer a la misma recta). Si n>4, el sistema resultante es
sobredeterminado (el nmero de ecuaciones es mayor que el de incgnitas) y es necesario
aplicar un mtodo de minimizacin por mnimos cuadrados, basado en la descomposicin
de valores singulares (SVD).
Los pasos del algoritmo DLT para n4 correspondencias, se pueden resumir en:
1. Para cada correspondencia xi
xi, calcular la matriz Ai.
2. Obtener la matriz A de 2n x 8 que resulta de unir las n matrices Ai.
3. Aplicar la SVD de A. El vector singular correspondiente al valor singular menor es
la solucin para h.
4. Recolocar los elementos de h para obtener la matriz de homografa H.
Este algoritmo es dependiente del sistema de referencia empleado sobre las imgenes
y por eso, suele aplicarse una normalizacin antes de calcular la homografa. El algoritmo
DLT normalizado es el siguiente:
1. Normalizacin de xi y xi: Transformar los puntos xi y xi a travs de dos
transformaciones de similitud T y T, consistentes en un escalado y una traslacin,
respectivamente, cuyos
de forma que se obtengan dos conjuntos de puntos y
centroides sean el origen y sus distancias media sean de 2.
para obtener la matriz H.
2. Aplicar el algoritmo DLT a los nuevos puntos y
Ingeniera en Informtica

30

Algoritmo GRASP para registrado y fusin de imgenes digitales

3. Denormalizacin: Deshacer las transformaciones de normalizacin de forma


T.
H = T 1 H

2.5.2 Funciones de costo:

En el caso de disponer de ms de cuatro correspondencias entre puntos, el sistema de


ecuaciones es sobredeterminado y si esos puntos presentan ruido en sus coordenadas, no es
posible ofrecer una solucin exacta y se intenta obtener una solucin aproximada que
minimice una funcin de costo. Estas funciones de costo para determinar h son:
Distancia algebraica: Minimiza el error de . Cada correspondencia genera un
vector de error algebraico parcial y su unin proporciona el vector resultante,
denominado residual.
( , )2 = 2 = ( )2

(2.28)

Distancia geomtrica: Minimizan la diferencia entre las coordenadas medidas y


estimadas sobre la imagen.
o Error de transferencia: El error solamente existe en la segunda imagen.
Minimiza la distancia eucldea entre las coordenadas medidas y estimadas para el
punto xi.
( , )2

(2.29)

o Error de transferencia simtrico: Es el caso ms realista, donde existen errores


de medida en ambas imgenes. Minimiza estos errores considerando la
transformacin hacia delante H y hacia atrs H-1 y sumndolos.
( , 1 )2 + ( , )2

(2.30)

El primer trmino de esta suma es el error en la primera imagen y el segundo es


el error en la segunda imagen.
o Error de retroproyeccin: Realiza una correccin de las coordenadas de los
y las
puntos para cada correspondencia. Se necesita determinar la homografa
que minimicen la siguiente funcin:
parejas de puntos y
2 + ( , )2
,

(2.31)

Ingeniera en Informtica

31

Algoritmo GRASP para registrado y fusin de imgenes digitales

Error de Sampson: El resultado se aproxima al error geomtrico pero reduciendo su


complejidad, acercndola a la del error algebraico. Parte de la hiptesis que la funcin
de costo, = , se aproxima de forma lineal en un entorno del punto y calcula el
jacobiano de ella:
=

2.5.3 Estimacin robusta:

= [( )1 , ( )2 , ()1 , ()2 ]

(2.32)

En el proceso de emparejamiento pueden producirse errores sistemticos que


provoquen parejas de puntos aberrantes (outliers), que son aquellos puntos que se han
estimado que estn en correspondencia pero realmente no lo estn. Estos puntos tienen una
gran influencia negativa en el clculo de la matriz H, por lo que se utilizan mtodos de
estimacin robustos para identificarlos y que no se tengan en cuenta.
Los mtodos de estimacin robusta clasifican los conjuntos de puntos entre outliers e
inliers. Podemos distinguir los siguientes:
RANdom SAmple Consensus (RANSAC): Es un algoritmo general basado en la
seleccin de un reducido conjunto de puntos (el menor permitido), calcular su modelo
y estimar cuntos puntos del conjunto completo estn dentro de una distancia mnima
con respecto al modelo. Este proceso se repite hasta obtener un gran conjunto de
puntos que cumplan con el modelo. (Fischler y Bolles, 1981).
Este mtodo necesita que se fijen tres parmetros: porcentaje de puntos que deben
ser inliers, umbral de distancia a considerar y nmero de iteraciones del algoritmo a
realizar.
Funciona correctamente con una gran proporcin de outliers entre los datos de
entrada.
Mnima mediana de cuadrados (Least Median of Squares, LMS): Estima los
parmetros obteniendo el valor mnimo para la mediana de los cuadrados de los
residuos calculados para el conjunto entero de puntos (Peter J. Rousseeuw).
{ 2 = ( , )2 + ( , )2 }

(2.33)

La eficiencia de este mtodo es pobre en presencia de ruido Gaussiano pero puede


solventarse mediante un procedimiento de mnimos cuadrados ponderados.
Soporta hasta casi un 50% de outliers y a diferencia de RANSAC, no necesita
determinar ningn umbral ni parmetro.

Ingeniera en Informtica

32

Algoritmo GRASP para registrado y fusin de imgenes digitales

2.6 RANDOM SAMPLE CONSENSUS (RANSAC):


El algoritmo RANSAC (RANdom SAmple Consensus) fue propuesto por Martin A.
Fischler y Robert C. Bolles en 1981, como un mtodo robusto para estimar los parmetros
de un determinado modelo a partir de un conjunto de datos contaminados por una gran
cantidad de valores atpicos. Un dato se considera atpico si no pertenece al modelo
obtenido con datos correctos.
A diferencia de las tcnicas convencionales de muestreo que utilizan la mayor
cantidad posible de datos para obtener una solucin inicial y luego proceden a podar los
valores atpicos, RANSAC es una tcnica de remuestreo que genera soluciones candidatas
basndose en un nmero mnimo de observaciones, que despus ampla con el resto de
datos coherentes.
Aunque existen muchas variaciones, el algoritmo se compone esencialmente de dos
pasos que se repiten de forma iterativa:
- Formular hiptesis: Un grupo mnimo de muestras (MSS) se seleccionan al azar de
un conjunto de datos de entrada y se calculan los parmetros del modelo usando slo
estos elementos.
- Prueba: En este paso, RANSAC comprueba que los elementos del conjunto total de
datos son consistentes con el modelo obtenido con los parmetros estimados en el
primer paso. El conjunto de estos elementos se denomina conjunto consenso (CS).
RANSAC termina cuando la probabilidad de encontrar un mejor CS cae por debajo
de un determinado umbral.
A continuacin se describe el algoritmo RANSAC para un conjunto de datos S con
puntos atpicos:
1. Seleccionar aleatoriamente una muestra de s datos de S y se calcula el modelo para
este subconjunto.
2. Determinar el conjunto de datos Si que estn dentro de una distancia umbral t del
modelo. Si es el conjunto consenso de la muestra e indica los inliers de S.
3. Si el tamao de Si es mayor que un umbral T, recalcular el modelo utilizando todos
los datos en Si y terminar.
4. Si el tamao de Si es menor que un umbral T, seleccionar un nuevo subconjunto y
repetir los pasos anteriores.
5. Despus de N intentos, se selecciona el mayor conjunto consenso Si y se recalcula
el modelo utilizando todos los puntos de ese subconjunto o se termina en fracaso.
Este mtodo requiere que se especifiquen tres parmetros:

Ingeniera en Informtica

33

Algoritmo GRASP para registrado y fusin de imgenes digitales

Distancia umbral t: Tolerancia de error utilizada para determinar si un punto es


compatible o no con el modelo.
Umbral T: Nmero de puntos compatibles con el modelo para poder afirmar que se
ha encontrado el correcto.
Nmero de intentos N: Nmero de subconjuntos a tratar.
Es importante que el valor de la distancia umbral sea el correcto, ya que se encarga de
clasificar los datos en inliers y outliers, y mientras los valores atpicos pueden afectar
negativamente al resultado, los compatibles lo favorecen.
El umbral T suele obtenerse en funcin de un supuesto porcentaje de puntos que
puedan ser outliers, que denotaremos por e y del nmero total de datos:
= (1 )

(2.34)

= log(1 ) /log (1 (1 ) )

(2.35)

El parmetro de nmero de intentos es el ms complejo. Por un lado, debe ser lo


suficientemente grande para asegurar, con una alta probabilidad p (normalmente, p=0.99),
que al menos una muestra est libre de outliers. Y por otro lado, si es demasiado grande
puede incrementar considerablemente el tiempo de ejecucin del algoritmo. N puede
asignarse iterativamente atendiendo al porcentaje de inliers, segn la expresin:

El valor de e no es un valor conocido a priori y por tanto, es necesario usar un


algoritmo iterativo para recalcular los valores de e y N al mismo tiempo que se seleccionan
nuevas muestras:
Procedimiento Clculo de N()
N , num_Iteraciones 0;
Mientras num_Iteraciones < N Hacer
Seleccionar muestra y contar nmero de inliers (num_Inliers);
e
1-(num_Inliers/datos_Totales);
N
log(1 ) /log (1 (1 ) );
// p=0.99
num_Iteraciones++;
FinMientras
FinProcedimiento
Figura 2.24: Pseudocdigo para calcular N iterativamente.

2.7 COMPOSICIN DE IMGENES:


La composicin de imgenes es el proceso siguiente al registrado de imgenes y
consiste en decidir cmo se mostrar el mosaico final. Este proceso incluye 2 etapas:
Seleccin de la superficie y de la vista: Se encarga de representar la imagen final.
Es necesario para seleccionar una imagen como referencia y aplicar a las dems
Ingeniera en Informtica

34

Algoritmo GRASP para registrado y fusin de imgenes digitales

imgenes las transformaciones necesarias para que compartan con ella el mismo
sistema de referencia.
La composicin resultante puede ser una superficie plana si la proyeccin es una
perspectiva (las lneas rectas permanecen rectas despus de la transformacin). Si
abarca un gran campo de visin, no se puede obtener una representacin plana sin
excesivo estiramiento de los pxeles cerca de los lmites de la imagen y por tanto, se
requiere una proyeccin cilndrica (Szeliski 1994, Chen 1995) o esfrica (Szeliski y
Shum 1997).
La seleccin de la imagen que ocupar la posicin central de la composicin puede
determinarse por las coordenadas geomtricas de las imgenes, mediante alguna
heurstica o ser la primera imagen, asumiendo que contiene el objeto de ms inters.
Las transformaciones realizadas en el proceso de registrado de cada imagen
dependern de la superficie que se haya adoptado. Si la superficie es plana, no existe
distorsin radial y por tanto, la transformacin es una simple homografa. En cambio,
si la superficie es cilndrica o esfrica se debe calcular de acuerdo a las ecuaciones de
proyeccin.
Seleccin de los pxeles de cada imagen que contribuyen a la composicin final
y forma ptima de mezclarlos: Despus de mapear los pxeles de cada imagen sobre
la superficie de la composicin final, es importante decidir la manera de mezclarlos
para crear una panormica atractiva.
Este problema se facilita en gran medida si se ha realizado un perfecto registrado y
poseen exposiciones idnticas. Sin embargo, es frecuente que las imgenes reales
produzcan problemas de vietado, desenfoque y objetos fantasmas (ghosting).
Se debe decidir los pxeles que se usarn y que peso tendrn en la composicin
final para que se consiga minimizar los problemas anteriores. Existen varios
enfoques:
Realizar la media de los valores de los pxeles: Con esta tcnica no se obtienen
muy buenos resultados.
Filtro de mediana (Irani and Anandan 1998): Puede aplicarse si el nico
problema es el movimiento rpido de objetos.
Media ponderada: Los pxeles del centro de la imagen reciben un mayor peso
que los cercanos a los bordes para calcular la media entre ellos. Puede realizarse
obteniendo un mapa de distancias. Los problemas de desenfoque u objetos
fantasmas pueden seguir siendo un problema.
Seleccin ptima de uniones: Una mejora a la tcnica anterior es utilizar una
variante del diagrama de Vornoi, que asigna a cada pxel el centro de la imagen
Ingeniera en Informtica

35

Algoritmo GRASP para registrado y fusin de imgenes digitales

ms cercana del conjunto. Sin embargo, no tiene en cuenta la estructura


subyacente de las uniones de las imgenes. Una solucin ms adecuada ser
ejecutar un algoritmo que evite cortar objetos en movimiento provocando que la
transicin resulte poco natural (Davis 1998).
En la siguiente imagen se observan los resultados obtenidos al aplicar estos
enfoques:

Figura 2.25: Composicin final obtenida al aplicar: (a) media (b) mediana (c) media ponderada (d) Vornoi.

Para generalizar este proceso, Uyttendaele en 2001 observ que en imgenes


bien registradas, el movimiento de objetos produca los artefactos ms visibles
(fantasmas translcidos) e invent un sistema, basado en regiones de diferencia
(RODs) y la superposicin producida en la composicin final, para decidir qu
objetos mantener y cules borrar.

Figura 2.26: Sistema creado por Uyttendaele: (a) imgenes superpuestas (b) Regiones de diferencia (c)
Grfico de coincidencias de RODs.

Una aproximacin diferente fue propuesta por Agarwala en 2004, que calculaba
la asignacin de etiquetas que optimizaran la suma de dos funciones objetivos:
o La primera funcin determina qu pxeles son idneos para obtener una
buena composicin. Pueden ser obtenidos de forma manual, indicando el
usuario los objetos que desea que aparezcan y los que no, y de forma
automtica, mediante un criterio de mxima probabilidad, que selecciona
aquellos pxeles que ocurren repetidamente para eliminarlos o de mnima
probabilidad, que mantiene los objetos que ocurren con poca frecuencia.

Ingeniera en Informtica

36

Algoritmo GRASP para registrado y fusin de imgenes digitales

La Figura 2.27 se muestra la composicin final de una familia donde todos


los integrantes estn sonriendo. Este fotomontaje se obtiene con la
colaboracin del usuario, que indica mediante trazos sobre las imgenes
origen las personas que desea agregar.

Figura 2.27: Composicin final a partir de un conjunto de 4 imgenes (Agarwala, 2004).

o La segunda funcin penaliza la diferencia entre imgenes adyacentes por


medio de una funcin de costo, de clculo de gradientes o de presencia de
bordes.
La suma de estas dos funciones es a menudo llamada energa del Campo
Aleatorio de Markov. La optimizacin de este clculo es un problema NPduro y es necesario emplear tcnicas metaheursticas, como templado
simulado (Geman y Geman 1984) o graph cuts (Boykov 2001).

2.8 TCNICAS METAHEURSTICAS:


Existe una serie de problemas reales, que requieren de un proceso de optimizacin o
bsqueda y cuya solucin es difcil de encontrar en un tiempo admisible para aplicaciones
prcticas. Estos problemas, conocidos como NP-duros, aparecen en multitud de tareas,
tales como obtener el camino ms corto, el de mnimo coste o la asignacin ptima, y
precisan de un tiempo exponencial en el peor de los casos.
Los algoritmos exactos (programacin dinmica, backtracking o branch and bound)
son ineficientes o imposibles de aplicar, debido a la gran complejidad computacional, y se
necesitan algoritmos aproximados o heursticos que proporcionen buenas soluciones
(aunque no sean las ptimas) en un tiempo razonable.
En Inteligencia Artificial (IA), el calificativo heurstico se aplica a todos aquellos
aspectos que tienen que ver con el empleo de conocimiento en la realizacin dinmica de
tareas. Una tcnica heurstica es un mtodo o procedimiento inteligente de desarrollar una
tarea mediante el conocimiento experto que se tiene de ella. En definitiva, se usa el trmino
heurstico para referirse a un procedimiento que trata de aportar soluciones a un problema
con un buen rendimiento, en cuanto a la calidad de las soluciones y a los recursos
empleados.

Ingeniera en Informtica

37

Algoritmo GRASP para registrado y fusin de imgenes digitales

Las tcnicas metaheursticas son una familia de algoritmos aproximados de propsito


general. Son procedimientos iterativos que dirigen una heurstica subordinada de bsqueda
con el fin de aumentar sus capacidades exploratorias. Proporcionan soluciones aceptables
al problema (prximas al ptimo), en tiempos de convergencia razonables, aunque sin
garantizar su factibilidad.
El trmino metaheurstica apareci por primera vez en un artculo de Fred Glover
sobre bsqueda tab en 1986. Estos mtodos de resolucin gestionan la interaccin entre
procedimientos de mejora local y estrategias de ms alto nivel para crear procesos capaces
de escapar de ptimos locales y realizar una bsqueda robusta del dominio de la solucin.
Las metaheursticas exploran espacios de bsqueda mediante diversas estrategias. En
el diseo de dichas estrategias debe establecerse un equilibrio entre dos caractersticas
incompatibles:
Intensificacin o explotacin: Cantidad de esfuerzo empleado en la bsqueda en la
regin actual.
Diversificacin o exploracin: Cantidad de esfuerzo empleado en la bsqueda de
diferentes regiones del espacio.
Este equilibrio es necesario por dos razones:
- Identificar rpidamente regiones del espacio de bsqueda con soluciones de buena
calidad.
- No malgastar demasiado tiempo en regiones del espacio no prometedoras o que ya
han sido exploradas previamente.
Algoritmos incluidos en este tipo de tcnicas son:
Computacin evolutiva: Trmino que agrupa a la Programacin Evolutiva
(Lawrence J. Fogel, 60s), las Estrategias Evolutivas (Ingo Rechenberg y Hans-Paul
Schwefel, 70s) y a los Algoritmos Genticos (John H. Holland, 75).
Optimizacin basada en Colonias de Hormigas (M. Dorigo, 96).
Bsqueda Local: Del mejor (A. Hertz y M. Widmer, 96), del primer mejor (A.
Hertz y M. Widmer, 96), iterada (Loureno, 01) o de Vencindario Variable, (N.
Mladenovic y P. Hansen, 97).
Templado simulado (S. Kirkpatrick, C. D. Gelatt Jr. y M. P. Vecchi, 83).
Algoritmos Memticos (Richard Dawkins, 76).
Bsqueda Tab (Glover, 86).
Bsqueda Dispersa o Scatter Search (Glover, 77).
Ingeniera en Informtica

38

Algoritmo GRASP para registrado y fusin de imgenes digitales

Mtodos Multi-Arranque (Rinnooy Kan y Timmer, 87).


Procedimientos de Bsqueda Adaptativa Aleatoriamente Voraces o GRASP
(Thomas A. Feo y Mauricio G. C. Resende, 95).
Algoritmos basados en Estimacin de Distribucin (H. Mhlenbein, 96).
2.8.1 Caractersticas:
Las tcnicas metaheursticas se caracterizan por las siguientes propiedades:
Las metaheursticas son estrategias que guan el proceso de bsqueda.
El objetivo es explorar eficientemente el espacio de bsqueda para encontrar
soluciones prximas al ptimo.
Las tcnicas que conforman los algoritmos metaheursticos van desde la bsqueda
local simple hasta procedimientos complejos de aprendizaje.
Los algoritmos metaheursticos son aproximados y no deterministas.
Incorporan mecanismos para evitar quedar atrapados en reas concretas del espacio
de bsqueda.
2.8.2 Propiedades:
Es deseable que la metaheurstica posea una serie de propiedades:
Simple: La metaheurstica debe ser sencilla y clara, de fcil comprensin.
Precisa: Los pasos y fases deben ser concretos.
Coherente: Los elementos se deducen de sus principios.
Efectiva: El algoritmo debe proporcionar soluciones de muy alta calidad (ptimas o
muy cercanas a las ptimas).
Eficaz: La probabilidad de alcanzar soluciones ptimas debe ser alta.
Eficiente: La metaheurstica debe realizar un buen aprovechamiento de recursos
computacionales, como tiempo de ejecucin y espacio de memoria.
General: Debe ser vlida en una amplia variedad de problemas.
Adaptable: Debe ser capaz de adaptarse a diferentes contextos de aplicacin o
modificaciones importantes del modelo.
Robusta: El comportamiento de la metaheurstica debe ser poco sensible a pequeas
alteraciones del modelo.
Interactiva: La metaheurstica debe permitir que el usuario pueda mejorar el
rendimiento del procedimiento.
Mltiple: Debe suministrar diferentes soluciones alternativas de alta calidad entre
las que el usuario pueda elegir.
Autnoma: Debe permitir un funcionamiento autnomo, libre de parmetros o que
se puedan establecer automticamente.
Ingeniera en Informtica

39

Algoritmo GRASP para registrado y fusin de imgenes digitales

2.8.3 Clasificacin:
Existen diversas formas de clasificar las tcnicas metaheursticas dependiendo de las
caractersticas que seleccionemos para diferenciarlos entre s. Segn C. Blum y A. Roli
(2003) estos criterios son:
Inspirados y no inspirados en la naturaleza:
Clasifica las metaheursticas por el origen del algoritmo en cuestin. Hay
algoritmos inspirados en procesos de la naturaleza (como los algoritmos genticos o
los algoritmos de colonias de hormigas) y otros no inspirados en la naturaleza (como
la bsqueda Tab o la bsqueda local iterada). Es la forma ms intuitiva de
clasificacin pero no la mejor por diversos motivos: la proliferacin de mtodos
hbridos difciles de encuadrar en alguna de estas categoras y la dificultad de conocer
el origen del algoritmo.
Basados en poblacin y bsqueda en un nico punto:
Otro criterio para la clasificacin de las metaheursticas es la forma en que se
realiza la bsqueda: centrada en el estudio de una poblacin o en un individuo en
particular. Las primeras se caracterizan por llevar a cabo procesos de bsqueda que
describen la evolucin de un conjunto de soluciones dentro del espacio de bsqueda
mientras que las segundas, basadas en trayectorias, parten de una solucin inicial e
iterativamente tratan de reemplazarla por otra de su vecindario con mejor calidad,
describiendo una trayectoria concreta dentro del espacio.
Funcin objetivo dinmica y esttica:
La clasificacin se puede realizar de acuerdo a la manera de utilizar la funcin
objetivo. Algunos algoritmos la mantienen inalterada en la representacin del
problema y durante la bsqueda y, sin embargo, otros modifican el formato de la
bsqueda. El propsito de estos ltimos es el de escapar de mnimos locales
modificando la funcin objetivo, incorporando informacin recogida durante el
proceso de bsqueda.
Una sola o varias estructuras de vecindario:
La mayora de los algoritmos metaheursticos trabajan con una sola estructura de
vecindario, que no cambia durante el desarrollo del algoritmo. No obstante, algunas
metaheursticas, como la bsqueda de vecindario variable, usan un conjunto de
estructuras de vecindario, que les proporciona la posibilidad de diversificar la
bsqueda.
Mtodos con y sin memoria:
Un aspecto muy importante de las metaheursticas es el uso que hacen de la historia
de la bsqueda (si emplean memoria o no). Los algoritmos sin memoria llevan a cabo
un proceso de Markov, ya que la informacin que precisan para determinar la
Ingeniera en Informtica

40

Algoritmo GRASP para registrado y fusin de imgenes digitales

siguiente accin se limita al estado actual del proceso de bsqueda. Hay diferentes
formas de usar la memoria. Habitualmente, se distingue entre memoria a corto o a
largo plazo. La primera, suele guardar informacin sobre acciones realizadas,
soluciones visitadas o decisiones tomadas recientemente. En cambio, la memoria a
largo plazo almacena un conjunto de parmetros que sintetizan la bsqueda realizada
desde el comienzo de la ejecucin del algoritmo. El uso de memoria es, hoy en da,
reconocido como uno de los elementos cruciales que determina la potencia de una
metaheurstica.

2.9 GREEDY RANDOMIZED ADAPTIVE SEARCH PROCEDURE


(GRASP):
El algoritmo GRASP es una de las tcnicas ms exitosas aparecidas en los ltimos
aos del siglo pasado. Fue propuesto por Thomas A. Feo y Mauricio G. C. Resende en
1995, y sus siglas en ingls son el acrnimo de procedimiento de bsqueda voraz
adaptativo aleatorizado.
Este mtodo multi-arranque, diseado con el propsito de resolver problemas
complejos de optimizacin combinatoria, intenta construir soluciones de alta calidad que,
posteriormente, son procesadas para obtener otras an mejores. En su versin bsica, cada
iteracin consiste en dos fases: una fase de construccin y otra de mejora.
En la fase de construccin se aplica un mtodo heurstico para obtener una solucin
inicial factible buena, sin ser necesariamente un ptimo local y en la siguiente fase, se
mejora sta mediante un algoritmo de bsqueda local, que examina las vecindades de la
solucin hasta llegar al ptimo local.
La mejor solucin encontrada entre todas las examinadas, se guarda en cada iteracin,
terminando el algoritmo cuando se alcanza un criterio de terminacin.
En la Figura 2.28 se muestra el pseudocdigo del algoritmo GRASP:
Procedimiento GRASP (Max_Iteraciones, )
x* ;
Para i = 1,, Max_Iteraciones Hacer
x Fase de construccin ();
x Fase de mejora (x);
// Realiza una bsqueda local
Si Funcin Objetivo(x) < Funcin Objetivo(x*) Entonces
x* x;
// Actualizar solucin
FinSi
FinPara
Retornar x*; // Solucin final
FinProcedimiento
Figura 2.28: Pseudocdigo del algoritmo GRASP.

Ingeniera en Informtica

41

Algoritmo GRASP para registrado y fusin de imgenes digitales

Las caractersticas ms relevantes de GRASP son su sencillez y facilidad de


implementacin y su funcionamiento robusto en un gran nmero de problemas de
diferentes campos.
Sin embargo, presenta una importante desventaja al no poseer estructuras de
memoria, con lo que las iteraciones son independientes y no utilizan las observaciones
previas. Descarta la informacin acerca de cualquier solucin encontrada que no mejore la
actual. Para solucionar este defecto, se han propuesto diversas soluciones que mejoren la
fase de construccin:
- GRASP reactivo (Reactive GRASP): Los valores de la lista de candidatos no son
fijos y en cada iteracin, se seleccionan de un conjunto discreto de posibles
elementos. Esta seleccin es guiada por la solucin encontrada en las iteraciones
anteriores.
- Funciones de sesgo: Utiliza una distribucin de probabilidad para sesgar la
seleccin sobre candidatos particulares.
- Vecindades variables: Se basa en la proximidad de las buenas soluciones.
- Reencadenamiento de trayectorias (Path-relinking): Esquema de intensificacin,
donde las soluciones generadas en cada iteracin se reencadenan con otras soluciones
de un conjunto lite.
2.9.1 Fase de construccin:
La fase de construccin es la culpable de que la metaheurstica sea voraz, adaptativa y
aleatoria.
Esta fase es voraz porque la seleccin del elemento a incorporar a la solucin se
realiza calculando el efecto de las distintas alternativas sobre la funcin objetivo a
optimizar. Un elemento que pueda seleccionarse como parte de una solucin parcial se
llama elemento candidato y para determinar cul de ellos es el que se debe incluir, se
utiliza una funcin de evaluacin miope (funcin que solamente tiene en cuenta lo que
ocurre en la iteracin actual y no en las sucesivas). Esta funcin mide la contribucin local
de cada candidato a la solucin parcial.
Es adaptativo debido a que para un mismo elemento, la funcin de evaluacin puede
proporcionar un ndice de bondad diferente en cada iteracin, dependiendo de las
decisiones tomadas previamente.
Por ltimo, GRASP es considerado un mtodo heurstico aleatorizado porque no elige
el mejor candidato propuesto por la funcin de evaluacin, sino que procurando que exista
diversidad y no se repitan soluciones en iteraciones diferentes, crea una lista restringida de
candidatos (Restricted Candidate List, RCL), que contiene un conjunto de elementos
candidatos con los mejores valores de la funcin miope y selecciona uno al azar.
Ingeniera en Informtica

42

Algoritmo GRASP para registrado y fusin de imgenes digitales

El tamao de la lista de candidatos () es un elemento crtico. La lista puede contener


un nmero fijo de elementos (restriccin por cardinalidad) o aquellos elementos cuyos
valores de la funcin miope estn dentro de un rango dado. En el primer caso, si =1
siempre se aadira el mejor elemento y la construccin sera equivalente a una heurstica
voraz determinista. En cambio si =n, el algoritmo es completamente aleatorio. Igual
sucede en el segundo caso, cuando el valor del rango es el mayor y el menor de la funcin
de evaluacin, respectivamente.
En la siguiente figura puede verse el pseudocdigo de esta fase:
Procedimiento Fase de Construccin ()
E
Leer Datos();
x*
;
// Inicio solucin inicial
Calcular costo miope para cada elemento;
Mientras E Hacer
RCL
Crear RCL(E);
e
Seleccionar elemento aleatorio(RCL);
x*
e;
// El elemento se aade a la solucin
E
Eliminar (e);
// Se borra el elemento
Calcular costo miope para cada elemento; // Se actualizan los
// valores de la funcin
FinMientras
Retornar x*;
// Devolvemos solucin inicial
FinProcedimiento
Figura 2.29: Pseudocdigo de la fase de construccin de GRASP

En este punto ya se dispone de una solucin inicial, pero no se puede considerar un


ptimo vlido como resultado final.
2.9.2 Fase de mejora:
Normalmente, las soluciones obtenidas en la fase de construccin no suelen ser
ptimos locales y es necesario aplicar un mtodo de bsqueda local para mejorar la
solucin.
El algoritmo de bsqueda local, de manera iterativa, explora el vecindario de una
solucin de partida en busca de una mejor para reemplazarla. Sirve para buscar soluciones
localmente ptimas en regiones prometedoras del espacio de soluciones. Este proceso
termina cuando no se encuentra una solucin mejor en su entorno de vecindad.
El pseudocdigo de la fase de mejora puede verse en la Figura 2.30:

Ingeniera en Informtica

43

Algoritmo GRASP para registrado y fusin de imgenes digitales

Procedimiento Fase de Mejora (x*)


Mientras x* no es localmente ptima Hacer
x
Solucin del vecindario(x*);
Si Funcin Objetivo(x) < Funcin Objetivo(x*) Entonces
x*
x;
// Se reemplaza la solucin actual
FinSi
FinMientras
Retornar x*;
FinProcedimiento
Figura 2.30: Pseudocdigo de la fase de mejora de GRASP.

La efectividad del procedimiento de bsqueda local depende de varios factores, como


la estructura de vecindad, la tcnica de bsqueda de vecinos, la rapidez en la funcin de
evaluacin y la propia solucin inicial.
Generalmente, la estructura de vecindad es simple y la tcnica de bsqueda puede
implementarse utilizando una estrategia de mayor-mejora o primera-mejora. En el primer
caso, se analizan todos los vecinos y la solucin actual se reemplaza por el mejor de ellos y
en el segundo, la solucin ser el primer vecino cuyo valor de la funcin objetivo sea
inferior. En cuanto a la solucin inicial, la fase de construccin juega un papel
determinante.

Ingeniera en Informtica

44

Algoritmo GRASP para registrado y fusin de imgenes digitales

3.

OBJETIVOS DEL PROYECTO

A menudo existen situaciones donde es imposible obtener, en una nica captura, la


imagen idnea debido a diversas circunstancias como elementos indeseados en
movimiento, fuertes contrastes de luces y sombras, objetos a altas temperaturas que saturan
la lente o fotografas gran angular.
La combinacin de mltiples imgenes para obtener una panormica o una imagen de
alta resolucin es una materia en continuo estudio y desarrollo durante los ltimos aos en
la disciplina de la visin por computador.
Este proceso requiere que se realicen varias etapas:
Deteccin de puntos clave caractersticos: Mediante el uso de SIFT ser posible
extraer caractersticas invariantes a escalado, rotacin y parcialmente a iluminacin
de las imgenes.
Emparejamiento de caractersticas: Aplicando un algoritmo RANSAC
seleccionaremos aquellas correspondencias con mayor probabilidad de ser
verdaderas.
Transformacin y obtencin de la imagen final: Con el conjunto de
correspondencias anteriores, obtendremos la homografa a realizar sobre cada pareja
de imgenes.
La realizacin de estas etapas conlleva la existencia de problemas que deben ser
resueltos, como son la mezcla de las imgenes, la distorsin de lentes, la compensacin de
exposiciones, el emborronamiento y los objetos mviles indeseados.
El objetivo principal de este proyecto ser mejorar la imagen resultante del registrado
de diferentes imgenes digitales por medio de la utilizacin de un algoritmo de bsqueda
GRASP.
Conseguiremos mejorar la imagen resultante perfeccionando la superposicin de las
imgenes. Primeramente deberemos extraer la regin de solapamiento de cada una de las
imgenes y posteriormente, con un modelo basado en una lnea recta determinar la zona de
unin entre las imgenes.
En la eleccin de la zona de unin tendremos en cuenta dnde se produce la mayor
diferencia en el solapamiento de ellas, que denotar posibles ruidos, fallos en el registrado
o desplazamiento de elementos, los contornos, que delimitan reas donde aparece un
cambio brusco de iluminacin y los puntos SIFT, aquellas caractersticas invariantes en las
imgenes. Las dos ltimas propiedades son perfectas para conseguir que se note menos la
transicin entre las imgenes.

Ingeniera en Informtica

45

Algoritmo GRASP para registrado y fusin de imgenes digitales

Tendremos que especificar una funcin objetivo que indique la bondad del corte.
Estar definida en tres partes: Una mtrica para evaluar la diferencia entre las imgenes y
otras dos para estimar la proximidad de ese corte a un borde y a las caractersticas
invariantes, gracias a los puntos de los contornos que devuelve el algoritmo CANNY y a
los descriptores SIFT.
Adems, nos encargaremos de otorgar pesos a cada una de estas mtricas para decidir
su grado de influencia y de fijar la condicin de terminacin del algoritmo.
La complejidad de evaluar todos los posibles cortes que pueden realizarse hace
necesario el empleo de una tcnica metaheurstica, la cul ser encaminada por las lneas
obtenidas por la transformada de Hough.
Una vez se encuentre el mejor corte posible, habr que determinar cul de esas dos
partes pertenecientes a cada imagen contribuyen a obtener la imagen final.
Desarrollaremos un mtodo que calcule cul de ellas produce una menor sensacin visual
negativa.
Para finalizar, habr que disear un filtro de suavizado que atene el impacto de la
fusin de las imgenes.
Todas estas tareas se podrn realizar gracias al uso de una librera visual y a la
familiarizacin con sus funciones y tipos de datos.

Ingeniera en Informtica

46

Algoritmo GRASP para registrado y fusin de imgenes digitales

4.

HIPTESIS DE TRABAJO

En este captulo se expone el programa informtico y el lenguaje de programacin


utilizado y las libreras y herramientas que han servido de apoyo y soporte para realizar el
proyecto.

4.1 ENTORNO Y LENGUAJE DE PROGRAMACIN:


A continuacin se detalla el entorno y lenguaje de programacin empleado para llevar
a cabo la implementacin:
4.1.1 Microsoft Visual Studio:
Microsoft Visual Studio es un potente Entorno de Desarrollo Integrado (IDE) para
sistemas operativos Windows. Asegura cdigo de calidad durante todo el ciclo de vida de
la aplicacin, desde el diseo a la implementacin. Incluye herramientas de depuracin,
diagnstico y pruebas.
Soporta varios lenguajes de programacin como Visual C++, Visual C#, Visual J#,
ASP.NET y Visual Basic .NET, aunque actualmente se han desarrollado las extensiones
necesarias para muchos otros. Visual Studio permite crear aplicaciones, sitios y
aplicaciones web, as como servicios web en cualquier entorno que soporte la plataforma
.NET. De esta manera, se pueden crear aplicaciones que se intercomuniquen entre
estaciones de trabajo, pginas web y dispositivos mviles.
Se ha elegido Visual Studio 2010 para desarrollar este proyecto porque garantiza
obtener fcilmente soluciones de calidad.
4.1.2 C++:
C++ es un lenguaje de programacin diseado a mediados de los aos 1980 por
Bjarne Stroustrup en los laboratorios Bell de AT&T. La intencin de su creacin fue la de
extender el exitoso lenguaje de programacin C con mecanismos que permitieran la
manipulacin de objetos. En ese sentido, desde el punto de vista de los lenguajes
orientados a objetos, el C++ es un lenguaje hbrido.
Posteriormente se aadieron facilidades de programacin genrica, que se sumaron a
los otros dos paradigmas que ya estaban admitidos (programacin estructurada y la
programacin orientada a objetos). Por esto, suele decirse que el C++ es un lenguaje de
programacin multiparadigma.
En 1998, las organizaciones ANSI e ISO aprobaron el estndar ANSI C++. En la
actualidad, C++ es un lenguaje verstil, potente y general. Su xito entre los
programadores profesionales le ha llevado a ocupar el primer puesto como herramienta de
desarrollo de aplicaciones. El C++ mantiene las ventajas del C en cuanto a riqueza de
Ingeniera en Informtica

47

Algoritmo GRASP para registrado y fusin de imgenes digitales

operadores y expresiones, flexibilidad, concisin y eficiencia. Adems, ha eliminado


algunas de las dificultades y limitaciones del C original.
Una particularidad del C++ es la posibilidad de redefinir los operadores, y de poder
crear nuevos tipos que se comporten como tipos fundamentales.

4.2 LIBRERAS Y HERRAMIENTAS:


En la resolucin de este proyecto intervienen una serie de libreras y herramientas que
describiremos a continuacin:
4.2.1 Open Source Computer Vision (OpenCV):
OpenCV (Open source Computer Vision library) es una librera de cdigo abierto
para visin artificial desarrollada por Intel y publicada bajo licencia BSD en el ao 2002,
por lo que est permitido su uso tanto con fines de investigacin como comerciales.
La librera est escrita en C y C++ y es multiplataforma, existiendo versiones
compatibles con sistemas operativos Windows, Linux y Mac OS X. Tambin hay
interfaces en desarrollo para Python, Ruby, Matlab y otros lenguajes. Est optimizada para
su uso en arquitecturas Intel con soporte para instrucciones MMX.
Asimismo, es compatible con la librera tambin de Intel IPP (Integrated Performance
Primitives) que implementa funcionalidades a bajo nivel de procesamiento de imgenes
digitales extendiendo a IPL, con la diferencia de que IPP est altamente optimizada y que
su uso no es libre, al estar bajo licencia privada de Intel.
OpenCV fue diseada para obtener una alta eficiencia computacional, destinada
principalmente a aplicaciones en tiempo real. Uno de sus objetivos es proporcionar una
infraestructura de visin artificial sencilla para la construccin de aplicaciones sofisticadas
de forma rpida.
Est estructurada en cinco componentes principales:
CV: Se encarga del procesamiento bsico de imgenes y algoritmos de visin
artificial de alto nivel.
MLL (Machine Learning Library): Biblioteca de aprendizaje automtico de
propsito general. Incluye diversos clasificadores estadsticos y herramientas de
agrupamiento.
HighGUI: Contiene rutinas de entrada/salida y funciones para almacenar y cargar
imgenes y vdeos.
CXCore: Comprende la estructura y algoritmos bsicos.
CVAux: Contiene funciones obsoletas y algoritmos experimentales. En futuras
versiones, algunas de ellos podran migrar hacia CV.
Ingeniera en Informtica

48

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 4.1: Estructura bsica de OpenCV.

OpenCV proporciona ms de 500 funciones que abarcan una gran variedad de reas
de la visin artificial como la interaccin persona-ordenador, el rastreo de movimiento, la
identificacin de objetos, el reconocimiento facial, el reconocimiento de gestos, la robtica
y la segmentacin y reconocimiento.
Se han realizado ms de 3,5 millones de descargas de esta librera y posee una amplia
comunidad de ms de 40000 usuarios, incluyendo grandes compaas, como IBM,
Microsoft, Intel, SONY, Siemens, y Google y centros de investigacin, como Stamford,
MIT, CMU, Cambridge e INRIA.
OpenCV ha sido utilizada en muchas aplicaciones, entre las que se incluyen la unin
de imgenes por satlite, el alineamiento de imgenes, la reduccin de ruido en imgenes
mdicas, el anlisis de objetos, los sistemas de deteccin de intrusos y seguridad,
aplicaciones militares y el manejo de vehculos no tripulados por tierra, mar y aire. Fue una
parte clave del sistema de visin del robot Stanley, creado en Stamford, el cual gan el
premio DARPA Grand Challenge de carrera de robots en el desierto.
En la actualidad, con la aparicin de los procesadores multincleo, OpenCV es un
rea de desarrollo muy activo en distintas instituciones.
Utilizaremos OpenCV por ser una librera abierta, escrita en C++, muy potente,
rpida, fcil de utilizar y portable a otras plataformas.
4.2.2 Implementacin de SIFT:
La deteccin y descripcin de caractersticas locales en imgenes tienen gran
importancia en casi todas las reas de la visin por computador desde visin 3D, al
reconocimiento de objetos, localizacin y mapeo de robots o rastreo de objetos.
El algoritmo SIFT es, actualmente, uno de los mtodos de extraccin de
caractersticas invariantes ms conocido y utilizado. Desafortunadamente, a pesar de su
popularidad, David Lowe public nicamente una implementacin en formato binario
Ingeniera en Informtica

49

Algoritmo GRASP para registrado y fusin de imgenes digitales

ejecutable dejando la necesidad de contar con una librera de rutinas de SIFT de propsito
general, fcilmente enlazable a los programas de los desarrolladores.
Por esta razn, Rob Hess implement una versin, basada fielmente en el artculo de
Lowe de 2004, utilizando la librera OpenCV. En 2006, la liber y se convirti en la
primera versin del algoritmo SIFT pblicamente disponible.
La versin de Hess es una librera de cdigo abierto escrita en C, con versiones
disponibles para Linux y Windows. Su API utiliza los tipos de datos de OpenCV para
representar imgenes y matrices, facilitando la integracin de sus funciones.
Esta librera contiene cuatro componentes principales:
Deteccin de puntos clave SIFT: El principal componente de la librera. Conjunto
de funciones para detectar puntos claves SIFT. (Figura 4.2).

Figura 4.2: Deteccin de puntos clave SIFT.

Estructura Kd-tree de puntos clave: Mtodo para emparejar eficientemente los


puntos clave de varias imgenes utilizando bsqueda del vecino ms cercano.
RANSAC para calcular la transformacin: Las correspondencias encontradas entre
las imgenes pueden ser usadas para calcular analticamente la transformacin
deseada, fundamentalmente homografas. El algoritmo RANSAC es capaz de realizar
este proceso ante la posible presencia de outliers. (Figura 4.3).

Figura 4.3: RANSAC para calcular la transformacin.

Ingeniera en Informtica

50

Algoritmo GRASP para registrado y fusin de imgenes digitales

Gestin de caractersticas invariantes: Conjunto de estructuras y funciones que


permiten trabajar con caractersticas invariantes de las imgenes.
Rob Hess compar los tiempos de procesamiento, los puntos clave detectados y la
precisin de los emparejamientos y transformaciones entre las dos libreras y obtuvo
siempre resultados similares.
En este proyecto se utilizar la implementacin de Hess para extraer los puntos
invariantes de las imgenes y realizar un emparejamiento eficaz.

Ingeniera en Informtica

51

Algoritmo GRASP para registrado y fusin de imgenes digitales

Ingeniera en Informtica

52

Algoritmo GRASP para registrado y fusin de imgenes digitales

5.

METODOLOGA Y RESULTADOS

La finalidad de este proyecto es encontrar la mejor mezcla posible para un conjunto


de imgenes. GRASP es una tcnica de bsqueda metaheurstica idnea para obtener la
fusin de las imgenes deseada.
A continuacin resumimos las acciones que debemos realizar para conseguirlo:
1. Obtener el conjunto de imgenes de un determinado directorio y almacenarlas
adecuadamente para su posterior procesamiento.
2. Extraer los puntos SIFT de las imgenes y seleccionar la imagen base.
3. Realizar el registrado de imgenes entre pares de imgenes.
4. Obtener las regiones de solapamiento de ambas imgenes.
5. Calcular la diferencia entre esas regiones, guardar sus puntos SIFT y los de
contornos y ejecutar el algoritmo GRASP.
6. Seleccionar la parte de la regin de solape ms apropiada para mostrar en cada
zona dependiendo del corte obtenido.
7. Aplicar un filtro de suavizado a la zona de unin de las imgenes.
8. Crear un directorio de salida y almacenar los resultados obtenidos.

5.1 DISEO:
El proyecto est estructurado en dos clases, donde se separa las funciones de
procesamiento de las imgenes de la ejecucin del algoritmo GRASP. Estas clases son las
siguientes:
GRASP: Se encarga de implementar todo lo relativo al algoritmo GRASP.
Main: Realiza la gestin de las imgenes y calcula la homografa entre las
imgenes. Incluye funciones de matching, eleccin de imagen en cada zona del corte
y suavizado de la imagen resultante.
Tanto GRASP como main utilizan las funciones y estructuras proporcionadas por la
librera OpenCV para manejar y tratar las imgenes. Entre ellas podemos destacar las
funciones bsicas de carga y almacenamiento, operaciones de procesamiento espacial,
transformaciones y deteccin de caractersticas.
Adems el main crea instancias de objetos y realiza llamadas a funciones de clases
pertenecientes a la implementacin de SIFT en cdigo abierto, que describimos en el
captulo anterior. La funcin _sift_features() es la ms importante ya que obtiene los
puntos invariantes de la imgenes.
En la siguiente figura podemos observar el diagrama de clases correspondiente:

Ingeniera en Informtica

53

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 5.1: Diagrama de clases.

5.2 IMPLEMENTACIN:
La implementacin de este proyecto se encargar de obtener un conjunto de imgenes
de un directorio determinado. La ruta se podr indicar de forma absoluta o relativa, a partir
de la ubicacin donde se encuentre el directorio proyecto/imgenes.
Una vez almacenadas todas las imgenes, extraeremos los puntos SIFT de cada una y
elegiremos aqulla que ms cantidad posea para ser la imagen base del mosaico debido a
que ser la que ms posibilidades tenga de realizar buenos matching con las restantes.
Los emparejamientos siempre se realizarn desde la imagen que corresponda tratar a
la imagen resultante, salvo la primera vez que ser la imagen base. Tendremos que
seleccionar de manera precisa las correspondencias con ms probabilidades de ser reales
para obtener la mejor homografa posible.
Despus de lograr que las imgenes estn en un mismo sistema de referencia,
debemos obtener las regiones de solapamiento de cada imagen y realizar las operaciones
necesarias sobre ellas para hallar la imagen diferencia, los puntos SIFT y de contorno y
poder ejecutar el algoritmo GRASP.
Por ltimo, slo nos faltar decidir qu parte de la regin de solape de cada imagen se
ha de mostrar en las zonas divididas por el corte encontrado y aplicar un filtro de suavizado
en los lugares de unin de las imgenes.
Ingeniera en Informtica

54

Algoritmo GRASP para registrado y fusin de imgenes digitales

Este proceso se repite tantas veces como nmero de imgenes se suministren y al


terminar dispondremos de un directorio de salida donde se almacenarn los puntos SIFT de
las imgenes, los matching realizados, las soluciones de la ejecucin del GRASP y las
imgenes intermedias.
En los prximos apartados se desarrollarn en profundidad los pasos ms relevantes.

5.3 MATCHING Y CLCULO DE LA HOMOGRAFA:


Un paso importante en el registrado de imgenes es el emparejamiento de
caractersticas, donde establecemos la correspondencia entre los puntos clave de las
imgenes.
Consideraremos que existe un emparejamiento entre caractersticas de dos imgenes
cuando la distancia de los descriptores de los vecinos de los puntos SIFT sea menor que un
umbral fijado.
El siguiente paso es calcular la transformacin de registrado para obtener las nuevas
coordenadas de la imagen a solapar que alinee ambas imgenes en un mismo espacio de
referencia.
El clculo de la homografa prioriza la precisin al nmero de los emparejamientos y
por tanto, es conveniente utilizar un algoritmo RANSAC para seleccionar aquellas
correspondencias que tengan ms posibilidades de ser verdaderas.
RANSAC es una tcnica de remuestreo que genera soluciones candidatas con un
nmero mnimo de datos y despus las ampla con el resto que sean coherentes.
Como se explic anteriormente, RANSAC est compuesto por dos etapas que se
realizarn repetidamente:
Formular hiptesis: Se seleccionan un nmero mnimo de emparejamientos
(inferior al 35%) y se calcula la pendiente media y el valor de la altura cuando se
cruzan las rectas para estimar dos modelos diferentes representativos de la mayora de
casos que se producen de registrado de imgenes:
o Modelo de rectas paralelas: Imagen que capta la parte izquierda o derecha de
la imagen referencia. La Figura 5.2 es un ejemplo de este modelo.
o Modelo de cruce de rectas en un punto: La imagen captada es un plano ms
reducido (zoom) o ms general de la imagen referencia. En la Figura 5.3 puede
observarse un caso donde debe aplicarse el modelo de cruce de rectas en un punto.

Ingeniera en Informtica

55

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 5.2: Modelo de rectas paralelas para seleccionar emparejamientos.

Figura 5.3: Modelo de cruce de rectas en un punto para seleccionar emparejamientos.

Prueba: Comprobamos para cada emparejamiento del conjunto total si pertenece a


uno de los dos modelos anteriores y se obtendr uno de ellos si el porcentaje de
emparejamientos es superior a un umbral fijado previamente y que puede ser distinto
para cada modelo. De no ser as, se debe volver a formular la hiptesis.

Ingeniera en Informtica

56

Algoritmo GRASP para registrado y fusin de imgenes digitales

Una vez obtenido el modelo, se recalcula el parmetro de cada emparejamiento y


si supera el umbral, pertenece al modelo y se selecciona como emparejamiento final.
En caso contrario, se descarta.
En las figuras 5.2 y 5.3, se puede apreciar los emparejamientos seleccionados en
color verde y blanco respectivamente y en rojo, los descartados.
En caso de que un punto tenga un emparejamiento con otro punto que ya tuviera
uno anterior, se eliminar aqul cuya pendiente o altura cuando se cruzan las rectas
est ms prxima al umbral.
Despus de seleccionar los emparejamientos con ms opciones de ser reales, tenemos
que calcular con ellos la homografa (H). Utilizaremos la funcin cvFindHomography() de
OpenCV, que requiere un conjunto de emparejamientos entre puntos y devuelve la matriz
de homografa, estimada mediante el algoritmo DLT normalizado. La sintaxis de esta
funcin es la siguiente:
void cvFindHomography(const CvMat* srcPoints, const CvMat* dstPoints, CvMat*
H, int method=0, double ransacReprojThreshold=0, CvMat* status=Null);
- srcPoints: Coordenadas de los puntos en la imagen original.
- dstPoints: Coordenadas de los puntos en la imagen destino.
- H: La matriz de homografa 3x3 que devuelve la funcin.
- method: Mtodo utilizado para calcular la matriz de homografa. Puede ser uno de
los siguientes:
o 0 Mtodo ordinario usando todos los puntos.
o CV_RANSAC Mtodo robusto basado en RANSAC.
o CV_LMEDS Mtodo robusto basado en Least-Median.
- ransacReprojThreshold: El mximo error de reproyeccin permitido para tratar un
par de puntos como un inlier. Utilizado slo con el mtodo RANSAC.
- status: Mscara opcional de salida fijada por un mtodo robusto VC_RANSAC o
CV_LMEDS.
La funcin devuelve la transformacin de perspectiva H entre los planos de origen y
de destino que minimiza el error de reproyeccin. Si method=0, la funcin utiliza todos los
pares de puntos para calcular la homografa inicial estimada con un simple esquema de
mnimos cuadrados. Ante la presencia de outliers, es aconsejable usar uno de los dos
mtodos robustos.
Independientemente del mtodo, robusto o no, la matriz de homografa se refina
(utilizando slo los inliers en el caso de mtodos robustos) con el mtodo LevenbergMarquardt para reducir an ms el error de re-proyeccin.

Ingeniera en Informtica

57

Algoritmo GRASP para registrado y fusin de imgenes digitales

El mtodo RANSAC funciona con cualquier porcentaje de outliers pero necesita fijar
el umbral para distinguir entre inliers y outliers. En cambio, LMEDS no necesita fijarlo
pero trabaja correctamente slo cuando la presencia de inliers es superior al 50%.
La matriz de homografa se determina a escala, por lo que est normalizada de modo
que h33 =1.

En nuestro caso, los parmetros utilizados en esta funcin sern CV_RANSAC como
mtodo de clculo robusto y 10 como error de reproyeccin mximo.
Al finalizar este paso las dos imgenes se encuentran en un mismo espacio de
referencia y podemos obtener las regiones de solapamiento entre ellas.

5.4 ALGORITMO GRASP:


GRASP es una tcnica de bsqueda metaheurstica idnea para explorar todas las
posibles zonas de unin entre las imgenes.
Primeramente habr que obtener las zonas de superposicin de las imgenes, como se
muestra en la siguiente figura:

Figura 5.4: Ejemplo de zonas de superposicin en 2 imgenes.

Para posteriormente ejecutar el algoritmo sobre:


La diferencia de las regiones de solapamiento de las imgenes: Se calcular la
imagen diferencia entre ellas y mediante una umbralizacin con un valor
predeterminado, nos ofrecer aquellas reas donde se produzca ruido, errores en el
proceso de registrado o elementos mviles que ocasionan artefactos o
emborronamientos no deseables.
La Figura 5.5 muestra la imagen diferencia de las dos regiones de solapamiento
despus de someterla a un proceso de umbralizacin:

Ingeniera en Informtica

58

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 5.5: Imagen diferencia de las regiones de solapamiento anteriores.

Puntos SIFT: De ambas regiones de solapamiento, se obtienen todos los puntos


caractersticos menos los que no han servido para calcular la homografa.

Figura 5.6: Puntos SIFT de cada una de las regiones.

Puntos de contorno: Despus de aplicar el algoritmo CANNY, logramos el


conjunto de puntos pertenecientes a los contorno de las dos regiones superpuestas.

Figura 5.7: Puntos de contorno de cada una de las regiones.

Los dos ltimos puntos, son buenos indicadores para delimitar una posible zona de
unin de las imgenes.
Ingeniera en Informtica

59

Algoritmo GRASP para registrado y fusin de imgenes digitales

GRASP realizar cortes, consistentes en una lnea recta y se encargar de evaluar la


bondad de cada corte. Nos conviene que esa recta pase por la mayor cantidad de puntos
SIFT y de contorno y a su vez, divida las imgenes en dos zonas bien diferenciadas: una,
en la que las imgenes son muy parecidas y otra, en las que son muy distintas.
Como se describi en el captulo 2, GRASP es un algoritmo multi-arranque en el que
cada iteracin est compuesta por dos fases: construccin y mejora.
En la fase de construccin se asignarn los valores de los parmetros de la recta. Al
utilizar la ecuacin explcita de la recta = + , slo ser necesario fijar el valor de
la pendiente (a) y del trmino independiente (b).
Durante la fase de mejora se realizar una bsqueda local del vecindario. En caso de
encontrarse una recta que mejore la solucin de la fase anterior, se reemplazar sta y se
volver a repetir el proceso. Si ningn vecino mejora el corte actual, se ha alcanzado un
ptimo local y termina.
Despus de cada iteracin se actualiza la solucin si se observa que es mejor que la
conseguida hasta ese momento. El pseudocdigo del algoritmo GRASP ser el que se
muestra a continuacin:
Procedimiento GRASP (Img_Diferencia, Puntos SIFT de las 2 regiones, Puntos de
contorno de las 2 regiones)
Q_global 0;
Para i = 1,, Max_Iteraciones Hacer
a_local, b_local, Q_local Fase de construccin (lneas de Hough);
a_local, b_local, Q_local Fase de mejora (a_local,b_local, Q_local);
Si Q_local > Q_global Entonces
a_global a_local;
// Actualizar solucin
b_global b_local;
// Actualizar solucin
FinSi
FinPara
Retornar a_global, b_global; // Solucin final
FinProcedimiento
Figura 5.8: Pseudocdigo de nuestro algoritmo GRASP.

Al finalizar el algoritmo, tendremos una recta y las imgenes divididas en 2 partes,


para posteriormente seleccionar cules de ellas forman parte de la imagen resultante.
5.4.1 Funcin de evaluacin:
La funcin de evaluacin est definida en tres partes, una por cada propiedad a
considerar. Por tanto, se definen las siguientes mtricas:

Ingeniera en Informtica

60

Algoritmo GRASP para registrado y fusin de imgenes digitales

- Mtrica para obtener la calidad del corte con respecto a los puntos SIFT:
La calidad del corte vendr determinada por la distancia media de los puntos SIFT a
la recta.
En Geometra, la distancia eucldea de un punto a una recta es la longitud del
segmento perpendicular trazado desde el punto a la recta, es decir, la distancia ms
corta entre ese punto y un punto de la recta.
Sea P un punto, r una recta y M un punto de esa recta, la distancia entre P y r est
descrita por la siguiente frmula:
= (| |)
(, ) =

(5.1)

Grficamente queda representada por la lnea de color azul de la siguiente figura:

Figura 5.9: Distancia de un punto P a la recta r.

Para una recta definida por su ecuacin reducida = + y un punto P de la


forma (xP,yP), la ecuacin resultante ser:
(, ) =

| + |
2 + 1

(5.2)

Como queremos obtener la distancia media, debemos sumar todas estas distancias y
dividirlas por el nmero de puntos SIFT, como se indica en la siguiente expresin:

(
, ) =

=1 ( , )

(5.3)

Esta distancia media es dependiente del tamao de la imagen y por tanto, se


refinar en funcin de un porcentaje de la longitud de la diagonal de la imagen para
alcanzar el resultado final:
_(, ) = 100 min(100,100

Ingeniera en Informtica

( , )
0.4

(5.4)

61

Algoritmo GRASP para registrado y fusin de imgenes digitales

- Mtrica para obtener la calidad del corte con respecto a los puntos de
contorno y a la diferencia de las regiones de solape:
Al definir esta mtrica pretendemos que el corte consiga dividir la imagen en 2
partes lo ms grande y diferenciadas posibles.
En el caso de los puntos de contorno se persigue el borde que concentra a todos
ellos en una parte de la imagen, ya que es frecuente fotografas donde aparece el cielo
o el mar o algn otro elemento donde no existen contornos y es til encontrar esa
lnea que los separa para realizar un buen corte.
Ocurre algo parecido con la imagen diferencia de las regiones de solape.
Intentaremos separar las zonas coincidentes de las regiones de solape de las que no
son iguales, procurando siempre que el corte maximice las zonas comunes a ambas
regiones y minimice las distintas.
Por tanto, utilizaremos la misma mtrica para estimar la bondad del corte con
respecto a los puntos de contorno y a la diferencia entre las regiones superpuestas:
_(, ) =

|% % |
100
( % , % )

(5.5)

_(, ) =

|% % |
100
( % , % )

(5.6)

Donde,
%

=

(5.7)

Una vez definidas las mtricas y despus de realizar mltiples pruebas sobre distintos
conjuntos de imgenes, les asignaremos de forma emprica los pesos de 0.35, 0.15 y 0.5
respectivamente, para ponderar su influencia en el valor final de la funcin de evaluacin.
La diferencia entre las imgenes debe ser la de mayor contribucin porque se encarga de
reflejar el ruido y los elementos mviles, que es lo que realmente buscamos eliminar. El
peso de la mtrica de los puntos de contorno ser el menor ya que si aparecen bordes
repartidos por toda la imagen, ser responsabilidad de los puntos SIFT ofrecer un corte
conveniente.

Ingeniera en Informtica

62

Algoritmo GRASP para registrado y fusin de imgenes digitales

5.4.2 Fase de construccin:


En esta fase se establecen los valores de la pendiente y del trmino independiente de
la recta, la cual representar el corte a realizar.
El algoritmo GRASP se reiniciar un nmero fijo de iteraciones. La fase de
construccin en los primeros dos tercios de iteraciones ser diferente del ltimo tercio.
En los primeros dos tercios se forma una lista restringida de candidatos con las lneas
obtenidas al aplicar la transformada de Hough y a los parmetros de la recta se les asigna
los valores de la pendiente y del trmino independiente de una recta elegida aleatoriamente
de entre ellas.
En el ltimo tercio los valores de los parmetros de la recta sern completamente
aleatorios. El valor de la pendiente estar comprendido en el rango de [-5,5] y el trmino
independiente ser un valor dentro del intervalo [-altura de la regin de solape, 2altura de
la regin de solape].
Con estas dos formas de realizar la fase de construccin, ampliamos el espacio de
bsqueda de la solucin permitiendo que no se restrinja slo a las zonas cercanas a un
borde.
Una vez que tengamos los valores de a y b, calcularemos la calidad de ese corte
segn la funcin de evaluacin descrita en el apartado 5.4.1.
A continuacin se muestra el pseudocdigo de esta fase:
2

Si i < 3 Max_Iteraciones Entonces

RCL
Crear RCL (lneas de Hough);
recta
Obtener elemento aleatorio (RCL);
a_local
Obtener valor de la pendiente (recta);
b_local
Obtener valor del trmino independiente (recta);
lneas de Hough
Eliminar (recta);

Sino
a_local
b_local

Obtener valor aleatorio entre [-5,5];


Obtener valor aleatorio entre [-altura de la regin de solape,
2altura de la regin de solape];

FinSi
Q_SIFT
Calcular mtrica Q_SIFT(a,b);
Q_CANNY Calcular mtrica Q_CANNY(a,b);
Q_Dif Calcular mtrica Q_Dif(a,b);
Q_local Calcular calidad del corte(Q_SIFT,Q_CANNY,Q_Dif);
Retornar a_local, b_local, Q_local;
Figura 5.10: Pseudocdigo de la fase de construccin de nuestro GRASP.

Ingeniera en Informtica

63

Algoritmo GRASP para registrado y fusin de imgenes digitales

5.4.3 Fase de mejora:


En la fase de mejora se realiza una bsqueda local a partir de la solucin obtenida en
la fase de construccin con la intencin de mejorarla y alcanzar un ptimo local.
Exploraremos los vecinos cercanos a la solucin para comprobar si esas rectas
proporcionan un mejor corte. Los vecinos considerados son todas aquellas combinaciones
que varan la pendiente un 5% y el trmino independiente +/- 0.5, pudiendo adems, la
pendiente cambiar de signo si se aproxima a 0.
En cada iteracin calcularemos la funcin objetivo para todas las combinaciones
anteriores y se actualizar la solucin cuando encontremos una recta que proporcione un
mejor corte. Este proceso termina cuando se alcanza un ptimo local y ninguno de los
vecinos mejora la recta obtenida hasta ese momento.
El pseudocdigo de la fase de mejora es el siguiente:
Mientras Q_local mejore Hacer
a, b
Todas las combinaciones de a_local y b_local variando un 5% y +/-0.5
sus valores respectivos;
Q_SIFT
Calcular mtrica Q_SIFT(a,b);
Q_CANNY Calcular mtrica Q_CANNY(a,b);
Q_Dif Calcular mtrica Q_Dif(a,b);
Q_local Calcular calidad del corte(Q_SIFT,Q_CANNY,Q_Dif);
Si Q_local mejora Entonces
a_local a; // Se reemplaza la solucin actual
b_local b; // Se reemplaza la solucin actual
FinSi
FinMientras
Retornar a_local, b_local, Q_local;
Figura 5.11: Pseudocdigo de la fase de mejora de nuestro GRASP.

Al ser GRASP una tcnica multi-arranque esta fase se llevar a cabo un nmero
determinado de veces, realizando una bsqueda local en diferentes espacios de la imagen.
Para evitar que el coste computacional de una de estas iteraciones sea demasiado elevado
se ha limitado a cien las ocasiones que puede mejorar una recta y sustituirse por uno de sus
vecinos.
5.4.4 Clculo de la complejidad del algoritmo GRASP:
La complejidad del algoritmo GRASP vendr determinada por el coste
computacional de las fases de construccin y de mejora, ya que las veces que se reinicia el
algoritmo y las iteraciones del bucle de la fase de mejora estn limitadas a 36 y 100 y por
tanto, se tratan como constantes que multiplican al orden obtenido en estas fases:
Ingeniera en Informtica

64

Algoritmo GRASP para registrado y fusin de imgenes digitales

() = 36 ( + 100 )

(5.8)

Las fases de construccin y de mejora consisten bsicamente en calcular la funcin


objetivo con la nica diferencia que en la fase de mejora, este proceso se repite para todos
los vecinos. El nmero de veces que se realiza puede ser 8 17, por lo que se tratar
tambin como una constante.
La funcin objetivo, como explicamos anteriormente, est definida por tres mtricas y
su orden de complejidad ser la suma de los costes de cada una:
( ) = (_()) + (_()) + (_())

(5.9)

El orden de complejidad de la mtrica que utiliza los puntos SIFT es 2 , siendo n el


nmero de descriptores que posee cada imagen.
A su vez, el orden de complejidad de la mtrica que trabaja con los puntos de
contorno y la imagen diferencia es 2 , donde n son las dimensiones de las regiones de
solapamiento de las imgenes.
El valor final de la funcin objetivo se calcula mediante la multiplicacin de unos
pesos sobre estas mtricas, pero al tratarse de operaciones elementales no suponen un coste
computacional adicional y podemos afirmar que el orden de complejidad de la funcin
objetivo y por consiguiente del algoritmo GRASP, es 2 .

5.5 MTODO DE ELECCIN DE IMAGEN EN CADA ZONA DEL


CORTE:
Despus de ejecutar el algoritmo GRASP, se obtiene una recta que divide en dos las
regiones de solape de ambas imgenes y debemos determinar la imagen correspondiente a
cada zona.
En todos los casos tendremos dos posibilidades:

- Mostrar en la zona A la parte de la regin de solape perteneciente a la imagen 1 y


en la zona B mostrar la parte de la imagen 2. (Figura 5.12).

Figura 5.12: Opcin 1 de eleccin de corte.

Ingeniera en Informtica

65

Algoritmo GRASP para registrado y fusin de imgenes digitales

- O al revs, la zona A ser la parte de la regin de solape perteneciente a la imagen 2


y la zona B ser la parte perteneciente a la imagen 1. (Figura 5.13).

Figura 5.13: Opcin 2 de eleccin de corte.

Hay veces que elegir cul es la imagen ms conveniente en cada zona es evidente
pero otras veces no est tan claro determinar qu imagen en cada zona permitir obtener
un mejor resultado final. Es por esto por lo que definimos un mtodo que calcular cul de
las dos opciones produce un menor impacto visual negativo.
Este mtodo considerar las dos posibilidades que se pueden producir en la regin de
solapamiento entre las imgenes y sumar todos los pxeles en los que coincidan las
imgenes y a su vez, restar aqullos en los que no coincidan. Si no existe ninguna imagen
contigua a la regin de solape, esos pxeles no se computan al igual que sucede con los del
corte, ya que sabemos que aqu las imgenes siempre van a ser distintas.
En la siguiente figura se observa la forma de proceder en cada una de las dos
posibilidades:

Figura 5.14: Mtodo de eleccin del corte.

Una vez concluya este proceso, se elegir la opcin cuyo resultado sea mayor.

5.6 FILTRO DE SUAVIZADO:


Los filtros son operaciones que se aplican sobre los pxeles de una imagen digital
para obtener una imagen ms adecuada para un propsito especfico.

Ingeniera en Informtica

66

Algoritmo GRASP para registrado y fusin de imgenes digitales

Nuestra intencin ser suavizar o disminuir la transicin entre las imgenes, alterando
los valores de los pxeles adyacentes a la zona de la regin de solape superpuesta. Por
tanto, deberemos disear un filtro espacial paso bajo que consiga hacer ms borrosa esa
unin, atenuando los bordes y dejando inalterados el contraste y la intensidad media.
Basndonos en un filtro lineal unidimensional 1-D, definimos un entorno de vecindad
de veinte pxeles respecto a las zonas de unin de las dos imgenes y el valor de estos
pxeles ser un promedio de los mismos, que calcularemos mediante la siguiente frmula:
= + (1 )

(5.10)

Donde es el valor del pxel, w es un peso que aumentar linealmente conforme se


aleje a la zona de unin y es la media de los valores de los veinte pxeles evaluados

( =

20
=1
20

).

Los valores de los pesos para los diez pxeles que existen en cada sentido oscilan
entre 0 y 0.9, incrementndose 0.1 cada vez.
Una particularidad es que en la zona donde se produce el corte obtenido por el
algoritmo GRASP, realizaremos dos pasadas de este filtro, aplicndolo en las dos
direcciones (horizontal y vertical).
Un ejemplo del resultado obtenido al aplicar el filtro de suavizado es el siguiente:

Figura 5.15: Resultado de aplicar el filtro de suavizado.

5.7 RESULTADOS:
Se debe escribir el siguiente comando para ejecutar el programa:
sift.exe ruta_imgenes ordenacin verbose
- Ruta_imgenes: Es la ruta absoluta o relativa (a partir de: la ubicacin donde se
encuentre el directorio proyecto/imgenes).
- Ordenacin: Puede ser ord, si queremos que la unin de las imgenes siga un
orden segn el nmero de puntos SIFT que contengan las imgenes o no_ord, si las
imgenes se van obteniendo conforme se suministraron.
Ingeniera en Informtica

67

Algoritmo GRASP para registrado y fusin de imgenes digitales

- Verbose: Valor que indica los resultados que se quieren visualizar:


o 0 Slo muestra la composicin de imgenes final.
o 1 Muestra los puntos SIFT de las imgenes y la composicin de imgenes
final.
o 2 Muestra los emparejamientos entre las imgenes y la composicin de
imgenes final.
o 3 Se visualiza las composiciones intermedias y la final.
o 4 Muestra las iteraciones del algoritmo GRASP y la composicin de
imgenes final.
o 5 Muestra el resultado del algoritmo GRASP y la composicin de imgenes
final.
o 6 Se visualiza todo.
A continuacin mostraremos los resultados obtenidos en dos casos de prueba. Los
ejemplos se han realizado sin ordenacin de las imgenes.
Ejemplo 1: Creacin de una panormica para conseguir que la imagen tenga una
mayor resolucin.
Partimos de la captura de las siguientes 5 imgenes y ejecutamos sift.exe Edificio
no_ord 6:

Ingeniera en Informtica

68

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 5.16: Captura de imgenes para la creacin de una panormica.

Despus de extraer los puntos SIFT de todas las imgenes (podemos ver un ejemplo
en la Figura 5.17) resulta que la que ms posee y por tanto, debe ser considerada la
imagen base es edificio2.

Ingeniera en Informtica

69

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 5.17: Puntos SIFT de la imagen 'edificio1'.

El siguiente paso ser realizar el matching, empezando por las imgenes edificio1
y edificio2.

Figura 5.18: Matching entre las imgenes 'edificio1' y 'edificio2'.

Posteriormente se obtendr las regiones de solapamiento y los puntos SIFT y de


contorno de esas regiones para ejecutar el algoritmo GRASP. El resultado final
obtenido se observa en la siguiente figura:

Ingeniera en Informtica

70

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 5.19: Ejecucin de GRASP para 'edificio1' y 'edificio2'.

Se puede apreciar la diferencia entre imgenes por el color blanco, los puntos SIFT
y de contorno de la imagen edificio1, por los colores rojo y azul respectivamente y
los puntos SIFT y de contorno de la imagen base o edificio2, por los colores
amarillo y verde. El corte obtenido despus de realizar todas las iteraciones es el
indicado por la lnea roja.
Posteriormente habr que elegir la imagen perteneciente a cada zona, realizar la
fusin de ellas y aplicar el filtro de suavizado y tendremos el siguiente resultado:

Figura 5.20: Composicin con 2 imgenes.

Este proceso se repite para las dems imgenes. Las ejecuciones de GRASP y las
composiciones obtenidas para las imgenes restantes se muestran a continuacin:

Ingeniera en Informtica

71

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 5.21: Ejecucin de GRASP para 'edificio3' y la composicin anterior.

Figura 5.22: Composicin con 3 imgenes.

Figura 5.23: Ejecucin de GRASP para 'edificio4' y la composicin anterior.

Ingeniera en Informtica

72

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 5.24: Composicin con 4 imgenes.

Figura 5.25: Ejecucin de GRASP para 'edificio5' y la composicin anterior.

Figura 5.26: Composicin final.

Ingeniera en Informtica

73

Algoritmo GRASP para registrado y fusin de imgenes digitales

Ejemplo 2: Creacin de una composicin de imgenes para eliminar ruido o


elementos indeseados.
En este caso tenemos las siguientes imgenes y se ejecuta el comando sif.exe Esii
no_ord 5:

Figura 5.27: Captura de imgenes para realizar la composicin.

Pretendemos eliminar aquellos objetos mviles (como los aparecidos en la imagen


esii2) que no queremos que aparezcan en nuestra composicin final.
La imagen base ser esii1 y los resultados obtenidos son los siguientes:

Figura 5.28: Ejecucin de GRASP para 'esii1' y 'esii2'.

Ingeniera en Informtica

74

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 5.29: Composicin con 2 imgenes.

Figura 5.30: Ejecucin de GRASP para 'esii3' y la composicin anterior.

Figura 5.31: Composicin con 3 imgenes.

Se observa como al realizar la composicin conseguimos eliminar un coche que


apareca cortado por la mitad.

Ingeniera en Informtica

75

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 5.32: Ejecucin de GRASP para 'esii4' y la composicin anterior.

Figura 5.33: Composicin final.

Con esta ltima imagen, eliminamos las personas que aparecan en la parte derecha
de la imagen y obtenemos una composicin final libre de elementos indeseados.

Ingeniera en Informtica

76

Algoritmo GRASP para registrado y fusin de imgenes digitales

6.

CONCLUSIONES Y PROPUESTAS

La creacin de fotografas panormicas a partir de mltiples instantneas de modo


que compartan zonas comunes entre ellas es una tcnica muy utilizada en la actualidad y a
la que se le exige cada vez ms mejores resultados.
En este proceso intervienen varias etapas como el registrado, la unin y la mezcla de
imgenes que provocan problemas de alineamiento, ganancia, variaciones de exposicin y
aparicin de artefactos necesitando desarrollar diversos algoritmos para solventarlos.
La caracterstica comn de todos estos procedimientos es que estn basados en el
dominio espacial, tratando los pxeles de la imagen para lograr el fin deseado en cada caso
y por lo general, obtienen buenos resultados aunque haya veces que sea necesaria la
intervencin del usuario. Sin embargo, no existe una tcnica que realice la fusin de las
imgenes desde un punto de vista de la informacin que contienen las imgenes,
resolviendo de manera conjunta todos los tipos de problemas.
Este proyecto intenta proporcionar una solucin aproximada de acuerdo a este ltimo
planteamiento. Mediante la utilizacin de una tcnica de bsqueda metaheurstica se
pretende encontrar la zona de unin entre las imgenes que consiga hacer ms leve la
transicin entre ellas.
Primeramente ha de realizarse el registrado de imgenes entre un par de imgenes,
hallar las regiones de solapamiento y posteriormente, ejecutar GRASP sobre la imagen
diferencia y los puntos SIFT y de contorno de stas. El algoritmo se divide en dos etapas:
construccin y mejora.
En la fase de construccin se determina el lugar por dnde comenzar la bsqueda.
Estos emplazamientos sern un conjunto de lneas que identifican las formas existentes en
la imagen (lneas de Hough) y adems otras aleatorias.
En la fase de mejora se realiza una exploracin en las proximidades de los lugares
anteriores para encontrar zonas prometedoras por donde unir las imgenes.
Resumidamente, durante esta fase se compara la calidad del corte con la de sus
vecinos y si se encuentra una mayor, se reemplaza por esa. De no encontrarse ninguna
mayor, el proceso termina. La calidad del corte est fijada por una funcin objetivo
definida en tres partes que contribuyen con diferentes pesos en el resultado final.
Este proceso se repite un nmero fijo de veces devolviendo el mejor corte posible.
Despus se emplea un mtodo para obtener la fusin de imgenes que ocasione una
percepcin visual ms positiva y finalmente, se aplica un filtro de suavizado para reducir
las distorsiones.

Ingeniera en Informtica

77

Algoritmo GRASP para registrado y fusin de imgenes digitales

En definitiva, englobar en un mismo proyecto la resolucin de todas las tcnicas


existentes especficas para cada tipo de problema es una tarea muy ambiciosa y por tanto,
no podemos afirmar que los resultados obtenidos sean tan precisos como los alcanzados
con los otros algoritmos pero s se pueden considerar buenas aproximaciones.
Sin embargo, ocasionalmente se producen una serie de deficiencias que no permiten
alcanzar la solucin esperada:
Las imgenes con cambios de iluminacin, orientacin o si contienen ruido
provocan que la extraccin de caractersticas invariantes sea errnea debido a las
limitaciones de la transformada SIFT.
En imgenes con escaso nmero de puntos SIFT o pocas correspondencias entre
ellas es ms complicado realizar un matching correcto y puede producirse problemas
de registrado.
El corte obtenido mediante un modelo de rectas hace difcil encontrar la zona de
unin ms apropiada entre las imgenes ya que es poco frecuente que una lnea
represente la mejor zona de fusin de las imgenes.
Al evaluarse el corte a travs de mtricas con respecto a la imagen diferencia y a los
puntos de contorno de las regiones de solape puede darse el caso de estar muy
dispersos por toda la imagen y el corte tender a situarse en los lmites de ella.
Tambin hay situaciones donde las diferencias entre las regiones de solapamiento
estn concentradas en unos pocos lugares y al aspirar a incluirlas en un nico corte,
ste resulta no ser el ms idneo.
Por ltimo, existen casos extremos donde el corte obtenido causa que el mtodo
diseado para elegir la parte de cada regin de solape que se mostrar en cada zona
no retorne el resultado ms indicado.
Como conclusin, cabe resaltar que los resultados obtenidos son dependientes del
conjunto de imgenes proporcionado, pudiendo ofrecer desde soluciones casi ptimas a
otras que no son las ms deseables.

6.1 POSIBLES MEJORAS Y AMPLIACIONES:


Las posibles mejoras o ampliaciones se deben centrar en las deficiencias redactadas
anteriormente, intentando que la mejora de una de ellas o, si es posible, de todas afecten
positivamente al resultado final.
Por tanto, se proponen mejoras en cada una de las etapas realizadas:
Extraccin de caractersticas invariantes: Como ya se ha mencionado previamente,
la transformada SIFT es totalmente invariante al escalado y la rotacin pero
parcialmente a los cambios de iluminacin y orientacin. Estas limitaciones pueden
subsanarse utilizando el mtodo de comparacin de imgenes totalmente invariante
Ingeniera en Informtica

78

Algoritmo GRASP para registrado y fusin de imgenes digitales

respecto a los cuatro parmetros, denominado Affine-SIFT (ASIFT) propuesto por


Jean-Michel Morel y Guoshen Yu. Este mtodo permite identificar fielmente aquellas
caractersticas que han experimentado grandes transformaciones por medio de un
nuevo parmetro: la inclinacin de la transicin. Mtodos como SIFT, Harris-Affine
and Hessian-Affine y MSER apenas consiguen valores de 2, 2.5 y 10,
respectivamente para este parmetro mientras que ASIFT puede manejar
inclinaciones superiores a 36.
En la siguiente figura se observa en la parte superior los 35 emparejamientos
obtenidos con ASIFT y en la parte inferior los 10 conseguidos con SIFT:

Figura 6.1: Comparacin de resultados obtenidos por ASIFT y SIFT.

Adems, actualmente existen otras implementaciones de SIFT que son capaces de


acelerar la extraccin de puntos clave, como son los casos de SiftGPU desarrollada
por Changchang Wu y de SURF (Speed Up Robust Features) ideada por Herbert Bay,
Tinne Tuytelaars y Luc VanGool.
En el primer caso ese aumento de la velocidad proviene de aprovechar las
capacidades de procesamiento de la tarjeta grfica, utilizndose en aplicaciones de
Ingeniera en Informtica

79

Algoritmo GRASP para registrado y fusin de imgenes digitales

tiempo real y en el segundo, de la simplificacin de los mtodos involucrados en el


clculo de los descriptores.
Registrado de imgenes: Es posible mejorar el registrado de imgenes
seleccionando de forma ms efectiva los emparejamientos que se utilizarn para
calcular la homografa. Esto lo conseguiremos fijando ms acertadamente los valores
de los parmetros distancia umbral, tanto para la pendiente media como para la altura
del punto donde se cruzan las rectas, umbral de inliers y nmero de intentos del
algoritmo RANSAC.
Algoritmo GRASP: En la ejecucin del algoritmo GRASP es posible realizar las
siguientes mejoras:
o Naturaleza del propio algoritmo: GRASP es una tcnica de bsqueda
metaheurstica que no posee estructuras de memoria por lo que cada iteracin no
tiene en cuenta las observaciones previas. Se puede solucionar de diversas
maneras, entre las que destacamos:
GRASP reactivo (Reactive GRASP): Los valores de la lista de candidatos se
obtienen de forma dinmica de acuerdo a la solucin encontrada en las
iteraciones anteriores.
Vecindades variables: Basado en la proximidad de las buenas soluciones.
Reencadenamiento de trayectorias (Path-relinking): Las soluciones
generadas en cada iteracin se reencadenan con otras soluciones de un
conjunto lite.
o Considerar diferentes atributos para el algoritmo GRASP: Es evidente que la
imagen diferencia es un atributo esencial para calcular la zona de unin entre las
imgenes pero los puntos SIFT y de contorno, aunque son muy tiles, pueden ser
sustituidos por otros con los que se obtengan mejores soluciones.
o Cambiar el modelo de obtencin del corte: En vez de un modelo basado en una
lnea recta, sera interesante estudiar un modelo diferente basado en una lnea
recta definida por tramos, ms fcil de ajustar a los contornos que aparecen en las
imgenes.
Otra posible modificacin sera realizar varios cortes sobre una misma regin
de solapamiento con el fin de encontrar el mayor nmero de zonas diferentes pero
stas del menor tamao posible.
o Definir una funcin objetivo distinta: Las mtricas utilizadas en este proyecto
pueden ser reemplazadas por otras que estn mejor definidas para el propsito que
se pretende lograr. Adems es posible que la variacin en la asignacin de los
pesos produzca mejores resultados.
Mtodo de mezcla: Plantear otro mtodo alternativo para elegir qu parte de cada
regin de solape debe mostrarse en las zonas producidas por el corte encontrado.

Ingeniera en Informtica

80

Algoritmo GRASP para registrado y fusin de imgenes digitales

Filtro de suavizado: El diseo de un filtro diferente, ya sea en la definicin del


entorno de vecindad o en la frmula del clculo es probable que provoque mejores
resultados estticos.
Una posible ampliacin podra ser aplicar un anlisis multirresolucin o alguna
tcnica de filtrado posterior, como por ejemplo un filtro multi-banda, a la imagen final para
que se reduzca el impacto visual negativo del corte obtenido.

Ingeniera en Informtica

81

Algoritmo GRASP para registrado y fusin de imgenes digitales

Ingeniera en Informtica

82

Algoritmo GRASP para registrado y fusin de imgenes digitales

7.

BIBLIOGRAFA

Agarwala, A., Agrawala, M., Cohen, M., Salesin, D. y Szeliski, R. (2006). Photographing
Long Scenes with Multi-Viewpoint Panoramas. ACM Transactions on Graphics, 25.
Bay, H., Ess A., Tuytelaars, T. y Van Gool, L. (2008). SURF: Speeded Up Robust
Features. Computer Vision and Image Understanding (CVIU), 110.
Blum, C., y Roli, A. (2003). Metaheuristics in Combinatorial Optimization: Overview and
Conceptual Comparison. ACM Computing Surveys.
Bradski, G., y Kaehler, A. (2008). Learning OpenCV. Computer Vision with the OpenCV
Library. O' Reilly Media.
Canny J. F. (1986). A Computacional Approach to Edge Detection. IEEE Transaction on
Pattern Analysis and Machine Intelligence.
Cordn, O., Damas, S., y Santamara, J. (2009). Revisin del estado del arte en mtodos de
registrado de imgenes basados en metaheursticas. Congreso Espaol sobre
Metaheursticas, Algoritmos Evolutivos y Bioinspirados (MAEB09). Mlaga, Espaa.
Changchang, W. (). SiftGPU: A GPU Implementation of Scale Invariant Feature
Transform (SIFT). University of North Carolina at Chapel Hill.
Davis, J. (1998). Mosaics of Scenes with Moving Objects, IEEE Computer Society
Conference on Computer Vision and Pattern Recognition (CVPR 98).
De la Escalera Hueso, Arturo. (2001) Visin por computador. Fundamentos y mtodos.
Pearson Educacion S. A. Madrid, Espaa.
Derpanis, K. G. (2010). Overview of the RANSAC Algorithm.
Dubrofsky, E. (2009). Homography Estimation. Vancouver, Canad.
Escolano, F., Cazorla, M. A., Alfonso, M I., Colomina, O. y Lozano, M. A. (2003).
Inteligencia Artificial: Modelos, Tcnicas y reas de Aplicacin. Thomson Editores U. de
Alicante.
Esqueda Elizondo, J. J. y Palafox Maestre L. E. (2005). Fundamentos de procesamiento de
imgenes. Universidad Autnoma de Baja California. Mxico.
Feo, T. A. y Resende M. G. C. (1989). A Probabilistic heuristic for a computationally
Difficult Set. Covering Problem. Elsevier Science Publishers B.V.
Feo T. A. y Resende M. G. C. (1995). Greedy Randomized Adaptive Search Procedures.
Kluwer Academic Publishers, Boston.

Ingeniera en Informtica

83

Algoritmo GRASP para registrado y fusin de imgenes digitales

Fischler, M. A. y Bolles, R. C. (1981). Random Sample Consensus: A Paradigm for Model


Fitting with Applications to Image Analysis and Automated Cartography. Communications
of the ACM, 24.
Glover, F. y Kochenberger, G. A. (2003). Handbook of Metaheuristics. Kluwer Academic
Publishers.
Goldman, D. B., Chen, J. H. (2005). Vignette and Exposure Calibration and
Compensation. Symposium for Computational Photography and Video. Boston, MA.
Gonzalez Marcos A., Martnez de Pisn F. J., Perna Espinoza A. V., Alba Elas F.,
Castejn Limas M., Ordieres Mer J. y Vergara Gonzlez E. (2006). Tcnicas y algoritmos
bsicos de visin artificial. Universidad de La Rioja. Servicio de Publicaciones.
Gonzlez, R. C. y Woods, R. E. (1996). Tratamiento digital de imgenes. Addison-Wesley
Iberoamericana. Wilmington, Delaware, EEUU.
Hess, R. (2010). An Open-Source SIFT Library. School of EECS, Oregon State University.
USA.
Lowe, D. G. (2004). Distinctive Image Features from Scale-Invariant Keypoints.
International Journal of Computer Vision.
Lowe, D. G. (1999). Object recognition from local scale-invariant features. International
Conference on Computer Vision. Corfu, Grecia.
Martn Fernndez M. (2002). Tcnicas Clsicas de Segmentacin de Imagen.
Morel J. M. y Yu G. (2009). ASIFT: A New Framework for Fully Affine Invariant Image
Comparison. CMLA y CMAP, Francia.
OpenCV. http://opencv.willowgarage.com/
Passariello, G. y Mora, F. (1995). Imgenes mdicas: Adquisicin, anlisis, procesamiento
e interpretacin. Equinoccio. Ediciones de la Universidad Simn Bolivar.
Petrusa Grau, J. F. (2010). Tcnicas de anlisis de imagen: Aplicaciones en Biologa (2
Edicin). Universidad de Valencia.
Rousseeuw, P. J. (1984). Least Median of Squares Regression. Journal of the American
Statistical Association, 79.
Snchez Prez J. (). Visin tridimensional. Facultad de Informtica Universidad de Las
Palmas de Gran Canaria.
Santamara Lpez, J. (2006). Scatter Search para el Registrado de Imgenes 3D:
Aplicacin en Antropologa Forense.
Ingeniera en Informtica

84

Algoritmo GRASP para registrado y fusin de imgenes digitales

Shum, H. Y. y Szeliski, R. (1998). Construction of Panoramic Image Mosaics with Global


and Local Alignment. IJCV.
Stroustrup, Bjarne (1997). The C++ programming language (3 Edicin). AddisonWesley. Massachusetts, EEUU.
Szeliski, R. (2006). Image Alignment and Stitching: A Tutorial. Foundations and Trends in
Computer Graphics and Vision, 2.
Uyttendaele, M., Eden, A. y Szeliski, R. (2001). Eliminating Ghosting and Exposure
Artifacts in Image Mosaics. In Computer Vision and Pattern Recognition (CVPR 01).
Vlez Serrano J. F., Moreno Daz A. B., Snchez Calle, A. y Esteban Snchez-Marn J. L.
(2003). Visin por computador. Dykinson S.L.
Zitov, B. y Flusser, J. (2003). Image registration methods: a survey. Elsevier B. V.

Ingeniera en Informtica

85

Algoritmo GRASP para registrado y fusin de imgenes digitales

Ingeniera en Informtica

86

Algoritmo GRASP para registrado y fusin de imgenes digitales

ANEXO
En este anexo se reflejan los resultados obtenidos al ejecutar el programa sobre
diversas colecciones de imgenes.
Estos conjuntos poseen diferentes caractersticas y contiene distinto nmero de
imgenes capturadas, ordenadas de forma arbitraria en cada caso. Las imgenes han sido
tomadas desde mltiples puntos de vista y en condiciones propicias para que sus
propiedades difieran entre ellas.
Evaluaremos la extraccin de puntos SIFT que se obtiene con la implementacin de
Rob Hess y comprobaremos que esos descriptores se corresponden con caractersticas
invariantes a escalado y rotacin.
Tambin prestaremos atencin a que se realice correctamente la seleccin de los
emparejamientos, determinando el modelo ms adecuado y eligiendo las correspondencias
verdaderas y desechando los outliers. Esto propiciar un mejor matching y que las
transformaciones efectuadas entre cada par de imgenes para adecuarlas a un mismo
sistema de referencia ofrezcan un resultado ms realista.
Adems, observaremos que se calcula correctamente las regiones de solapamiento, la
diferencia entre ellas y la deteccin de bordes y puntos SIFT que contiene cada una de
ellas.
Por ltimo, valoraremos el funcionamiento del algoritmo GRASP, analizando los
diferentes cortes que proporciona en cada iteracin, estudiando que las mtricas cumplen
con su objetivo de otorgar una mayor calidad a un mejor corte y comprobando que el corte
resultante es el ms conveniente. Asimismo, examinaremos que el mtodo de seleccin de
imagen en cada zona del corte sea el idneo.
Para finalizar slo nos queda apreciar si el filtro de suavizado que hemos aplicado
realmente consigue disminuir el efecto visual negativo que produce la transicin entre las
imgenes.
A continuacin se mostrar, nicamente, las imgenes de partida y las composiciones
finales resultantes de cada caso de prueba, obviando los pasos intermedios, que estn
disponibles en el CD que se adjunta con esta memoria:

Ingeniera en Informtica

87

Algoritmo GRASP para registrado y fusin de imgenes digitales

Consistorio:

Figura 0.1: Captura de imgenes del Consistorio.

Figura 0.2: Composicin final del Consistorio.

Ingeniera en Informtica

88

Algoritmo GRASP para registrado y fusin de imgenes digitales

Corte Ingls:

Figura 0.3: Captura de imgenes del CorteIngles.

Figura 0.4: Composicin final del CorteIngles.

Ingeniera en Informtica

89

Algoritmo GRASP para registrado y fusin de imgenes digitales

Facultad Relaciones Laborales y Recursos Humanos:

Figura 0.5: Captura de imgenes de Derecho.

Figura 0.6: Composicin final de Derecho.

Ingeniera en Informtica

90

Algoritmo GRASP para registrado y fusin de imgenes digitales

Gimnasio de la Facultad de Educacin:

Figura 0.7: Captura de imgenes del Gimnasio.

Ingeniera en Informtica

91

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 0.8: Composicin final del Gimnasio.

Paraninfo:

Figura 0.9: Captura de imgenes del Paraninfo.

Ingeniera en Informtica

92

Algoritmo GRASP para registrado y fusin de imgenes digitales

Figura 0.10: Composicin final del Paraninfo.

Ingeniera en Informtica

93

You might also like