{
 "id": "ep5yhte05a",
 "slug": "background-subtraction",
 "title": "Background subtraction",
 "updated": "2026-09-30",
 "topic_path": [
  {
   "id": "technology",
   "label": "Technology and the built world",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology"
  },
  {
   "id": "technology.computing",
   "label": "Computing and digital systems",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing"
  },
  {
   "id": "technology.computing.ai",
   "label": "Artificial intelligence and data",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing.ai"
  },
  {
   "id": "technology.computing.ai.perception_language",
   "label": "Language and vision AI",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing.ai.perception_language"
  },
  {
   "id": "technology.computing.ai.computer_vision",
   "label": "Computer vision",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing.ai.computer_vision"
  },
  {
   "id": "technology.computing.ai.cv_methods",
   "label": "Vision methods and geometry",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing.ai.cv_methods"
  },
  {
   "id": "technology.computing.ai.cv_methods.motion_analysis",
   "label": "Motion analysis and optical flow",
   "api_url": "https://www.edgepedia.org/api/v1/topics/technology.computing.ai.cv_methods.motion_analysis"
  }
 ],
 "geo": [
  {
   "id": "geo.nongeo.t1946.technology.computing.ai.perception_language",
   "label": "Non-geographic · 1946 to 2000: Language and vision AI",
   "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t1946.technology.computing.ai.perception_language",
   "path": [
    {
     "id": "geo.nongeo",
     "label": "Non-geographic",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo"
    },
    {
     "id": "geo.nongeo.t1946",
     "label": "Non-geographic · 1946 to 2000",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t1946"
    },
    {
     "id": "geo.nongeo.t1946.technology",
     "label": "Technology and the built world",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t1946.technology"
    },
    {
     "id": "geo.nongeo.t1946.technology.computing",
     "label": "Computing and digital systems",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t1946.technology.computing"
    },
    {
     "id": "geo.nongeo.t1946.technology.computing.ai",
     "label": "Artificial intelligence and data",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t1946.technology.computing.ai"
    },
    {
     "id": "geo.nongeo.t1946.technology.computing.ai.perception_language",
     "label": "Language and vision AI",
     "api_url": "https://www.edgepedia.org/api/v1/geo/geo.nongeo.t1946.technology.computing.ai.perception_language"
    }
   ]
  }
 ],
 "excerpt": "Background subtraction is a computer vision technique for stationary cameras that compares each video frame with a statistical background model to produce a foreground mask.",
 "snippet": "Background subtraction is a computer vision technique for stationary cameras that compares each video frame with a statistical background model to produce a foreground mask.",
 "node": "technology.computing.ai.cv_methods.motion_analysis",
 "markdown": "# Background subtraction\n\nBackground subtraction is a computer vision technique for stationary cameras that maintains a statistical model of the scene background and labels each pixel of every incoming frame as foreground or background, producing a binary mask that downstream tracking, detection, and classification can consume.<sup>[1](https://link.springer.com/article/10.1155/2010/343057)</sup> Each video frame is compared with the background model, and pixels whose intensity values deviate significantly from it are marked as foreground.<sup>[2](https://www.researchgate.net/publication/313111384_Review_of_background_subtraction_methods_using_Gaussian_mixture_model_for_video_surveillance_systems)</sup> The technique assumes a static camera and is an online operation with two stages: background initialization (bootstrapping the model) and background maintenance or updating.<sup>[1](https://link.springer.com/article/10.1155/2010/343057)</sup>\n\n| Key fact | Value |\n|---|---|\n| Output | 8-bit binary foreground mask, one label per pixel per frame; detected shadows may be coded separately (127 in OpenCV)<sup>[3](https://docs.opencv.org/5.0/main_modules/classcv_1_1BackgroundSubtractorMOG2.html)</sup><sup> • </sup><sup>[4](https://docs.opencv.org/4.10.0/d1/dc5/tutorial_background_subtraction.html)</sup> |\n| Core classification rule | \\( X_{t}(s) = 1 \\) if \\( d(I_{s,t}, B_{s}) > \\tau \\), else 0<sup>[5](https://inria.hal.science/inria-00545518/file/ICPR_2008.pdf)</sup> |\n| Canonical model | Per-pixel mixture of \\( K \\) Gaussians, \\( K \\) typically 3 to 5, match within 2.5 standard deviations<sup>[6](http://www.ee.unlv.edu/~b1morris/ecg795/docs/stauffer_cvpr98_track.pdf)</sup> |\n| OpenCV MOG2 defaults | history = 500 (learning rate \\( \\alpha = 1/500 \\)), varThreshold = 16, 5 mixtures, background ratio 0.9<sup>[7](https://github.com/opencv/opencv/blob/4.x/modules/video/src/bgfg_gaussmix2.cpp)</sup> |\n| Standard benchmark | CDnet 2014: 53 videos, 11 categories, 320×240 to 720×526 pixels, seven metrics<sup>[8](https://openaccess.thecvf.com/content/WACV2026/papers/Huang_SeqFeedNet_Sequential_Feature_Feedback_Network_for_Background_Subtraction_WACV_2026_paper.pdf)</sup> |\n| Speed range | ViBe about 200 fps on CDnet 2014; the mixture-of-Gaussians tracker 11 to 13 fps at 160×120 on an SGI O2<sup>[9](https://mdpi-res.com/d_attachment/jimaging/jimaging-06-00050/article_deploy/jimaging-06-00050-v2.pdf?version=1593403075)</sup><sup> • </sup><sup>[10](http://www.ai.mit.edu/projects/vsam/Tracking/index.html)</sup> |\n| Best supervised F-measure on CDnet 2014 | Above 0.97 (FgSegNet and variants)<sup>[11](https://www.mdpi.com/2624-6120/7/1/14)</sup> |\n\n## How it works\n\nAll background subtraction methods share one classification rule: a pixel \\( s \\) at time \\( t \\) is foreground when its value deviates from the background model by more than a threshold \\( \\tau \\), \\( X_{t}(s) = 1 \\) if \\( d(I_{s,t}, B_{s}) > \\tau \\); methods differ mainly in how \\( B \\) is modeled and which distance \\( d \\) is used.<sup>[5](https://inria.hal.science/inria-00545518/file/ICPR_2008.pdf)</sup> The simplest model is a running average, updated as \\( B_{s,t+1} = (1-\\alpha) \\cdot B_{s,t} + \\alpha \\cdot I_{s,t} \\) with \\( \\alpha \\) between 0 and 1.<sup>[5](https://inria.hal.science/inria-00545518/file/ICPR_2008.pdf)</sup>\n\nThe dominant parametric model is a per-pixel Gaussian mixture: \\( P(I_{s,t}) = \\sum_{i=1}^{K} \\omega_{i,s,t} \\cdot \\eta(I_{s,t}, \\mu_{i,s,t}, \\Sigma_{i,s,t}) \\), with \\( K \\) typically 3 to 5.<sup>[5](https://inria.hal.science/inria-00545518/file/ICPR_2008.pdf)</sup><sup> • </sup><sup>[6](http://www.ee.unlv.edu/~b1morris/ecg795/docs/stauffer_cvpr98_track.pdf)</sup> Matched components are updated online, the weights as \\( \\omega_{k,t} = (1-\\alpha) \\cdot \\omega_{k,t-1} + \\alpha \\cdot M_{k,t} \\) (where \\( M_{k,t} \\) is 1 for the matched model and \\( \\alpha \\) is the learning rate) and the matched mean as \\( \\mu_{t} = (1-\\rho) \\cdot \\mu_{t-1} + \\rho \\cdot X_{t} \\); when no component matches, the lowest-weight component is replaced.<sup>[6](http://www.ee.unlv.edu/~b1morris/ecg795/docs/stauffer_cvpr98_track.pdf)</sup><sup> • </sup><sup>[5](https://inria.hal.science/inria-00545518/file/ICPR_2008.pdf)</sup> A pixel is classified as background when the best-matching Gaussians that together carry enough weight belong to the background set.<sup>[6](http://www.ee.unlv.edu/~b1morris/ecg795/docs/stauffer_cvpr98_track.pdf)</sup>\n\nThe learning rate controls adaptation speed directly: in OpenCV's MOG2, 0 means the model is not updated at all, 1 means it is completely reinitialized from the last frame, and negative values select an automatic rate.<sup>[3](https://docs.opencv.org/5.0/main_modules/classcv_1_1BackgroundSubtractorMOG2.html)</sup>\n\n## How it is done\n\nA practitioner pipeline has three modules: background initialization, which builds the first background image from \\( N \\) training frames; foreground detection, which classifies each pixel by comparing the background image with the current image; and background maintenance, which updates the model using the previous background, the current image, and the detection mask.<sup>[12](https://ar5iv.labs.arxiv.org/html/1901.03577)</sup> In OpenCV this amounts to reading frames with cv::VideoCapture, creating a subtractor (MOG2 or KNN), and calling its apply method per frame, optionally passing a learning rate; the returned mask is the foreground image.<sup>[4](https://docs.opencv.org/4.10.0/d1/dc5/tutorial_background_subtraction.html)</sup>\n\nDefault parameters shape behavior substantially. OpenCV's createBackgroundSubtractorMOG2 defaults are history = 500, varThreshold = 16, detectShadows = true; the KNN subtractor defaults to history = 500 and dist2Threshold = 400.0.<sup>[4](https://docs.opencv.org/4.10.0/d1/dc5/tutorial_background_subtraction.html)</sup><sup> • </sup><sup>[7](https://github.com/opencv/opencv/blob/4.x/modules/video/src/bgfg_gaussmix2.cpp)</sup> The match threshold is on the squared [Mahalanobis distance](https://www.edgepedia.org/mahalanobis-distance), with a default of 16, while 9 is the default varThresholdGen used when generating a new mixture component;<sup>[3](https://docs.opencv.org/5.0/main_modules/classcv_1_1BackgroundSubtractorMOG2.html)</sup> a pixel is reported as shadow (gray value 127 in the mask) if it is a darker version of the background, with Tau = 0.5 meaning a pixel more than twice darker is not shadow.<sup>[3](https://docs.opencv.org/5.0/main_modules/classcv_1_1BackgroundSubtractorMOG2.html)</sup>\n\n## Origin\n\nThe earliest background subtraction for surveillance used differencing of adjacent frames in stationary cameras, which does not recover the entire foreground appearance.<sup>[1](https://link.springer.com/article/10.1155/2010/343057)</sup> Per-pixel statistical models followed. Pfinder (Wren, Azarbayejani, Darrell, and Pentland, IEEE Transactions on Pattern Analysis and Machine Intelligence, 1997) modeled each pixel in YUV space by a simple online-updated mean value.<sup>[13](https://doi.org/10.1109/34.598236)</sup><sup> • </sup><sup>[1](https://link.springer.com/article/10.1155/2010/343057)</sup> An earlier traffic-surveillance formulation modeled each pixel with three Gaussians corresponding to road, vehicle, and shadow.<sup>[14](https://hal.science/file/index/docid/338206/filename/RPCS_2008.pdf)</sup> The mixture-of-Gaussians model generalized this to \\( K \\) Gaussians per pixel with an online K-means-style update.<sup>[6](http://www.ee.unlv.edu/~b1morris/ecg795/docs/stauffer_cvpr98_track.pdf)</sup> Zivkovic's improved adaptive [Gaussian mixture model](https://www.edgepedia.org/gaussian-mixture-model) (2004), which chooses the number of components automatically via a MAP test with a negative Dirichlet prior, is the algorithm OpenCV's MOG2 implements.<sup>[7](https://github.com/opencv/opencv/blob/4.x/modules/video/src/bgfg_gaussmix2.cpp)</sup><sup> • </sup><sup>[1](https://link.springer.com/article/10.1155/2010/343057)</sup>\n\nWallflower (Toyama, Krumm, and colleagues, 1999) combined pixel-level Wiener filtering, region-level hole filling, and frame-level model switching, and outperformed 8 other algorithms on canonical problems including moved objects, time of day, light switch, waving trees, and camouflage.<sup>[15](http://robots.stanford.edu/cs223b04/BackgroundSubtractionMSResearch.pdf)</sup> Subspace models arrived with the eigenbackground PCA approach (Oliver, Rosario, and Pentland, IEEE TPAMI, 2000).<sup>[16](https://doi.org/10.1109/34.868684)</sup> The non-parametric Parzen-window (kernel density) estimate is made per pixel.<sup>[5](https://inria.hal.science/inria-00545518/file/ICPR_2008.pdf)</sup>\n\n## Variants\n\nClassical families differ in representation and update policy:<sup>[17](https://par.nsf.gov/servlets/purl/10481999)</sup>\n\n- **Running average and filter-based models** keep a single background value per pixel, e.g. the low-pass baseline \\( B_{t} = \\alpha \\cdot I_{t} + (1-\\alpha) \\cdot B_{t-1} \\).<sup>[18](https://doi.org/10.1109/tip.2010.2101613)</sup>\n- **Parametric models**: single Gaussian (fast, low memory, fails on complex backgrounds) and the Gaussian mixture with a fixed or automatically chosen component count.<sup>[19](https://arxiv.org/pdf/1804.05459)</sup><sup> • </sup><sup>[7](https://github.com/opencv/opencv/blob/4.x/modules/video/src/bgfg_gaussmix2.cpp)</sup>\n- **Non-parametric models**: kernel density estimation per pixel, at higher memory cost.<sup>[5](https://inria.hal.science/inria-00545518/file/ICPR_2008.pdf)</sup>\n- **Codebook model** (Kim, Chalidabhongse, Harwood, and Davis, Real-Time Imaging, 2005): a compressed per-pixel set of codewords using a color distortion metric and brightness bounds; it copes with local and global illumination change and allows moving foreground objects during training.<sup>[20](https://doi.org/10.1016/j.rti.2004.12.004)</sup>\n- **Sample-consensus methods**: ViBe (Barnich and Van Droogenbroeck, IEEE Transactions on Image Processing, 2010) stores a set of samples per pixel with no explicit pdf, classifying a value as background if it is close to enough samples within a radius; its update combines a memoryless policy, random time subsampling, and spatial propagation of samples, and its conservative policy never admits foreground samples, avoiding everlasting ghosts.<sup>[18](https://doi.org/10.1109/tip.2010.2101613)</sup><sup> • </sup><sup>[21](https://orbi.uliege.be/bitstream/2268/12087/1/Barnich2009ViBe.pdf)</sup>\n- **Self-organizing and combining methods**: SOBS (Maddalena and Petrosino, IEEE TIP, 2008) uses a self-organizing neural background model;<sup>[22](https://doi.org/10.1109/tip.2008.924285)</sup> IUTIS-5 (Bianco, Ciocca, and Schettini, IEEE Transactions on Evolutionary Computation, 2017) combines change-detection algorithms by genetic programming.<sup>[23](https://doi.org/10.1109/tevc.2017.2694160)</sup>\n- **Subspace methods**: PCA, ICA, incremental NMF, and robust-tensor variants model the background as a low-dimensional subspace; on the Wallflower dataset they incur smaller total errors than Gaussian models, mainly because of the Light Switch sequence.<sup>[24](https://hal.science/hal-00534555/file/RPCS_2009.pdf)</sup>\n\nDeep and semantic methods now form a further family. Semantic background subtraction reduces the mean error rate by up to 20% for the five best unsupervised algorithms on CDnet 2014.<sup>[9](https://mdpi-res.com/d_attachment/jimaging/jimaging-06-00050/article_deploy/jimaging-06-00050-v2.pdf?version=1593403075)</sup> Supervised networks include FgSegNet and variants, with F-measure above 0.97 on CDnet 2014.<sup>[11](https://www.mdpi.com/2624-6120/7/1/14)</sup> ZBS (An and colleagues, 2023) builds an open-vocabulary instance-level background model with zero-shot detection and surpasses state-of-the-art unsupervised methods by 4.70% F-Measure on CDnet 2014.<sup>[25](https://doi.org/10.48550/arxiv.2303.14679)</sup>\n\n## Applications\n\nDeployment literature covers video surveillance, traffic surveillance, and maritime surveillance; published sources do not quantify deployments in people counting or industrial inspection. In maritime surveillance, authors prefer multi-modal background models (MOG, Zivkovic-Heijden GMM) because water is dynamic, using RGB in daytime and infrared at night, plus morphological processing and saliency detection against water-motion false positives.<sup>[12](https://ar5iv.labs.arxiv.org/html/1901.03577)</sup>\n\nEvaluation centers on CDnet 2014, described as the most comprehensive dataset in the field: 53 natural videos in 11 categories at 320×240 to 720×526, scored by recall, specificity, FPR, FNR, PWC, precision, and F-measure.<sup>[8](https://openaccess.thecvf.com/content/WACV2026/papers/Huang_SeqFeedNet_Sequential_Feature_Feedback_Network_for_Background_Subtraction_WACV_2026_paper.pdf)</sup> In unconstrained outdoor surveillance, the best method (SOBS) reached an f-measure of about 81%, and each method degraded on average by 11% in wild scenarios, with performance inversely correlated with scene wildness.<sup>[26](https://www.di.ubi.pt/~jcneves/assets/publications/ICSIPA_2015.pdf)</sup>\n\n## Limitations and alternatives\n\nBackground subtraction fails when its assumptions of a rigorously fixed camera and a static, noise-free background are violated: illumination changes gradually or suddenly, the background contains moving objects such as waves or wind-blown trees, and the camera jitters.<sup>[5](https://inria.hal.science/inria-00545518/file/ICPR_2008.pdf)</sup> On CDnet, camera motion causes major false positives, night videos cause false negatives, hard shadows challenge every method, and intermittently moving objects are eventually absorbed into the model.<sup>[27](https://openaccess.thecvf.com/content_cvpr_workshops_2014/W12/papers/Wang_CDnet_2014_An_2014_CVPR_paper.pdf)</sup>\n\nThe learning rate embodies the central tradeoff: a low rate makes the mixture prone to the light-switch problem, while too fast an adaptation absorbs slowly moving foreground pixels, producing the foreground aperture problem and high false negatives.<sup>[1](https://link.springer.com/article/10.1155/2010/343057)</sup> [Camouflage](https://www.edgepedia.org/camouflage) is addressed by adding texture or contour information with morphological operations; shadows by per-pixel HSV analysis or shadow-robust edge information.<sup>[1](https://link.springer.com/article/10.1155/2010/343057)</sup> Depth from RGBD sensors addresses light switches, gradual illumination change, foreground shadows, and color camouflage because it is insensitive to scene color and illumination, and combined color-plus-depth methods outperform either alone; when background areas are never shown, even the best initialization methods fail and only techniques such as inpainting recover the missing data.<sup>[28](https://www.mdpi.com/2313-433X/4/5/71)</sup> Comparative studies agree that no method is perfect for all challenging cases.<sup>[19](https://arxiv.org/pdf/1804.05459)</sup> ViBe stands out for precision but misses parts of objects; Gaussian-based methods perform best in static shadows.<sup>[26](https://www.di.ubi.pt/~jcneves/assets/publications/ICSIPA_2015.pdf)</sup>\n\nFrame differencing survives as the historical root but does not recover full foreground appearance.<sup>[1](https://link.springer.com/article/10.1155/2010/343057)</sup>\n\n## References\n\n1. [Background Subtraction for Automated Multisensor Surveillance: A Comprehensive Review (Cristani et al., 2010)](https://link.springer.com/article/10.1155/2010/343057)\n2. [Review of background subtraction methods using Gaussian mixture model for video surveillance systems](https://www.researchgate.net/publication/313111384_Review_of_background_subtraction_methods_using_Gaussian_mixture_model_for_video_surveillance_systems)\n3. [Class cv::BackgroundSubtractorMOG2, OpenCV documentation](https://docs.opencv.org/5.0/main_modules/classcv_1_1BackgroundSubtractorMOG2.html)\n4. [How to Use Background Subtraction Methods, OpenCV Tutorials](https://docs.opencv.org/4.10.0/d1/dc5/tutorial_background_subtraction.html)\n5. [Review and Evaluation of Commonly-Implemented Background Subtraction Algorithms (Benezeth et al., ICPR 2008)](https://inria.hal.science/inria-00545518/file/ICPR_2008.pdf)\n6. [Adaptive background mixture models for real-time tracking (Stauffer & Grimson)](http://www.ee.unlv.edu/~b1morris/ecg795/docs/stauffer_cvpr98_track.pdf)\n7. [opencv/modules/video/src/bgfg_gaussmix2.cpp, OpenCV source code](https://github.com/opencv/opencv/blob/4.x/modules/video/src/bgfg_gaussmix2.cpp)\n8. [SeqFeedNet: Sequential Feature Feedback Network for Background Subtraction](https://openaccess.thecvf.com/content/WACV2026/papers/Huang_SeqFeedNet_Sequential_Feature_Feedback_Network_for_Background_Subtraction_WACV_2026_paper.pdf)\n9. [Asynchronous Semantic Background Subtraction (ASBS), Journal of Imaging 2020](https://mdpi-res.com/d_attachment/jimaging/jimaging-06-00050/article_deploy/jimaging-06-00050-v2.pdf?version=1593403075)\n10. [Tracking: Adaptive Background Mixture Models (MIT VSAM project page)](http://www.ai.mit.edu/projects/vsam/Tracking/index.html)\n11. [Comparative Study of Supervised Deep Learning Architectures for Background Subtraction and Motion Segmentation on CDnet2014](https://www.mdpi.com/2624-6120/7/1/14)\n12. [Background Subtraction in Real Applications: Challenges, Current Models and Future Directions (Sobral & Bouwmans, 2019)](https://ar5iv.labs.arxiv.org/html/1901.03577)\n13. [C.R. Wren and colleagues (1997). Pfinder: real-time tracking of the human body. IEEE Transactions on Pattern Analysis and Machine Intelligence.](https://doi.org/10.1109/34.598236)\n14. [Background Modeling using Mixture of Gaussians for Foreground Detection - A Survey (Bouwmans et al., 2008)](https://hal.science/file/index/docid/338206/filename/RPCS_2008.pdf)\n15. [Wallflower: Principles and Practice of Background Maintenance (Toyama et al., 1999)](http://robots.stanford.edu/cs223b04/BackgroundSubtractionMSResearch.pdf)\n16. [N.M. Oliver, B. Rosario, A.P. Pentland (2000). A Bayesian computer vision system for modeling human interactions. IEEE Transactions on Pattern Analysis and Machine Intelligence.](https://doi.org/10.1109/34.868684)\n17. [A Survey of Efficient Deep Learning Models for Moving Object Segmentation](https://par.nsf.gov/servlets/purl/10481999)\n18. [O Barnich, M Van Droogenbroeck (2010). ViBe: A Universal Background Subtraction Algorithm for Video Sequences. IEEE Transactions on Image Processing.](https://doi.org/10.1109/tip.2010.2101613)\n19. [Comparative study of motion detection methods for video surveillance systems](https://arxiv.org/pdf/1804.05459)\n20. [Kyungnam Kim and colleagues (2005). Real-time foreground–background segmentation using codebook model. Real-Time Imaging.](https://doi.org/10.1016/j.rti.2004.12.004)\n21. [ViBe: A powerful random technique to estimate the background in video sequences (ICASSP 2009)](https://orbi.uliege.be/bitstream/2268/12087/1/Barnich2009ViBe.pdf)\n22. [L. Maddalena, A. Petrosino (2008). A Self-Organizing Approach to Background Subtraction for Visual Surveillance Applications. IEEE Transactions on Image Processing.](https://doi.org/10.1109/tip.2008.924285)\n23. [Simone Bianco, Gianluigi Ciocca, Raimondo Schettini (2017). Combination of Video Change Detection Algorithms by Genetic Programming. IEEE Transactions on Evolutionary Computation.](https://doi.org/10.1109/tevc.2017.2694160)\n24. [Subspace Learning for Background Modeling: A Survey (Bouwmans, 2009)](https://hal.science/hal-00534555/file/RPCS_2009.pdf)\n25. [An, Yongqi and colleagues (2023). ZBS: Zero-shot Background Subtraction via Instance-level Background Modeling and Foreground Selection. arXiv (Cornell University).](https://doi.org/10.48550/arxiv.2303.14679)\n26. [Evaluation of Background Subtraction Algorithms for Human Visual Surveillance](https://www.di.ubi.pt/~jcneves/assets/publications/ICSIPA_2015.pdf)\n27. [CDnet 2014: An Expanded Change Detection Benchmark Dataset](https://openaccess.thecvf.com/content_cvpr_workshops_2014/W12/papers/Wang_CDnet_2014_An_2014_CVPR_paper.pdf)\n28. [Background Subtraction for Moving Object Detection in RGBD Data: A Survey (Bouwmans et al., 2018)](https://www.mdpi.com/2313-433X/4/5/71)\n\n---\n*Topic: Encyclopedia › Technology and the built world › Computing and digital systems › Artificial intelligence and data › Language and vision AI › Computer vision › Vision methods and geometry › Motion analysis and optical flow*\n\n*Initially written Sep 29, 2026 · Reviewed: Sep 30, 2026 · Edited: Sep 30, 2026 · Last review: Sep 30, 2026*\n\n*Copyright 2026 EdgeChat AI, a subsidiary of Biostate AI.*\n\nLicense: Edgepedia Community License 1.0, https://www.edgepedia.org/edgepedia/license\n",
 "same_as": [
  "http://www.ee.unlv.edu/~b1morris/ecg795/docs/stauffer_cvpr98_track.pdf"
 ],
 "url": "https://www.edgepedia.org/background-subtraction",
 "markdown_url": "https://www.edgepedia.org/background-subtraction.md",
 "license": {
  "name": "Edgepedia Community License 1.0",
  "url": "https://www.edgepedia.org/edgepedia/license",
  "summary": "Free with credit, commercial use included. AI training is open to everyone. For other uses, organizations over USD 100M in revenue or 100M monthly users license separately.",
  "spdx": "LicenseRef-Edgepedia-Community-1.0"
 },
 "credit": "\"Background subtraction\", Edgepedia (EdgeChat), https://www.edgepedia.org/background-subtraction. Edgepedia Community License 1.0.",
 "credit_md": "\"[Background subtraction](https://www.edgepedia.org/background-subtraction)\", Edgepedia (EdgeChat), [https://www.edgepedia.org/background-subtraction](https://www.edgepedia.org/background-subtraction). [Edgepedia Community License 1.0](https://www.edgepedia.org/edgepedia/license).",
 "credit_html": "\"<a href=\"https://www.edgepedia.org/background-subtraction\">Background subtraction</a>\", Edgepedia (EdgeChat), <a href=\"https://www.edgepedia.org/background-subtraction\">https://www.edgepedia.org/background-subtraction</a>. <a href=\"https://www.edgepedia.org/edgepedia/license\">Edgepedia Community License 1.0</a>.",
 "speakable": "Background subtraction is a computer vision technique for stationary cameras that compares each video frame with a statistical background model to produce a foreground mask."
}
