Ingegneria Informatica e dell’Intelligenza Artificiale Applicata LM-32
Trattamento dei dati multimediali
| Settore scientifico disciplinare | Numero crediti formativi (CFU) | Docente |
| ING-INF/05 (IINF-05/A) | 9 | -- Nessun gestore -- |
Risorse
Oltre alle dispense messe a disposizione dal docente, gli studenti potranno approfondire gli argomenti del corso sui seguenti testi:
-
Ze-Nian Li, Mark S. Drew, and Jiangchuan Liu. Fundamentals of Multimedia. Pearson Prentice Hall, Upper Saddle River, NJ, 2004.
-
R. C. Gonzalez and R. E. Woods, Digital Image Processing, 4th ed. Pearson, 2018
Obiettivi
Verifica
MODALITÀ D'ESAME
----------------------------------- L'esame si compone di due parti: 1. Prova teorica (obbligatoria) 2. Progetto (opzionale) La prova teorica si svolge secondo le modalità previste dall'ateneo (prova intermedia + prova finale in presenza) e ha lo scopo di verificare la conoscenza degli argomenti trattati a lezione, in particolare dei contenuti teorici introdotti dal corso. Il progetto è opzionale. Se svolto, dà diritto a un bonus fino a un massimo di 5 punti, che si somma al punteggio conseguito nella prova teorica. Il bonus viene calcolato secondo quanto indicato nella sezione CALCOLO DEL BONUS. Il progetto deve essere consegnato e discusso prima della prova intermedia (si veda la sezione CONSEGNA). DESCRIZIONE GENERALE DEL PROGETTO ----------------------------------- Il progetto consiste nella realizzazione di un sistema di trattamento di dati multimediali (immagini, audio, video) per la risoluzione di un caso d'uso a scelta dello studente. In alternativa, è possibile svolgere un approfondimento scientifico (si veda la sezione MODALITÀ DI SVOLGIMENTO). APPROVAZIONE PREVENTIVA ----------------------------------- Tutte le modalità di svolgimento richiedono l'approvazione preventiva del docente. Prima di iniziare, lo studente invia una proposta via email a luigi.asprino@uniroma5.it. Per i progetti di implementazione, la proposta descrive sinteticamente il caso d'uso da affrontare, i dati da utilizzare, le tecniche del corso che si intendono applicare e le componenti del bonus che si intendono realizzare. Esempio: "Vorrei implementare un motore di ricerca che, data una query testuale, recupera le immagini più pertinenti di una collezione tramite CLIP, utilizzando un dataset da Hugging Face e valutando i risultati con la metrica precision@k." Per gli approfondimenti scientifici, la proposta descrive il tema e il perimetro della rassegna. Il docente può approvare la proposta, richiedere modifiche o suggerire alternative più adatte agli obiettivi del corso. MODALITÀ DI SVOLGIMENTO ----------------------------------- 1. Progetto individuale – Implementazione È la modalità standard. Lo studente realizza un sistema di trattamento di dati multimediali che affronta un caso d'uso a scelta. 2. Progetto di gruppo – Implementazione (max 2 persone) È possibile chiedere al docente di svolgere il progetto in coppia. Il carico di lavoro complessivo (caso d'uso, dati, tecniche implementate, complessità del sistema) deve essere concordato preventivamente con il docente, che valuterà se è adeguatamente maggiore rispetto a quello di un progetto individuale. 3. Progetto individuale – Approfondimento scientifico In alternativa all'implementazione, lo studente produce una rassegna critica della letteratura su un tema specifico del corso (ad esempio la rappresentazione di dati multimediali in basi di conoscenza, gli standard di compressione video, le codifiche audio percettive). Modalità, perimetro e bonus attribuibile vanno concordati con il docente prima di iniziare. REQUISITI TECNICI (PROGETTI DI IMPLEMENTAZIONE) ----------------------------------- Tecnologie Il sistema può essere implementato con tecnologie a scelta dello studente (linguaggio di programmazione, librerie, piattaforma). A titolo di esempio: Python, Pillow, OpenCV, FFmpeg, librosa, PyTorch, Hugging Face Transformers, rdflib. Non è obbligatorio utilizzarle tutte. Elaborazione di dati multimediali Il sistema deve elaborare effettivamente dati multimediali (immagini, audio o video). È consentito l'uso di modelli pre-addestrati. Collegamento con gli argomenti del corso Il sistema deve riguardare uno o più argomenti trattati a lezione. CALCOLO DEL BONUS (PROGETTI DI IMPLEMENTAZIONE) ----------------------------------- Il bonus, fino a un massimo di 5 punti, si ottiene sommando i punti delle seguenti componenti (1 punto ciascuna): Task complesso (1 punto) Il sistema affronta un task complesso (es. object detection, segmentazione, OCR, riconoscimento del parlato, separazione di sorgenti audio, object tracking, video captioning, image-text retrieval). I task semplici di gestione dei file (es. conversione di formato, rinomina, ridimensionamento, estrazione di metadati EXIF) non danno punti per questa componente. Dati reali (1 punto) Il sistema è applicato a una collezione reale di dati multimediali (es. da Hugging Face, Kaggle, Wikimedia Commons, Freesound) di dimensione significativa, anziché a pochi file di esempio. Multimodalità (1 punto) Il sistema tratta e mette in relazione più tipi di media (es. immagini e testo, audio e video, video e sottotitoli). Valutazione quantitativa (1 punto) I risultati del sistema sono valutati con almeno una metrica quantitativa appropriata al task (es. PSNR, SSIM, accuracy, F1-score, WER, precision@k, rapporto di compressione). Tecniche del corso (1 punto) Le tecniche viste a lezione (es. spazi colore, campionamento e quantizzazione, codifiche e compressione, stima del movimento, rappresentazione dei metadati) sono applicate in modo appropriato e motivato rispetto al sistema. Ogni punto viene assegnato solo se la componente corrispondente funziona correttamente ed è spiegata in modo adeguato durante la discussione orale (si veda la sezione CRITERI DI VALUTAZIONE). DATI MULTIMEDIALI ----------------------------------- Per reperire i dati su cui lavorare si possono utilizzare, ad esempio, le seguenti sorgenti pubbliche: - Hugging Face Datasets: https://huggingface.co/datasets Migliaia di dataset per computer vision, audio, NLP e altri domini. - Kaggle: https://www.kaggle.com/datasets Ampio catalogo di dataset pubblici, inclusi dataset di immagini, audio e video. - Wikimedia Commons: https://commons.wikimedia.org Immagini, audio e video con licenze libere. - Freesound: https://freesound.org Collezione di suoni ed effetti audio con licenze Creative Commons. È possibile utilizzare anche altre sorgenti o collezioni personali, nel rispetto delle relative licenze d'uso e della normativa sulla protezione dei dati personali. CONSEGNA ----------------------------------- Scadenza Il progetto deve essere consegnato almeno 2 settimane prima della data scelta per la prova intermedia, e discusso prima di essa. Modalità di consegna La consegna avviene via email a luigi.asprino@uniroma5.it, allegando: - il PDF del report; - il link al repository del progetto (in alternativa, un archivio compresso); - la data in cui si intende sostenere la prova intermedia. Il docente proporrà successivamente una data per la discussione orale. Materiale da consegnare (progetti di implementazione) - Codice sorgente del sistema, organizzato in modo chiaro e modulare - README con le istruzioni per installare le dipendenze ed eseguire il software, con eventuali esempi di utilizzo - File delle dipendenze (es. requirements.txt o environment.yml) - Seed casuali fissati nel codice, dove applicabile - Report (1-2 pagine, PDF) con scelte progettuali, tecniche del corso applicate, dati utilizzati, componenti del bonus realizzate e risultati ottenuti Materiale da consegnare (approfondimento scientifico) - Rassegna critica in PDF, con lunghezza e struttura concordate con il docente DISCUSSIONE ORALE ONLINE ----------------------------------- Lo studente sarà convocato per una breve discussione orale online. Per i progetti di implementazione, le domande riguarderanno la comprensione del codice consegnato, ad esempio: "Cosa fa questa istruzione?", "Cosa succede se modifico questa istruzione in questo modo?", "Come aggiungerei questa funzionalità?" Per gli approfondimenti scientifici, le domande riguarderanno i lavori analizzati e le considerazioni critiche presentate nella rassegna. CRITERI DI VALUTAZIONE ----------------------------------- Progetti di implementazione 1. Correttezza e funzionamento Il sistema deve essere eseguibile e produrre risultati coerenti con il caso d'uso scelto. Il codice non deve contenere errori bloccanti. 2. Qualità e pertinenza rispetto agli argomenti del corso Le tecniche viste a lezione devono essere usate in modo appropriato e motivato, non inserite artificialmente. Si valuta se lo studente ha compreso perché una certa tecnica è utile nel contesto del proprio sistema. 3. Qualità del report Chiarezza, completezza e capacità di sintesi. Il report deve descrivere scelte progettuali, tecniche applicate, dati utilizzati e risultati. 4. Qualità del codice Leggibilità, organizzazione modulare, presenza di commenti, chiarezza del README e riproducibilità dell'esecuzione. 5. Complessità del progetto Determina il bonus massimo ottenibile (si veda la sezione CALCOLO DEL BONUS). 6. Discussione orale Capacità di spiegare e motivare le scelte fatte, rispondere a domande sul codice e ragionare su possibili modifiche o estensioni del sistema. Approfondimenti scientifici Si valutano la pertinenza e la completezza della letteratura considerata, la capacità di analisi critica, la chiarezza espositiva e la discussione orale. USO DI STRUMENTI BASATI SU LLM ----------------------------------- L'uso di strumenti come GitHub Copilot, ChatGPT o Claude è consentito, a condizione che avvenga in modo etico e responsabile. - Lo studente è pienamente responsabile di tutto il materiale consegnato. - Il codice e i testi generati automaticamente devono essere compresi, verificati e integrati consapevolmente. - L'uso di LLM non deve essere un modo per aggirare l'apprendimento. - Durante la discussione orale il docente verificherà la comprensione effettiva del materiale consegnato. Non saper rispondere è considerato un segnale di disonestà accademica. - Nel report va dichiarato se e come sono stati utilizzati strumenti LLM. TASK SUGGERITI (LISTA NON ESAUSTIVA) ----------------------------------- Rappresentazione e interrogazione di dati multimediali - Rappresentazione di dati multimediali e relativi metadati in basi di conoscenza a grafo - Implementazione di funzioni per l'interrogazione di dati multimediali (es. similarità di immagini, video) - Costruzione di un knowledge graph a partire da metadati di file multimediali (es. una collezione di foto o brani musicali) - Motore di ricerca multimediale basato su similarità (es. "trova immagini simili a questa") - Indicizzazione e interrogazione di una collezione video tramite trascrizione automatica Gestione e organizzazione di file multimediali - Deduplicazione di immagini (rimozione di duplicati o quasi-duplicati) - Organizzazione automatica di foto in cartelle per data, luogo o soggetto - Rinomina batch di file multimediali basata su metadati (es. data di scatto) - Conversione batch di immagini tra formati (es. PNG a JPEG, HEIC a JPG) - Ridimensionamento e compressione batch di immagini - Estrazione di metadati EXIF da foto e salvataggio in un file strutturato (es. CSV) Elaborazione di immagini - Classificazione di immagini (es. riconoscimento di oggetti, scene, cifre) - Object detection (rilevamento e localizzazione di oggetti) - Segmentazione semantica o per istanze - Riconoscimento facciale o di espressioni - Super-resolution e denoising di immagini - Generazione di immagini (es. con modelli generativi) - Stima della profondità da immagine singola (monocular depth estimation) - Rilevamento e riconoscimento di testo in immagini (OCR) - Colorizzazione automatica di immagini in scala di grigi - Rimozione dello sfondo da immagini (background removal) - Rilevamento di anomalie visive in immagini industriali (es. difetti su superfici) - Stima della posa umana (human pose estimation) - Correzione automatica di luminosità, contrasto e colore di foto - Rilevamento e ritaglio automatico di volti in una raccolta di foto - Creazione automatica di miniature (thumbnail) per una collezione di immagini - Filigrana (watermark) automatica su batch di immagini - Confronto visivo tra due immagini (diff visivo) Elaborazione video - Classificazione di azioni in video (action recognition) - Rilevamento di anomalie in sequenze video - Object tracking (tracciamento di oggetti nel tempo) - Video captioning (descrizione automatica di video) - Rilevamento e riconoscimento di eventi sportivi in video - Separazione foreground/background in sequenze video (video matting) - Sintesi video da descrizione testuale (text-to-video, anche tramite API) - Rilevamento di cambi di scena (scene detection) - Estrazione automatica di fotogrammi chiave da un video - Generazione automatica di sottotitoli per un video - Creazione di un video riassuntivo (highlight reel) da una sequenza più lunga - Rilevamento e ritaglio automatico di scene specifiche in un video Elaborazione audio - Riconoscimento automatico del parlato (ASR / speech-to-text) - Classificazione di suoni o eventi acustici - Rilevamento di parole chiave (keyword spotting) - Identificazione del parlante (speaker identification) - Classificazione di generi musicali - Separazione di sorgenti audio (es. voce da musica di sottofondo) - Sintesi vocale (text-to-speech) - Rilevamento e classificazione di emozioni nel parlato - Trascrizione e allineamento forzato audio-testo - Trascrizione automatica di file audio o video (es. registrazioni di riunioni o lezioni) - Rimozione del rumore di fondo da registrazioni audio - Divisione automatica di un file audio lungo in segmenti per silenzi - Estrazione della traccia audio da file video Multimodale - Recupero di immagini tramite query testuale (image-text retrieval, es. con CLIP) - Generazione di didascalie per immagini (image captioning) - Visual question answering (rispondere a domande su immagini) - Allineamento audio-video (es. sincronizzazione labiale) Il docente si riserva di approvare task diversi da quelli elencati, purché coerenti con i contenuti del corso.
Descrizione
Modulo 1 - Introduzione al corso e immagini digitali (1 CFU)
Lezione 1 - Introduzione al Trattamento di Dati Multimediali Lezione 2 - Rappresentazione digitale delle immagini Lezione 3 - Formati popolari per immagini Lezione 4 - Scienza dei colori Lezione 5 - Modelli di Colore nelle Immagini Modulo 2 - Il segnale video: dall'analogico al 360° (1 CFU) Lezione 6 - Concetti Fondamentali nel Video Analogico Lezione 7 - Concetti Fondamentali nel Video Digitale Lezione 8 - Video ad alta definizione Lezione 9 - Video 3D Lezione 10 - Video 360° e Video Quality Assessment Modulo 3 - Audio digitale: acquisizione, qualità e codifica di base (1.2 CFU) Lezione 11 - Digitalizzazione del suono Lezione 12 - Rapporto segnale rumore e quantizzazione lineare e non-lineare Lezione 13 - Audio Filtering e Audio Quality Lezione 14 - MIDI Lezione 15 - Quantizzazione e trasmissione dell'audio Lezione 16 - Codifiche audio differenziali Modulo 4 - Compressione lossless (1 CFU) Lezione 17 - Algoritmi di Compressione Lossless Lezione 18 - Codifica basata su dizionario Lezione 19 - Algoritmo LZW Lezione 20 - Codifica Aritmetica Lezione 21 - Compressione Lossless di Immagini Modulo 5 - Compressione con perdita: quantizzazione, trasformate e wavelet (0.8 CFU) Lezione 22 - Algoritmi di Compressione con Perdita: Distorsione, Rateo e Quantizzazione Lezione 23 - Codifica mediante Trasformate Lezione 24 - Codifica delle immagini basata su trasformata wavelet Lezione 25 - Codifica Embedded a Wavelet: Wavelet Packets, EZW e SPIHT Modulo 6 - Standard di compressione delle immagini (1 CFU) Lezione 26 - Lo standard JPEG Lezione 27 - JPEG 2000 e JPEG-LS: Compressione Basata su EBCOT Lezione 28 - Lo standard JPEG-LS: predizione, context modeling e codifica near-lossless Lezione 29 - Compressione di immagini bi-livello: gli standard JBIG e JBIG2 Lezione 30 - JBIG2: Compressione Model-Based delle Immagini Bi-Livello Modulo 7 - Compressione video: fondamenti e primi standard (1 CFU) Lezione 31 - Compressione Video: Fondamenti e Ricerca del Vettore di Movimento Lezione 32 - Il Codec Video H.261 Lezione 33 - Il Codec H.263 Lezione 34 - Il Codec MPEG-1 Lezione 35 - MPEG-2: Profili, Scalabilità Modulo 8 - Standard video avanzati: da MPEG-4 a VVC (1 CFU) Lezione 36 - MPEG-4: Codifica Video Basata su Oggetti Lezione 37 - MPEG-7: Descrizione del Contenuto Multimediale Lezione 38 - H.264/AVC: Standard di Codifica Video Avanzata Lezione 39 - H.265/HEVC: Standard di Codifica Video ad Alta Efficienza Lezione 40 - H.266/VVC: Versatile Video Coding Modulo 9 - Compressione della voce e dell'audio (1 CFU) Lezione 41 - ADPCM nella Codifica Vocale: lo Standard G.726 Lezione 42 - Vocoder: Tecniche di Codifica Vocale a Basso Bitrate Lezione 43 - Psicoacustica: Sonorità e Mascheramento Uditivo Lezione 44 - La Compressione Audio MPEG Lezione 45 - Altri Codec Audio
Altro
Le lezioni di Didattica Sincrona per il primo semestre dell'anno accademico 2026/27 si svolgeranno secondo il seguente calendario
6 ottobre 14:00 - 16:00 13 ottobre 14:00 - 16:00 20 ottobre 14:00 - 16:00 3 novembre 14:00 - 16:00 10 novembre 14:00 - 16:00 17 novembre 14:00 - 16:00 24 novembre 14:00 - 16:00 1 dicembre 14:00 - 16:00 15 dicembre 14:00 - 16:00
Lezioni
Trattamento dei Dati Multimediali
Introduzione al Trattamento di Dati Multimediali
Rappresentazione digitale delle immagini
Formati popolari per immagini
Scienza dei colori
Modelli di Colore nelle Immagini
Concetti Fondamentali nel Video Analogico
Concetti Fondamentali nel Video Digitale
Video ad alta definizione
Video 3D
Video 360° e Video Quality Assessment
Digitalizzazione del suono
Rapporto segnale rumore e quantizzazione lineare e non-lineare
Audio Filtering e Audio Quality
MIDI
Quantizzazione e trasmissione dell\'audio
Codifiche audio differenziali
Algoritmi di Compressione Lossless
Codifica basata su dizionario
Algoritmo LZW
Codifica Aritmetica
Compressione Lossless di Immagini
Algoritmi di Compressione con Perdita: Distorsione, Rateo e Quantizzazione
Codifica mediante Trasformate
Codifica delle immagini basata su trasformata wavelet
Codifica Embedded a Wavelet: Wavelet Packets, EZW e SPIHT
Lo standard JPEG
JPEG 2000 e JPEG-LS: Compressione Basata su EBCOT
Lo standard JPEG-LS: predizione, context modeling e codifica near-lossless
Compressione di immagini bi-livello: gli standard JBIG e JBIG2
JBIG2: Compressione Model-Based delle Immagini Bi-Livello
Compressione Video: Fondamenti e Ricerca del Vettore di Movimento
Il Codec Video H.261
Il Codec H.263
Il Codec MPEG-1
MPEG-2: Profili, Scalabilit
MPEG-4: Codifica Video Basata su Oggetti
MPEG-7: Descrizione del Contenuto Multimediale
H.264/AVC: Standard di Codifica Video Avanzata
H.265/HEVC: Standard di Codifica Video ad Alta Efficienza
H.266/VVC: Versatile Video Coding
ADPCM nella Codifica Vocale: lo Standard G.726
Vocoder: Tecniche di Codifica Vocale a Basso Bitrate
Psicoacustica: Sonorità e Mascheramento Uditivo
La Compressione Audio MPEG
Altri Codec Audio