Machine Learning

Challenge 2018

Machine Learning Challenge 2018

Il challenge descritto in questa pagina è relativo al progetto di esame assegnato agli studenti del corso di Machine Learning tenuto nell' A.A. 2017/2018 dal Prof. Giovanni Maria Farinella all'interno del corso di studi in Informatica Magistrale dell'Università di Catania.

Il dataset utilizato in questo challenge è una versione ridotta del dataset utilizzato nel seguente articolo scientifico (http://iplab.dmi.unict.it/EgocentricShoppingCartLocalization/):

E. Spera, A. Furnari, S. Battiato, G. M. Farinella, Egocentric Shopping Cart Localization, International Conference on Pattern Recognition (ICPR), 2018

Localizzazione Basata su Immagini

Il challenge consiste nell'affrontare un problema di localizzazione basato su immagini, ovvero costruire un algoritmo che, data una immagine acquisita in uno spazio noto, permetta di inferire la posizione dalla quale l'immagine è stata scattata (si veda immagine di seguito). In particolare, noi ci occuperemo di indoor localization, ovvero localizzazione all'interno di un edificio. Inoltre, considereremo il problema della classificazione 2D, invece del più generale problema di localizzazione 3D.

Il problema della localizzazione basata su immagini può essere affrontato come un problema di machine learning assumendo la presenza di un adeguato set di immagini di training etichettate. A seconda del livello di descrizione richiesto, il problema può essere affrontato in due modi: come un problema di classificazione o come un problema di regressione:

  • Localizzazione basata su classificazione: ogni immagine è provvista di una etichetta che indica in quale parte dell'edificio l'immagine è stata acquisita. Per ottenere le etichette, l'edificio viene generalmente suddiviso in zone non sovrapposte (ad esempio, le stanze di una casa), in modo tale che ogni immagine appartenga a una e una sola classe;
  • Localizzazione basata su regressione: ad ogni immagine viene associata una etichetta composta di quattro numeri reali (x,y,u,v). Le variabili x e y rappresentano la posizione dalla quale è stata scattata l'immagine nel piano 2D. I valori u e v costituiscono un vettore di modulo unitario (u,v) che rappresenta l'orientamento della camera che ha scattato la foto sul piano 2D. L'angolo o di orientamento si può ottenere dai valori u e v utilizzando la formula a=atan2(v,u) (si veda https://en.wikipedia.org/wiki/Polar_coordinate_system).

L'immagine di seguito esemplifica la differenza tra localizzazione basata su classificazione e localizzazione basata su regressione.

Challenge di Classificazione e Regressione

Ogni partecipante avrà a disposizione un dataset suddiviso in tre set: training, test e validation. Le etichette degli insiemi di training e validation verranno fornite insieme al dataset, mentre del test set saranno disponibili solo le immagini. Gli algoritmi potranno essere allenati sul training set e testati sul validation. Per completare il challenge, bisognerà consegnare le etichette inferite sul test set.

Seguendo lo schema discusso sopra, il challenge si articola in due parti, onguna delle quali farà uso dello stesso set di dati provvisto delle adeguate etichette di training e validation:

  • Classification Challenge: costruire un algoritmo capace di classificare le immagini del dataset correttamente.
  • Regression Challenge: costruire un algoritmo che, presa in input una immagine del dataset, inferisca i quattro valori (x,y,u,v) che la localizzano.

Valutazione

Gli algoritmi prodotti vanno valutati riportando:

  • Clasificazione: Accuracy, matrice di confusione, score F1 relativi alle diverse classi e score mF1;
  • Regressione: Errore RMS (Root Mean Square) medio e mediano relativo a posizione (in metri) e orientamento (in gradi). Per facilitare la valutazione dei risultati di regressione, si fornisce il codice Python disponibile qui. Il codice fornito può essere importato come modulo o utilizzato da riga di comando per valutare le performance di un algoritmo date le etichette di ground truth e le predizioni salvate su file txt.

Dataset

Il dataset consiste in 19531 immagini acquisite all'interno di un supermercato, suddivise in tre set: training set (10259 immagini), validation set (3101 immagini) e testing set (6171 immagini).

Ogni immagine è etichettata rispetto a:

  • Posizione (x,y) e orientamento (u,v) dai quali l'immagine è stata acquisita;
  • Classe di appartenenza. Il supermercato è stato suddiviso in 16 macroaree e ogni immagine è stata assegnata a una di queste macroaree. Le classi sono dei numeri che vanno da 0 a 15.


La figura di seguito mostra il plot delle posizioni delle immagini del training set. I colori indicano le classi di appartenenza di ogni immagine. Le etichette di training e validation set sono fornite, mentre quelle del testing set non vengono rese pubbliche.

Le etichette corrispondenti a ogni immagine di training e validation set sono riportate nei file csv training_list.csv e validation_list.csv. Ogni file riporta 6 colonne rappresentanti rispettivamente:

  • il nome del file dell'immagine;
  • la coordinata x relativa alla posizione dell'immagine;
  • la coordinata y relativa alla posizione dell'immagine;
  • la coordinata u relativa all'orientamento dell'immagine;
  • la coordinata v relativa all'orientamento dell'immagine.
  • etichetta relativa alla classe di appartenenza dell'immagine;

Download Dataset

Istruzioni

I partecipanti dovranno costruire gli algoritmi utilizzando training e validation set. Il validation set è pensato per permettere di valutare le differenze tra i vari algoritmi progettati e ottimizzarne gli iperparametri. Le etichette del testing set non sono rilasciate pubblicamente, per cui non è possibile misurare da soli le performance sul test set. Tali performance verranno misurate dal professore alla consegna del progetto. La consegna del progetto dovrà contenere:

  • Il codice contenenti le procedure di training e testing degli algoritmi;
  • Un file di testo predictions.csv contenenti le predizioni sul test set nello stesso formato delle etichette di ground truth fornite per training e validation set;
  • Una relazione che documenta il processo utilizzato per sviluppare l'algoritmo, le prove effettuate e i risultati ottenuti (es. comparazione tra algoritmi).

Relazione

La relazione dovrà contenere le seguenti sezioni:

  • Introduzione: introduce il problema affrontato e indica il metodo/i utilizzato/i per risolverlo. Inserire una figura che mostra l'idea generale (in maniera schematica) dietro il metodo presentato;
  • Metodo: illustra il metodo proposto e mostra i dettagli tecnici della soluzione. E' consigliato suddividere la sezione in sottosezioni e inserire figure per agevolare la spiegazione;
  • Esperimenti: presenta gli esperimenti, incluse le prove effettuate per arrivare al risultato proposto, mostra e discute i risultati. E' necessario riportare i risultati in tabella ed è possibile aiutarsi con dei grafici;
  • Conclusione: riassume brevemente il lavoro fatto. Quali "lezioni" sono state imparate? Cosa si potrebbe fare per migliorare il metodo proposto?