Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction -...

45
Background Subtraction - II R. Venkatesh Babu

Transcript of Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction -...

Page 1: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

Background Subtraction - II

R. Venkatesh Babu

Page 2: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Running Gaussian Average

• Pfinder(Wren, Azarbayejani, Darrell, Pentland, 1997):– fitting one Gaussian distribution (µ,σ)over the

histogram: this gives the background PDF

– background PDF update: running average:

– In test | F -µ| > Th, Th can be chosen as kσ

– It does not cope with multimodal backgrounds()

Page 3: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Need for Adaptive Systems

• Consider the pixel process at (x0,y0)

Page 4: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Mixture of Gaussian(Stauffer and Grimson, CVPR’99, PAMI’00)

• This model copes with multimodal background distributions.

• Issues:

– the number of modes is arbitrarily pre-defined (usually from 3 to 5)

– how to initialize the Gaussians?

– how to update them over time?

Page 5: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Mixture Model

• Training:

• Model the pixel intensity variation as:

– The weight of a particular Gaussian is a measure of how good it represents the background.

Page 6: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Updation

• If none of the K distributions match the current pixel value:

– Replace the least probable dist with a dist with the current value as its mean, having high variance and low prior weight

• Update Prior Weights:

Where, ɑ is the learning rate and Mk,t =1 for matched Gaussian model and zerofor unmatched Gaussian

Page 7: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

MoG: Algorithm• All weights ωi are updated (updated and/or normalised) at

every new frame

• At every new frame, some of the Gaussians “match” the current value (those at a distance < 2.5 σi ): for them, µi,σi are updated by the running average:

Where, learning factor

Page 8: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Background Models

• The mixture of Gaussians actually models both the foreground and the background: how to pick only the distributions modeling the background?: – All distributions are ranked according to their ωi /σi and the first ‘b’ are

chosen as “background”

Page 9: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Example

Page 10: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

OpenCV Gaussian Mixture Based Background subtraction

• Class to be used: BackgroundSubtractorMOG

• Background model update function: Computes a foreground mask from the given input frame “image” and returns it in “fgmask”.operator()(InputArray image, OutputArray fgmask, double learningRate=0);

• Background computing function: Computes the current background and returns it in “backgroundImage”getBackgroundImage(OutputArray backgroundImage);

• The class implements the algorithm described in P. KadewTraKuPong and R. Bowden, An improved adaptive background mixture model for real-time tracking with shadow detection, Proc. 2nd European Workshop on Advanced Video-Based Surveillance Systems, 2001:http://personal.ee.surrey.ac.uk/Personal/R.Bowden/publications/avbs01/avbs01.pdf

• Other background modelling classes available in OpenCV: BackgroundSubtractor, BackgroundSubtractorMOG2.More info: http://opencv.itseez.com/modules/video/doc/motion_analysis_and_object_tracking.html#backgroundsubtractor http://opencv.itseez.com/modules/video/doc/motion_analysis_and_object_tracking.html#backgroundsubtractormog http://opencv.itseez.com/modules/video/doc/motion_analysis_and_object_tracking.html#backgroundsubtractormog2

Page 11: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

OpenCV Code Snippet(C++)……cv::Mat NewFrame, FGMask, BG; //Image matrices for newframe, foreground mask and the Background.

