Performing background subtraction in videos using RPCA with ADMM algorithm
Robust Principal Component Analysis (RPCA) is a modification of principal component analysis (PCA) which works well with respect to grossly corrupted observations. A number of different approaches exist for Robust PCA, including an idealized version of Robust PCA, which aims to recover a low-rank matrix L0 from highly corrupted measurements M = L0 +S0.
The alternating direction method of multipliers (ADMM) is an algorithm that solves convex optimization problems by breaking them into smaller pieces, each of which are then easier to handle. It has recently found wide application in a number of areas.
I have tested it on one video, which is attached in the zip file, along with the LowRank(Background) and Sparse(Foreground) videos. Run the main file : ADMM_run.m on MATLAB
Main References:
- Candès, Emmanuel J., et al. "Robust principal component analysis?." Journal of the ACM (JACM) 58.3 (2011): 1-37.
- http://web.stanford.edu/~boyd/papers/prox_algs/matrix_decomp.html - code examples
- Distributed optimization and statistical learning via the alternating direction method of multipliers - S. Boyd, N. Parikh, E. Chu, B. Peleato, and J. Eckstein, 2011