Corsi di Laurea Corsi di Laurea Magistrale Corsi di Laurea Magistrale
a Ciclo Unico
Scuola di Ingegneria
INGEGNERIA INFORMATICA
Insegnamento
COMPUTER VISION
INP9087774, A.A. 2019/20

Informazioni valide per gli studenti immatricolati nell'A.A. 2019/20

Principali informazioni sull'insegnamento
Corso di studio Corso di laurea magistrale in
INGEGNERIA INFORMATICA
IN0521, ordinamento 2009/10, A.A. 2019/20
N0
porta questa
pagina con te
Crediti formativi 9.0
Tipo di valutazione Voto
Denominazione inglese COMPUTER VISION
Dipartimento di riferimento Dipartimento di Ingegneria dell'Informazione (DEI)
Obbligo di frequenza No
Lingua di erogazione INGLESE
Sede PADOVA
Corso singolo È possibile iscriversi all'insegnamento come corso singolo
Corso a libera scelta È possibile utilizzare l'insegnamento come corso a libera scelta

Docenti
Responsabile STEFANO GHIDONI ING-INF/05

Mutuazioni
Codice Insegnamento Responsabile Corso di studio
INP9087774 COMPUTER VISION STEFANO GHIDONI IN0527

Dettaglio crediti formativi
Tipologia Ambito Disciplinare Settore Scientifico-Disciplinare Crediti
CARATTERIZZANTE Ingegneria informatica ING-INF/05 9.0

Organizzazione dell'insegnamento
Periodo di erogazione Secondo semestre
Anno di corso I Anno
Modalità di erogazione frontale

Tipo ore Crediti Ore di
didattica
assistita
Ore Studio
Individuale
LEZIONE 9.0 72 153.0

Calendario
Inizio attività didattiche 02/03/2020
Fine attività didattiche 12/06/2020
Visualizza il calendario delle lezioni Lezioni 2019/20 Ord.2009

Syllabus
Prerequisiti: Il corso prevede conoscenze preliminari di: analisi matematica, algebra lineare, analisi in frequenza dei segnali, elementi di base di programmazione orientata agli oggetti. Richiede inoltre capacità di base di programmazione.
Conoscenze e abilita' da acquisire: L'obiettivo formativo del corso prevede l'acquisizione delle seguenti conoscenze e abilità:
- Conoscere i principi fondamentali della geometria proiettiva che regola la formazione delle immagini, basata sui concetti fondamentali di Algebra Lineare, e su come sia possibile modellare il processo di acquisizione dei sensori mediante il processo di calibrazione di una telecamera.
- Essere in grado di elaborare le immagini e analizzarle nel dominio della frequenza.
- Conoscere i principali strumenti di comprensione delle immagini ad alto livello, sviluppando un senso critico sull'utilizzo delle varie tecniche introdotte nel corso.
- Essere in grado di sviluppare software sfruttando programmazione orientata agli oggetti, con particolare riferimento alla produzione di software per l'analisi automatizzata di immagini.
- Essere in grado di progettare sistemi di visione artificiale componendo i vari strumenti di elaborazione delle immagini.
- Essere in grado di sviluppare sistemi di visione artificiale sfruttando il linguaggio di programmazione C++ e librerie open source per la visione artificiale, e di valutare le prestazioni dei sistemi progettati.
Modalita' di esame: La valutazione delle conoscenze e delle abilità acquisite è effettuata secondo il seguente schema:
1. Lo studente deve presentare tre brevi report sulle esperienze di laboratorio e sul relativo software sviluppato; tali esperienze sono sviluppate durante le lezioni di laboratorio, guidate dal docente. I report contribuiscono al voto finale per il 10% con una valutazione di tipo on/off.
2. Una prova scritta a libro chiuso in cui lo studente deve risolvere dei semplici problemi e rispondere a domande sulla teoria vista durante il corso, al fine di verificare l'acquisizione dei principali ingredienti e strumenti della computer vision, la capacità analitica nel loro utilizzo e la capacita di interpretare i risultati tipici in un problema pratico di computer vision. Questa parte concorre per il 50% alla determinazione del voto.
3. Una valutazione delle abilità progettuali acquisite, basata sulla consegna di un progetto software individuale, sviluppato dallo studente e da discutere durante la prova orale. Lo studente deve produrre una breve relazione che descriva le metodologie utilizzate per risolvere il progetto assegnato assieme ai risultati ottenuti. Il progetto consente di verificare la capacità di mettere in pratica i concetti teorici acquisiti. Questa parte concorre per il 40% alla determinazione del voto.
Criteri di valutazione: I criteri di valutazione sono i seguenti:

