L4 Tecniche di Background
Subtraction
Corso di Visione Artificiale
Ing. Luca Mazzei
Background Subtraction
Insieme di tecniche per separare in
un’immagine lo sfondo dagli oggetti
interessanti
 Sfondo, Background: parte statica
 Foreground: parte di interesse

AA 2009/2010
Visione Artificiale
2
Background subtraction
input image
blob image
background image
AA 2009/2010
Visione Artificiale
3
Background Subtraction
Scenario: camera fissa
 Foreground = Frame – Background
 Necessario impostare il metodo di
estrazione del background e del
foreground
 Operazioni sui pixel

AA 2009/2010
Visione Artificiale
4
Problematiche

Cambiamenti illuminazione
Graduali (ombre sole su strada)
– Improvvise (nuvole)
–

Cambiamenti da movimento
Oscillazioni camera
– Oggetti nel bg con movimenti (fronde, onde)
–

Cambiamenti nella geometria
–
AA 2009/2010
Oggetti, auto parcheggiate …
Visione Artificiale
5
Foreground



La parte in movimento dell’immagine
Regione di interesse
Bounding bounding box, blob, cluster,
ellissi, centroidi – baricentri geometici
Bounding Box
AA 2009/2010
Blob
Visione Artificiale
Cluster
6
Foreground
Blob
Ellissoide
Bounding Box
Baricentro
Centro di massa
Input image
AA 2009/2010
Visione Artificiale
7
Blob extraction
Considerare una classe per i blob con
oggetti membri:
 Bounding box rettangolare
 Ellissoide
 Centroide
 Blob con i punti appartenenti

AA 2009/2010
Visione Artificiale
8
Metodi base
Differenza di frame
 Media
 Running Average
 Istogrammi
 Selectivity

AA 2009/2010
Visione Artificiale
9
Differenza di frame
Sfondo stimato è il frame precedente
 Funziona solo sotto certe condizioni di
velocità e frame rate
 Molto dipendente dalla soglia Th

| framei  framei 1 | Th
AA 2009/2010
Visione Artificiale
10
Media (Average o Median)
Si calcola la media, o la mediana, degli
ultimi n frame
 Richiesta di memoria alta n  size ( frame)
 Si può ottimizzare a 2  size ( frame)
 Il calcolo va fatto per ogni pixel del
frame

AA 2009/2010
Visione Artificiale
11
Running Average
Ho una media pesata dei pixel
 Alpha, learning rate tipicamente 0.05
 Poca occupazione di memoria, veloce

Bi 1    Fi  (1   )  Bi
AA 2009/2010
Visione Artificiale
12
Istogrammi
Calcoli istogrammi del valore rgb di ogni pixel nel
tempo
 Utile per calcolare una soglia
 Se ho piu’ picchi non funziona

AA 2009/2010
Visione Artificiale
13
Selectivity
Utile se ho oggetti in movimento
 Classifica foreground e background per
aggiornamento background
 formula

  Fi ( x, y )  (1   )  Bi ( x, y ), seFi ( x, y )  Bg
Bi 1 ( x, y )  
Bi ( x, y ), seFi ( x, y )  Fg

AA 2009/2010
Visione Artificiale
14
Limiti dei metodi base
Si basano solo sulla storia di un pixel
singolo
 Non utilizzano informazioni spaziali
 Difficile settare e trovare la soglia

AA 2009/2010
Visione Artificiale
15
Metodi avanzati
Incrementano le prestazioni dei metodi
base
 Coinvolgono informazioni spaziali
 Utilizzano considerazioni statistiche

AA 2009/2010
Visione Artificiale
16
Metodi avanzati (solo nomi)
Running gaussian average
 Mixture of gaussian
 Kernel density estimator
 Mean shift based estimator
 Eigenbackgrounds

AA 2009/2010
Visione Artificiale
17
Assegnamento
Realizzare un’applicazione in GOLD che
mostri i metodi base di background
subtraction, con alcune statistiche.
 Nome applicazione: Matricola_Cognome
 Le statistiche si possono ottenere con i
cronometri ed il profiler

AA 2009/2010
Visione Artificiale
18
Assegnamento Input
Filmato camera fissa colori ambiente
stradale outdoor (Controllo Traffico)
 Filmato camera fissa zenitale colori
indoor (Controllo Accesso Laboratorio)


AA 2009/2010
I filmati si trovano nella cartella in cui si
dovrà caricare l’assegnamento
Visione Artificiale
19
Assegnamento Output
Immagine di input
 Immagine background
 Immagine foreground con blob,
bounding box
 Immagine di output con blob e
bounding box
 Statistiche sui tempi di calcolo (timer
nel profiler di GOLD)

AA 2009/2010
Visione Artificiale
20
Assegnamento
Labeling per blob e differenza
dall’esercitazione precedente (flood fill)
 Possibilità di scegliere output, le soglie,
eventualmente anche tipologia background
da calcolare
 Scelta del tipo di foreground da
visualizzare in output
 Progettare il codice modularmente
 Provare ad utilizzare file .ini
dell’applicazione

AA 2009/2010
Visione Artificiale
21
Scarica

L3_BackgroundSubtraction