Background Subtraction Opencv

1 Generate background image. We use the _grab_frame function to obtain a screenshot of Arkwood playing Pac-Man. Temporal difference from frame to frame will be updated to the co-occurrence tables. I have two images one is original and other is of background. This is going to require us to re-visit the use of video, or to have. Background subtraction is a widely used algorithm used in computer vision. 4 with python 3 Tutorial 32 by Sergio Canu May 17, 2018 We're going to learn in this tutorial how to subtract the background on a video. subtraction method is to use the difference method of the current image and background image to detect moving objects, with simple algorithm, but very sensitive to the changes in the external environment and has poor anti- interference ability. The class I'd like use is BackgroundSubtractorMOG2. View Mykola Sharhan’s profile on LinkedIn, the world's largest professional community. all(axis = 2))] = [255,255,255]. NiMa 6,187,565 views. Background Subtraction from Video File or Web Cam Using OpenCV By Panggi Libersa J. 22 17:31 동영상의 배경을 제거하고 움직이는 물체를 검출하는 데 사용할 수 있는 Background Subtraction 예제 입니다. GianlucaPaolocci / Background-Subtraction-on-GPU-with-CUDA-and-OpenCV. The algorithm similar to the standard Stauffer&Grimson algorithm with additional selection of the number of the Gaussian components based on: Z. The following loop iterates over all frames of the video sequence. STATIONARY FOREGROUND DETECTION USING BACKGROUND SUBTRACTION AND TEMPORAL DIFFERENCE IN VIDEO SURVEILLANCE* Álvaro Bayona, Juan C. Loading Unsubscribe from Pysource? Cancel Unsubscribe. Basics Background subtraction is a major preprocessing steps in many vision based applications. Porikli, B. One of the first steps in facial recognition software is to isolate the actual face from the background of the image along with isolating each face from others found in the image. ie achieving green screen like effects without green screen. Follow along with instructor Antonio Ortiz to build cross-platform applications using Qt. background subtraction example based on opencv 3. I have tried several method such as KNN, MOG, and MOG2. In the image above, the dark connected regions are blobs, and the goal of blob detection is to identify and mark these regions. Unlike traditional subspace techniques the proposed approach does not. This is going to require us to re-visit the use of video, or to have. Grimson Background Subtraction Using Markov Thresholds (2005) by Joshua Migdal, W. 29 18:36 영화를 보다보면 가끔 CCTV를 통해서 컴퓨터가 수상한 사람이나 도둑으로 보이는 사람을 사람에게 알려주는 장면이 등장 합니다.  The confusing part is that you cannot use its constructor to create an instance. html OpenCV 2. Pixels that are not affected by the floodfill operation are necessarily inside the. OpenCv or Computer Vision. These methods are called GMG, KNN, MOG and MOG2. Background Subtraction - Separating the Modeling and the Inference Manjunath Narayana Allen Hanson Erik G. I wish to apply background subtraction to an acquired video using OpenCV. The integration times described were selected such that the shot-noise in the region between night sky lines is over 5x larger than the read noise of a 16-fowler sample. Moving Object Detection. Please check the link answer is with example and function is Core. We'll use scikit-image to remove the background of the following image:. Things learnt are, background subtraction mean shift algorithm camshift algorithm python opencv. Since OpenCV 3, background subtraction by Java becomes possible. Hoferlin, and A. Capture frames using polling mechanism (OpenCV) OpenCV Sample 01 - Demonstrates polling mechanism and displays captured frames using OpenCV. Recommend:image processing - Background subtraction in OpenCV(C++) e second and some of the frames contain lightning which I want to extract as the foreground. Python | Background subtraction using OpenCV Background Subtraction has several use cases in everyday life, It is being used for object segmentation, security enhancement, pedestrian tracking, counting the number of visitors, number of vehicles in traffic etc. Background Averaging (Background Subtraction) in Python+OpenCV - backgroundAveraging. How can this be done? Please kindly point me to the correct direction so that my objective can be achieved. For example, consider the cases like visitor counter where a static camera takes the number of visitors entering or leaving the room, or a traffic camera extracting information about the vehicles etc. Welcome to a foreground extraction tutorial with OpenCV and Python. 2 version example (for MOG, MOG2, GMG, KNN) This is example for background subtraction on opencv 3. GitHub Gist: instantly share code, notes, and snippets. background subtraction method is also called a background subtraction, background subtraction method is the difference to get moving with the background image of the current frame target range, the method can more frame difference method better identification and extraction of moving targets, is cur. In this OpenCV with Python tutorial, we're going to be covering how to reduce the background of images, by detecting motion. Static Background Removal from a video using OpenCV and Python March 14, 2017 March 14, 2017 harshadmulmuley Background removal is an important pre-processing step required in many vision based applications. In addition to our main camera, sensor, and detector processes, several subclasses (orange) are needed to perform image background subtraction, persist data, and run models: Mask: Performs background subtraction on raw images, using powerful algorithms implemented in OpenCV 3. The class I'd like use is BackgroundSubtractorMOG2. I have downloaded videos and ground truth data from here and I am trying to use it to test out the results of my background subtraction algorithm. I have used BackGround subtraction method before and it worked really very well. What would you like to do? Embed. In this paper, we extend the concept of ‘subtract-ing’ areas at rest to apply to video captured from a freely. Can i use the DSP acceleration for background subtraction algorithm in OpenCV?. OpenCV has C++/C, Python, and Java interfaces with support for Windows, Linux, Mac, iOS, and Android, and offers extensive libraries with over 500 functions. A new background subtraction algorithm is proposed based on using a subspace model. Face threshold in various light. In later chapters, you'll get an understanding of how to enhance your videos and images with optical flow analysis and background subtraction. I installed 2 version of OpenCV and Python in my computer. OpenSource Computer Vision OpenCV tutorial 2016. Ok, you want to check the change in the image so, we can assume that most of the time the scene will be constant. So another option for you, if you don't mind using opencv-contrib, is to install opencv-contrib-3. example souce code is here. For example, consider the cases like visitor counter where a static camera takes the number of visitors entering or leaving the room, or a traffic camera extracting information about the vehicles etc. I installed 2 version of OpenCV and Python in my computer. it removes noises but deep shadow is resulting in foreground object. Learn computer vision, machine learning, and image processing with OpenCV, CUDA, Caffe examples and tutorials written in C++ and Python. Please check the link answer is with example and function is Core. createBackgroundSubtractorMOG2() is needed for this task. The algorithm similar to the standard Stauffer&Grimson algorithm with additional selection of the number of the Gaussian components based on: Z. Background Subtraction in Emgu Cv C#. Goal; Meanshift; Camshift; Additional Resources; Exercises; Optical Flow; Background Subtraction; Camera Calibration and 3D Reconstruction; Machine. all(axis = 2))] = [255,255,255]. What is a Blob ? A Blob is a group of connected pixels in an image that share some common property ( E. Since my background isn't a complex background, I have decided to use cvSub to subtract two arrays from each other, which would be the static background capture by camera from every single frame from webcam. vibe-background-sequential. OpenCV image objects can be converted into a form usable by dlib routines by using cv_image. read in opencv. We offer the following content, published elsewhere on the Alliance website, to assist you in rapidly. I have downloaded videos and ground truth data from here and I am trying to use it to test out the results of my background subtraction algorithm. Built the product using Tensorflow and OpenCV libraries. For removing of background several tools are available in Adobe. Here, we will show you how to do it in OpenCV. FYI, currently the code in opencv-contrib-3. background subtraction, and update background on the basis of exact detection of object, this method is effective to improve the effect of moving object detection. Docs we need to extract foreground for further operations like object tracking. Can i use the DSP acceleration for background subtraction algorithm in OpenCV?. “Important physical properties of the surface in color vision are surface spectral reflectance properties, which are invariant to changes of illumination, scene composition or geometry. 0 with attribution. MOG stands for Mixture of Gaussian, which is a classical algorithm for this problem. This is going to require us to re-visit the use of video, or to have. We describe our method in full details (including pseudocode and the parameter values used) and compare it to other background subtraction techniques. Many applications do not need to know everything about the evolution of movement in a video sequence, but only require the information of changes in the scene, because an image's regions of interest are objects (humans, cars, text etc. is the same as in my github repository. Two simple approaches are: the ‘‘balloon estimator’’ adapts the kernel size at each estimation point; and the ‘‘sample-point esti-.  Video. Background subtraction (BS) is a common and widely used technique for generating a foreground mask (namely, a binary image containing the pixels belonging to moving objects in the scene) by using static cameras. This value is hereafter subtracted from the original image, hopefully removing lar. OpenCV is written in C, but starting with Python wrappers was much easier for me. Image reading 3. Evet Uzun bir aradan sonra basit bir OpenCv uygulamasıyla yine karşınızdayız. Background Subtraction• As the name suggests, background subtraction is the process of separating out foreground objects from the background in a sequence of video frames. BackgroundSubtractorCNT is a drop in replacement API for the background subtraction solutions supplied with OpenCV 3. Matlab Code for Background Subtraction Spread the love Background subtraction, also known as Foreground Detection, is a technique in the fields of image processing and computer vision wherein an image's foreground is extracted for further processing (object recognition etc. Learn about floodFill functions, such as the Paintbrush Color Fill feature. Since OpenCV 3, background subtraction by Java becomes possible. Object detection by contours. Rolling Ball Image Background Subtraction [closed] ImageJ uses a Rolling Ball algorithm which I believe is a type of Top-hat transform using a ball as a structuring element. Subtract a constant value from the image. 2 version previously, I post 2. NET bindings for OpenCV to use. On the other hand, trying to use any of them on a low spec system will kill your FPS. By performing background subtraction (MOG) (OpenCV function) over multiple frames and by utilizing the properties, I have managed to detect the object of interest on a not-so-noisy background. I have incorporated basic background subtraction that came with the OPENCV library. Background extraction comes important in object tracking. Negative parameter value makes the algorithm to use some automatically chosen learning rate. By performing background subtraction (MOG) (OpenCV function) over multiple frames and by utilizing the properties, I have managed to detect the object of interest on a not-so-noisy background. How do I remove a shadow after MOG2 background subtraction using OpenCV Python? I used all morphological operations, gaussian and median blur, thresholding. BackgroundSubtractorCNT is a drop in replacement API for the background subtraction solutions supplied with OpenCV. background [34]. Available on the University site in PDF format: , in HTML. Welcome to another OpenCV with Python tutorial. Advancing the background-subtraction method in dynamic scenes is an ongoing timely goal for many researchers. SanMiguel, JoseM. Yesterday I was asked how to extract a contour from a given image in OpenCV. If you already have an image of the bare background, then it is simple. NiMa 6,187,565 views. Background subtraction (also known as Foreground detection) is a computer vision algorithm that tries to distinguish foreground objects from the background. The results from the background subtraction are usually propagated to some higher level modules, for example the detected objects are often tracked. Change the path os the Opencv libraries int project. Grimson In section 4. Traditionally, these algorithms assume a stationary camera, and identify moving objects by detecting areas in a video that change over time. Background subtraction is a technique for separating out foreground elements from the background and is done by generating a foreground mask. Background Subtraction Overview of Background Subtraction Because of its simplicity and because camera locations are fixed in many contexts, background subtraction (a. We analyze the computer vision task of pixel-level background subtraction. What’s new. Noise image, due to a poor quality image source; 2. OpenCV project written in C++. Read our blog to know how to remove static background from a video using OpenCV. x look here please, in 2. Subtract one image from another or subtract constant from image. Things learnt are, background subtraction mean shift algorithm camshift algorithm python opencv. For example, consider the case of a visitor counter where a static camera takes the number of visitors entering or leaving the room, or a traffic camera extracting information about the vehicles etc. Fundamentals of Programming. This is going to require us to re-visit the use of video, or to have. Pro Processing for Images and Computer Vision with OpenCV is a step-by-step training tool that guides you through a series of worked examples in linear order. Open Source Computer Vision The class implements the K-nearest neighbours background subtraction described in. The MotionThread function fetches the latest image from the webcam and applies OpenCV background subtraction, to determine how much motion is in the image. All Forums. The approach that I took was one that is familiar to anyone who has played around with Photoshop at all — background subtraction. First, perform a background subtraction. c# - Background Subtraction with Shadow Removal with EmguCV up vote 1 down vote favorite I am looking for a way to extract foreground (without shadow) from a video sequence using C# (EmguCV). Background subtraction Basically, background subtraction technique performs really well for cases where we have to detect moving objects in a static scene. As the name indicates, this algorithm works by detecting the background and subtracting it from the current frame to obtain the foreground, that is, moving objects. It is much faster than any other background subtraction solutions in OpenCV (without NVidia CUDA) on low spec hardware. This problem can be addressed using the vari-able-size kernels (Wand and Jones, 1995). It consists of two stages: generating background image and feeding forward through CNN. Đếm xe máy bằng thuật toán Background Subtraction, thị giác máy tính, xử lý ảnh, đếm người ra vào, opencv, so sánh hình ảnh. Optimizing the Embedded Platform using OpenCV. This plugin tries to correct for uneven illuminated background by using a "rolling ball" algorithm. all(axis = 2))] = [255,255,255]. BackgroundSubtractorMOG2(). Siz benim basit dediğime bakmayın araç ve insan sayma hareket algılama gibi pek çok uygulamanın temelinde bu yapı vardır. Project Idea | Motion detection using Background Subtraction Techniques Foreground detection based on video streams is the first step in computer vision applications, including real-time tracking and event analysis. Hi guys, I've been using Emgu CV to do some background subtraction on video images. OpenCV image filters. How to deal with this problem. Learning OpenCV puts you in the middle of the rapidly expanding field of computer vision. We will make use of background subtraction techniques to build a motion detection algorithm which will help us switch the Raspberry Pi camera on and off whenever required. Change the path os the Opencv libraries int project. NET and OpenCV has a pretty. py build setup-for-win. We analyze the computer vision task of pixel-level background subtraction. This project uses Open CV 3. What would you like to do? Embed. That's pretty. Basic motion detection and tracking with Python and OpenCV. Using tensorflow Object Detection API SSD architecture was. createBackgroundSubtractorMOG2() is needed for this task. Last page update: 06/08/2019 Library Version: 3. Only works for 8-bit greyscale images currently. cn, [email protected] In the rest of this blog post, I'm going to detail (arguably) the most basic motion detection and tracking system you can build. By performing background subtraction (MOG) (OpenCV function) over multiple frames and by utilizing the properties, I have managed to detect the object of interest on a not-so-noisy background. Background subtraction algorithms Figure 2: Categorization of the outlined background subtraction algorithms block, i. Our study will focus on the image presented in this stackoverflow question. x with Python By Example - Second Edition [Book]. OpenCV provides a class called BackgroundSubtractor, which is a handy way to operate foreground and background segmentation. Background subtraction in a webcam video stream using Emgucv(Opencv wrapper for c#). Setup a private space for you and your coworkers to ask questions and share information. Recognized and extracted target from background in the video using Background Subtraction and Frame Difference method with MATLAB. main-opencv. You should provide some more information on the kind of images you're working with. Machine learning tutorial 2. You can also convert from a dlib matrix or image to an OpenCV Mat using dlib::toMat(). I would like to work on improving background subtraction algorithm. With Safari, you learn the way you learn best. OpenCv or Computer Vision. This is basically all just taken from OpenCV's example programs/Processing discourse, though I've commented it a bit-Link to the blog:. Background subtraction (also known as Foreground detection) is a computer vision algorithm that tries to distinguish foreground objects from the background. How would you distinguish a deep shadow with a hard edge from an actual dark-color object in the scene? On the one hand, it may be reasonable to try to bring out details that are initially hard to see because of excessive differences in brightness. html OpenCV 2. First, frames are read and stored as matrices. In addition to our main camera, sensor, and detector processes, several subclasses (orange) are needed to perform image background subtraction, persist data, and run models: Mask: Performs background subtraction on raw images, using powerful algorithms implemented in OpenCV 3. import cv2 import numpy as np. This problem can be addressed using the vari-able-size kernels (Wand and Jones, 1995). For example, consider the cases like visitor counter where a static camera takes the number of visitors entering or leaving the room, or a traffic camera extracting information about the vehicles etc. Background subtraction is a major preprocessing steps in many vision based applications. These methods are called GMG, KNN, MOG and MOG2. Can I use the new OpenCV library to accomplish what Golan does here manually? If not, can I use Golan's manual approach to background detection, then pass the pixels of that difference image into OpenCV for contour detection and other processing?. Diverse methods of background subtrac-tion exist[1, 2, 3]. Background Averaging (Background Subtraction) in Python+OpenCV - backgroundAveraging. Our study will focus on the image presented in this stackoverflow question. Machine learning tutorial 2. To my knowledge if nothing in front of the camera moves everything should go black, however this is a image of what I am getting. Background extraction comes important in object tracking. Proudly announcing that BackgroundSubtractorCNT is in OpenCV. Built the product using Tensorflow and OpenCV libraries. Traditionally, these algorithms assume a stationary camera, and identify moving objects by detecting areas in a video that change over time. background subtraction method is also called a background subtraction, background subtraction method is the difference to get moving with the background image of the current frame target range, the method can more frame difference method better identification and extraction of moving targets, is cur. Hoferlin, and A. IMBS creates a multimodal model of the background in order to deal with illumination changes, camera jitter, movements of small background elements, and changes in the background geometry. Recently, background subtraction methods have been developed with deep convolutional. Martínez Video Processing and Understanding Lab Escuela Politécnica Superior, Universidad Autónoma de Madrid, Spain E-mail: {Alvaro. Qt is a C++ IDE used to create GUI applications with ease. Simple Opencv C++ code example how to from video remote the foreground from the background. > > Hope this helps. if the fluorescent signal vanishes during the experiment, use ROI average by frames and not Percentile). This assumption limits their applicability to moving camera scenarios. Basically, you should be quite sure about the kind of background data you are dealing with, so that you can try modelling the background. This can be used for motion tracking purposes with background subtraction. Background subtraction is a commonly used technique in computer vision for detecting objects. To my knowledge if nothing in front of the camera moves everything should go black, however this is a image of what I am getting. This is much like what a green screen does, only here we wont actually need the green screen. licensed under cc by-sa 3. If we think about background, you could assume that it is static, and the camera will capture it always with the same pixels, with similar values, and at the same position, i. OpenCV is capable of handling more complex scenarios - you can read about background subtraction techniques and optical flow to get a hint STEP 3: Looping through video frames We know that we can use QueryFrame to get single frame image ( Mat instance) and progress to next frame and we know that QueryFrame returns null if it can't go any. I just found algorithms to subtract the background of video and sequence of images, like the algotithm in the link below: OpenCV: how to use createBackgroundSubtractorMOG But how can I do the same thing with the image of an webcam?. Christina Marghes is a very professional person with high skills in computer vision such as background subtraction and foreground detection in video surveillance. On opencv we have two ways to subtract the background: A manual way which consists on taking the first frame and from that one subtricting each time the following frames from the first one. OpenCV supports 4 types of classifications: BG, FG, Likely-BG and Likely-FG in user-edit mode. 0 and above without NVidia CUDA, especially on low spec hardware. Background subtraction. 안녕하세요? 이번 글은 OpenCV-Python으로 영상 배경 제거(Background Subtraction)하는 방법을 학습해 보도록 하겠습니다. 10 using mog2. for windows (you need to build opencv yourself or use pip anyway for python3). The slides I have linked to also talk about mixture models for background subtraction. A local background value is determined for every pixel by averaging over a very large ball around the pixel. /bgfg_segm tree. Background Subtraction Overview of Background Subtraction Because of its simplicity and because camera locations are fixed in many contexts, background subtraction (a. Sanderson, B. In order to perform some valuable background subtraction, it is important to account for varying luminance conditions, taking care always to update our. Basic motion detection and tracking with Python and OpenCV. The background area is considered the first seen frames, and the mean and confidence interval for each pixel is established from that. Created Dec 9, 2012. Barnich, ViBe: A Disruptive Method for Background Subtraction. 0 (see Build Status and Release Notes for more info) The BGSLibrary was developed early 2012 by Andrews Sobral to provide an easy-to-use C++ framework (wrappers for Python, Java and MATLAB are also available) for foreground-background separation in videos based on OpenCV. A new background subtraction algorithm is proposed based on using a subspace model. This is discussed for exam-. Background subtraction Background subtraction is very useful in video surveillance. Background subtraction algorithms Figure 2: Categorization of the outlined background subtraction algorithms block, i. OpenCV on TI's DSP+ARM Platforms. Background subtraction method. Background Subtraction is a well-known method in those cases. 1 and VS2010. Fully Ported to Python from ImageJ's Background Subtractor. Background subtraction is defined as the approach used to detect moving objects from static cameras, also known as foreground detection, since we're mostly interested in the foreground objects. Background subtraction is very specific to your domain. Since OpenCV 3, background subtraction by Java becomes possible. This problem can be addressed using the vari-able-size kernels (Wand and Jones, 1995). Porikli, B. Availability: In stock. Basics Background subtraction is a major preprocessing steps in many vision based applications. Meanshift and Camshift. If you already have an image of the bare background, then it is simple. 2 version example (for MOG, MOG2, GMG, KNN) This is example for background subtraction on opencv 3. 2 version previously, I post 2. arduino arm attiny background subtraction C++ C++11 canvascv cmake deb design patterns devops distutils dns docker eclipse electronics gui linux opencv opencv gui oscilloscope package pi python raspberry rigol scpi screen capture script tbb. For isolating specific things from pictures, present a picture in a different way and to make a delicate photograph. where((background > [0,0,0]). It is much faster than any other background subtraction solutions in OpenCV-3. The idea here is to find the foreground, and remove the background. How can this be done? Please kindly point me to the correct direction so that my objective can be achieved. Background Subtraction from Images Stay ahead with the world's most comprehensive technology and business learning platform. The class I'd like use is BackgroundSubtractorMOG2. Background subtraction is a major preprocessing steps in many vision based applications. Temporal difference from frame to frame will be updated to the co-occurrence tables. 0 release, we are glad to present the first stable release in the 4. The integration times described were selected such that the shot-noise in the region between night sky lines is over 5x larger than the read noise of a 16-fowler sample. I am using BackgroundSubtractorMOG in OpenCV to track objects. Available on the University site in PDF format: , in HTML. Adaptive background Subtraction Algorithm. 4 with python 3 Tutorial 32 by Sergio Canu May 17, 2018 We’re going to learn in this tutorial how to subtract the background on a video. Hoferlin, and A. Techniques such as object detection and background subtraction were used. Accuracy can be improved by using some background subtraction techniques, as most of the false positives are from the background. A classical technique in still images (e. Right before the Christmas and New Year holidays, we are glad to present the latest and the greatest OpenCV 3. C++ Code For Robust Foreground Estimation / Background Subtraction Journal Reference: V. Abstract— Abandoned Object Detection is one of the important tasks in video surveillance system. OpenCV library (by using haar-like cascades) 3D Face Visualization Robot Programming • OpenCV comes with a trainer as well as a detector • OpenCV already contains many pre-trained classifiers for face, eyes, smile etc. Simple Opencv C++ code example how to from video remote the foreground from the background. Can I use the new OpenCV library to accomplish what Golan does here manually? If not, can I use Golan's manual approach to background detection, then pass the pixels of that difference image into OpenCV for contour detection and other processing?. This is discussed for exam-. Qt is a C++ IDE used to create GUI applications with ease. Object segmentation by background subtraction Besides segmentation by thresholding, there are other methods for segmenting images. Bloisi */. , the background has always DC component. How can I make the background of an image black and all the objects present are white? I have tried the AbsDif and. 12/8/2011 3. Through various background subtraction methods in the OpenCV library and a 'WaterFill' algorithm, the system was able to efficiently tell whether a person was exiting or entering a building. 2, GMG, MOG, MOG2, KNN - backgroundSubtraction. Here, we will show you how to do it in OpenCV. OpenCV image filters. Benjit87 / Simple Background Subtraction C++ OpenCV. REAL TIME ABANDONED BAG DETECTION USING OPENCV Atul Borkar, Dr. cv2 module in the root of Python's site-packages), remove it before installation to avoid conflicts. View Mykola Sharhan’s profile on LinkedIn, the world's largest professional community. After searching for one example without success, I decided to put out one myself. if the fluorescent signal vanishes during the experiment, use ROI average by frames and not Percentile). It is much faster than any other background subtraction solutions in OpenCV-3. In the "easiest" case when the camera is static, the background is often defined as the pixels that stay relatively constant, and the. Q&A for Work. Martinez}@uam. Fazilet has 4 jobs listed on their profile. Right before the Christmas and New Year holidays, we are glad to present the latest and the greatest OpenCV 3. Firstly, improved GMM is for background subtraction, then the moving object region is gained using background subtraction, and then the background subtraction is combined with three-frame differencing to detect the motion information. [1] uses the combination of various algorithms to get a robust background model. projecting light and shadows on a surface. There are various approaches to this problem, however, Lightact uses an approach called MOG2 (if you want to delve deeper, check out OpenCV's BackgroundSubtractorMOG2 class). used to evaluate the performance of our proposed background subtraction algorithm and requires OpenCV-2.