Preprint · in preparation for IEEE SPLIndependent research · 2026

Absorption and Lock-In in Tracker-Guided Streaming Subspace Background Models

Why forgetting low-rank background models swallow targets that stop, how tracker feedback prevents it, and when that feedback loop locks in its own errors.

Robust PCASubspace trackingRecursive least squaresKalman filterComputer visionPythonMATLAB
Preprint, work in progress. This manuscript has not yet been peer-reviewed or reviewed by my advisor; its methods, results and wording may change. Please cite it as a preprint.
The operator console: live scene, confirmed tracks and model verdicts, pipeline timing and service-level ladder.

Overview

Streaming low-rank background models (GRASTA, ReProCS/NORST, OR-PCA, incremental PCP) must forget in order to follow illumination and scene change, and the same forgetting turns any target that stops into background. When it leaves, it leaves a ghost.

The work shows that absorption has two mechanisms: a per-pixel recursive least-squares ramp whose rate is the leverage of the current frame, independent of target size, and a size-dependent rank-crossing cascade. The resulting law predicts absorption from the background alone.

Feeding tracker beliefs back as masks prevents absorption but closes a loop that can lock in model errors. The analysis shows that an expiry clock the error can reset makes persistence exponential in the protection horizon, that the optimal horizon is a quantile of the stop-duration law, and that a budgeted semantic verifier makes the horizon non-binding.

What I built

  • abksvd: a modular real-time system (sensors, masked incremental SVD, detection, Kalman tracking, ONNX verifier, device profiles for Raspberry Pi 5, Jetson Orin and RK3588) with a build-free web operator console.
  • An evaluator that reproduces the official CDnet MATLAB confusion matrices exactly on 10 of 10 videos.
  • Protocols written before the runs: front end frozen on a development split, policy chosen by leave-one-video-out, five held-out categories evaluated once.
  • A decision log (D1–D29), an experiment registry with negative results, and two manuscripts whose every number is generated from raw results.

Results

MethodIOM F (test)Held-out FAll 11 categoriesms / frame
Verified loop V2 (ours)0.6140.5520.60327.4
Loop without verifier V0 (ours)0.4450.5260.5588.3
No feedback (ours)0.4170.5460.542–
NORST0.4580.2840.42379
OR-PCA0.4390.4170.5002.6
incremental PCP0.3310.4350.4650.3
GRASTA0.2410.4130.4193.0

CDnet 2014, official protocol. Baselines run by me on the same frames (MATLAB, 160×120).

Figures

Run it

$ cd code/abksvd-rpca
$ python -m pip install -e ".[all]"
$ abksvd demo        # live console at http://127.0.0.1:8765
$ PYTHONPATH=src python -m pytest   # 77 tests

Cite

@misc{kahyaoglu2026absorption,
  author = {Kahyao{\u{g}}lu, {\"O}mer},
  title  = {Absorption and Lock-In in Tracker-Guided Streaming Subspace Background Models},
  year   = {2026},
  note   = {Preprint, in preparation},
  url    = {https://github.com/kahyaoglu20/abksvd-rpca}
}