Obiettivi formativi
Il corso ha l'obiettivo di fornire le conoscenze necessarie per la progettazione e l'applicazione di sistemi di visione artificiale, promuovendo l'acquisizione di competenze progettuali direttamente spendibili anche nel mondo del lavoro. Il corso prevede la presentazione di nozioni metodologiche di base, lo sviluppo di argomenti avanzati anche atttraverso seminari specifici (nella prima parte), e lo svolgimento di esercitazioni di laboratorio individuali obbligatorie (nella seconda parte). Per lo svolgimento delle attivita' di laboratorio gli studenti devono disporre di capacita' di sviluppo di software, prevalentemente in ambiente C/Unix/OpenCV.
Prerequisiti
Si richiede la conoscenza pratica degli argomenti trattati nei corsi di Calcolatori Elettronici, Fondamenti di Informatica, e Sistemi Operativi. Per lo sviluppo dei progetti, verra' utilizzato il linguaggio C/C++ con l'ausilio della libreria OpenCV.
Contenuti dell'insegnamento
Concetti ed algoritmi base della elaborazione di immagini e di visione artificiale:
01. immagini
02. telecamere
03. elaborazioni locali
04. elaborazioni puntuali
05. operazioni su immagini monocromatiche
06. linee e contorni
07. modello telecamera
09. calibrazione
09. geometria monoculare
10. geometria della stereovisione
11. visione stereo
12. stima di parametri
13. estrazione di features
14. stima corrispondenze
15. cenni SFM e di image segmentation
16. OpenCV
Programma esteso
00. introduzione al corso e alla visione artificiale
01. immagini: tipologie e formati
02. telecamere: evoluzione, tipologie, problemi e preprocessing
03. elaborazioni locali: convoluzione, smoothing, calcolo gradiente, ottimizzazione filtri, filtraggi non lineari, immagine integrale e relative applicazioni
04. elaborazioni puntuali: miglioramenti, modifiche luminosità e contrasto, istogramma immagine, equalizzazione immagini
05. operazioni su immagini monocromatiche: sogliatura, calcolo della soglia ottica, morofologia matematica e principali operazioni su immagini monocromatiche, estensione della morfologia matematica a immagini a toni di grigio
06. linee: filtro di Canny e trasformata di Hough
07. modello telecamera: telecamere pin-hole e passaggio dal mondo 3D al piano immagine. Parametri intrinseci ed estrinseci di una telecamera.
09. calibrazione: calcolo dei parametri di un sistema di visione
09. geometria monoculare: linee e punti all'orizzonter, calibrazione mediante sinfola immagine, stima della geometria di un sistema di visione
10. geometria della stereovisione: modello matematico di un sistema di visione stereo, linee epipolari, matrice essenziale e matrice fondamentale, rettificazione immagini
11. visione stereo: concetto di disparità e relative tecniche per calcolarla.
12. stima di parametri: minimi quadrati e statistiche robuste basate su RANSAC
13. estrazione di features: concetto di "feature", Harris corners.
14. stima corrispondenze: feature matching mediante differenti approcci come SIFT, BRIEF, BRISK ecc.
15. cenni SFM e di image segmentation
16. Introduzione a OpenCV, la classe cv::Mat, i relativi membri, metodi e costruttori. Cenni a specifiche classi e funzioni di OpenCV. Analisi di semplici programmi di esempio e sviluppo di esercizi legati a quanto fatto a lezione
Bibliografia
D. A. Forsyth and J. Ponce. Computer Vision: A Modern Approach (2nd Edition). Prentice Hall, 2011.
R. Hartley and A. Zisserman. Multiple View Geometry in Computer Vision. Cambridge University Press, 2003.
Metodi didattici
Lezioni teoriche e laboratorio mediante portatle di proprietà
Modalità verifica apprendimento
PUNTEGGIO
- 1 scritto su argomenti di TEORIA, 2 ore, 15 PUNTI (minimo 6)
- 1 prova PRATICA in laboratorio, 2 ore, 15 PUNTI (minimo 8)
- esercitazioni opzionali in laboratorio, 2 PUNTI
VALIDITA'
Prova teorica, pratica e assegnamenti restano validi fino alla sessione autunnale.
MODALITA' PROVA SCRITTA
3 domande a risposta aperta su argomenti di teoria.
Non e' consentito consultare appunti o manuali.
MODALITA' PROVA PRATICA
Scrivere un programma C/C++ simile a quelli visti ad esercitazione:
- si svolgera' in laboratorio
- e' consentito l'uso dei portatili personali
- e' consentito l'uso di qualunque tipo di materiale e codice OFFLINE: appunti, codici di esempio, esercitazioni, manuali, assegnamenti e altro codice che avete scritto.
- NON e' consentito consultare siti online durante la prova
verra' valutato anche se il codice compila e termina correttamente (no crash o segmentation fault vari)
Altre informazioni
- - -
Obiettivi agenda 2030 per lo sviluppo sostenibile
- - -