diff --git a/README.md b/README.md index e961f5a389..62be835812 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ -## BGSLibrary -A Background Subtraction Library +

+BGSLibrary +

+ +# BGSLibrary: A Background Subtraction Library [![Release](https://img.shields.io/badge/Release-3.3.0-blue.svg)](https://github.com/andrewssobral/bgslibrary/wiki/Build-status) [![License: GPL v3](https://img.shields.io/badge/License-MIT-blue.svg)](http://www.gnu.org/licenses/gpl-3.0) [![Platform: Windows, Linux, OS X](https://img.shields.io/badge/Platform-Windows%2C%20Linux%2C%20OS%20X-blue.svg)](https://github.com/andrewssobral/bgslibrary/wiki/Build-status) [![OpenCV](https://img.shields.io/badge/OpenCV-2.4.x%2C%203.x%2C%204.x-blue.svg)](https://github.com/andrewssobral/bgslibrary/wiki/Build-status) [![Wrapper: Python, MATLAB](https://img.shields.io/badge/Wrapper-Java%2C%20Python%2C%20MATLAB-orange.svg)](https://github.com/andrewssobral/bgslibrary/wiki/Build-status) [![Algorithms](https://img.shields.io/badge/Algorithms-43-red.svg)](https://github.com/andrewssobral/bgslibrary/wiki/List-of-available-algorithms) @@ -9,54 +12,71 @@ A Background Subtraction Library

