
O-SCD++: Replay-Free Online Scene Change Detection via Recursive Evidence Fusion
TL;DRO-SCD++ folds each new view into the map in a single pass, with no replay of past frames and no iterative optimization. It is 18% more accurate (mIoU) and 2.2× faster than O-SCD (over 25 FPS), and it sets its own decision threshold without labels, with a per-pixel confidence.
Removing the accuracy–speed trade-off
Online scene change detection requires an agent to detect what has changed in a previously mapped environment while it is still on site, observing from unconstrained viewpoints and without access to future observations. This causal setting is strictly harder than its offline counterpart, and online methods have consistently trailed offline accuracy. O-SCD closed that gap by treating change as a persistent property of a 3D Gaussian splatting map of the reference scene, surpassing the strongest offline methods in change detection accuracy while operating at over 10 frames per second. O-SCD optimizes a change field over the Gaussians of the reference map, refitting it to all past cue maps at every frame, a step that consumes more than half of the per-frame budget and forces accuracy to be traded against speed.
We present a replay-free formulation that eliminates this trade-off. Because the reference map stays fixed, rendering the change field is a linear operation. Each new observation can therefore be carried onto the map's Gaussians directly, by a single backward pass of the renderer, which reduces multi-view fusion to an exact two-scalar recursion per Gaussian. Past observations are never stored or revisited. The self-supervised objective that O-SCD minimizes by descent also determines the decision threshold exactly, by sorting, yielding a label-free per-frame cutoff whose margin provides a selective-prediction signal. On PASLCD, our method improves mean intersection over union from 0.489 to 0.575 and throughput from 11.8 to 25.6 frames per second, even exceeding O-SCD's offline result while remaining strictly causal.
Every iterative step becomes a direct computation
O-SCD++ keeps the front end of O-SCD (pose estimation against the reference map and change-cue extraction) and replaces its change stage.
memory O(G + tN)
memory O(G)
The per-frame cost loses its iteration budget n and its dependence on the number t of frames processed. G: primitives; N: pixels.
O-SCD vs. O-SCD++
Drag the slider to compare the change masks of O-SCD (left) and O-SCD++ (right), drawn over the post-change image.


















State of the art in accuracy and throughput
LF: label-free, PA: pose-agnostic, MV: multi-view. Best in bold, second underlined; rows in grey italics are shown for reference.
| Method | LF | PA | MV | mIoU ↑ | F1 ↑ | FPS ↑ |
|---|---|---|---|---|---|---|
| O-SCD (offline) | ✓ | ✓ | ✓ | 0.556 | 0.700 | – |
| ChangeSim (CS) | – | – | – | 0.018 | 0.034 | 11.5 |
| CS+CYWS2D | – | – | – | 0.243 | 0.360 | 8.2 |
| CS+GeSCF | ✓ | – | – | 0.181 | 0.270 | <1 |
| FastGeSCF | – | – | – | 0.122 | 0.198 | 1.43 |
| SplatPose | ✓ | ✓ | – | 0.173 | 0.281 | <1 |
| SplatPose+ | ✓ | ✓ | – | 0.237 | 0.358 | <1 |
| O-SCD | ✓ | ✓ | ✓ | 0.489 | 0.643 | 11.8 |
| O-SCD++ | ✓ | ✓ | ✓ | 0.575 | 0.715 | 25.6 |
| Method | LF | Setting | mIoU ↑ | F1 ↑ |
|---|---|---|---|---|
| CYWS2D | – | offline | 0.273 | 0.398 |
| VSCD | – | offline | 0.112 | 0.186 |
| GeSCF | ✓ | offline | 0.477 | 0.611 |
| SplatPose+ | ✓ | offline | 0.237 | 0.358 |
| SCAR-3D | ✓ | offline | 0.191 | 0.289 |
| 3DGS-CD | ✓ | offline | 0.209 | 0.339 |
| MV3DCD | ✓ | offline | 0.478 | 0.628 |
| SceneDiff | ✓ | offline | 0.473 | 0.609 |
| O-SCD | ✓ | offline | 0.556 | 0.700 |
| O-SCD++ | ✓ | retrospective | 0.586 | 0.726 |
| O-SCD++ | ✓ | online | 0.575 | 0.715 |
| Method | CL-Splats | ChangeSim | ||
|---|---|---|---|---|
| mIoU ↑ | F1 ↑ | mIoU ↑ | F1 ↑ | |
| ChangeSim (CS) | 0.010 | 0.019 | 0.130 | 0.212 |
| CS+CYWS2D | 0.372 | 0.519 | 0.271 | 0.408 |
| CS+GeSCF | 0.520 | 0.630 | 0.348 | 0.484 |
| FastGeSCF | 0.183 | 0.252 | 0.315 | 0.458 |
| SplatPose | 0.224 | 0.320 | 0.061 | 0.108 |
| SplatPose+ | 0.556 | 0.700 | 0.115 | 0.186 |
| O-SCD | 0.657 | 0.773 | 0.404 | 0.535 |
| O-SCD++ | 0.703 | 0.807 | 0.474 | 0.605 |
| Module | O-SCD | O-SCD++ | ||
|---|---|---|---|---|
| ms | % | ms | % | |
| Pose estimation | 30.4 | 36.0 | 30.2 | 77 |
| Change detection | 54.4 | 64.0 | 9.0 | 23 |
| Change cue generation | 6.1 | 7.2 | 5.9 | 15.0 |
| Multi-view fusion | 47.8 | 56.5 | 2.1 | 5.5 |
| Mask inference | 0.5 | 0.3 | 1.0 | 2.5 |
Even online, O-SCD++ exceeds every offline method. Replay-free fusion is about 20× faster than O-SCD's, so change detection is no longer the bottleneck. All numbers on this page are from the O-SCD++ paper.
Decision margins: knowing where it might be wrong
The margin is small (bright) where a slightly different threshold would flip the label. These regions coincide with misclassified pixels, change boundaries and missed regions, so a system can report only confident changes or revisit uncertain ones while still on site. Drag the slider to compare the prediction (left) with its margin map (right).












Related work
BibTeX
@article{galappaththige2026oscdpp,
title = {O-SCD++: Replay-Free Online Scene Change Detection via Recursive Evidence Fusion},
author = {Galappaththige, Chamuditha Jayanga and Lai, Jason and Windrim, Lloyd and Patten, Timothy and Dansereau, Donald G. and Suenderhauf, Niko and Miller, Dimity},
journal = {arXiv preprint arXiv:2610.24462},
year = {2026}
}
If you use PASLCD, please also cite MV3DCD; if you build on the online setting, please also cite O-SCD.
This work was supported by the Australian Research Council Research Hub in Intelligent Robotic Systems for Real-Time Asset Management (ARIAM, IH210100030) and Abyss Solutions. C.J.G., N.S. and D.M. also acknowledge ongoing support from the QUT Centre for Robotics.
