Ingegneria Informatica e dell’Intelligenza Artificiale Applicata LM-32
Visione computerizzata e sistemi cognitivi
Settore scientifico disciplinare | Numero crediti formativi (CFU) | Docente |
ING-INF/05 | 9 | -- Nessun gestore -- |
Obiettivi formativi
L’insegnamento si propone di fornire agli studenti i fondamenti della visione e dei sistemi cognitivi: l’acquisizione, l’image processing ed analysis, la geometria 3D, la stima del movimento e la classificazione, e gli strumenti per la progettazione di sistemi cognitivi basati sulla visione. Inoltre, saranno proposti progetti in diversi contesti: video-sorveglianza, guida autonoma, HMI, robotica, interpretazione del comportamento umano (viso, riconoscimento e tracciamento del corpo). L’insegnamento contribuisce anche al potenziamento delle capacità trasversali Autonomia di giudizio, Abilità comunicative e Capacità di apprendimento degli studenti.
Risultati di apprendimento attesi
Conoscenza e capacità di comprensione Lo studente dovrà acquisire una comprensione integrata, non compartimentalizzata, degli argomenti del corso, che gli permetta di tracciare connessioni storiche e tecniche tra i vari argomenti e che l’aiuti allo sviluppo di capacità critiche di analisi dei sistemi di visione computazionali moderni, anche tenendo conto di vincoli computazionali e di altra natura. Conoscenza dei principi di ottica e funzionamento di telecamere e fotocamere, sel sistema visivo umano e delle differenze tra i due. Conoscenza delle problematiche della rappresentazione del colore, del campionamento delle immagini, della quantizzazione del segnale luminoso e degli effetti non-ideali che possono influenzare questi processi. Conoscenza della rappresentazione computazionale di una immagine e dei principi che regolano trasformazioni geometriche semplici (come scalatura, rotazioni e altre trasformazioni affini) e di operatori puntuali che agiscono sui singoli pixel. Conoscenza dei principi di filtraggio bidimensionale, sia lineare che non lineare, e conoscenza degli aspetti implementativi di alcuni filtri notevoli (media, gaussiano, gradiente e simili) Conoscenza delle principali soluzioni algoritmiche classiche per il keypoint detection and matching e delle classi di problemi che possono aiutare a risolvere. Conoscenza di algoritmi notevoli come Harris Corner Detection e SIFT, tra gli altri. Conoscenza della geometria proiettiva e delle tecniche di calibrazione delle telecamere. Conoscenza dei sistemi di stima dei parametri delle trasformazioni affini e omografiche (Least Squares, RANSAC e altro) Conoscenza della geometria epipolare. Comprensione dei problemi di triangolazione stereoscopica, di rettificazione e delle tecniche principali per la stima della profondità utilizzando due immagini rettificate. Conoscenza del problema della stima del moto di una telecamera e al contempo della struttura dell’ambiente (Structure from Motion, SLAM). Comprensione delle principali soluzioni per pipelines di mappatura e ricostruzione con l’utilizzo di telecamere monoculari. Conoscenza delle classi di problemi di interpretazione semantica dell’immagine come la classificazione, detection di oggetti e segmentazione (standard, instance e panoptic). Conoscenza delle reti neurali convoluzionali (CNN) e della loro evoluzione nell’ultimo decennio come strumento principale per la soluzione dei problemi di visione computazionale. Conoscenza delle architetture e pipeline fondamentali per la detection e la segmentazione delle immagini (FastRCNN, YOLO, MaskRCNN e altre). Conoscenza dell’architettura Transformer e delle applicazioni recenti ai problemi di Visione Computazionale. Conoscenza delle ultime frontiere di ricerca in visione computazionale (Diffusion models, applicazioni di Self/weak/Semi-supervised learning come DINO, Vison-language models, foundational models, etc.) Capacità di applicare conoscenza e comprensione Lo studente acquisirà grazie al corso la capacità di implementare autonomamente gli algoritmi e le funzioni di base di un sistema di elaborazione digitale a partire dai fondamentali, per arrivare alle applicazioni più sofisticate e moderne. Più in dettaglio, saprà: implementare le basi fondamentali delle librerie di elaborazione di immagini, includendo il caricamento e il salvataggio di immagini, il loro ridimensionamento, trasformazioni affini e filtraggio tramite operazione di convoluzione. implementare semplici algoritmi di keypoint detection e matching e applicarli a problemi di stima robusta del moto della telecamera o degli oggetti (visual odometry e optical flow). Utilizzare python e pytorch per sviluppare architetture neurali e risolvere problemi di classificazione, detection, segmentazione delle immagini. Essere in grado leggere letteratura scientifica e produrre elaborati di livello avanzato sugli argomenti inerenti la visione computazionale. Abilità di giudizio Lo studente acquisirà le capacità di analizzare problemi che possono intersecare o rientrare completamente nell’ambito della visione computazionale. Sarà altresi in grado di valutare i pro e contro di soluzioni esistenti e di proporre modifiche per migliorare performance o per risolvere problemi specifici. Lo studente saprà anche valutare in maniera critica e ponderata i nuovi contributi scientifici e tecnologici nel mutevole panorama accademico e industriale inerente la visione computazionale. Abilità di comunicare Lo studente avrà la capacità di comunicare ad una platea di tecnici o esperti del settore, in forma scritta o verbale, le conoscenze che avrà acquisito. Capacità di apprendimento Lo studente avrà la capacità di analizzare autonomamente nuovi problemi di visione computazionale e di pianificare un percorso di apprendimento autonomo che gli permetta di comprenderne sia gli aspetti teorici che pratici e implementativi. Sarà altresì capace di documentarsi sulle novità tecniche e scientifiche, conoscendo le principali conferenze e riviste del settore da cui attingere le informazioni.
Programma (tentative)
Il corso coprirà questi macro-argomenti, ciascuno composto da 5 o più video-lezioni. In aggiunta, delle esercitazioni di laboratorio approfondiranno alcuni di questi argomenti in modalità interattiva sincrona. Di fianco a ciascun argomento si trova la stima approssimativa (essendo la prima edizione, ci potrebbero essere degli aggiustamenti nel peso relativo di ciascun argomento, man mano che le videolezioni vengono preparate) del numero di crediti formativi che l’argomento coprirà. Introduzione all’acquisizione e alla rappresentazione delle immagini e filtraggio lineare e non-lineare. (1,5 CFU) Estrazione di caratteristiche visuali e di punti di interesse, descrittori e matching. Trasformazioni affini e omografiche e stima robusta dei parametri. (1.5 CFU) Geometria epipolare, calibrazione e rettificazione. Visione stereoscopica. (1 CFU) Stima del moto di una telecamera e optical flow. (1 CFU) Elementi di Machine Learning applicati alla visione computazionale. Reti neurali convoluzionali. (1,5 CFU) Problemi di classificazione delle immagini, object detection e segmentation e principali soluzioni algoritmiche. (1,5 CFU) Applicazioni recenti di visione computazionale: architetture Transformer, Diffusion Models, Rendering neurale, Visual-language models e tecniche di apprendimento non supervisionato applicate alla computer vision. (1 CFU)
Prerequisiti
Non ci sono propedeuticità specifiche, ma si assume una conoscenza di base degli argomenti dell’ingegneria informatica propri di una laurea triennale.
Prerequisiti:
Algebra lineare
Fondamenti di informatica
Fondamenti di architettura dei calcolatori
Analisi e geometria
Risorse
Il docente consiglia l’integrazione del materiale fornito (videolezioni, slides, esercitazioni) con i seguenti testi, a cui il docente può fare riferimento durante le lezioni:
-
Szelinski, R. Computer Vision, ed. Springer Cham (2022),
ISBN 978-3-030-34372-9(e-book) doi:10.1007/978-3-030-34372-9
disponibile gratuitamente in pdf al link: https://szeliski.org/Book/ -
Shapiro, L., Stockman, G., Computer Vision, Prentice Hall (2001), ISBN: 0130307963, 9780130307965
-
Forsyth, D. Ponce, J., Computer Vision: a modern approach, Prentice Hall (2003), ISBN: 0-13-085198-1
-
Bishop, C., Pattern Recognition and Machine Learning, Springer (2006), ISBN 978-0387310732
-
Hartley, R., Zisserman, A., Multiple View Geometry in Computer Vision, Cambridge University Press (2004), ISBN 9780511811685, doi: 10.1017/CBO9780511811685
Per i fondamenti di Machine Learning (prerequisito per il corso)
-
James, G., Witten, D., Hastie, T., Tibishirani, R., Taylor, J., An Introduction to Statistical Learning with application in python, Springer (2023), disponibile gratuitamente online al link: https://www.statlearning.com/