SSD: ING-INF/03
CFU: 9
Insegnamenti propedeutici (se previsti dall'Ordinamento del CdS)
Nessuno.
Eventuali prerequisiti
Teoria dei Segnali.
Obiettivi formativi
L’insegnamento si propone di fornire agli studenti nozioni approfondite sullo sviluppo e l’applicazione di tecniche di elaborazione delle immagini per la soluzione di tipici problemi di computer vision, spaziando da metodi tradizionali per l’elaborazione dei segnali, cioè orientati alla modellizzazione, ad approcci moderni basati su reti neurali convoluzionali. Specifici problemi di computer vision considerati quali obiettivi formativi del corso sono la rivelazione, caratterizzazione ed il matching di feature locali, il fitting e l’allineamento di modelli geometrici, la classificazione di immagini, la segmentazione semantica o per istanze di immagini, la rivelazione, localizzazione ed il riconoscimento degli oggetti, la stima della posa, la stima della profondità, la corrispondenza stereo, la ricostruzione 3D da viste multiple.
Risultati di apprendimento attesi
Conoscenza e capacità di comprensione
Lo studente dovrà conoscere sia tecniche di filtraggio classiche che approcci basati su moderne reti neurali convoluzionali per la soluzione di problemi di visione computazionale quali la rivelazione, descrizione ed il matching di feature locali, il fitting e l’allineamento di modelli geometrici, la classificazione di immagini, la segmentazione semantica o per istanze, la rivelazione, localizzazione e riconoscimento di oggetti, la stima della posa, la stima della profondità, la corrispondenza stereo, la ricostruzione 3D da viste multiple, dalla prospettiva dell’elaborazione dei segnali. Per i problemi elencati lo studente dovrà altresì conoscere le metriche o gli indici prestazionali utili alla valutazione delle possibili soluzioni.
Capacità di applicare conoscenza e comprensione
Lo studente deve acquisire la capacità di progettare, sviluppare e testare algoritmi di elaborazione delle immagini allo stato dell’arte finalizzati alla risoluzione di comuni problemi di visione computazionale, tra cui la rivelazione, descrizione ed il matching di feature locali, il fitting e l’allineamento di modelli geometrici, la classificazione di immagini, la segmentazione semantica o per istanze, la rivelazione, localizzazione e riconoscimento di oggetti, la stima della posa, la stima della profondità, la corrispondenza stereo, la ricostruzione 3D da viste multiple.
Programma - Syllabus
Richiami sul filtraggio delle immagini. Dominio spazio-scala e decomposizione piramidale. Richiami sugli ambienti di programmazione per lo sviluppo di algoritmi di computer vision.
Formazione dell'immagine: La luce e il colore. Il modello pinhole camera. La proiezione del mondo 3D nel piano dell’immagine: matrice di proiezione della camera e calibrazione della camera. Trasformazioni geometriche di tipo proiettivo.
Early vision: Rivelazione dei contorni; segmentazione mediante trasformata watershed; template matching e descrizione tessiturale; rivelazione di angoli (Harris detector) e linee (trasformata di Hough).
Rivelazione e descrizione di keypoint: Definizione di keypoint e proprietà di ripetitività. Proprietà di invarianza dei rivelatori rispetto ad illuminazione, traslazione, rotazione, scala, trasformazioni affini e omografie. Rivelatore di Harris. Differenza di gaussiane (DoG). Piramide di DoG. Orientazione e scala di un keypoint. Descrittori di feature: proprietà discriminative; descrittori di comune impiego (SIFT, SURF, MSER,...); descrittori di forma e contesto.
Matching, fitting ed allineamento: Matching di feature mediante criterio del rapporto delle distanze. Fitting ed allineamento: metodo dei minimi quadrati lineare o robusto; algoritmo ICP; trasformata di Hough generalizzata; algoritmo RANSAC. Rivelazione, riconoscimento e classificazione.
Elaborazione delle immagini mediante reti neurali convoluzionali (CNN): Architetture convoluzionali per l'elaborazione delle immagini. Addestramento di CNN per l’elaborazione delle immagini: backpropagation e algoritmo di ottimizzazione SGD (e varianti). Moduli (layer) di comune impiego: convoluzione, pooling, unpooling, batch normalization, funzioni di attivazione (ReLU e sue varianti, Tanh, sigmoide). Funzioni di costo per l'elaborazione delle immagini. Dropout e data augmentation. Modelli CNN per super-risoluzione, classificazione, segmentazione, rivelazione e localizzazione di oggetti, stima della profondità, stima della posa.
Visione multi-view: Visione stereo: disparità e profondità. Vincoli epipolari; matrice essenziale e matrice fondamentale. Problemi di corrispondenza densi. Ricostruzione 3D da multi-view: Structure from Motion (SfM).
Materiale didattico
Si veda il sito web del docente della materia.
Modalità di svolgimento dell'insegnamento
Il corso prevede sia lezioni frontali (circa il 60% del totale) che attività di laboratorio. Sono tra l’altro previsti tutorial introduttivi sia sul linguaggio di programmazione Python e gli annessi toolbox per il deep learning che sull’uso di piattaforme di calcolo in cloud funzionali agli obiettivi del corso. Parte delle ore di laboratorio saranno dedicate allo sviluppo in itinere, con tutoraggio, dei progetti degli studenti ai fini della valutazione finale.
Verifica di apprendimento e criteri di valutazione
Modalità di esame
L’esame prevede la presentazione di un progetto svolto individualmente o in gruppo, con relativa discussione, ed un colloquio generale sui contenuti del corso. Il progetto è di norma sviluppato in itinere e presentato al termine del corso in un workshop di chiusura, mentre il colloquio può tenersi in qualsiasi appello dell’a.a. corrente senza vincoli temporali.