Capitolo I – Introduzione al tracking di oggetti

Disclaimer


Le pagine che seguono contengono un riadattamento semplificato di un lavoro di tesi magistrale svolto nel laboratorio LAIV dell’Università degli Studi di Milano sotto la supervisione della Professoressa Paola Campadelli e del Professor Giuseppe Boccignone. Viene trattato, in maniera semplificata, lo studio e la progettazione di un sistema di tracking di oggetti. Al momento della stesura del documento (A.A. 2008) gli argomenti trattati erano in linea con lo stato dell’arte. Negli ultimi anni questi argomenti hanno suscitato grande interesse scientifico e grande rilievo commerciale, questo “clamore” ha accelerato in maniera esponenziale l’evoluzione di alcune delle tecniche citate nel documento. Questo NON significa che le tecniche presentate siano poco interessanti, al contrario risultano fondamentali per comprendere l’evoluzione dei sistemi di detection e tracking di oggetti. Alcune di queste tecniche sono state migliorate in maniera sensibile e, in qualche caso, sorpassate da altre più performanti. Per una trattazione più aggiornata dell’argomento, durante il corso di visione artificiale, verranno evidenziate le evoluzioni in atto.

È vietata, senza l’espressa autorizzazione dell’autore, qualsiasi riproduzione totale/parziale e/o con qualsiasi mezzo di testo e immagini contenuti in questo documento.

Per segnalare eventuali problemi, refusi o proporre miglioramenti:

– contact: http://www.vision-ary.net/contact/

– twitter: vision-ary


Introduzione ai sistemi di tracking di oggetti

L’obiettivo di questo documento è quello di presentare un sistema di tracciamento di oggetti nell’ambito dello sviluppo di un sistema interattivo. Per rendere la presentazione più chiara e legata ad applicazioni reali, ma senza perdere di generalità, ci si riferirà al caso particolare del tracciamento di volti umani. Una tipica situazione di riferimento è quella in cui si ha una videocamera posizionata in un punto di interesse (ad esempio alla fine di un corridoio) e si vuole rilevare la presenza di attività umana. La telecamera si interfaccia ad un sistema composto da diversi moduli di elaborazione ognuno dei quali assolve uno specifico compito. Il sistema è il risultato dell’integrazione di questi moduli in un framework più generale che deve lavorare in tempo reale nonostante la complessità dell’analisi in atto. Indipendentemente dall’approccio scelto, lo sviluppo di un sistema di tracking di oggetti presenta diverse problematiche di cui tenere conto. Innanzitutto esistono diversi gradi di variabilità rispetto alle condizioni di acquisizione e alla dinamica degli oggetti di interesse; questa variabilità, se non modellata e trattata adeguatamente, può indurre il sistema in errore o esibire comportamenti non desiderati. Tipici elementi di disturbo o variabilità includono le variazioni di illuminazione (specie in contesti non controllati come durante le riprese all’aperto), la variabilità di posa dei volti (che presentano in genere tre gradi di libertà), la dinamica di spostamento delle persone (scomponibile in traslazione e cambiamento di scala nel piano immagine) che può variare in velocità o regolarità, la presenza di occlusioni temporanee rispetto alla camera di acquisizione, la variabilità del numero di soggetti in scena, ecc. L’aleatorietà indotta dalla presenza di variabili di disturbo, sia questa dovuta a rumore in senso stretto (condizioni di acquisizione non ottimali) o di natura epistemologica (dinamica reale degli oggetti rispetto a quella osservata), contribuisce in ogni modo a qualificare i problemi di rilevamento e predizione della posizione di un oggetto come tipici problemi di inferenza probabilistica. Nella visione computazionale, tali problemi sono stati affrontati all’interno del quadro concettuale dell’inferenza bayesiana (si rimanda a “N. Chater, J.B. Tenenbaum and A. Yuille: Probabilistic models of cognition: Conceptual foundations” per una discussione approfondita).

