Академический Документы
Профессиональный Документы
Культура Документы
Imgenes
Meola Franco Romn, Puente Julieta, Strubolini Diego Martn
18 de julio de 2016
ITBA
Gracias a la Coleccin de Arte Amalia Lacroze de Fortabat (Olga Cossettini 141, Puerto Madero,
Buenos Aires, Argentina) por proveernos las imgenes de su base de datos.
Este trabajo tiene nicamente fines educativos y no se utilizar con fines de lucro ni comerciales.
ITBA
ndice
1. Introduccin
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
8
8
9
10
11
11
11
y ORB
13
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4. Experimentos y resultados
4.1. Librera utilizada: OpenCV . . . . .
4.2. Implementacin . . . . . . . . . . . .
4.2.1. Filtrado de correspondencias
4.3. Experimento . . . . . . . . . . . . .
4.4. Tiempo de procesamiento . . . . . .
4.5. Transformaciones de laboratorio . .
4.5.1. Escala . . . . . . . . . . . . .
4.5.2. Rotacin 2D . . . . . . . . .
4.5.3. Blur . . . . . . . . . . . . . .
4.5.4. Cambios en iluminacin . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
22
22
23
24
25
27
27
30
32
35
38
6. Conclusiones
48
7. Apndice
49
8. Bibliografa
51
ITBA
1.
Introduccin
2.
2.1.
ITBA
Figura 1: Ejemplo de imgenes que se desean unir. Los puntos en amarillo muestran los pixels que
caracterizan a cada una de las imgenes.
ITBA
Figura 3: Puntos de correspondencia entre dos imgenes de 360 grados unidos por una lnea recta en
una escena de oficina. Izquierda: la imagen capturada por el robot. Derecha: la imagen almacenada en
la base de datos.
ITBA
Figura 4: Captura de pantalla de la aplicacin mvil de recomendacin de recetas en tiempo real [19].
Figura 5: Puntos de correspondencia entre dos cuadros de un video de vigilancia unidos por una lnea
recta [21].
Reconocimiento de billetes
Estudiantes de la Universidad Politcnica Salesiana realizaron una aplicacin mvil para que las
personas con discapacidad visual puedan, luego de tomar una foto, conocer la denominacin de un
billete [12]. Contando con una apropiada base de datos que contenga la informacin necesaria, se
pueden identificar tantos objetos como se desee. Esta aplicacin es de gran impacto en personas
con discapacidad visual porque les provee independencia en transacciones comerciales.
Reconocimiento de caras
El reconocimiento de caras es muy utilizado en distintas aplicaciones como identificacin de personas, vigilancia, control de accesos, entre otras. En esta situacin se puede contar con una base
ITBA
de datos con imgenes de las caras de un grupo de personas para poder identificarlas en base a su
similitud con alguna almacenada.
En las Figura 6(a) se muestra un ejemplo de las imgenes presentes en la base de datos para
un sujeto. La Figura 6(b) muestra los puntos caractersticos encontrados en dichas imgenes. Los
mismos son utilizados para decidir si el sujeto a identificar coincide con el almacenado.
2.2.
Mtodos existentes
En esta seccin se realiza una descripcin de algunos de los mtodos ms importantes existentes en
la bibliografa.
2.2.1.
Desde hace ms de una dcada, el keypoint detector and descriptor de SIFT ha resultado exitoso en
diversas aplicaciones, incluyendo el reconocimiento de objetos y mosaico de imgenes, entre otras.
De esta forma, una imagen es transformada en una coleccin de vectores de caractersticas locales,
donde cada uno de stos resulta invariante a escala, traslacin, rotacin y en parte a proyeccin en tres
dimensiones y cambios en la iluminacin.
Como define David Lowe en el trabajo [18], el mtodo de SIFT tambin prob ser resistente a cambios
menores en ruido, contraste, deformacin de la escena y borroneo.
El algoritmo est compuesto por dos operaciones: la deteccin de puntos de inters (keypoints) y la
extraccin de los descriptores asociados a estos puntos.
Cada punto de inters es utilizado para generar un vector de caractersticas que describa la zona local
de la imagen. Estas caractersticas son las que se utilizan para encontrar las correspondencias entre las
dos imgenes sobre las cuales se aplica el algoritmo.
En las figuras 7(a) y 7(b) se destacan los puntos de inters de cada imagen que luego sern utilizados
para calcular las correspondencias entre las mismas. En la figura 7(c) se puede apreciar los puntos de
correspondencia entre dos imgenes unidos por una lnea recta donde cada par posee un color diferente
para su mejor visualizacin.
ITBA
El mayor inters en SURF reside en la utilizacin del mismo para procesamientos en tiempo real
porque hace posible su utilizacin en aplicaciones destinadas al seguimiento de objetos en secuencia de
imgenes.
Este mtodo fue desarrollado en el artculo [20], donde los autores tambin lo comparan con el mtodo
SIFT, el cual es ms estable pero ms lento. En cambio, SURF posee una tasa de xito similar y es ms
rpido. Esto ltimo ocurre porque a diferencia de SIFT, SURF mantiene el tamao de la imagen original
y slo vara el tamao del filtro utilizado en la etapa de deteccin de puntos de inters [15]. De esta
manera el clculo computacional de aplicar el filtro resulta cercano a tiempo constante [14].
En las figuras 8(a) y 8(b) se destacan los puntos de inters de cada imagen que luego sern utilizados
para calcular las correspondencias entre las mismas. En la figura 8(c) se puede apreciar los puntos de
correspondencia entre dos imgenes unidos por una lnea recta donde cada par posee un color diferente
para su mejor visualizacin.
ITBA
Los mtodos hasta ahora mencionados se basan en descriptores para la deteccin y correspondencia
de caractersticas. En el artculo [22], se propone un descriptor binario veloz llamado ORB, de dos rdenes
de magnitud ms rpido que el mencionado SIFT, y que mantiene en varias situaciones la misma tasa
de xito de deteccin en reconocimiento de objetos.
El descriptor de ORB se desenvuelve tan bien como SIFT en estas tareas (y mejor que SURF) y al
mismo tiempo resulta dos rdenes de magnitud ms rpido, permitiendo ahora el uso de estas tecnologas
en el procesamiento en tiempo real.
En las figuras 9(a) y 9(b) se destacan los puntos de inters de cada imagen que luego sern utilizados
para calcular las correspondencias entre las mismas. En la figura 9(c) se puede apreciar los puntos de
correspondencia entre dos imgenes unidos por una lnea recta donde cada par posee un color diferente
para su mejor visualizacin.
10
ITBA
El artculo [16] detalla un mtodo que resulta hasta un orden de magnitud ms rpido que SURF,
permitiendo su uso en aplicaciones que requieren procesamiento en tiempo real o un uso de recursos
limitado, manteniendo la tasa de xito. La razn de esta afirmacin radica en la utilizacin de un
descriptor binario que acelera el proceso de bsqueda de correspondencias.
Su implementacin modular permite la utilizacin de su detector en combinacin con cualquier otro
descriptor, y viceversa.
2.2.5.
KAZE
2.3.
Conclusiones
El reconocimiento automtico de objetos dentro de una escena es considerado un problema difcil por
el error que se comete al tratar de identificarlos. El mtodo SIFT fue el primero diseado para realizar
esta tarea pero tiene diversos problemas, lo que motiv la investigacin y desarrollo de nuevos mtodos
de reconocimiento.
Con la oferta de mtodos existentes, donde ninguno resulta mejor que otro para todas las situaciones,
la eleccin de uno en particular est determinada principalmente por: la precisin buscada, el costo
computacional disponible y las transformaciones de las imgenes involucradas.
11
ITBA
En lo que sigue de este trabajo realizamos una comparacin exhaustiva en el que se contemplan
los mtodos SIFT, SURF y ORB en una amplia variedad de situaciones. Los tipos de transformaciones analizadas son borroneo, cambios en la iluminacin, rotaciones en dos y tres dimensiones, escala y
transformaciones afines.
12
3.
ITBA
3.1.
SIFT
El objetivo de este mtodo es reconocer un objeto o imagen dentro de otra imagen diferente. El
algoritmo SIFT est compuesto por seis pasos sucesivos y ordenados, con la finalidad de obtener descriptores que permitan hallar las correspondencias entre imgenes. Los descriptores son puntos invariantes a
escala, traslaciones, rotaciones y cambios en la iluminacin que caracterizan la imagen. SIFT transforma
la imagen en un conjunto de descriptores para luego hacer una correspondencia entre ellos. Se compone
de los siguientes pasos:
1. Espacio Escala Gaussiano: Consiste en la aplicacin de sucesivos filtros Gaussianos de diferente
valor de escala . As se construye un conjunto de imgenes con diferentes niveles de borroneo,
donde cada uno de estos conjuntos se denominan octavas. En el algoritmo original de Lowe [18],
la resolucin de la imagen decrece por un factor de 2, por eso a cada conjunto de imgenes con
la misma dimensin se las llama octava, en asociacin con la msica, donde cada octava posee el
doble de frecuencia de la anterior.
Por ltimo, y luego de construir una octava aplicando sucesivos filtros Gaussianos, se baja la
resolucin de la imagen resultante y es sta la imagen de entrada para construir otra octava, como
se puede ver en la Figura 10.
Figura 10: Espacio escala de una imagen con tres octavas (cada octava es una columna) [5].
2. Diferencias Gaussianas (DoG): En este paso se calculan las diferencias Gaussianas entre dos
imgenes de escalas consecutivas de la misma octava, como se muestra en la Figura 11.
13
ITBA
Figura 11: Esquema de la operacin Diferencias de Gaussianas para las dos primeras octavas [17].
En la Figura 12 se muestra un pixel dentro de una octava (marcado con una cruz) y los 26 pixels
vecinos con los cuales se realiza la comparacin. De esta forma cada elemento se compara con todos
sus vecinos en las tres dimensiones.
Figura 12: Pxel dentro de una octava (marcado con una cruz) y los 26 pixels vecinos con los cuales se
realiza la comparacin (de color verde) [17].
3. Puntos de inters: Con la operacin anterior encontramos los potenciales puntos de inters de una
imagen, los cuales estn localizados en los mximos y mnimos de la funcin diferencia gaussiana.
Un ejemplo de esto se muestra en la Figura 13(b).
14
ITBA
Figura 13: Puntos de inters detectados en una imagen usando el mtodo de los extremos de las diferencias
de gaussianas. El radio de los crculos ilustra la escala. El color rojo indica que fueron mnimos, los azules
que fueron mximos [9].
Sin embargo, el mtodo utilizado para encontrar los extremos es poco confiable ya que pueden
aparecer muchos extremos falsos. Por lo tanto es necesario un refinamiento que permita rechazar
los puntos de bajo contraste o aquellos que se encuentran sobre un borde. Las Figuras 14(a) y
14(b) muestran el resultado de aplicar el refinamiento. Los puntos de borde o de equina no son
resistentes a los cambios de escala, por eso es necesario descartarlos, de manera de quedarnos con
los ms representativos y ms resistentes a todas las transformaciones.
Figura 14: Refinamiento del conjunto de puntos de inters (keypoints) que descarta los puntos de bajo
contraste o aquellos que se encuentren sobre un borde.
15
ITBA
En este paso se agrupa la informacin en forma de histograma, uno para cada punto de inters,
armando el denominado histograma de orientaciones, como muestra la Figura 16. Cada histograma
posee 36 bins, de forma que cada bin cubra 10 grados de los 360 totales.
Con el objetivo de darle una mayor importancia a las orientaciones de mdulos mayores, se realizan
ponderaciones. As, a medida que se agrega una orientacin al histograma, ste se multiplica por su
mdulo. Los picos ms altos de cada histograma son las direcciones dominantes de los gradientes
y por lo tanto la orientacin que se le asigna al punto de inters en cuestin.
5. Construccin de descriptores: Hasta este punto, para cada punto de inters se cuenta con la
resistencia a escala y rotacin. Junto con la ubicacin y octava a la que pertenece cada keypoint el
siguiente paso es obtener un descriptor.
Este paso en particular se realiza sobre la imagen donde el punto de inters fue encontrado, en
regiones de 16x16 pxeles alrededor del keypoint.
Como se puede ver en la Figura 17, la ventana de 16x16 pxeles se divide en subregiones de 4x4
pxeles. Luego se construye otro histograma con las orientaciones pero este solo de 8 bins para cada
ventana de 4x4.
16
ITBA
Luego se construye el descriptor conteniendo los valores de todas las orientaciones de los histogramas
anteriores. El descriptor es un vector de 128 posiciones, y la dimensin proviene del producto entre
el tamao de la ventana (de dimensin 16) y las 8 posibles orientaciones.
6. Clculo de correspondencias: Este conjunto de 128 elementos indica las orientaciones ms
importantes alrededor de un punto de inters. Estas caractersticas son las que se utilizan para
encontrar las correspondencias entre las dos imgenes sobre las cuales se aplica el algoritmo de
reconocimiento automtico de objetos en imgenes. As, si dos imgenes contienen descriptores
muy similares, es probable que ambos estn describiendo una misma zona y por lo tanto sean
correspondientes.
Para calcular el grado de similitud entre dos descriptores existen varias alternativas. Una de ellas
es la distancia eucldea, indicada en la ecuacin 1.
v
u 128
uX
t (a b )2
i
i
(1)
i=1
donde ai y bi son los descriptores i de dos imgenes A y B respectivamente. Se considera que las
imgenes son iguales si este valor es menor que un umbral que depende de la imagen.
3.2.
SURF
El mtodo SURF fue propuesto por Bay, Tuytelaars y Van Goold [20] como una alternativa a los
mtodos de reconocimiento de imgenes existentes donde se busca que la velocidad de dicho algoritmo
sea mayor a la de los dems.
A continuacin se listan los seis pasos sucesivos y ordenados del mtodo:
1. Espacio Escala Gaussiano: Esta etapa se realiza de la misma manera que en SIFT pero, en
lugar de variar la escala en un factor de 2, se vara en un factor de 6.
2. Imagen Integral: Para obtener los puntos caractersticos de la imagen se realiza la convolucin de
la misma con la imagen integral. La imagen integral se obtiene mediante la ecuacin 2, donde p(i, j)
representa el valor del pixel en las coordenadas (i, j) de la imagen y I(x, y) representa el valor de la
imagen resultante en las coordenadas (x, y). Dicha convolucin requiere un procesamiento menor
que el clculo de las diferencias gaussianas en cada cambio de escala que se realiza en el mtodo
SIFT.
17
I(x, y) =
jy
ix X
X
ITBA
p(i, j)
(2)
i=0 j=0
3. Puntos de Inters: Una vez aplicado el filtro se utiliza la matriz Hessiana, la cual se calcula
utilizando la ecuacin 3
H(x, ) =
!
(3)
x
donde Lxx (x, ) es la convolucin del segundo orden derivativo x
2 g() con la imagen en el pixel
x (de manera similar para Lxy (x, ) y Lyy (x, )). Donde g() es la funcin Filtro Gaussiano en
dos dimensiones. Dicha matriz se evala sobre cada pxel de la imagen obtenida en el paso anterior
y para cada utilizado en el paso 1. Una vez obtenido este valor, se buscan los pixeles donde el
determinante de dicha matriz se hace mximo. En la Figura 18 se puede ver un ejemplo de los
valores obtenidos de la convolucin del segundo orden derivativo con una imagen.
(a) Lyy
(b) Lxy
Figura 18: Resultado de aplicar la convolucin con operadores de segundo orden derivativo, a dos imgenes
diferentes. Aplicacin de Lyy 18(a), Aplicacin de Lxy 18(b)
.
4. Asignacin de orientacin a los puntos de inters: Para que el mtodo sea invariante a la
rotacin, se deben obtener las orientaciones de los puntos de inters. Se aplica el mtodo Wavelet
de Haar definido en la ecuacin 4 a lo largo de las direcciones horizontal y vertical para cada punto
de inters dentro de un crculo de un radio igual a 6s, donde s es la escala que se utiliz en el paso
1.
0 t < 1/2
1
(4)
(t) =
1 1/2 t < 1
0
De otra forma.
La suma de los resultados del mtodo Wavelet de Haar en los vecinos de dicho punto de inters
para cada eje, representa el vector orientacin del punto de inters.
5. Construccin de descriptores: Para obtener el descriptor, se toma una regin cuadrada de
tamao 20s centrado en cada punto de inters y orientado utilizando el vector de orientacin
obtenido anteriormente. Cada regin se divide en 4 subregiones, y para cada una de ellas se aplica
nuevamente el mtodo Wavelet de Haar. Para aumentar la robustez contra deformaciones, ruido
y traslacion se le aplica un filtro Gaussiano a cada subregin. De cada subregin se obtiene un
valor dx y dy los cuales representan el resultado de la operacin anterior sobre los pixeles para las
direcciones horizontal y vertical con respecto a la orientacin del punto de inters. De estos valores
se obtiene un vector definido en la ecuacin 5.
X
X
X
X
v=(
dx,
dy,
|dx|,
|dy|)
18
(5)
ITBA
Figura 19: Construccin de descriptores. Regin cuadrada con centro en el punto de inters, alineado
a la orientacin del mismo, representado por la flecha de color negro. La subregin se destaca con un
color verde. De sta se obtienen dx y dy al aplicar el mtodo Wavelet de Haar para obtener las cuatro
componentes del vector descriptor [10].
El vector final que representa el descriptor se obtiene de la unin de los vectores de las 4 subregiones.
6. Clculo de correspondencias: Para realizar la correspondencia entre los descriptores se utiliza,
al igual que en el mtodo SIFT, la distancia eucldea.
3.3.
ORB
ORB utiliza los algoritmos FAST (Features from accelerated segment test) [24] para encontrar los
puntos caractersticos y BRIEF (Binary Robust Independent Elementary Features) [11] para encontrar
los descriptores. La sigla ORB proviene de Oriented FAST and rotated BRIEF.
Una mejora con respecto a SIFT es que al utilizar FAST y BRIEF, el tiempo total de procesamiento
es menor.
En el trabajo [25] se desarrollan paso a paso las etapas del algoritmo y se explican a continuacin:
1. Localizacin de los keypoints utilizando FAST : Para cada pxel de la imagen se trabaja con
el crculo discreto de Bresenham con centro en dicho pxel y de radio tres. ste crculo consiste en
los 16 vecinos del pxel central p, numerados en sentido horario, como se muestra en la Figura 21.
19
ITBA
Figura 21: Crculo de Bresenham para el pxel p destacando los 16 vecinos concntricos del mismo [1].
(6)
donde Ix es el valor de gris para el pxel x del crculo, Ip es el valor de gris para el pxel p y t es un
umbral (que generalmente toma un valor cercano a la quinta parte del valor de gris del pxel p).
La optimizacin que se realiza en este paso es analizar primero los valores de gris I1 , I5 , I9 e I13 .
Si por lo menos tres de ellos no satisfacen la ecuacin 6, entonces el pxel p no puede ser un punto
de inters.
A diferencia de SIFT, FAST en principio no produce puntos de inters resistentes a escala. Para
lograrlo se necesita construir una scale-pyramid de la imagen, y encontrar los puntos de inters en
cada imagen de la pirmide.
2. Seleccin de los mejores keypoints utilizando Harris: El mtodo de deteccin de esquinas
y bordes de Harris [13] se basa en la idea de que una esquina debera reconocerse observando
los puntos en un entorno. As haciendo un corrimiento en cualquier direccin, debera ocurrir un
cambio abrupto en el nivel de gris del pxel de la imagen. Este mtodo otorga un puntaje de acuerdo
al nivel de borde del pxel.
En este paso, los N pxeles que hayan obtenido una puntuacin mayor con el mtodo de Harris son
considerados como keypoints.
A diferencia del mtodo SIFT donde estos pxeles son descartados porque no son invariantes a
escala, aqu son los primeros en ser considerados para el siguiente paso del algoritmo ya que el
mtodo ORB indica en su trabajo que no es tan resistente a escala como SIFT.
3. Asignacin de orientacin a los puntos de inters: Una propiedad de la imagen que se utiliza
en este paso es el momento: es invariante a rotacin y puede ser utilizada como un descriptor simple.
ORB aplica el intensity centroid para determinar la orientacin de los keypoints. Si el momento se
define como en la ecuacin 7
mxy =
xp y q Ix,y
x,y
donde:
x {0, 1, . . . W } con W el ancho en pxeles de la imagen.
20
(7)
ITBA
m10 m01
,
)
m00 m00
(8)
De esta manera se calculan las orientaciones para los puntos de inters como el vector que tiene
origen en el punto de esquina y destino en C.
4. Construccin de descriptores utilizando BRIEF :
En este punto se obtienen los descriptores a travs del mtodo de codificacin binaria de los puntos
de inters. Este descriptor es ms sencillo y ms liviano que los utilizados por SIFT y SURF.
ORB utiliza BRIEF para calcular los descriptores. ste consiste en borronear la imagen y seleccionar un conjunto de N pxeles. Luego se compara el nivel de gris de dos pxeles elegidos
aleatoriamente y, en caso de que el nivel de gris del primero sea menor que el del segundo, se
asigna un 1 en el elemento correspondiente del descriptor. De esta manera se obtiene una cadena
N dimensional.
Cabe destacar que ORB utiliza una versin modificada de BRIEF, llamada rBRIEF: RotationAware BRIEF, la cual le otorga una resistencia a transformaciones de rotacin en un plano unidimensional.
5. Clculo de correspondencias: Para calcular el grado de similitud entre dos descriptores existen
varias alternativas. Una de ellas es la distancia Hamming: consiste en contar la cantidad de bits
que hay que modificar en una cadena para que coincida con otra cadena distinta.
21
4.
ITBA
Experimentos y resultados
En la presente seccin se detalla la implementacin realizada para este trabajo, mencionando las
libreras utilizadas y las mejoras realizadas. A su vez, se describen los experimentos que se llevaron a
cabo para comparar los distintos mtodos de reconocimiento automtico de objetos: SIFT, SURF y
ORB, y los resultados obtenidos.
4.1.
OpenCV es una librera open source para manipulacin de imgenes y video. Originalmente desarrollada por Intel en 1999, se ha utilizado en muchas aplicaciones. Entre ellas se pueden destacar deteccin
de movimiento, reconocimiento facial, visin en robtica y por supuesto, reconocimiento de objetos.
Puede descargarse gratuitamente desde su sitio web oficial (Ver Figura 22).
4.2.
Implementacin
A continuacin se explica para el lector interesado cmo utilizar esta librera para el reconocimiento
automtico de objetos en escena con el mtodo de reconocimiento SIFT.
En primer lugar, se necesita agregar la librera de imgenes al proyecto de prueba. En este caso
se incluye la inclusin de la dependencia Maven correspondiente (Ver Figura 60 en Apndice). Si el
lector no est familiarizado con este mtodo de resolucin de dependencias, puede dirigirse al sitio de
PatternConsulting para ms informacin de las mltiples alternativas disponibles.
Se lista a continuacin (Ver Figura 61 en Apndice) una versin simplificada del cdigo fuente que se
utiliza para la realizacin de las pruebas del presente trabajo. Aqu, a partir de dos imgenes se aplica
el mtodo de reconocimiento automtico SIFT y se obtiene una nueva imagen con las correspondencias
encontradas (como se muestra en la Figura 7(c)).
22
ITBA
Como se puede ver en el cdigo, se sigue el orden de los pasos del mtodo SIFT enunciado en la
seccin anterior:
En la seccin 3 del cdigo se encuentran los puntos caractersticos
En la seccin 4 del cdigo se construyen los descriptores
En la seccin 5 del cdigo se encuentran las correspondencias
La seccin 6 del cdigo constituye el aporte original del presente trabajo: el filtrado de correspondencias.
4.2.1.
Filtrado de correspondencias
Con la implementacin provista por OpenCV, encontrar la correspondencia entre los vectores de
caractersticas produce una alta cantidad de falsos positivos, porque realiza las correspondencias entre
dos descriptores cualquiera sin aplicar ningn criterio. En las siguientes figuras se muestran dos ejemplos
de la aplicacin del mtodo SIFT sin el filtrado de correspondencias. En la Figura 23 se cuenta con dos
imgenes similares, por lo que la cantidad de lneas de correspondencias debera ser alta. Otro ejemplo
se muestra en la Figura 24, donde se tienen dos imgenes distintas y aqu la cantidad de lneas se espera
que sea menor.
Figura 23: Puntos de correspondencia entre dos imgenes unidos por una lnea recta donde cada par posee
un color diferente para su mejor visualizacin para el mtodo SIFT sin el filtrado de correspondencias
para dos imgenes similares.
Figura 24: Puntos de correspondencia entre dos imgenes unidos por una lnea recta donde cada par posee
un color diferente para su mejor visualizacin para el mtodo SIFT sin el filtrado de correspondencias
para dos imgenes distintas.
El filtrado de correspondencias consiste en dos partes:
23
ITBA
(9)
Figura 25: Puntos de correspondencia entre dos imgenes unidos por una lnea recta donde cada par posee
un color diferente para su mejor visualizacin para el mtodo SIFT con el filtrado de correspondencias
para dos imgenes similares.
Figura 26: Puntos de correspondencia entre dos imgenes unidos por una lnea recta donde cada par posee
un color diferente para su mejor visualizacin para el mtodo SIFT con el filtrado de correspondencias
para dos imgenes distintas.
4.3.
Experimento
Para poder comparar los tres mtodos de reconocimiento automtico de objetos: SIFT, SURF y
ORB, al momento de realizar los experimentos, se tuvieron en cuenta las siguientes transformaciones:
24
ITBA
Escala
Rotacin en dos dimensiones
Blur
Iluminacin
Se realiza un prueba por cada transformacin mencionada para los tres mtodos, de manera de poder
compararlos. A continuacin se detallan paso a paso los experimentos realizados:
1. Seleccin del set de imgenes: Se utilizan 23 imgenes para realizar las pruebas. Las mismas
consisten en imgenes de paisajes, imgenes de caras, entre otras.
2. Modificaciones sintticas del set de imgenes: De acuerdo a la transformacin que se quiere
evaluar, para cada una de las imgenes del set, se generan nuevas imgenes sintticas aplicndoles
dicha transformacin. Las transformaciones realizadas son las mismas para las 23 imgenes. Por
ejemplo, si se quiere evaluar la transformacin de rotacin, para cada una de las imgenes, se genera
una imgen rotada a 45 grados, otra rotada a 90 gardos, y as sucesivamente.
3. Clculo de correspondencias: Una vez que se crearon las imgenes sintticas, se buscan las correspondencias entre la imagen original y sus correspondientes imgenes sintticas. Esto se realiza
para los tres mtodos: SIFT, SURF y ORB. De este paso se obtiene un porcentaje de correspondencia para cada mtodo para cada par de imgenes.
4. Clculo del promedio del porcentaje de correspondencias: Para cada transformacin realizada, se calcula el promedio del porcentaje de correspondencias de las 23 imgenes. Siguiendo con
el ejemplo de la rotacin, se obtiene un promedio para cuando se rota la imagen 45 grados, otro
para cuando se la rota 90 grados, y as sucesivamente. Esto se realiza para los tres mtodos.
5. Comparacin de los mtodos: Con los promedios calculados, se realizan grficos para comparar
el desempeo de los distintos mtodos.
4.4.
Tiempo de procesamiento
Se debe tener en cuenta que el tiempo de procesamiento incluye a las tareas de:
Deteccin de puntos caractersticos
Extraccin de descriptores
Matching de correspondencias
Filtrado del conjunto de correspondencias
La prueba consiste en la aplicacin de un mtodo de reconocimento automtico a un conjunto de diez
imgenes, todas de la misma dimensin. Luego de tomar el tiempo para cada una de las imgenes, se
calcula el promedio, obtenindose el tiempo medio de procesamiento para el mtodo de reconocimiento
elegido para imgenes de una dimensin especfica. As, se repite la prueba para varios conjuntos, todos
de la misma cantidad de imgenes, pero cada uno con dimensiones diferentes. Por ltimo se repite todo
el proceso anterior para cada uno de los tres mtodos de reconocimiento automtico.
El conjunto de imgenes de mayor resolucin es de 5120x3200px, equivalente a 16.384.000 pxeles.
Las pruebas comprenden el intervalo {rmax , 0,95rmax , 0,90rmax . . . 0,05rmax } siendo rmax =16.384.000px
(la mxima resolucin). Al factor por el cual se multiplica a rmax se lo denomina ratio y comprende el
intervalo {0,05, 0,10, . . . 0,95}. De esta forma se calculan los tiempos para veinte conjuntos de dimensiones
distintas.
25
ITBA
A continuacin se muestran en la Tabla 1 los valores ms relevantes de los promedios de los tiempos
de procesamiento (en milisegundos) para distintos conjuntos de imgenes segn la dimensin de las
imgenes del conjunto para los mtodos de reconocimiento automtico SIFT, SURF y ORB.
Dimensiones [px]
12.288.000
8.192.000
4.096.000
819.200
SIFT [ms]
450776
174366
47141
30165
SURF [ms]
171999
96179
29291
16067
ORB [ms]
754
610
519
496
Tabla 1: Tiempo de procesamiento en funcin de las dimensiones (en pxeles) de la imagen para los
mtodos SIFT, SURF y ORB
En la Figura 27 se muestra el tiempo de procesamiento para cada uno de los tres mtodos en funcin
del ratio. Se puede ver que los tres mtodos aumentan el tiempo de procesamiento a medida que las
dimensiones de la imagen aumenta, dado que se requiere procesar una mayor cantidad de datos. Se
puede destacar al mtodo ORB por sobre los otros dos, ya que es el que menos se ve afectado por el
cambio en las dimensiones de la imagen. En cambio, SIFT y SURF aumentan su tiempo de procesamiento
de manera casi lineal en funcin de las dimensiones de la imagen. Sus tiempos con un ratio menor a 0.2
son ms de 10 veces mayores a los de ORB. El mtodo SURF, a pesar de ser ms rpido que SIFT,
aumenta su tiempo de procesamiento a un valor 10 veces mayor cuando el ratio pasa de 0,1 a 0,8. El
mtodo SIFT, siendo el ms lento de los tres mtodos, demora para un ratio de 0.9 ms de 50 veces
lo que demora para uno de 0,1, lo cual representa una degradacin de la velocidad de procesamiento
considerable cuando se utilizan imgenes de grandes dimensiones.
1000000
100000
SIFT
10000
SURF
ORB
1000
100
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Ra2o
Figura 27: Tiempo de procesamiento en funcin del ratio para los mtodos SIFT, SURF y ORB en escala
logartmica
En conclusin, ORB no slo es el que result ms rpido de los tres mtodos, sino que tambin es el
que menos degrada su velocidad a medida que aumentan las dimensiones de la imagen.
26
4.5.
ITBA
Transformaciones de laboratorio
Con el objeto de hacer un estudio estadstico para evaluar la performance de los mtodos de reconocimiento automtico de objetos, realizamos los experimentos con imgenes sintticas. En esta seccin
se muestran los resultados obtenidos para un conjunto de imgenes transformadas artificialmente. Las
transformaciones utilizadas en el presente escrito son:
Escala
Rotacin en dos dimensiones
Blur
Iluminacin
Cada una de estas transformaciones produce una imagen sinttica, la cual se compara con la original
utilizando los tres mtodos de reconocimiento ya mencionados.
De ahora en ms diremos que un mtodo de reconocimiento funciona mejor que otro si se obtiene un
mayor porcentaje de correspondencias.
4.5.1.
Escala
La transformacin de escala de una imagen se realiza cambiando el tamao de la misma, tanto hacerla
mas pequea como mas grande. El parmetro utilizado para realizar dicha transformacin es el ratio,
el cual representa la proporcin de una imagen respecto de la imagen original. Esto quiere decir que un
ratio de 0,5 genera una imagen con la mitad de altura y de ancho que la original, como se puede apreciar
en la Figura 28(b). En cambio, un ratio de 2 genera una imagen con el doble de altura y de ancho.
27
ITBA
Figura 29: Puntos de correspondencia entre las imgenes 28(a) y 28(b) unidos por una lnea recta para
el mtodo SIFT con la imagen de ejemplo.
Figura 30: Puntos de correspondencia entre las imgenes 28(a) y 28(b) unidos por una lnea recta para
el mtodo SURF con la imagen de ejemplo.
28
ITBA
Figura 31: Puntos de correspondencia entre las imgenes 28(a) y 28(b) unidos por una lnea recta para
el mtodo ORB con la imagen de ejemplo.
En la tabla 2 se observan los porcentajes de correspondencias obtenidos para los tres mtodos luego
de aplicarlos a las imgenes 28(a) y 28(b).
Ratio
0.5
SIFT
24.05
SURF
27.01
ORB
14.80
Tabla 2: Porcentaje de correspondencias en funcin del ratio de escala para los mtodos SIFT, SURF y
ORB
En la Figura 32 se muestra un grfico con el porcentaje de correspondencias promedio en funcin del
ratio, donde ratio {0,25, 0,30, 0,35 . . . 2}.
Esta transformacin devuelve la imagen original cuando el ratio es 1, mantenindose las dimensiones.
De los tres mtodos, se puede ver que SIFT funciona mejor que los otros dos en todos los casos.
El mtodo SURF result peor que SIFT pero mejor que ORB. En el grfico, se puede ver que los tres
mtodos obtienen la mayor cantidad de correspondencias cuando la imagen tiene un tamao cercano al
original.
Se pueden distinguir dos casos, cuando la imagen se achica y cuando se agranda. En el primer caso,
cuando el ratio se hace mas chico, SIFT crece de manera lineal con una pendiente mayor a 1, lo que resulta
en un crecimiento rpido del porcentaje de correspondencias a medida que se alcanza el tamao original
de la imagen. SURF, en cambio, aumenta de manera exponencial a medida que el ratio se agranda. En
el segundo caso, dichos mtodos presentan una curva similar, donde el porcentaje de correspondencias
oscila.
Tanto para ratios ms chicos como ms grandes, ORB presenta una variacin con respecto a los
otros dos mtodos donde el porcentaje de correspondencias oscila en gran medida. Los porcentajes de
correspondencias encontrados son menores que con SIFT y SURF, pero tienen en comn que alcanza
los mejores resultados cuando la imagen transformada se acerca al tamao de la original. A su vez,
observamos en el experimento que ORB funciona bien para valores de ratio cuyo valor decimal es mltiplo
de 0,25.
En conclusin SIFT es el que obtiene los mejores resultados al aplicar la transformacin de escala
sobre una imagen, lo cual concuerda con el objetivo del artculo que llev al diseo de dicho algoritmo.
29
ITBA
100
90
Porcentaje de Correspondencias
80
70
60
SIFT
50
SURF
40
ORB
30
20
10
0
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
Ra1o
Figura 32: Porcentaje de correspondencias en funcin del ratio de escala para los mtodos SIFT, SURF
y ORB
4.5.2.
Rotacin 2D
La transformacin de rotacin 2D consiste en definir como eje de rotacin la recta que pasa por el
centro de las imgenes, con el objetivo de que el espacio libre que quede al hacer la rotacin sea mnimo,
ya que todas las imgenes deben ser rectangulares. En la Figura 33(b), donde se aprecia una rotacin
a 45 grados, se puede ver que con el objetivo de que la imagen transformada mantenga las dimensiones
originales, la imagen rotada se plasma sobre un fondo negro.
30
ITBA
Figura 34: Puntos de correspondencia entre las imgenes 33(a) y 33(b) unidos por una lnea recta para
el mtodo SIFT con la imagen de ejemplo.
Figura 35: Puntos de correspondencia entre las imgenes 33(a) y 33(b) unidos por una lnea recta para
el mtodo SURF con la imagen de ejemplo.
Figura 36: Puntos de correspondencia entre las imgenes 33(a) y 33(b) unidos por una lnea recta para
el mtodo ORB con la imagen de ejemplo.
En la tabla 3 se observan los porcentajes de correspondencias obtenidos para los tres mtodos luego
de aplicarlos a las imgenes 33(a) y 33(b).
En la Figura 37 se muestra un grfico con el porcentaje de correspondencias promedio en funcin de
la variable grado correspondiente al grado de rotacin de la imagen, donde grado {0, 1, 2, . . . 180}.
Esta transformacin devuelve la imagen original cuando el grado es 0, mantenindose la orientacin.
31
Grados
45
SIFT
58.34
SURF
19.58
ITBA
ORB
23.20
Tabla 3: Porcentaje de correspondencias en funcin del grado de rotacin para los mtodos SIFT, SURF
y ORB
Se realizan las pruebas hasta 180 grados ya que a partir de ese nivel de rotacin la imagen empieza a
presentar resultados similares a los posteriores. Por ejemplo, una rotacin de 270 grados es simtrica a una
de 90. Se puede ver que el mtodo SIFT resulta mejor que los otros dos mtodos. No slo el porcentaje de
correspondencias es mayor, sino que el mismo no decrece a menos del 50 % de correspondencias en todos
los grados de rotacin. El mtodo SURF es aquel cuyo porcentaje de correspondencias se detrimenta
rpidamente a medida que se rota la imagen, a pesar de que para una rotacin baja (entre 1 y 5 grados)
presenta resultados similares a SIFT. El mtodo ORB, en cambio, no vara en ms de 20 su porcentaje
de correspondencias pero presenta resultados peores que el mtodo SIFT y SURF para rotaciones de
pocos grados, y supera a SURF para grandes rotaciones (entre 30 y 50 grados).
En el caso de SURF y ORB, el menor porcentaje de correspondencias se encuentra para una rotacin
de 30 a 50 grados y de 120 a 150. Y cuando se alcanzan los 90 grados los resultados de dichos mtodos
vuelven a ser superiores. SIFT a pesar de no perder tanto porcentaje de correspondencias como los otros
mtodos, tambin mejora cuando se llega a los 90 grados.
La rotacin 2D muestra un mejor porcentaje de correspondencias para el mtodo SIFT para todos
los grados, y una predominancia del mtodo ORB sobre el mtodo SURF para rotaciones grandes y el
caso inverso para rotaciones chicas.
100
90
80
Porcentaje de Correspondencias
70
60
SIFT
50
SURF
40
ORB
30
20
10
0
0
20
40
60
80
100
120
140
160
180
Grados
Figura 37: Porcentaje de correspondencias en funcin del grado de rotacin para los mtodos SIFT,
SURF y ORB
4.5.3.
Blur
La transformacin de blur, conocida como borroneo consiste en aplicar sobre la imagen sucesivos
filtros Gaussianos con media cero y con diferentes valores de desvo estndar . Como se puede ver en
la Figura 38, esto genera una disminucin de la resolucin de la imagen.
32
ITBA
Figura 39: Puntos de correspondencia entre las imgenes 38(a) y 38(b) unidos por una lnea recta para
el mtodo SIFT con la imagen de ejemplo.
Figura 40: Puntos de correspondencia entre las imgenes 38(a) y 38(b) unidos por una lnea recta para
el mtodo SURF con la imagen de ejemplo.
33
ITBA
Figura 41: Puntos de correspondencia entre las imgenes 38(a) y 38(b) unidos por una lnea recta para
el mtodo ORB con la imagen de ejemplo.
En la tabla 4 se observan los porcentajes de correspondencias obtenidos para los tres mtodos luego
de aplicarlos a las imgenes 38(a) y 38(b) con = 4.
SIFT
4.39
SURF
6.94
ORB
5.80
Tabla 4: Porcentaje de correspondencias en funcin del para los mtodos SIFT, SURF y ORB
En la Figura 42 se muestra un grfico con el porcentaje de correspondencias promedio en funcin del
utilizado para el filtro Gaussiano, donde {0,1, 0,2, 0,3 . . . 7}.
Si bien no se puede aplicar un filtro gaussiano con sigma 0, se agrega al conjunto la imagen original
asignndole artificialmente = 0
Para valores de variando entre 0 y 1 se puede ver que los tres mtodos tienen un porcentaje similar
de correspondencias, por lo que su efectividad es similar. Los mtodos decaen en la misma forma a
medida que el sigma aumenta, presentando una forma hiperblica. Cuando los valores de son cercanos
a 1, el porcentaje de correspondencias decae rpidamente, pero luego, a medida que el sigma aumenta,
el decaimiento se reduce.
En el borroneo, SIFT es el mtodo que se distingue de los otros dos por su menor porcentaje de
correspondencias entre los sigmas 1 a 3. En este intervalo es considerablemente menor a los otros dos
mtodos. A partir de un sigma con valor 3, todos los mtodos presentan una cantidad de correspondencias
bajas (menor a 10 %) el cual contina disminuyendo lentamente a medida que sigma se incrementa.
En conclusin el borroneo perjudica en mayor medida al mtodo SIFT sobre SURF y ORB, y en los
tres casos el rendimiento de los mtodos decae de manera hiperblica.
34
ITBA
100
90
80
Porcentaje de Correspondencias
70
60
SIFT
50
SURF
40
ORB
30
20
10
0
0
Sigma
Figura 42: Porcentaje de correspondencias en funcin del sigma de borroneo para los mtodos SIFT,
SURF y ORB
4.5.4.
Cambios en iluminacin
En este trabajo utilizamos el sistema de color RGB, donde RGB corresponden a los colores red,
green, blue y corresponde a la cantidad de iluminacin o luz blanca que tiene la imagen. Los cambios
de iluminacin consisten en la variacin del parmetro en le sistema de color de una imagen. Dicho
parmetro simula un oscurecimiento de la imagen para valores menores a 1, y un aclaramiento para
valores mayores a 1. En la Figura 43(b) se muestra como se aclara la imagen cuando se le aplica un
igual a 2.
35
ITBA
Figura 44: Puntos de correspondencia entre las imgenes 43(a) y 43(b) unidos por una lnea recta para
el mtodo SIFT con la imagen de ejemplo.
Figura 45: Puntos de correspondencia entre las imgenes 43(a) y 43(b) unidos por una lnea recta para
el mtodo SURF con la imagen de ejemplo.
Figura 46: Puntos de correspondencia entre las imgenes 43(a) y 43(b) unidos por una lnea recta para
el mtodo ORB con la imagen de ejemplo.
En la tabla 5 se observan los porcentajes de correspondencias obtenidos para los tres mtodos luego
de aplicarlos a las imgenes 43(a) y 43(b) con = 2.
En la Figura 47 se muestra un grfico con el porcentaje de correspondencias promedio en funcin del
de la imagen, donde {0,1, 0,2, 0,3 . . . 5}.
Esta transformacin devuelve la imagen original cuando el es 1, mantenindose la iluminacin.
36
SIFT
43.16
SURF
36.59
ITBA
ORB
6.00
Tabla 5: Porcentaje de correspondencias en funcin del de iluminacin para los mtodos SIFT, SURF
y ORB
El grfico se puede analizar en dos partes: los valores de menores a 1 y los mayores a 1. En el
primer caso, el cual representa imgenes oscurecidas, se puede apreciar que los tres mtodos tienen un
porcentaje de correspondencias similar a medida que el valor de aumenta. La forma en que aumenta
la efectividad en funcin del , se puede asociar a un crecimiento logartmico. En contraposicin, para
los valores de mayores a 1, los mtodos empiezan a comportarse de manera distinta.
El mtodo SIFT result ser el mejor de los tres para esta transformacin, seguido por el mtodo
SURF y por ltimo ORB. Los primeros dos, resultan similares cuando el valor de se hace mayor a 3
y todos decaen en forma de hiprbola. ORB alcanza el valor nulo de porcentaje de correspondencias,
mientras que SIFT y SURF mantienen un bajo porcentaje de correspondencias sin llegar al cero.
En resumen, para esta transformacin, los tres mtodos resultan similares para el oscurecimiento de
imgenes, pero, al aclararlas, SIFT predomina sobre SURF para valores de menores a 3, y ambos
predominan sobre ORB para todo valor de .
100
90
80
Porcentaje de Correspondencias
70
60
SIFT
50
SURF
40
ORB
30
20
10
0
0
0,5
1,5
2,5
3,5
4,5
Alpha
Figura 47: Porcentaje de correspondencias en funcin del de iluminacin para los mtodos SIFT, SURF
y ORB
37
5.
ITBA
En la seccin anterior, las transformaciones aplicadas a las imgenes son artificiales, lo que significa
que las mismas son sintticas. Si bien dichas imgenes resultan tiles para un anlisis detallado del
rendimiento de los mtodos, se utilizan imgenes reales dnde las transformaciones surgen de manera
natural.
En esta seccin presentamos una aplicacin de los mtodos de reconocimiento, que consiste en sacar
una foto con el telfono celular, de una obra expuesta en el museo y reconocer cul es el cuadro dentro
de una base de datos que provee el museo. De esta forma, a partir de una foto sacada por un usuario, con
un sistema de captura no muy eficiente, podemos acceder a informacin del cuadro que no est expuesta,
como por ejemplo la biografa del autor, el recorrido de la obra, premios, etc.
Las imgenes utilizadas fueron tomadas a partir de cuadros presentados en el Museo Amalia Lacroze
de Fortabat. En la Figura 48 se puede ver la seleccin de cuadros provenientes de la base de datos del
museo.
38
(d) El Indeciso, Emilio Pet- (e) La Resistencia, Emilio (f) Flores en un vaso Wantoruti (1950)
Pettoruti (1950)
Li, Jan Brueghel I (C. 160911)
Figura 48: Imgenes de obras de arte sin modificacin utilizadas en los resultados.
39
ITBA
ITBA
(g) Bouquet de Printemps, (h) El Censo de Beln, Pie- (i) Los Capataces, PriliMarc Chagall (C. 1966-67) ter Brueghel II (S.F.)
diano Pueyrredn (S.F.)
(j) Juliet and Her Nurse (Julieta y su Aya), J. M. William Turner (1836)
Figura 48: Imgenes de obras de arte sin modificacin utilizadas en los resultados.
A continuacin, en las Figuras 49-58, se muestran algunas de las pruebas realizadas con los distintos
mtodos de reconocimiento, dnde se compara la imagen del cuadro original con la fotografa del mismo
en el museo.
Figura 49: Puntos de correspondencia entre la imagen 48(a) y una fotografa de la obra de arte unidos
por una lnea recta para el mtodo SIFT.
40
ITBA
Figura 50: Puntos de correspondencia entre la imagen 48(b) y una fotografa de la obra de arte unidos
por una lnea recta para el mtodo SIFT.
Figura 51: Puntos de correspondencia entre la imagen 48(c) y una fotografa de la obra de arte unidos
por una lnea recta para el mtodo SIFT.
41
ITBA
Figura 52: Puntos de correspondencia entre la imagen 48(d) y una fotografa de la obra de arte unidos
por una lnea recta para el mtodo SIFT.
42
ITBA
Figura 53: Puntos de correspondencia entre la imagen 48(e) y una fotografa de la obra de arte unidos
por una lnea recta para el mtodo SIFT.
43
ITBA
Figura 54: Puntos de correspondencia entre la imagen 48(f) y una fotografa de la obra de arte unidos
por una lnea recta para el mtodo SIFT.
Figura 55: Puntos de correspondencia entre la imagen 48(g) y una fotografa de la obra de arte unidos
por una lnea recta para el mtodo SIFT.
44
ITBA
Figura 56: Puntos de correspondencia entre la imagen 48(h) y una fotografa de la obra de arte unidos
por una lnea recta para el mtodo SIFT.
Figura 57: Puntos de correspondencia entre la imagen 48(i) y una fotografa de la obra de arte unidos
por una lnea recta para el mtodo SIFT.
45
ITBA
Figura 58: Puntos de correspondencia entre la imagen 48(j) y una fotografa de la obra de arte unidos
por una lnea recta para el mtodo SIFT.
Como se puede ver, las fotografas proveen transformaciones reales aplicadas a las imgenes originales
de los cuadros. Dichas transformaciones incluyen cambios de iluminacin, rotacin, escala, perspectiva y
resolucin.
En las Figuras 49-58 anteriores se observan los puntos caractersticos de las imgenes unidos por una
lnea recta entre la imagen original a la izquierda y la fotografa del cuadro a la derecha. Cabe destacar
que la mayora de las correspondencias son correctas. Estas lneas que unen los puntos caractersticos
se originan en la imagen del cuadro original y terminan en el rea dnde se ubica el cuadro dentro
de la fotografa, descartando, por ejemplo, el marco del mismo. A si mismo se observan algunos falsos
positivos, estos son ocasionados por los puntos caractersticos de otros objetos dentro de la misma escena.
De esta forma, se puede comprobar que los mtodos de reconocimiento automtico de objetos en escena
son resistentes a una combinacin de transformaciones.
En la Figura 59 se puede ver un ejemplo de la aplicacin del mtodo SIFT de una imagen de un
cuadro (izquierda) con una fotografa de un cuadro diferente (derecha). Se espera que la cantidad de
correspondencias entre dos imgenes distintas sea baja. Como se puede ver en dicha Figura, las pocas
lneas que ilustran las correspondencias representan falsos positivos.
46
ITBA
Figura 59: Puntos de correspondencia entre la imagen 48(b) y una fotografa de la obra de arte 48(g)
unidos por una lnea recta para el mtodo SIFT.
De esta manera, una vez comparadas las fotografas con las imgenes en la base de datos se obtiene
el porcentaje de correspondencias para cada una de ellas. La imagen con la cual se obtenga un mayor
porcentaje de correspondencias ser la candidata a ser seleccionada como la imagen correspondiente de
ese cuadro.
El mtodo SIFT fue el elegido para realizar dicha comparacin ya que, como vimos en la seccin de los
experimentos es el ms resistente a las distintas transformaciones que sufre la imagen al ser fotografiada.
A su vez, como no se requiere de un procesamiento en tiempo real, el tiempo que lleva aplicar dicho
mtodo no es relevante para esta situacin.
47
6.
ITBA
Conclusiones
En esta seccin se presentan las conclusiones obtenidas del anlisis de los resultados del presente
trabajo. Estas incluyen a las transformaciones de laboratorio (Seccin 4) y a las imgenes obtenidas en
una galera de arte. En cuanto al tiempo de procesamiento, ORB no slo es el que result ms rpido
de los tres mtodos, sino que tambin es el que menos degrada su velocidad a medida que aumentan las
dimensiones de la imagen. Con respecto a la escala, SIFT es el que obtiene los mejores resultados sobre
una imagen. La rotacin 2D muestra un mejor porcentaje de correspondencias para el mtodo SIFT, y
una predominancia del mtodo ORB sobre el mtodo SURF para rotaciones grandes y el caso inverso
para rotaciones chicas. En la relacin al borroneo, el mtodo SIFT se perjudica en mayor medida sobre
SURF y ORB. Por ltimo, para los cambios en iluminacin los tres mtodos resultan similares para el
oscurecimiento de las imgenes pero, al aclararlas, SIFT predomina por sobre los dems mtodos.
En la Tabla 6 se muestra el desempeo promedio de cada uno de los mtodos de reconocimiento
automtico de objetos en imgenes para los distintos tipos de pruebas realizadas en el presente trabajo.
Prueba
Tiempo
Escala
Rotacin
Borroneo
Iluminacin
SIFT
Regular
ptimo
ptimo
Regular
Bueno
SURF
Bueno
Bueno
Bueno
Bueno
Bueno
ORB
ptimo
Regular
Regular
Bueno
Regular
Tabla 6: Desempeo promedio para los distintos tipos de pruebas para SIFT, SURF y ORB.
A modo de conclusin, es importante destacar que ninguno de los tres mtodos se desempea mejor
que los dems para todas las situaciones. Es por eso, que resulta indispensable analizar el contexto
de aplicacin para decidir que mtodo de reconocimiento automtico de objetos en imgenes conviene
seleccionar.
48
7.
1
2
3
4
5
Apndice
<dependency>
<g r o u p I d>nu . p a t t e r n</ g r o u p I d>
< a r t i f a c t I d>opencv</ a r t i f a c t I d>
<version>2 . 4 . 9 7</ version>
</ dependency>
Figura 60: Dependencia Maven para la portacin de la librera OpenCV para Java
49
ITBA
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
ITBA
// 1 . Se c a r g a l a l i b r e r a de imgenes n e c e s a r i a .
OpenCV . l o a d L o c a l l y ( ) ;
// 2 . Se l e e n l o s a r c h i v o s de l a s dos imgenes y s e o b t i e n e n l a s m a t r i c e s
correspondientes .
Mat mat1 = H i g h g u i . imread (new F i l e ( " image1 . png " ) . g e t A b s o l u t e P a t h ( ) , H i g h g u i .
CV_LOAD_IMAGE_GRAYSCALE) ;
Mat mat2 = H i g h g u i . imread (new F i l e ( " image2 . png " ) . g e t A b s o l u t e P a t h ( ) , H i g h g u i .
CV_LOAD_IMAGE_GRAYSCALE) ;
// 3 . Se d e t e c t a n l o s p u n t o s c a r a c t e r s t i c o s de l a s imgenes o b t e n i n d o s e una i n s t a n c i a
de MatOfKeypoint para cada una .
F e a t u r e D e t e c t o r f e a t u r e D e t e c t o r = F e a t u r e D e t e c t o r . c r e a t e ( F e a t u r e D e t e c t o r . SIFT ) ;
MatOfKeyPoint k e y P o i n t s 1 = new MatOfKeyPoint ( ) ;
f e a t u r e D e t e c t o r . d e t e c t ( mat1 , k e y P o i n t s 1 ) ;
MatOfKeyPoint k e y P o i n t s 2 = new MatOfKeyPoint ( ) ;
f e a t u r e D e t e c t o r . d e t e c t ( mat2 , k e y P o i n t s 2 ) ;
// 4 . Se c o n s t r u y e n l o s d e s c r i p t o r e s de l a s imgenes o b t e n i n d o s e una i n s t a n c i a de Mat
para cada una .
D e s c r i p t o r E x t r a c t o r e x t r a c t o r = D e s c r i p t o r E x t r a c t o r . c r e a t e ( D e s c r i p t o r E x t r a c t o r . SIFT ) ;
Mat d e s c r i p t o r s 1 = new Mat ( ) ;
e x t r a c t o r . compute ( mat1 , k e y P o i n t s 1 , d e s c r i p t o r s 1 ) ;
Mat d e s c r i p t o r s 2 = new Mat ( ) ;
e x t r a c t o r . compute ( mat2 , k e y P o i n t s 2 , d e s c r i p t o r s 2 ) ;
// 5 . Se e n c u e n t r a n l a s c o r r e s p o n d e n c i a s e n t r e l o s d e s c r i p t o r e s de l a s imgene
o b t e n i n d o s e una n i c a i n s t a n c i a de MatOfDMatch para l a s dos imgenes .
DescriptorMatcher descriptorMatcher = DescriptorMatcher . create ( DescriptorMatcher .
BRUTEFORCE) ;
MatOfDMatch m a t c h e s 1 t o 2 = new MatOfDMatch ( ) ;
d e s c r i p t o r M a t c h e r . match ( d e s c r i p t o r s 1 , d e s c r i p t o r s 2 , m a t c h e s 1 t o 2 ) ;
L i s t <DMatch> m a t c h e s L i s t = m a t c h e s 1 t o 2 . t o L i s t ( ) ;
// 6 . Se hace un f i l t r a d o para q u e d a r s e s l o con l a s m e j o r e s c o r r e s p o n d e n c i a s u t i l i z a n d o
un c r i t e r i o s o b r e l a d i s t a n c i a de l a s c o r r e s p o n d e n c i a s de l a i n s t a n c i a MatOfDMatch y
s e t e a n d o GOOD_MATCHES_BOUND a c o r d e con l a c a l i d a d de r e s u l t a d o s que s e d e s e a
obtener .
double GOOD_MATCHES_BOUND = 0 . 7 ;
L i s t <MatOfDMatch> l i s t O f M a t s = new A r r a y L i s t <>() ;
d e s c r i p t o r M a t c h e r . knnMatch ( d e s c r i p t o r s 1 , d e s c r i p t o r s 2 , l i s t O f M a t s , 2 ) ;
L i s t <DMatch> g o o d M a t c h e s L i s t = new A r r a y L i s t <>() ;
f o r ( MatOfDMatch mat : l i s t O f M a t s ) {
i f ( mat . t o L i s t ( ) . s i z e ( ) == 2 ) {
i f ( mat . t o L i s t ( ) . g e t ( 0 ) . d i s t a n c e < GOOD_MATCHES_BOUND mat . t o L i s t ( ) . g e t ( 1 ) .
distance ) {
g o o d M a t c h e s L i s t . add ( mat . t o L i s t ( ) . g e t ( 0 ) ) ;
}
}
}
// 7 . Se c a l c u l a e l p o r c e n t a j e de c o r r e s p o n d e n c i a s como l a r e l a c i n e n t r e l a s buenas
c o r r e s p o n d e n c i a s o b t e n i d a s en e l paso 6 y e l t o t a l de c o r r e s p o n d e n c i a s o b t e n i d a s en
e l paso 5 .
double matchPercentage = 100 ( ( double ) g o o d M a t c h e s L i s t . s i z e ( ) / m a t c h e s L i s t . s i z e ( ) ) ;
// 8 . Se d i b u j a n l a s m e j o r e s c o r r e s p o n d e n c i a s s o b r e l a s dos imgenes una a l l a d o de l a
o t r a y s e g r a b a en d i s c o l a imagen r e s u l t a n t e como matchExample . png .
Mat matchMat = new Mat ( ) ;
F e a t u r e s 2 d . drawMatches ( mat1 , k e y P o i n t s 1 , mat2 , k e y P o i n t s 2 , goodMatches , matchMat ) ;
H i g h g u i . i m w r i t e ( " matchExample . png " , matchMat ) ;
8.
ITBA
Bibliografa
features.
http://www.cs.unc.edu/
kewan-
http://aishack.in/tutorials/sift-scale-invariant-feature-transform-
http://aishack.in/tutorials/sift-scale-invariant-feature-transform-
ITBA
[19] Takuma Maruyama, Yoshiyuki Kawano, and Keiji Yanai. Real-time mobile recipe recommendation
system using food ingredient recognition. In Proceedings of the 2Nd ACM International Workshop
on Interactive Multimedia on Mobile and Portable Devices, IMMPD 12, pages 2734, New York,
NY, USA, 2012. ACM.
[20] Edouard Oyallon and Julien Rabin. An Analysis of the SURF Method. Image Processing On Line,
5:176218, 2015.
[21] R Ramya and B Sudhakara. Motion detection in moving background using orb feature matching
and affine transform. IJITR, pages 162164, 2015.
[22] Ethan Rublee, Vincent Rabaud, Kurt Konolige, and Gary Bradski. Orb: An efficient alternative to
sift or surf. In Proceedings of the 2011 International Conference on Computer Vision, ICCV 11,
pages 25642571, Washington, DC, USA, 2011. IEEE Computer Society.
[23] Matthew Toews, William Wells, D Louis Collins, and Tal Arbel. Feature-based morphometry:
Discovering group-related anatomical patterns. NeuroImage, 49(3):23182327, 2010.
[24] Deepak Geetha Viswanathan. Features from accelerated segment test (fast), 2009.
[25] Lei Yu, Zhixin Yu, and Yan Gong. An improved orb algorithm of extracting and matching. 2015.
52