The course is taught in Italian.
Oggetto del corso sono l'acquisizione, l' elaborazione, l'analisi e la comprensione del contenuto di immagini e sequenze di immagini digitali di oggetti 2D e 3D (computer vision). Tra le molte applicazioni citiamo l'ispezione industriale, la sorveglianza, l'identificazione biometrica (impronte digitali, retiniche, immagini del viso, iride), l'analisi del movimento umano per l'intrattenimento o scopi medici e sportivi, l'analisi del territorio da immagini aeree o da satellite, la scansione 3D, la navigazione robotica. Il corso illustrerà le tecniche fondamentali e il loro uso in alcune delle principali applicazioni pratiche.
The course aims to allow to students to work on GPUs, that in the last fifteen years (as of 2021) are continuously increasing their usefulness and popularity. For this reason the course will cover arguments as parallel computing and its rules, GPU and CPU architectures (comparison), CUDA programming, debugging, profiling and applications of GPU programming. During the laboratory, if possible, the work will be done on specific development cards by means of Python programming language, able to work also on artificial intelligence algorithms and graphics projects, e.g. Tensorflow. All the described competences are very well considered in the job market.
Lo studente acquisirà le conoscenze fondamentali relative a:
- sensori e sistemi per l'acquisizione dell'immagine
- modellazione dei sistemi ottici e loro funzioni di trasferimento
- analisi in frequenza delle immagini
- tecniche per il miglioramento e la ricostruzione di immagini affette da vari tipi di rumore ed alterazioni (rumore termico dei sensori, imperfezioni dell'ottica, movimento relativo, etc)
- tecniche per la segmentazione e l'estrazione di elementi caratteristici di un'immagine - tecniche per il riconoscimento di oggetti 2D e 3D
- tecniche per l'analisi del movimento
Tramite queste conoscenze e numerosi esempi applicativi, lo studente verrà messo in grado di progettare un sistema di visione mediante calcolatore.
At the end of the course students will be able to master:
- parallel computing and its rules
- GPU and CPU architectures (comparison)
- CUDA programming, debugging, executing and profiling on GPUs
- applications of GPU programming
- realistic applications on embedded GPU cards
Elementi di analisi matematica, analisi di segnali monodimensionali, algebra lineare, calcolo delle probabilità.
C programming, Python programming (suggested, but not required), Computer architectures, Operating systems.
Argomenti principali e peso in crediti
- Sistemi di acquisizione immagini(1 cr)
- Elaborazione immagini. Trasformate 2D e funzioni di trasferimento(1 cr)
- Miglioramento e ricostruzione immagini(0.5 cr)
- Segmentazione ed estrazione dati significativi(0.5 cr)
- Riconoscimento 2D e 3D(1 cr)
- Analisi movimento(0.5 cr)
- Casi di studio(1.5 cr)
Introduction to parallel computing. Classification of Parallel Computers. Amdahl's law, SISD, SIMD, MISD e MIMD. GPU architecture. Comparison of CPU with GPU architectures (1 cfu). GPGPU concurrency and processin organization: multiprocessors and streaming processors. GPGPU profiling. GPU memories: local and shared, cache memories. GPGPU architecture: grids, blocks, threads and warps (1 cfu). GPGPU threading optimization, GPGPU convolution and memory management, GPGPU task parallelism. CUDA programming, debugging, tiling, ray tracing and libraries (2 cfu). Applications: Matrix Multiplication, Convolution and Image filtering (2 cfu).
Le esercitazioni di laboratorio prevedono l'uso di programmi per l'elaborazione e l'analisi dell'immagine. Le esercitazioni sono propedeutiche allo sviluppo di un progetto, individuale o di gruppo, che concorrerà a determinare il voto finale.
The laboratory sessions will build on the material covered in the class, and aim to solidify your understanding of concepts through hands-on experimentation. During the laboratory, the work will be done on specific GPU development cards programmable with Cuda and controlled by means of Python. Project will be assigned individually or to small groups. The results will be evaluated and will contribute to the final mark.
Slide del corso ed altro materiale presso: http://didattica.polito.it
Testi suggeriti:
- R.C. Gonzales and R.E. Woods: Digital Image Processing, Pearson International Edition, 2008
- C. Steger, M. Ulrich, C. Wiedermann: Machine Vision Algorithms and Applications, Wiley-VCH, 2008
- G.C. Holst and T.S. Lomheim: CMOS/CCD Sensors and Camera Systems, SPIE Press, 2007
- E.R. Davies, Machine Vision: Elsevier, 2005
Course transparencies and other material at http://didattica.polito.it
Slides; Esercizi; Esercizi risolti; Esercitazioni di laboratorio; Esercitazioni di laboratorio risolte; Video lezioni dell’anno corrente; Video lezioni tratte da anni precedenti;
Lecture slides; Exercises; Exercise with solutions ; Lab exercises; Lab exercises with solutions; Video lectures (current year); Video lectures (previous years);
Modalità di esame: Prova orale obbligatoria; Elaborato progettuale individuale;
Exam: Compulsory oral exam; Individual project;
...
L'esame si compone di una prova scritta della durata indicativa di 80 minuti, nella quale sarà richiesto di rispondere ad una serie di domande, normalmente 5. A discrezione del docente può inoltre svolgersi una prova orale, integrativa o sostitutiva.
È necessario prenotarsi all'esame e presentarsi muniti di un documento d'identità.
Durante l'esame non è possibile usare computer, telefonini o smartphone, oppure consultare libri e appunti.
È inoltre previsto che venga svolto un lavoro obbligatorio, individuale o di gruppo, volto a realizzare un'applicazione grafica sfruttando le nozioni acquisite durante le esercitazioni di laboratorio. La correttezza delle risposte all'esame scritto e/o orale e la corretta esecuzione della tesina concorreranno al voto finale.
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
Exam: Compulsory oral exam; Individual project;
The exam is composed of two parts. The first one consists on a mandatory assignment from one to three students, focused on creating an application using the knowledge got during the course. The second part consists on the oral presentation of the assignment to verify the knowledge acquired during the course. The process of the exam would be the following: the students intended to obtain the evaluation must book the exam. By the exam date, the students must submit the project files and relative documentations. In the following days, the professors will communicate the oral examination dates. The correctness and accuracy of the assignment, the complention of the presentation and the correctness of the answers to the oral exam will produce the final mark, up to 30L.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.