Capitolo 1 – Applicazione dei sistemi di videosorveglianza in ambienti reali
2
M M M M
I I I I
V V V V I I I I
A A A A
L La ab bo or ra at to or ri io o d di i M Ma ac cc ch hi in ne e I In nt te el ll li ig ge en nt ti i p pe er r i il l r ri ic co on no os sc ci im me en nt to o d di i V Vi id de eo o, , I Im mm ma ag gi in ni i e e A Au ud di io o
MIVIA
1.1 Utilità e applicazioni della Computer Vision
La visione artificiale sta sempre piø assumendo il ruolo di supporto
nell’analisi di immagini e filmati. La quantità di informazione contenuta in una
immagine, e ancor di piø in un filmato (sequenza di immagini), fa sì che il
compito di analizzarle possa, in molti contesti, risultare pesante per l’uomo, per la
noiosa attesa di eventi rari o per l’elevato sforzo di concentrazione richiesto dal
verificarsi di una rapida successione di eventi.
Il grado di supporto dipende spesso in gran parte da quanto il tipo di
ambiente da cui provengono le immagini possa ritenersi “controllato” e cioè dalla
misura in cui le variazioni delle condizioni di ripresa possano discostarsi dal
modello conosciuto dal sistema di visione che lo analizza. Data, in certi casi,
l’impossibilità di operare in condizioni controllate, l’obiettivo principale posto a
chi opera ricerca in questo campo è di individuare algoritmi e sistemi il piø
possibili immuni alle mutazioni rispetto al modello.
1.2 Affidabilità
A differenza di quello che si possa pensare non si può asserire che sistemi
di Computer Vision adempiano con minor difficoltà i compiti indoor rispetto a
quelli outdoor, anzi forse i primi nascondono delle problematiche a volte piø
sottili e fastidiose. Il vantaggio principale portato dai sistemi di visione applicati
alla videosorveglianza sta nell’essere sensibili ad alcune situazioni anomale in
modo da allertare l’operatore umano risparmiandogli un’attenzione continua al
flusso di immagini. Va tuttavia considerata una percentuale di falsi allarmi e di
eventi perduti. Il fronte attualmente dibattuto in ambito di ricerca su sistemi per
videosorveglianza si colloca ad un livello piø avanzato rispetto ai sistemi in
vendita per gli stessi scopi. Esistono infatti alcuni prototipi di sistemi in grado di
individuare la presenza di persone in una scena e distinguerle da altri oggetti
presenti.
Uno dei punti piø complessi e importanti dei sistemi di videosorveglianza
intelligente è quella di segmentare gli oggetti di interesse all’interno di una scena;
Capitolo 1 – Applicazione dei sistemi di videosorveglianza in ambienti reali
3
M M M M
I I I I
V V V V I I I I
A A A A
L La ab bo or ra at to or ri io o d di i M Ma ac cc ch hi in ne e I In nt te el ll li ig ge en nt ti i p pe er r i il l r ri ic co on no os sc ci im me en nt to o d di i V Vi id de eo o, , I Im mm ma ag gi in ni i e e A Au ud di io o
MIVIA
questa e’ una fase fondamentale che introduce molte problematiche, e se non
risolte si possono manifestare considerevoli degradazioni delle prestazioni del
sistema.
1.3 Applicazioni alla videosorveglianza
L’obiettivo dei sistemi di videosorveglianza è l’individuazione degli
oggetti in movimento (object detection) in una determinata scena e l’inseguimento
di tali oggetti nel tempo, al fine di poter trarre informazioni comportamentali degli
oggetti stessi; tali informazioni possono essere adoperate per poter rilevare
l’accadimento di eventi anomali e inviare opportuni allarmi.
La videosorveglianza rappresenta da sempre una delle soluzioni chiave per
il monitoraggio ed il controllo in quelle situazioni nelle quali non bastano o non
sarebbe altrettanto efficace l’uso di altri tipi di sensori. Si pensi ad esempio al
problema del monitoraggio di una vasta zona come quella di un tratto autostradale
o di un’area boschiva: per tenere sotto controllo queste vaste aree occorrerebbero
moltissimi sensori, cosa che porterebbe con sØ il problema del loro collegamento e
della loro collocazione.
L’uso di videocamere per la videosorveglianza ha notevoli vantaggi, il
primo dei quali è di ridurre il numero di persone addette alla sorveglianza, un altro
vantaggio derivante dall’impiego di videocamere è che si possono registrare le
loro informazioni su di un supporto magnetico, permettendone l’analisi in un
secondo momento. Inoltre lo sviluppo di applicazioni di videosorveglianza
nell’ambito della computer vision è stato agevolato dalla potenza dei calcolatori
attualmente in commercio, che permettono di acquisire e elaborare filmati con
grandi quantità di informazioni in modo piø veloce di quanto possa fare un
operatore umano, che va in difficoltà quando in una scena compaiono molti
oggetti e numerosi eventi da seguire contemporaneamente, nonchØ la difficoltà di
restare concentrato sul monitoraggio delle vere e proprie zone critiche della scena,
quando si presentano eventi di disturbo.
Capitolo 1 – Applicazione dei sistemi di videosorveglianza in ambienti reali
4
M M M M
I I I I
V V V V I I I I
A A A A
L La ab bo or ra at to or ri io o d di i M Ma ac cc ch hi in ne e I In nt te el ll li ig ge en nt ti i p pe er r i il l r ri ic co on no os sc ci im me en nt to o d di i V Vi id de eo o, , I Im mm ma ag gi in ni i e e A Au ud di io o
MIVIA
La visione artificiale conta numerose applicazioni che possono essere
principalmente divise secondo il livello dell’elaborazione (elementare o
complessa), il tipo di ambiente in cui vengono impiegate (outdoor, indoor), il tipo
di oggetti verso cui rivolgono la loro attenzione (persone, veicoli o piø classi di
soggetti).
1.4 Struttura modulare per un sistema di videosorveglianza
Un sistema di videosorveglianza intelligente funziona in due passi:
riconoscimento degli oggetti in un’immagine, analisi comportamentale degli
oggetti in questione.
Il processo di riconoscimento di un’immagine avviene su tre distinti livelli:
basso, medio e alto.
Il primo di questi, detto anche Pixel Processing Level, contiene gli algoritmi
che definiscono l’appartenenza dei pixel allo sfondo o ad un oggetto. Il rumore
sull’immagine indotto dal sistema di acquisizione è qui attenuato per mezzo di
operazioni di filtraggio e calibrazione.
Il successivo livello, conosciuto come Frame Processing Level, raffina i
risultati ottenuti al passo precedente considerando le relazioni che intercorrono tra
i gruppi di pixel individuati come oggetto ed attua la classificazione dei pixel
secondo l’appartenenza ad oggetti diversi (blob segmentation).
Un ulteriore livello, detto di Tracking, si occupa della classificazione, del
riconoscimento e dell’inseguimento degli oggetti individuati dal livello inferiore.
Questo avviene tramite un matching tra l’immagine stessa e gli oggetti cercati.
Inoltre, le informazioni riguardanti le posizioni degli oggetti possono essere usate
dal Frame Processing Level per migliorare la qualità della segmentazione nelle
immagini successive.
Per quanto riguarda gli algoritmi di basso livello, la classificazione che se
ne da è quella riportata nella figura seguente
Capitolo 1 – Applicazione dei sistemi di videosorveglianza in ambienti reali
5
M M M M
I I I I
V V V V I I I I
A A A A
L La ab bo or ra at to or ri io o d di i M Ma ac cc ch hi in ne e I In nt te el ll li ig ge en nt ti i p pe er r i il l r ri ic co on no os sc ci im me en nt to o d di i V Vi id de eo o, , I Im mm ma ag gi in ni i e e A Au ud di io o
MIVIA
Figura 1.1: classificazione degli algoritmi di segmentazione
Per algoritmi derivativi si intendono quelli che individuano gli oggetti in
movimento in una sequenza video prendendo in considerazione le variazioni
presenti tra immagini successive. Questa tipologia di algoritmi degenera nel caso
piø banale in una differenza tra frame successivi, che hanno il pregio della
semplicità computazionale, fino ad arrivare ad algoritmi piø complessi tipo
optical flow.
Quelli con background, invece, usano un riferimento contenente informazioni
sulla scena in assenza di oggetti di interesse. Esistono due tipologie di algoritmi in
questa categoria: quelli a bakground fisso e quelli a bakground adattativo. A parità
di tecnica di segmentazione è chiaramente piø leggera computazionalmente la
prima tipologia di algoritmi rispetto alla seconda, che ovviamente è piø precisa.
1.5 Problematiche di applicazione dei sistemi di videosorveglianza
in ambienti reali
Si è ampiamente discusso in letteratura riguardo ai sistemi di videosorveglianza,
tuttavia essi sono sempre stati testati su filmati simulanti determinate
problematiche. Come verrà dimostrato in questo lavoro di tesi ciò non basta, in
quanto nella videosorveglianza in ambienti reali sono molte le variabili da
considerare. Si pensi ad esempio alla luce che cambia non solo piø volte al giorno
ma anche in relazione alla stagione e alle condizioni meteorologiche. Dato che un
sistema di videosorveglianza distingue gli oggetti d’interesse dallo sfondo
analizzando l’intensità dei pixel che compongono l’immagine in esame, il grado
di illuminazione della scena è di grande importanza. E’ da notare poi che col
variare della luce mutano le zone d’ombra presenti sulla scena di interesse e la
Capitolo 1 – Applicazione dei sistemi di videosorveglianza in ambienti reali
6
M M M M
I I I I
V V V V I I I I
A A A A
L La ab bo or ra at to or ri io o d di i M Ma ac cc ch hi in ne e I In nt te el ll li ig ge en nt ti i p pe er r i il l r ri ic co on no os sc ci im me en nt to o d di i V Vi id de eo o, , I Im mm ma ag gi in ni i e e A Au ud di io o
MIVIA
lunghezza delle ombre proiettate sul suolo. Come si vedrà nei successivi capitoli
entrambi gli effetti potrebbero compromettere l’affidabilità del sistema se non
tenuti debitamente in considerazione.
Un altro fattore da considerare è l’abbigliamento delle persone che attraversano
l’area videosorvegliata. Una persona che ha indosso vestiti della stessa tonalità
dello sfondo della scena esaminata potrebbe non essere riconosciuta
dall’algoritmo di object detection e se l’ambiente videosorvegliato fosse ad
esempio una piazza pubblica tale fattore potrebbe costituire un problema.
E’ stata inoltre riscontrata una difficoltà da parte dei sistemi di object detection a
gestire la coesistenza di oggetti d’interesse di varia forma nell’area
videosorvegliata. Si pensi ad esempio ad un parcheggio in cui sia persone che
macchine costituiscono oggetto d’interesse. Questo perchØ il funzionamento degli
algoritmi di rilevamento è basato su un modello standard dell'oggetto d'interesse
fornito dall'utente del sistema.
Capitolo 2 – Stato dell’arte 7
M M M M
I I I I
V V V V I I I I
A A A A
L La ab bo or ra at to or ri io o d di i M Ma ac cc ch hi in ne e I In nt te el ll li ig ge en nt ti i p pe er r i il l r ri ic co on no os sc ci im me en nt to o d di i V Vi id de eo o, , I Im mm ma ag gi in ni i e e A Au ud di io o
MIVIA
Capitolo 2
STATO DELL’ARTE
Capitolo 2 – Stato dell’arte 8
M M M M
I I I I
V V V V I I I I
A A A A
L La ab bo or ra at to or ri io o d di i M Ma ac cc ch hi in ne e I In nt te el ll li ig ge en nt ti i p pe er r i il l r ri ic co on no os sc ci im me en nt to o d di i V Vi id de eo o, , I Im mm ma ag gi in ni i e e A Au ud di io o
MIVIA
2.1 Object Detection
2.1.1 Introduzione
Con il termine segmentazione si indica quel processo atto a separare, in
prima analisi, gli oggetti dallo sfondo di una scena acquisita [Marr & Hildredth
1980]. La segmentazione, a sua volta può essere divisa in due fasi:
• Pixel Processing Level, che contiene gli algoritmi che definiscono
l’appartenenza dei pixel allo sfondo o ad un oggetto. Il rumore
sull’immagine indotto dal sistema di acquisizione è qui attenuato per
mezzo di operazioni di filtraggio e calibrazione.
• Frame Processing Level, che raffina i risultati ottenuti al passo precedente
considerando le relazioni che intercorrono tra i gruppi di pixel individuati
come oggetto ed attua la classificazione dei pixel secondo l’appartenenza
ad oggetti diversi (blob segmentation).
La segmentazione video, intesa come estrazione degli oggetti in movimento
da una sequenza video, è una operazione chiave nella codifica video basata sui
contenuti, nella descrizione dei contenuti multimediali e nell’elaborazione
intelligente dei segnali.
Per esempio, in MPEG-4 è disponibile la funzionalità content-based che fa
uso dei video object plane (VOP) come elemento base della codifica. Ogni VOP
contiene informazioni su forma e texture di oggetti significativi appartenenti alla
scena. Ciò consente la manipolazione gli oggetti e la composizione delle scene
sfruttando le informazioni sui singoli oggetti che il flusso video contiene.
Le informazioni sulla forma degli oggetti in movimento non sono
direttamente disponibili nella sequenza video, quindi, la segmentazione video è un
passo indispensabile sia per sfruttare il nuovo schema di codifica suddetto, sia per
qualunque altra manipolazione che necessiti dei soli oggetti separati dal
background (parte fissa della scena).
Inoltre, molte applicazioni multimediali hanno requisiti real-time, quindi, è
necessario un algoritmo automatico di video segmentazione efficiente.
Capitolo 2 – Stato dell’arte 9
M M M M
I I I I
V V V V I I I I
A A A A
L La ab bo or ra at to or ri io o d di i M Ma ac cc ch hi in ne e I In nt te el ll li ig ge en nt ti i p pe er r i il l r ri ic co on no os sc ci im me en nt to o d di i V Vi id de eo o, , I Im mm ma ag gi in ni i e e A Au ud di io o
MIVIA
2.1.2 Fattori critici classici del Pixel Processing Level
Per quanto riguarda il Pixel Processing Level i principali “fenomeni
negativi” sono quelli che portano ad una classificazione sbagliata dei pixel: nel
caso in cui un pixel venga individuato erroneamente come appartenente ad un
oggetto si parla di falso positivo, mentre se viene individuato erroneamente come
background viene indicato come falso negativo.
I principali fenomeni possono essere classificati come:
• waveing trees
• mimetizzazione
• light change
• foreground aperture
I waveing trees indicano tutti quei fenomeni di moto apprezzabili che non
hanno interesse ai fini della particolare applicazione che si sta realizzando. Un
tipico esempio è rappresentato da foglie o fili sospesi mossi dal vento oppure
dallo sfarfallio dei monitor inquadrati dalla telecamera.
La mimetizzazione è quel fenomeno per il quale un oggetto di interesse ha
caratteristiche tali da essere confuso con lo sfondo (background) causando, quindi,
falsi negativi.
I light changes indicano genericamente tutte le variazioni dovute a cambi di
illuminazione della scena.
Infine, foreground aperture indica l’eventuale difficoltà a individuare gli
oggetti in movimento caratterizzati da una colorazione uniforme.
2.1.3 Algoritmi basati sulla differenza tra frame
Caratteristica principale di questa classe (vedi [16][22]) è quella di
individuare gli oggetti in movimento in una sequenza video prendendo in
considerazione solo le differenze presenti tra immagini successive. Quindi,
Capitolo 2 – Stato dell’arte 10
M M M M
I I I I
V V V V I I I I
A A A A
L La ab bo or ra at to or ri io o d di i M Ma ac cc ch hi in ne e I In nt te el ll li ig ge en nt ti i p pe er r i il l r ri ic co on no os sc ci im me en nt to o d di i V Vi id de eo o, , I Im mm ma ag gi in ni i e e A Au ud di io o
MIVIA
l’output degli algoritmi presenti in questa categoria evidenzia degli oggetti
soltanto in corrispondenza dei pixel che presentano nelle varie immagini delle
differenze di intensità apprezzabili.
Le possibili implementazioni si differenziano l’una dall’altra in base al
numero di immagini consecutive che viene preso in considerazione nelle
elaborazioni.
In particolare ci si è imbattuti in due soluzioni, Single Difference e Double
Difference, che utilizzano per l’individuazione di oggetti rispettivamente le ultime
due e le ultime tre immagini della sequenza video.
L’output di questi algoritmi è caratterizzato dal fatto di essere dipendente
dalla velocità di movimento degli oggetti ripresi nella scena. Maggiore è la
velocità di spostamento, tanto maggiori saranno le differenze tra immagini
consecutive e quindi piø evidente sarà l’output finale.
Viceversa movimenti lenti introdurranno piccole variazioni, riducendo la
qualità dell’elaborazione finale. Come conseguenza oggetti che compaiono nella
scena e poi si fermano cessano di essere individuati da questa classe di algoritmi.
Una seconda carenza di questa classe è il cosiddetto problema di foreground
aperture: la corretta individuazione della sagoma di un oggetto può essere
compromessa se questo presenta delle zone a tinta uniforme che non producono
cambiamenti in immagini successive.
Un pregio notevole di questi algoritmi è rappresentato dalla loro sostanziale
insensibilità a variazioni luminose dell’ambiente. Questo è vero fin tanto che le
variazioni delle intensità dei pixel restano al di sotto della soglia di
riconoscimento. Inoltre, anche cambiamenti istantanei delle condizioni di
illuminazione (ad es. una lampada che viene accesa all’interno di una stanza)
mandano in crisi l’elaborazione solo per pochi frame, fintanto che la situazione
non si stabilizza. (ad es. si pensi al transitorio nell’accensione di una luce al neon).
Infine, tutti e due gli algoritmi presentano pregi legati al carico
computazionale ridotto garantito dalla semplicità delle operazioni da eseguire.
Capitolo 2 – Stato dell’arte 11
M M M M
I I I I
V V V V I I I I
A A A A
L La ab bo or ra at to or ri io o d di i M Ma ac cc ch hi in ne e I In nt te el ll li ig ge en nt ti i p pe er r i il l r ri ic co on no os sc ci im me en nt to o d di i V Vi id de eo o, , I Im mm ma ag gi in ni i e e A Au ud di io o
MIVIA
2.1.3.1 Single difference
La Single Difference è il primo dei due algoritmi derivativi che vedremo.
Il suo funzionamento si basa sull’analisi delle differenze che intercorrono
direttamente tra due immagini consecutive di una sequenza. A partire da queste,
come primo passo di elaborazione viene calcolata la differenza in valore assoluto
tra le intensità di ogni coppia di pixel. In questo modo si ottiene una nuova
matrice di valori della stessa dimensione delle immagini di partenza e che
viene chiamata Immagine Differenza Assoluta (Figura 2.1):
ImmagineDifferenzaAssoluta(x,y)=|Immagine
t
(x,y) – Immagine
1 - t
(x,y)|
A questo punto l’elaborazione non è ancora terminata in quanto l’output
visualizzato sarebbe affetto da una notevole quantità di rumore. Questi pixel,
classificabili secondo quanto detto nel capitolo precedente come falsi positivi,
sono dovuti a possibili fenomeni di moto limitati di alcuni elementi dello sfondo
(ad es. le foglie di alberi che si muovono) e al rumore associato al processo di
digitalizzazione delle immagini che fa si che l’intensità non risulti costante, ma
oscilli attorno ad un certo valore.
Quindi, per filtrare tutti i punti rumorosi, si opera una elaborazione di
binarizzazione con soglia: i valori di ogni pixel vengono confrontati con una
soglia e sono posti uguali al valore massimo se risultano superiori ad essa, oppure
a zero nel in caso contrario. In formule:
Figura 2.1 - diagramma di flusso per la differenza assoluta
Capitolo 2 – Stato dell’arte 12
M M M M
I I I I
V V V V I I I I
A A A A
L La ab bo or ra at to or ri io o d di i M Ma ac cc ch hi in ne e I In nt te el ll li ig ge en nt ti i p pe er r i il l r ri ic co on no os sc ci im me en nt to o d di i V Vi id de eo o, , I Im mm ma ag gi in ni i e e A Au ud di io o
MIVIA
ImmagineMovimento(x,y)=
>
altrimenti 0,
soglia y) , Assoluta(x Differenza , 255
In questo modo i punti che non presentano differenze di intensità
sufficientemente elevate vengono eliminati dall’output, mentre gli altri vengono
posti tutti allo stesso valore ottenendo una matrice binaria, cioè caratterizzata nei
suoi elementi soltanto da due valori, che prende il nome di Immagine movimento
(Figura 2.2).
Un tipico esempio di elaborazione è quello rappresentato dalla Figura 2.3
dove viene esaminato il moto di una semplice figura geometrica (un cerchio).
Figura 2.2 - diagramma di flusso per la binarizzazione
Figura 2.3 - esempio di elaborazione sul moto di un cerchio
Capitolo 2 – Stato dell’arte 13
M M M M
I I I I
V V V V I I I I
A A A A
L La ab bo or ra at to or ri io o d di i M Ma ac cc ch hi in ne e I In nt te el ll li ig ge en nt ti i p pe er r i il l r ri ic co on no os sc ci im me en nt to o d di i V Vi id de eo o, , I Im mm ma ag gi in ni i e e A Au ud di io o
MIVIA
La scelta di una sequenza artificiale di questo tipo ci permette di
comprendere immediatamente le caratteristiche principali della Single Difference.
Osservando l’output dell’algoritmo si nota che il risultato finale è composto da tre
parti (Figura 2.4): le prime due derivano dalla nuova posizione che l’oggetto
assume nell’immagine
t
(output corretto) e dalla zona occupata nell’immagine
1 - t
e
lasciata scoperta nella successiva. I pixel che costituiscono quest’ultima parte
sono dei falsi positivi in quanto individuano un oggetto inesistente e in letteratura
vengono indicati con il nome specifico di “ghosting”.
La terza parte dell’output (in Figura 2.4 indicata come foreground
aperture) sottolinea quella che è una caratteristica di tutti gli algoritmi derivativi e
di cui si è accennato in precedenza: in corrispondenza delle zone omogenee
l’output presenta delle lacune in quanto non è possibile individuare il moto in tali
punti caratterizzati da intensità uniformi causando, di conseguenza, la presenza di
falsi negativi.
Nel caso in cui l’oggetto in movimento non sia piø uniforme, ma
caratterizzato al suo interno da trama varia (“textured object”), si ha che il
foreground aperture risulta minore mentre il ghosting rimane inalterato. Lo si può
osservare in figura 2.5 dove viene mostrata una elaborazione di una sequenza
artificiale con il moto di un oggetto “textured”, dove è evidente l’assenza di
foreground aperutre.
Figura 2.4 - output dell’algoritmo
Capitolo 2 – Stato dell’arte 14
M M M M
I I I I
V V V V I I I I
A A A A
L La ab bo or ra at to or ri io o d di i M Ma ac cc ch hi in ne e I In nt te el ll li ig ge en nt ti i p pe er r i il l r ri ic co on no os sc ci im me en nt to o d di i V Vi id de eo o, , I Im mm ma ag gi in ni i e e A Au ud di io o
MIVIA
In generale, piø veloce si muoverà un oggetto, maggiormente sarà evidente
l’effetto del ghosting. Viceversa minore sarà la velocità, maggiore sarà la
sovrapposizione delle sagome dell’oggetto nelle due immagini consecutive e
quindi aumenterà la probabilità che siano presenti lacune a causa del foreground
aperture.
Comunque l’algoritmo presenta il notevole vantaggio di essere insensibile
a variazioni globali della scena ripresa. Infatti eventuali variazioni di visibilità o di
illuminazione continue lungo l’arco di piø frames, vengono ignorate fino a che le
differenze introdotte tra immagini consecutive si mantengano al di sotto della
soglia.
2.1.3.2 Double difference
La Double Difference è il secondo algoritmo che si basa sulle differenze
tra frame che verrà preso in esame in questo lavoro. E’ pensato come variante
della Single Difference al fine di superarne i limiti legati alla presenza del
ghosting nell’output. Rispetto al precedente, questo algoritmo ha la peculiarità di
prendere in considerazione tre immagini consecutive (Immagine
2 - t
,
Immagine
1 - t
t-1e Immagine
t
).
L’elaborazione che viene effettuata su questa terna di frames può essere
suddivisa in due operazioni successive. La prima consiste nell’applicare la Single
Figura 2.5 - esempio di elaborazione sul moto di un cerchio con texture