An implementation of online robust PCA (ORPCA) described in the paper:
- Online Robust PCA via Stochastic Optimization by Feng et al. [NIPS 2013]
However, it is modified slightly since missing data points cannot be reconstructed in this paper. (The reconstruction of missing data were not performed here, but it can be performed by chaning the missing percentage parameter 'perc_miss' in the m-file 'main_orpca.m'.)
VIRAT Video Dataset was used here (not in the paper), which is designed to be realistic, natural and challenging for video surveillance domains in terms of its resolution, background clutter, diversity in scenes, and human activity/event categories than existing action recognition datasets. It has become a benchmark dataset for the computer vision community.
Since the frame size of the original video files is large, they were cropped when running the simulation. The original and gray frame are shown below:
Original frame | Gray frame |
After running the algorithm, the results (original, background, and foreground frames) are displayed below, where
- Foreground: moving object is captured by the sparse matrix E
- Background: non-moving object is captred by the low rank matrix X
(If fine-tuning the parameters, running more frames (or increasing the epoch), the sparse matrix E may capture only the moving object (not the background.))
Original 1 | Original 2 | Original 3 | Original 4 |
Background 1 | Background 2 | Background 3 | Background 4 |
Foreground 1 | Foreground 2 | Foreground 3 | Foreground 4 |