cv::VideoCapture VideoFeed(“test.avi"); //Create class instance to handle video capture.BackgroundSubtractorMOG BGModel; //Create class instance for Background modelling.

cv::namedWindow(“Input Video"); //Create Windows.cv::namedWindow(“ForeGround Mask");cv::namedWindow(“BackGround");

while ( VideoFeed.isOpened()) // Returns true if video capturing has been initialized already.{

if(VideoFeed.grab()) // Grabs the next frame from video file or capturing device and return true (non-zero) in the // case of success.

{VideoFeed.retrieve(NewFrame); // Decodes and returns the grabbed video frame.

BGModel.operator()(NewFrame, FGMask, 0); //Update Background model and return foreground mask.BGModel.getBackgroundImage(BG ); //Returns the current Background image.

cv::imshow(“Input Video", NewFrame); //Display video frames.cv::imshow(“ForeGround Mask", FGMask);cv::imshow(“BackGround", BG);

}cv::waitKey(3);

}cvDestroyWindow(“Input Video“); //Delete Window and free the memory used by it.cvDestroyWindow(“ForeGround Mask");cvDestroyWindow(“BackGround");……

Page 12: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Non Parametric Model for Background(Ahmed Elgammal ,David Harwood, Larry Davis, ECCV ’00)

• It is a non – parametric model ie., distribution is derived solely from the observed samples.

• Say we have samples of data for a pixel {Xi}, i= 1 to nthe probability density of an intensity ‘x’ is given by

• ‘K’ is the kernel function, typically a Gaussian.

Reference Paper - Ahmed Elgammal ,David Harwood, Larry Davis.“Non Parametric Model for Background Subtraction”

Page 13: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Pixel Intensity over time

Page 14: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Histogram

Page 15: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

KDE - Example

• data=[randn(100,1);randn(100,1)*2+35 ;randn(100,1)+55];

• kde(data,2^14,min(data)-5,max(data)+5);

• hold on;plot(data,0,'+');

Page 16: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Choice of kernel bandwidth

Page 17: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Kernel Bandwidth

• Bandwidth decides the smoothness.

• Small bandwidth leads to spurious data artifacts.

• Large bandwidth may result in over smoothing

• Bandwidth has to be chosen optimally.

Page 18: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Finding the bandwidth

• Find the median absolute deviation for every 2 consecutive samples for each color channel.

– Median m of |Xi+1 –Xi| for every 2 consecutive samples (Xi+1, Xi) .

– BW =

Page 19: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Kernel

• K = N(0,Σ), where, Σ represents kernel BW

• KDE:

– Assuming:

– Then, KDE=

KDE using Gaussian Kernel Generalization of GMM where each sample is considered N(0, Σ).

Page 20: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Result

Page 21: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Suppression of false Detection:Pixel displacement distribution

• If then we say that particular value is a foreground value. Otherwise it is background.

• To make sure that the detected pixel is a foreground pixel, we define a Pixel displacement distribution given by

• It is a measure of the maximum probability of the pixel being the background pixel of a nearby pixel.

Page 22: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Component displacement distribution

Further constraints :

• Foreground and background intensities may be similar.

• So we check if the entire detected object has displaced from nearby pixels.

• For this we define Component displacement distribution given by

Page 23: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Component displacement distribution

• Detected Pixel ‘x’ is BG iff

• Neigborhood 5 dia circular neighborhood

Page 24: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Results

Page 25: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

KDE - Results

Page 26: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Model Update

• Selective Update:

• Blind Update

Page 27: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

ViBE = Visual Background Extractor

ViBe: A Universal Background Subtraction Algorithm for Video Sequences,

Olivier Barnich and Marc Van Droogenbroeck (ICASSP ’09 & IEEE Trans. IP ‘11)

Page 28: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Model

• Classify a new pixel value with respect to its immediate neighborhood

• Model each background pixel with a set of samples instead of with an explicit pixel model.

– No estimation of pdfs

Page 29: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

BG Pixel Classification

• Each background pixel xis modeled by a collection of Nbackground sample values

• New pixel value v(x) is BG iff:

> #min

Page 30: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

ViBE: Parameters

• Radius of Sphere R

– Set at 20 for Monochrome Images

• #min:

– Set as 2

• These parameters are fixed for all pixels/frames

• Adjust the sensitivity by changing the ratio: #min /N

Page 31: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Model Initialization

• From a single frame populate the pixel models with values found in the spatial neighborhood of each pixel.

– Values randomly taken in their neighborhood

– Neighborhood chosen – 8 connected

Page 32: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Background model initialization

• The Model is initialized as follows:

M0(x) = { v0 (y) | y ∈ NG (x) }

Where,

Vo(y) = Intensity at pixel ‘y’ at t=0

NG(x) = Neighborhood of pixel ‘x’

M0(x) = Background model for pixel ‘x’ at t=0

Page 33: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Background model initialization

Problem with this kind of initialization :

Foreground objects being present in the first frame itself – presence of ‘ghosts’ in the background model.

Page 34: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Is a pixel Background or Foreground?

Now we have the background model for a pixel ‘x’ as

M(x) = { v1 , v2 , v3 … vN }

Say v(x) is the observed intensity value of pixel ‘x’.

Steps:

• Define a sphere of radius ‘R’ centered at the intensity value v(x).

• Check how many points from M(x) are inside this sphere.

• If more than nthresh values from M(x) are inside the sphere, v(x) is a background value, otherwise not.

Page 35: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Is a pixel Background or Foreground?

Page 36: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Updating the background model over time

• Background model of a pixel is updated randomly !

Page 37: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Updating the background model over time

Conservative Update :• Update the model only if a pixel value is declared as

a background. If it is foreground, do not update at all.

• Consider a parked car that begins to move suddenly. According to conservative update policy, the region uncovered by the car will not be updated. This leads to permanent presence of the car’s “ghost”.

• But in ViBE, this problem is overcome because neighboring pixels can update the background model of a given pixel.

Page 38: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Updating the background model over time

Memoryless Update:

• Which value is discarded from the model M(x) is determined randomly.

• Every value in M(x) has equal probability of being discarded after a fixed time.

• The past has no effect in the update process.

Page 39: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Model Update

Page 40: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Updating the background model over time

Random time Subsampling:• Update the background model randomly.• Say a pixel has been declared as background some ‘k’

times, we update the background model of that pixel only once, out of these ‘k’ times, that too randomly.– K =16 (used) a background pixel value has 1 chance in 16 of

being selected to update its pixel model.

• Advantage: The old model is not discarded immediately.• Disadvantage: Failure whenever there are fast moving

objects.

Page 41: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Updating the background model over time

Updating the neighboring pixels’ background values:

If the current pixel value v(x) has been declared a background, we randomly choose a pixel from the neighborhood of x and update its background value.

Assumption: The pixels are spatially correlated.

Page 42: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Results

Page 43: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Results

Page 44: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

ViBE software download

http://www2.ulg.ac.be/telecom/research/vibe/

(Pre-compiled)

Page 45: Background Subtraction - II - Supercomputer …venky/SE263/slides/BGM2.pdfBackground Subtraction - II R. Venkatesh Babu SE 263 R. Venkatesh Babu Running Gaussian Average •Pfinder(Wren,

SE 263 R. Venkatesh Babu

Eigen Backgrounds

• Take N sample images and compute mean and covariance matrix (µb,Cb)

• Diagonalize Cb

• Reduce Dimension by keeping only M Eigen vectors corresponding to M largest Eigen values.

• Project each input image Ii onto the space expanded by the eigen background images

• Detect Moving objects:

“A Bayesian Computer Vision System for Modeling Human Interactions” Nuria M. Oliver, Barbara Rosario, and Alex P. Pentland, IEEE Trans. PAMI, 2000

Eigen Vector Matrix

Where,