|
LORENZO BARALDI
Ricercatore t.d. art. 24 c. 3 lett. B Dipartimento di Ingegneria "Enzo Ferrari"
|
Insegnamento: Computer Vision and Cognitive Systems
Artificial intelligence engineering (Offerta formativa 2023)
Obiettivi formativi
La Visione e i Sistemi Cognitivi studiano come i computer possono percepire e comprendere il mondo attraverso immagini e video. Sviluppa sistemi basati sull'elaborazione delle immagini, la analisi del contenuto video, la ricostruzione da 2D a 3D. In senso lato, è la parte visiva dell'Intelligenza Artificiale e il più importante componente dei sistemi cognitivi. Il “Cognitive Computing” è una disciplina emergente che integra l’AI e la “signal processing”; sfrutta dati sensoriali (immagini, audio, suono, dati di profondità e altri dati sensoriali) per estrarre conoscenza ed inferenze in molti ambiti, dall'interazione uomo-macchina, alla robotica e big data.
Il corso fornisce 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. Il corso sarà principalmente un corso di laboratorio con progetti in Python e con Librerie (OpenCv e PyTorch per Deep Learning) e sensori (fotocamere, eye-tracker…). È un corso di ingegneria: fornisce strumenti per la progettazione di sistemi cognitivi basati sulla visione. Nel corso si proporranno progetti in diversi contesti: video-sorveglianza, guida autonoma, HMI, robotica, interpretazione del comportamento umano (viso, riconoscimento e tracciamento del corpo). La teoria dei sistemi cognitivi, integrando paradigmi di visione con quelli più ampi del calcolo cognitivo delle neuroscienze, e dell'apprendimento automatico permetterà di comprendere le tendenze future dell'AI, come progettare e implementare sistemi software capaci di imparare, interagire e collaborare con gli esseri umani. Durante il corso discuteremo alcuni progetti realizzati in grandi aziende come Google, IBM, Panasonic, Facebook e Amazon; inoltre riceveremo presentazioni di aziende emergenti che lavorano nella VA e piattaforme cognitive e richiedono nuovi saperi in queste discipline.
Prerequisiti
Sono richieste conoscenze di base sulla teoria della probabilità, i metodi classici di machine learning e i fondamenti del Deep Learning (SGD, tipologie fondamentali di reti neurali).
Programma del corso
1. Introduction: Computer Vision and Artificial Intelligence; history; the current research trends; the market, applications, future trends.
2. Data manipulation in PyTorch: tensors, strided representation, tensor operations. Computational graph construction and automatic differentiation.
3. Image processing: image, video, resolution; histograms; color and other spaces; compositing and matting; OpenCV labs. linear operators; binarization with Otsu and adaptive thresholding; Noise; correlation and convolution; smoothing, Gaussian, median, bilateral filtering, deblurring; edge detection; Canny; lab; border tracing, active contours; Humans Perceptive systems; attention and saliency; saliency detection with deep learning; pixel adiacency, labeling, morphology, distance transform; region segmentation, graph cut;
4. CNNs: 2D convolution with stride, padding, dilation, grouping. 2D Pooling layer. State-of-the-art CNN models (AlexNet, ResNet, Wide ResNet, ResNeXt, Densely Connected CNNs).
5. Image formation,: the pinhole model, 2D and 3D isometries, similarities, affine and projective transformation; mosaics. dstortion; calibration tools; stereo vision and 3D; labs.
6. Human and cognitive vision; cognitive computing: philosophy, psychology, gestalt; neuroscience and computer science; D.Marr computational vision;. The brain; pathways in the cortex; Gabor filters; detection and recognition; neural networks trends for recognition. Integration with natural language processing (NLP); cognitive systems for HMI; adaptive reasoning.
7. Identification, detection, classification: performance evaluation, NCC for template matching; Machine Vision, standards in label reading; Shapes and Hough transform, line and circle recognition, GHT; labs; features, Hog for people detection; Faces VJ: CNN for detection of road signs, DL for autonomous driving; labs. Harris, Sift detector, Bag of words; lab of image retrieval.
8. State-of-the-art models for detection (Region-CNN, Fast-RCNN, RoI pooling, RoI Align, YOLO, SSD) and segmentation (Fully convolutional networks, downsampling/upsampling protocol, Transpose convolution, SegNet, UNet).
9. Motion analysis: video segmentation; motion field; optical flow; LKT; affine motion; Motion segmentation with static camera, MoG, Sakbot, shadow analysis; tracking; NCC, Kalman; Particle filtering; multiple target tracking; re-id;
10. State-of-the-art architectures for video understanding (3D convolutions, two-stream CNNs, Inflated 3D convolutions, pseudo 3D convolutions, non-local neural networks)
11. Applications to Surveillance big data and biometry; fingerprint; face, iris detection; applications.
Il numero di crediti dell'insegnamento è ripartito equamente tra i punti sopra riportati.
Metodi didattici
Il corso si svolge in presenza e viene erogato in lingua inglese. I metodi didattici includono:
- teoria con slide
- letture di libri e di paper scientifici
- laboratori in aula con librerie open-source
- progetto svolto in gruppo
- presentazioni e discussioni con aziende
La frequenza è fortemente suggerita.
Testi di riferimento
- Slides dai docenti, pubblicate su Moodle
- Paper di riferimento, segnalati sulle slide, e in generale pubblicati in CVPR; NIPS; ICCV; TPAMI
- Testo di riferimento: D. Fosith, Computer Vision
Verifica dell'apprendimento
L'esame prevede lo svolgimento preventivo di un progetto a gruppi, e consiste in una prova orale in lingua inglese, con domande di teoria sui contenuti del corso e la presentazione del progetto sviluppato durante il corso. Il progetto sviluppato durante il corso viene presentato attraverso un report, di 4-8 pagine, in formato paper.
L’apprendimento viene verificato attraverso una unica prova orale, in lingua inglese, che si tiene durante appelli erogati al termine dell'insegnamento. Questa ha una durata media di 30 minuti, e consiste (a) nella presentazione del progetto (circa 15 minuti) e (b) in 3-4 domande (circa 15 minuti), relative a tutti i contenuti teorici del corso. Gli esiti della prova orale vengono comunicati entro il giorno successivo allo svolgimento della prova stessa, tramite ESSE3. Lo studente può decidere se accettare o rifiutare il voto, e può ripetere l'esame quante volte vuole in successivi appelli.
La presentazione del progetto può essere svolta congiuntamente da tutti i membri del gruppo e, qualora un progetto sia già stato presentato in un appello precedente, non viene esposto nuovamente durante gli appelli successivi.
La valutazione del progetto contribuisce al 40% del voto totale. Gli indicatori di valutazione del progetto sono:
- Correttezza tecnica della pipeline proposta (40%)
- Appropriatezza e validità degli esperimenti quantitativi e qualitativi (25%)
- Presenza di novelty tecnica (20%);
- Qualità della presentazione, come dedotta dal report (15%)
La valutazione delle domande teoriche contribuisce al 60% del voto totale, e ad ogni domanda viene attribuito lo stesso peso. Gli indicatori di valutazione di ogni domanda sono:
- Conoscenza degli argomenti affrontati e appropriatezza delle conoscenze acquisite (50%)
- Capacità di collegamento tra tecniche affrontate durante il corso (15%)
- Appropriatezza del linguaggio tecnico (20%);
- Capacità di approfondimento e di design di nuove soluzioni (15%)
Non è consentita la consultazione di manuali o testi durante la prova orale.
Risultati attesi
- developing vision systems
- designing and implementing cognitive systems
- providing software applications in computer vision for robotics, autonomous driving, video and image big data analysis, human-machine interaction