Spesso il problema è stato affrontato ricorrendo ai seguenti moduli, elencati secondo l’ordine di applicazione:

  • Il modulo di rilevamento del moto (motion detection) verifica l’eventuale presenza di movimento nella scena al fine di attivare i successivi moduli di elaborazione; è una sorta di interruttore che aziona il sistema vero e proprio altrimenti in stand-by.
  • Il modulo di rilevamento dei volti (face detection) analizza i frame nei quali si è verificata una significativa attività di moto alla ricerca di volti umani; in caso di riscontro positivo il modulo avvia la procedura di tracciamento.
  • Il modulo di tracciamento (face tracking) si occupa di “inseguire” i volti precedentemente rilevati tracciandone il movimento all’interno della sequenza di frame successivi. La procedura ha come risultato finale l’apposizione di una bounding box su ciascun viso tracciato rappresentante posizione e dimensione del viso nella scena.
  • Infine, se richiesto, il modulo di riconoscimento dei volti (face recognition) estrae le caratteristiche del viso ed interroga un database per verificare se il viso tracciato appartiene ad un soggetto registrato oppure se si è in presenza di una nuova identità.
vision-ary-object-tracking-opencv

Esempio di un sistema di rilevamento di volti. Il sistema è composto da quattro moduli principali; i primi tre lavorano in locale sui dati che la camera di sorveglianza fornisce. Il modulo di face recognition invece interroga un database in remoto per recuperare l’identità delle persone tracciate

I possibili approcci al tracking di volti

In letteratura si evidenziano due principali approcci al problema del tracciamento di volti in sequenze video: il primo è chiamato “rilevamento frame a frame” (frame-based detection) mentre il secondo sfrutta un approccio integrato di rilevamento e tracciamento (integrated detection and tracking approach):

Il primo approccio si basa su una ricerca frame a frame dei volti presenti nelle immagini che compongono la sequenza video non tenendo conto della correlazione spazio-temporale che è insita in una sequenza di immagini. Il principale vantaggio di tale approccio si manifesta in termini di isolamento degli errori poiché ogni analisi su frame è indipendente dalle precedenti. Tuttavia l’efficienza del sistema è spesso compromessa a causa dell’utilizzo di una tecnica di ricerca di volti esaustiva per ogni frame. Si noti inoltre che tale approccio non permette di realizzare un tracciamento in senso stretto, poiché isolando l’analisi all’interno di ogni singolo frame senza inferire la posizione dell’oggetto di interesse al frame successivo, viene meno la capacità di analizzare la coerenza spazio-temporale del movimento dell’oggetto. Le tecniche basate su questo approccio spesso presentano un output simile a quello di un sistema di tracking, poiché i rilevamenti effettuati frame a frame “emulano” il comportamento di un sistema di tracciamento, ma di fatto tali tecniche non realizzano un tracciamento vero e proprio.

Il secondo approccio prevede l’utilizzo combinato di un rilevatore di volti face detector e di un sistema di tracciamento tracker. Il primo inizializza la procedura di tracciamento rilevando i volti presenti nella scena; gli stessi vengono poi “propagati” dal secondo lungo la sequenza video attraverso un algoritmo di predizione e aggiornamento basato (in genere) su caratteristiche di basso livello dell’immagine. A differenza del precedente approccio (che utilizza solo informazione all’interno di un singolo frame), questa modalità sfrutta la correlazione temporale della sequenza di immagini introducendo il concetto “logico” di traccia, come evoluzione della posizione di un oggetto nello spazio e nel tempo.

Paradigma OSSERVAZIONE – PROPAGAZIONE

Un qualsiasi algoritmo di inferenza prevede generalmente di effettuare, al tempo t, una predizione sulla posizione che l’oggetto occuperà al tempo t+1 e di verificare, al tempo t+1, tale predizione tramite una fase di “osservazione” delle caratteristiche dell’oggetto. Tale schema viene ripetuto ciclicamente per tutta la durata del tracciamento lungo la sequenza. L’aspetto chiave del problema del tracciamento di oggetti risiede molto spesso nella definizione della fase di osservazione del sistema. In letteratura si sono alternate diverse strategie di osservazione, via via sempre più efficienti. Tra le più significative elenchiamo:

  • Osservazione tramite rilevatori di bordi (M.Isard, A.Blake: CONDENSATION – Conditional Density Propagation for visual tracking).
  • Osservazione tramite misure di distanza calcolata su istogrammi (K. Okuma, A. Taleghani, N. de Freitas, J. J. Little and D.G. Lowe: A Boosted Particle Filter: Multitarget Detection and Tracking | K. Nummiaro, E. Koller-Meier, L.V. Gool: An Adaptive Color-Based Particle Filter).
  • Osservazione tramite il riutilizzo del localizzatore degli oggetti (tracking by detection).

