Enjoy Exploring Terrassa

View the Project on GitHub gdsa-upc/Enjoy-Exploring-Terrassa

logo

Diapositiva de la sessió
Sessió 3
Sessió 4
Sessió 5
Sessió 6
Presentació final

INTRODUCCIÓ

Aquesta es la web de Enjoy Exploring Terrassa del projecte de l'assignatura Gestió i Distribució del Senyal Audiovisual del Grau en Enginyeria de Sistemes Audiovisuals de l'ESEIAAT de la Universitat Politècnica de Catalunya.


Que és?

En aquesta web es publicaran els resultats del projecte d'enginyeria de l'assignatura GDSA. Aquest projecte consisteix en la creació de una aplicació capaç d'identificar i posteriorment classificar 12 edificis de Terrassa. Això serà possible gràcies a que disposem d'una base de dades amb diferents imatges on apareixen aquests 12 edificis vists des de diferents perspectives i en diferents instants del dia. A part dins aquesta base de dades trobem imatges desconegudes, és a dir, que no tenen res a veure amb la resta d'edificis, que ens serviran com a distractors. Aquí dos exemple de les dues classes d'imatges que trobem:

Un dels edificis de Terrassa: Ajuntament de Terrassa

ajuntament_73

Distractor

desconegut_252

Alhora de realitzar tot el codi amb Phyton hem utilitzat el programa Canopy amb tot un conjunt de llibreries que podem descarregar des del mateix.

canopy-logo

Qui som?

L'equip Enjoy Exploring Terrassa està format per 4 components:

Component Perfil GitHub
Adrià Alsina @adrialsina
Ricard Ribalta @ricardribalta
Cristina Uroz @CristinaUroz
Bernat Vilella @kikevite

Com funciona?

Creació d'una base de dades:

Primerament, per tal de començar el nostre projecte, el nostre primer objectiu va ser la creació d'una base de dades.Això ho vem fer a partir d'una base de dades ja existent, realitzada per alumnes d'any anteriors, amb unes 180 fotos d'entrenament, que com el nom indica, serviran per entrenar el nostre sistema i, per 450 fotos de validació que serviran per evaluar el nostre sistema. Així doncs, a partir d'aquesta base de dades la nostre primera tasca va ser expendir-la, afegint-hi imatges, tant d'entranament, com de validació i distractors, per tal d'aconseguir una base de dades més amplia. Finalment vem crear un script per crear aquesta base de dades.

Primer Script: Detecció de punts característics

Un cop teniem la base de dades creada vem poder començar a treballar amb aquesta. Amb el primer que vem treballar va ser amb la creació d'una funció per tal de trobar els punts característics de les diferents imatges.

punts

Feature Extraction

Més endevant ens vem dedicar a crear un seguit de 5 funcions; get_local_featrues, train_codebook,get_assignments,build_bow i get_features. Amb aquestes el que vem fer va ser primerament amb la primera funció obtenir tots els descriptors de les imatges que es trobaven a la base de dades, com a resultat d'aquesta funció es van crear dos fitxers diferents, un per les imatges d'entranament i l'altre per les de validació, amb els descriptors per cada imatge. Llavors mitjançant la funció get_assignments, vem obtenir les assignacions i com a resultat ens va retornar un vector, indicant-nos per cada descriptor quina assignació té. I finalment vem crear la funció principal. Aquesta agafa tots els id’s de les diferents imatges d’entrenament i validació, n’extreu les característiques i crear una especia de diccionari on hi guardarà els diferents descriptors per a cada imatge.

Rànquing de les imatges

Finalment hem creat dues funcions; rank i eval_rankings amb les quals a partir de establir uns inputs aconseguim com a sortida un fitxer .txt per a cada imatge que conte els id’s de les fotos que més s’assemblen.

Gràcies a un display podem veure un exemple sobre el funcionament del rànquing i com verifica si classifica les imatges de forma correcta o no. En aquest cas veiem la farmàcia, i podem veure ambun marge de color blau la imatge amb la qua hem fet la cerca, i llavors de les 14 imatges que s'assemblen més, que ens retorna la funció eval_rank,podem veure amb verd les que realment són la farmàcia i amb color vermell les que no ho són.

display

Resultats

Finalment, com a resultats de la nostre aplicació, utilitzant les tècniques descrites anteriorment, amb ROOT_SIFT i un cluster de 11000, hem obtingut el següent mAP (mitjana precisió de cada imatge):

Mesura Valor
mAP (mean Average Precision) 0.29415