¿Quiénes somos?
Somos un grupo de estudiantes de la Universidad Politécnica de Catalunya, que cursamos el grado de Ingenieria de Sistemas Audiovisuales.
Este grupo está formado por los alumnos:
Alumnos | |
Mi Steinbach | |
Sarai Vizuet | |
Felipe Christian Cuzcano | |
Albert Bruna | Enlace |
Joshua Molina | Enlace |
¿Qué es Search-Around?
Search-Around es un proyecto que está en fase de desarrollo. Este está diseñado en el lenguaje de python. Este proyecto se basa en dos ideas:
1. Buscador visual
2. Clasificador de imágenes
Para hacer estas dos ideas, este proyecto se basará en los siguientes pasos:
Buscador Visual
La idea de este apartado es que el programa debe comparar la imagen de referencia con toda la base de datos y, después, debe dar una secuencia de imágenes, cuyas tengan la máxima simlitud a la imagen de referencia.
Para hacer una búsqueda visual a través de una imagen que cogemos como referencia, el programa empieza buscando los puntos de interés de dicha imagen y sus respectivos descriptores.
En este proceso hay cuatro fases/funciones, tal y como está explicado en el notebook de la sesión 5, que son los siguientes:
- Get Local Features - Train Codebook - Get Assignments - Build Bow
Una vez hecho estas cuatro fases, hay una función principal que reune todas las funciones anteriores llamada Extract Features, que a partir de esta obtenemos los resultados mostrados más adelante.
Puntos de interés
Para obtener los puntos de interés de una imagen hemos utilizado el descriptor 'ROOTSIFT'. A continuación podemos ver una foto del ayuntamiento de Terrassa después de obtener diferentes puntos de interés.
Nuestra base de datos está formada por 900 fotos, de las cuáles 600 fotos son de varios edificios de Terrassa, y las otras 300 son sobre cualquier otro edifcio.
Los distintos edificios de Terrassa que se pueden encontrar en esta base de datos son:
MNACTEC Mercat de la Independència Ajuntament de Terrassa
Societat General d'Electricitat Estació del Nord Monument de la Dona
Escola d'Engenyeria de Terrassa Catedral de Terrassa Farmàcia de Albinyana
Masia Freixa Castell Cartoixa Teatre Principal
Extracción de características con Bag of Words
Para hacer esto, primero generamos un descriptor para cada imagen de entrenamiento y de validación. Utilizamos la técnica de Bag of Words, que consiste en la formación de un codebook de palabras visuales y la construcción de un descriptor de imagen, codificando el número de veces que cada palabra en el codebook aparece en la imagen.
Ranking
Una vez extraído y almacenado los BoW descriptors, calculamos las distancias de cada descriptor de imagen en el conjunto de validación para todos los descriptores de imagen en el conjunto de entrenamiento. Una vez que tenemos estas distancias, podemos utilizarlas para clasificar las imágenes en el conjunto de entrenamiento de menor a mayor.
Evaluación del Ranking
Mean Average Precision 0.282442731466
- Average Precision de cada una de las imágenes:
· mercat_independecia 0.273181304933 · societat_general 0.32054599591
· farmacia_albinyana 0.260130410298 · ajuntament 0.779229430976
· mnactec 0.230665367417 · escola_enginyeria 0.371677589082
· masia_freixa 0.187387928289 · castell_cartoixa 0.263374591941
· dona_treballodora 0.087948673167 · catedral 0.17692925318
· teatre_principal 0.253857229101 · estacio_nord 0.184385003301
Ahora veremos un ejemplo para dos imágenes:
En esta última imagen da mejor resultado que la primera, ya que la clase 'ajuntament' tiene una precisión alta (0.779). En cambio la clase 'masia_freixa' tiene una precisión 6 veces menor (0.187).
Clasificador de imágenes
Este apartado está dividido en dos fases/funciones, que son el Train Classfier y el Classifier.
Para poder entrenar el clasificador utilizamos el diccionario de entrenamiento creado a partir de la función Extract Features hecha con anterioridad, y la lista de anotación.
Una vez entrenado el clasificador, lo cargamos en la función Classifier, junto al diccionario del conjunto de validación (para obtener sus BoW) y la anotación (dónde se podrá comparar las clases reales).
Creamos una lista de identificadores y otra con los BoW (Bag of Words). Y por último hacemos la predicción de los BoW del conjunto de validación respecto al modelo de entrenamiento.
Una vez hecho estas dos funciones utilizamos un evaluador para poder obtener los siguientes resultados:
Measures | Results |
F1 : | 0.802964535743 |
Precision : | 0.823157560094 |
Recall : | 0.805128205128 |
Accuracy : | 0.794444444444 |
- Dónde F1 es la medida de precisión que tiene el test, que combina los valores de la precisión y del recall.
- La precisión es la fracción de los documentos recuperados que son relevantes para la consulta.
- Recall es la fracción de los documentos que son relevantes para la consulta que se recupera satisfactoriamente.
- Accuracy es la exactitud de los resultados.
Matriz de Confusión
Comparación de puntos de interés
En la siguiente imagen observamos una líneas de color azul que unen las dos imagenes que son de la misma clase 'ajuntament'.
Lo que está haciendo es comparar los puntos de interés de dichas imágenes.