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:

  1. Ze-Nian Li, Mark S. Drew, and Jiangchuan Liu. Fundamentals of Multimedia. Pearson Prentice Hall, Upper Saddle River, NJ, 2004.

  2. 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