-Last page update: **04/03/2023** +## Introduction + +The **BGSLibrary** (Background Subtraction Library) is a comprehensive C++ framework designed for background subtraction in computer vision applications, particularly for detecting moving objects in video streams. It provides an easy-to-use and extensible platform for researchers and developers to experiment with and implement various background subtraction techniques. + +## Library Version + +**3.3.0** (see **[Build Status](https://github.com/andrewssobral/bgslibrary/wiki/Build-status)** and **[Release Notes](https://github.com/andrewssobral/bgslibrary/wiki/Release-notes)** for more info) + +## Background and Development -Library Version: **3.3.0** (see **[Build Status](https://github.com/andrewssobral/bgslibrary/wiki/Build-status)** and **[Release Notes](https://github.com/andrewssobral/bgslibrary/wiki/Release-notes)** for more info) +The BGSLibrary was developed in early 2012 by [Andrews Cordolino Sobral](http://andrewssobral.wixsite.com/home) as a C++ framework with wrappers available for Python, Java, and MATLAB. It aims to facilitate foreground-background separation in videos using the OpenCV library. -The **BGSLibrary** was developed in early 2012 by [Andrews Sobral](http://andrewssobral.wixsite.com/home) as a C++ framework (with wrappers available for Python, Java and MATLAB) for foreground-background separation in videos using [OpenCV](http://www.opencv.org/). The bgslibrary is compatible with OpenCV versions 2.4.x, 3.x and 4.x, and can be compiled on Windows, Linux, and Mac OS X. It currently contains **43** algorithms and is available free of charge to all users, both academic and commercial. The library's source code is available under the [MIT license](https://opensource.org/licenses/MIT). +## Compatibility + +The library is compatible with OpenCV versions 2.4.x, 3.x, and 4.x. It can be compiled and used on Windows, Linux, and Mac OS X systems. + +## Licensing + +The library's source code is available under the [MIT license](https://opensource.org/licenses/MIT), making it free for both academic and commercial use. + +## Getting started * [List of available algorithms](https://github.com/andrewssobral/bgslibrary/wiki/List-of-available-algorithms) * [Algorithms benchmark](https://github.com/andrewssobral/bgslibrary/wiki/Algorithms-benchmark) * [Which algorithms really matter?](https://github.com/andrewssobral/bgslibrary/wiki/Which-algorithms-really-matter%3F) * [Library architecture](https://github.com/andrewssobral/bgslibrary/wiki/Library-architecture) -* Installation instructions +### Installation instructions You can either install BGSLibrary via [pre-built binary package](https://github.com/andrewssobral/bgslibrary/releases) or build it from source -* * [Windows installation](https://github.com/andrewssobral/bgslibrary/wiki/Installation-instructions---Windows) - -* * [Ubuntu / OS X installation](https://github.com/andrewssobral/bgslibrary/wiki/Installation-instructions-Ubuntu-or-OSX) +* [Windows installation](https://github.com/andrewssobral/bgslibrary/wiki/Installation-instructions---Windows) +* [Ubuntu / OS X installation](https://github.com/andrewssobral/bgslibrary/wiki/Installation-instructions-Ubuntu-or-OSX) -Supported Compilers are: +Supported Compilers: - GCC 4.8 and above - Clang 3.4 and above - MSVC 2015, 2017, 2019 or newer +* GCC 4.8 and above +* Clang 3.4 and above +* MSVC 2015, 2017, 2019 or newer Other compilers might work, but are not officially supported. The bgslibrary requires some features from the ISO C++ 2014 standard. -* Graphical User Interface - -* * [C++ QT](https://github.com/andrewssobral/bgslibrary/wiki/Graphical-User-Interface:-QT) ***(Official)*** -* * [C++ MFC](https://github.com/andrewssobral/bgslibrary/wiki/Graphical-User-Interface:-MFC) ***(Deprecated)*** -* * [Java](https://github.com/andrewssobral/bgslibrary/wiki/Graphical-User-Interface:-Java) ***(Obsolete)*** +### Graphical User Interface -* Wrappers +* [C++ QT](https://github.com/andrewssobral/bgslibrary/wiki/Graphical-User-Interface:-QT) ***(Official)*** +* [C++ MFC](https://github.com/andrewssobral/bgslibrary/wiki/Graphical-User-Interface:-MFC) ***(Deprecated)*** +* [Java](https://github.com/andrewssobral/bgslibrary/wiki/Graphical-User-Interface:-Java) ***(Obsolete)*** -* * [Python](https://github.com/andrewssobral/bgslibrary/wiki/Wrapper:-Python) [![Downloads](https://static.pepy.tech/badge/pybgs)](https://pepy.tech/project/pybgs) [![Downloads](https://static.pepy.tech/badge/pybgs/month)](https://pepy.tech/project/pybgs) [![Downloads](https://static.pepy.tech/badge/pybgs/week)](https://pepy.tech/project/pybgs) -* * [MATLAB](https://github.com/andrewssobral/bgslibrary/wiki/Wrapper:-MATLAB) -* * [Java](https://github.com/andrewssobral/bgslibrary/wiki/Wrapper:-Java) +### Wrappers +* [Python](https://github.com/andrewssobral/bgslibrary/wiki/Wrapper:-Python) [![Downloads](https://static.pepy.tech/badge/pybgs)](https://pepy.tech/project/pybgs) [![Downloads](https://static.pepy.tech/badge/pybgs/month)](https://pepy.tech/project/pybgs) [![Downloads](https://static.pepy.tech/badge/pybgs/week)](https://pepy.tech/project/pybgs) +* [MATLAB](https://github.com/andrewssobral/bgslibrary/wiki/Wrapper:-MATLAB) +* [Java](https://github.com/andrewssobral/bgslibrary/wiki/Wrapper:-Java) -* Usage examples +### Usage examples -* * BGSlibrary examples folder: https://github.com/andrewssobral/bgslibrary/tree/master/examples +* BGSlibrary examples folder +* * +* BGSlibrary examples in C++ +* * +* BGSlibrary examples in Python +* * -* * BGSlibrary examples in C++: https://github.com/andrewssobral/bgslibrary-examples-cpp - -* * BGSlibrary examples in Python: https://github.com/andrewssobral/bgslibrary-examples-python +### More * [Docker images](https://github.com/andrewssobral/bgslibrary/wiki/Docker-images) * [How to integrate BGSLibrary in your own CPP code](https://github.com/andrewssobral/bgslibrary/wiki/How-to-integrate-BGSLibrary-in-your-own-CPP-code) @@ -64,9 +84,8 @@ The bgslibrary requires some features from the ISO C++ 2014 standard. * [List of collaborators](https://github.com/andrewssobral/bgslibrary/wiki/List-of-collaborators) * [Release notes](https://github.com/andrewssobral/bgslibrary/wiki/Release-notes) - ## Algorithm compatibility across OpenCV versions ---------------------------------------------------- + | Algorithm | OpenCV < 3.0 (42) | 3.0 <= OpenCV <= 3.4.7 (41) | 3.4.7 < OpenCV < 4.0 (39) | OpenCV >= 4.0 (26) | |--------------------------------|:-----------:|:----------------------:|:---------------------:|:------------:| | AdaptiveBackgroundLearning | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | @@ -113,17 +132,14 @@ The bgslibrary requires some features from the ISO C++ 2014 standard. | WeightedMovingMean | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | WeightedMovingVariance | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | - - ## Stargazers over time [![Stargazers over time](https://starchart.cc/andrewssobral/bgslibrary.svg)](https://starchart.cc/andrewssobral/bgslibrary) - -Citation --------- +## Citation If you use this library for your publications, please cite it as: + ``` @inproceedings{bgslibrary, author = {Sobral, Andrews}, @@ -135,7 +151,9 @@ month = {Jun}, url = {https://github.com/andrewssobral/bgslibrary} } ``` + A chapter about the BGSLibrary has been published in the handbook on [Background Modeling and Foreground Detection for Video Surveillance](https://sites.google.com/site/backgroundsubtraction/). + ``` @incollection{bgslibrarychapter, author = {Sobral, Andrews and Bouwmans, Thierry}, @@ -146,25 +164,19 @@ year = {2014}, } ``` +## References -Download PDF: * Sobral, Andrews. BGSLibrary: An OpenCV C++ Background Subtraction Library. IX Workshop de Visão Computacional (WVC'2013), Rio de Janeiro, Brazil, Jun. 2013. ([PDF](http://www.researchgate.net/publication/257424214_BGSLibrary_An_OpenCV_C_Background_Subtraction_Library) in brazilian-portuguese containing an english abstract). * Sobral, Andrews; Bouwmans, Thierry. "BGS Library: A Library Framework for Algorithm’s Evaluation in Foreground/Background Segmentation". Chapter on the handbook "Background Modeling and Foreground Detection for Video Surveillance", CRC Press, Taylor and Francis Group, 2014. ([PDF](http://www.researchgate.net/publication/257424214_BGSLibrary_An_OpenCV_C_Background_Subtraction_Library) in english). - -Some references ---------------- - -Some algorithms of the BGSLibrary were used successfully in the following papers: +Some algorithms of the BGSLibrary were used successfully in the following papers: * (2014) Sobral, Andrews; Vacavant, Antoine. A comprehensive review of background subtraction algorithms evaluated with synthetic and real videos. Computer Vision and Image Understanding (CVIU), 2014. ([Online](http://dx.doi.org/10.1016/j.cviu.2013.12.005)) ([PDF](http://www.researchgate.net/publication/259340906_A_comprehensive_review_of_background_subtraction_algorithms_evaluated_with_synthetic_and_real_videos)) * (2013) Sobral, Andrews; Oliveira, Luciano; Schnitman, Leizer; Souza, Felippe. (**Best Paper Award**) Highway Traffic Congestion Classification Using Holistic Properties. In International Conference on Signal Processing, Pattern Recognition and Applications (SPPRA'2013), Innsbruck, Austria, Feb 2013. ([Online](http://dx.doi.org/10.2316/P.2013.798-105)) ([PDF](http://www.researchgate.net/publication/233427564_HIGHWAY_TRAFFIC_CONGESTION_CLASSIFICATION_USING_HOLISTIC_PROPERTIES)) - -Videos ------- +## Videos