View the Project on GitHub gdsa-upc/Enjoy-Exploring-Terrassa
Diapositiva de la sessió |
---|
Sessió 3 |
Sessió 4 |
Sessió 5 |
Sessió 6 |
Presentació final |
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.
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:
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.
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 |
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.
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.
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.
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.
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 |