1. La completezza delle conoscenze acquisite per quanto riguarda gli strumenti per la computer vision.
2. La capacità di risolvere un problema di computer vision attraverso le tecniche proposte.
3. La proprietà nella terminologia tecnica usata, sia scritta che orale.
4. L’originalità e indipendenza nella identificazione delle metodologie più adatte a risolvere uno specifico problema di computer vision.
5. La capacità di interpretare i risultati in un problema pratico di computer vision.
6. Abilità nell'utilizzo degli strumenti informatici per la computer vision, in particolare la libreria OpenCV.
7. L’abilità analitica e pratica nell'uso di questi strumenti per la soluzione di semplici problemi.

Inoltre, nello specifico per le 3 componenti della valutazione:
- per la valutazione dei report: la capacità di passare dal contesto teorico a quello implementativo, applicando a semplici casi concreti i concetti fondamentali presentati nel corso.
- Per la prova scritta: il livello di conoscenza degli strumenti e delle tecniche presentate a lezione.
- Per il progetto software individuale: la capacità di risoluzione di problemi nuovi componendo in maniera consapevole le conoscenze viste a lezione, e la capacità di sviluppare software di un certo grado di complessità in maniera autonoma.
Contenuti: 1. La telecamera: sensori, ottiche e loro influenza sulla formazione delle immagini, colorimetria: sintesi additiva e sottrattiva, spazi colore, pattern di Bayer.
2. Geometria proiettiva, formazione delle immagini e pinhole camera model.
3. Calibrazione intrinseca ed estrinseca di una telecamera.
4. Algoritmi per l'elaborazione delle immagini, basso livello: filtri lineari, filtro bilaterale, filtro mediano, istogrammi, trasformata di Fourier, operatori morfologici.
5. Elaborazione di medio livello: edge detection, blob detection, corner detection, contour extraction, trasformata di Hough, segmentazione: clustering, watershed, mean shift, split and merge, region growing.
6. Image features: keypoint e descrittori.
7. Algoritmi di alto livello: template matching, object recognition.
8. Template C++: librerie e classi; esempi di librerie a template.
9. Richiami su gerarchie di classi ed ereditarietà.
10. Gestione dei dati per la visione artificiale, alcuni esempi con OpenCV.
Attivita' di apprendimento previste e metodologie di insegnamento: Lezioni teoriche con utilizzo sia della lavagna (perché permette di mantenere un ritmo adeguato e facilita l’interazione con gli studenti durante le lezioni) che di slides o altro materiale al computer quando questo aiuta ad ottenere una migliore comprensione degli argomenti spiegati (ad esempio figure complesse, animazioni che mostrano l’esecuzione degli algoritmi, etc).
Saranno inoltre svolte sette lezioni in laboratorio, in cui gli studenti sono guidati nei primi passi verso l'applicazione e l'approfondimento dei concetti visti a lezione. Si fa frequentemente uso di strumenti interattivi, quali il think-pair-share e le discussioni interattive di alcuni minuti su domande aperte, al fine di stimolare l'apprendimento attivo e il senso critico sui concetti esposti a lezione.
Eventuali indicazioni sui materiali di studio: Tutti gli argomenti del programma sono trattati a lezione; le slide presentate sono rese disponibili su elearning. Gli appunti presi a lezione possono essere integrati con il libro di testo e da ulteriore materiale proposto dal docente e messo a disposizione su elearning.
Testi di riferimento:
  • Gonzalez, Rafael C.; Woods, Richard Eugene, Digital image processingRafael C. Gonzalez, Richard E. Woods. 4. ed.: Global Edition - New York, Pearson, 2018. Cerca nel catalogo
  • Szeliski, Richard, Computer visionalgorithms and applicationsRichard Szeliski. New York: Springer, 2011. Cerca nel catalogo

Didattica innovativa: Strategie di insegnamento e apprendimento previste
  • Lecturing
  • Laboratory
  • Problem based learning
  • Interactive lecturing
  • Working in group
  • Problem solving
  • Peer feedback

Didattica innovativa: Software o applicazioni utilizzati
  • Moodle (files, quiz, workshop, ...)

Obiettivi Agenda 2030 per lo sviluppo sostenibile
Istruzione di qualita' Lavoro dignitoso e crescita economica Industria, innovazione e infrastrutture