Si noti che nei primi due casi le caratteristiche per la fase di osservazione sono diverse da quelle utilizzate dal rilevatore di volti. Nel terzo caso invece (tracking by detection) si utilizza lo stesso rilevatore di volti sia come strumento di rilevamento al tempo iniziale sia come strumento per la verifica della predizione durante il tracking. Per poter integrare nel motore di inferenza probabilistico l’osservazione è necessario che questa restituisca una stima probabilistica della regione analizzata e non un semplice responso di tipo binario inteso a segnalare la presenza o meno dell’oggetto tracciato (non è sufficiente dire SI/NO rispetto alla presenza di un volto, bisogna esprimere un valore di probabilità fruibile dal successivo meccanismo di previsione e verifica probabilistica). Quest’ultima considerazione ci conduce ad un secondo aspetto focale del problema. In un recente lavoro, Verma et al. (R.C. Verma, C. Schmid and K. Mikolajczyk: Face Detection and Tracking in a Video Propagating Detection Probabilities) hanno infatti affrontato tale questione focalizzandosi su un approccio integrato tra il rilevatore di volti di Schneiderman – Kanade (H. Schneiderman and T. Kanade: A Statistical Method for 3D Object Detection Applied to Faces and Cars) e l’algoritmo di propagazione delle probabilità CONDENSATION (M.Isard, A.Blake: CONDENSATION – Conditional Density Propagation for visual tracking). La natura probabilistica dell’algoritmo di Schneiderman – Kanade ne permette l’integrazione diretta all’interno del ciclo di propagazione dell’informazione. Tuttavia, a causa della scarsa efficienza dello stesso rilevatore di volti, l’elaborazione delle sequenze video impiega svariati secondi per frame ed è dunque una soluzione poco interessante se ci si prefigge di elaborare un filmato in tempo reale.

All’interno di questo corso si scelto di porre l’accento sull’algoritmo di rilevamento dei volti “AdaBoost a cascata” di Viola e Jones (P. Viola and M. Jones: Robust Real-time Object Detection), da anni lo standard de facto nel mondo della computer vision poiché combina una buonissima capacità di classificazione a una notevole efficienza computazionale. Tuttavia l’implementazione originale di VJ produce risultati binari e non presenta quindi un’immediata interpretazione probabilistica che, come detto, è condizione necessaria per l’integrazione con l’algoritmo di CONDENSATION. Si deve a Friedman et al. (J. Friedman, T. Hastie, R. Tibshirani: Additive logistic regression: a statistical view of boosting) la prima interpretazione probabilistica di AdaBoost, ripresa successivamente da Li et al. (P. Li and H.Wang: Probabilistic Object Tracking Based on Machine Learning and Importance Sampling.) Al fine di costruire un sistema di tracking efficiente ma soprattutto formalmente valido dal punto di vista teorico, è quindi fondamentale produrre una interpretazione probabilistica dell’algoritmo di localizzazione dei volti utilizzando il risultato prodotto dallo stesso rilevatore quale misura diretta di verosimiglianza (ovvero l’osservazione) della predizione effettuata (seppur approfondire questo aspetto sia out-of-scope rispetto al corso, questo concetto deve essere chiaro poiché assolutamente fondamentale alla comprensione del meccanismo di tracking).

Indipendentemente dalla scelta sulla modalità di verifica della predizione, il motore di tracking è composto a livello logico da due fasi distinte, dove l’output di ciascuna fase costituisce ciclicamente l’input dell’altra, secondo la seguente logica:

  • Fase di osservazione: l’algoritmo di rilevamento assegna un valore di probabilità alle regioni che si ipotizza corrispondano a volti individuati dalla esecuzione della precedente fase (vedi sotto).
  • Fase di propagazione: attraverso un opportuno algoritmo di propagazione delle probabilità si inferisce la nuova posizione dei volti tracciati in funzione della stima precedente effettuata alla fase (vedi sopra).

Questi aspetti verranno approfonditi nel prosieguo del documento. La struttura di questo elaborato si sviluppa come segue:

  • Capitolo II: viene presentata una panoramica introduttiva al problema del rilevamento di oggetti in immagini statiche con particolare riferimento al rilevamento automatico di volti umani; si prenderà come algoritmo di riferimento quello proposto da Viola e Jones.
  • Capitolo III: breve introduzione teorica alla stima ricorsiva per la progettazione di filtri di tracciamento in sequenze video. L’algoritmo di riferimento è il CONDENSATION ideato da Isard e Blake nel 1998.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.