Il progetto di Visione Artificiale e Riconoscimento ha un obiettivo chiaro: affrontare un problema di visione con tecniche tradizionali e/o approcci basati su deep learning. È il modo in cui il corso si chiude e in cui le competenze dei capitoli 1–14 vengono messe alla prova su un problema concreto.
La complessità del progetto deve essere proporzionata ai 6 CFU (150 ore complessive). Un progetto troppo ambizioso o un dataset introvabile sono i due errori più comuni: concordate sempre con i docenti prima di iniziare a lavorarci.
Il progetto deve essere descritto in una relazione organizzata in cinque sezioni:
Per la discussione del progetto è possibile avvalersi di slide PowerPoint.
La valutazione sperimentale è il cuore del progetto. Il protocollo deve essere corretto:
Scegli la dimensione del dataset e la ripartizione percentuale: il test non deve essere toccato durante lo sviluppo — la validation serve per gli iperparametri. Nota come dataset piccoli rendano il test fragile (pochi campioni = stima rumorosa).
Gli elementi di valutazione del progetto sono:
L'esame è su appuntamento: non ci sono appelli prefissati — si contattano i docenti via mail per concordare una data.
Non conta solo il risultato: la capacità critica e la correttezza del protocollo pesano quanto le prestazioni raggiunte. Una relazione che spiega le cause d'errore vale più di un numero alto non motivato.
Repository pubblici consigliati dai docenti per la ricerca del dataset:
Ricordate la prima verifica del progetto: il dataset deve esistere (o essere acquisibile) prima di impegnarsi sull'implementazione. Verificate licenze, dimensione e formato rispetto al problema scelto.
Il progetto può affrontare un problema di visione con tecniche tradizionali e/o deep learning. La tabella seguente mappa le famiglie di problemi alle tecniche del corso — usala come punto di partenza per l'approccio sviluppato (sezione 3 della relazione) e per gli indicatori della valutazione sperimentale.
Scegli la famiglia del tuo progetto: ottieni i capitoli di riferimento, le tecniche chiave, gli indicatori tipici e i suggerimenti di dataset.
6 CFU corrispondono a ~150 ore di impegno complessivo (lezioni incluse). Regola la distribuzione tra le fasi: tieni conto che dataset ed esperimenti sono spesso le fasi che «mangiano» il tempo.
Affrontare un problema di visione con tecniche tradizionali e/o approcci basati su deep learning, includendo una valutazione sperimentale appropriata degli algoritmi sviluppati.
Singolarmente o in gruppo (max 3 persone). La complessità deve essere rapportata ai 6 CFU (150 ore complessive): per questo va concordato con i docenti prima di iniziare.
La disponibilità del dataset: non sempre è facile trovarne uno per il problema desiderato — a meno di acquisire i dati da sé.
1) Introduzione al problema; 2) Stato dell'arte; 3) Approccio sviluppato; 4) Valutazione sperimentale (dataset, protocollo di training e testing, indicatori; risultati; principali cause d'errore); 5) Conclusioni e possibili sviluppi futuri.
Corretta suddivisione tra training, validation e test set; analisi approfondita delle prestazioni con indicatori opportuni per il tipo di problema; analisi delle principali cause d'errore; se possibile, confronto con metodi allo stato dell'arte già testati sullo stesso dataset.
Classificazione: accuratezza e confusion matrix (con attenzione alle classi sbilanciate, cap. 11/13). Detection: precision/recall e mAP (cap. 12). Segmentazione: IoU (Jaccard) e Dice index (cap. 13).
Soluzione proposta (originalità e validità tecnica); capacità di analisi critica dei risultati; correttezza del protocollo di valutazione; autonomia nella realizzazione; raggiungimento di un livello di prestazioni accettabile.
È su appuntamento: non ci sono appelli prefissati; si contattano i docenti via mail per concordare una data. Per la discussione si può usare una presentazione PowerPoint.
Kaggle (kaggle.com), Roboflow Universe (public.roboflow.com, formati pronti per detection/segmentazione) e UCI Machine Learning Repository (archive.ics.uci.edu/datasets).
La validation si usa durante lo sviluppo per scegliere gli iperparametri e fermare l'addestramento; il test valuta le prestazioni finali e va usato una sola volta, alla fine: usarlo prima significa ottimizzare sul test e ottenere una stima ottimistica e non generalizzabile.
Le tecniche tradizionali (feature hand-crafted: capitoli 4–5; feature locali: 6–10) e i metodi deep learning (classificazione: 11; detection: 12; segmentazione: 13; video: 14) coprono le famiglie di problemi: classificazione, CBIR, detection, segmentation, tracking/azioni. La valutazione sperimentale richiama gli indicatori visti nei capitoli 11–13.
Non basta misurare quanto il sistema sbaglia: l'analisi delle principali cause d'errore (es. occlusioni, classi simili, illuminazione) dimostra la capacità di analisi critica richiesta dai criteri di valutazione e guida gli sviluppi futuri.