Drift makes two unchanged reconstructions differ
Factories, museums and surveyors photograph the same space months apart and need to know which objects changed. When each visit is reconstructed independently with 3D Gaussian Splatting (3DGS), the two reconstructions share no primitives and differ in number and placement. Because 3DGS training is stochastic and each visit follows a different camera path, two reconstructions of an unchanged space never coincide; the paper calls this difference drift, following GS-Diff.
A difference computed directly between the two primitive sets therefore mixes real change with drift. The second visit is also often a quick re-scan with far fewer photographs. Prior methods such as MV-3DCD and O-SCD fuse per-view cues into a dense change field over the Gaussians, and GS-Diff renders a change score per primitive and thresholds it at a fixed 0.5 in every pixel. These are pixel-level decisions, with a threshold fixed in advance, about objects that may span thousands of primitives.
Photographs carry no reconstruction drift
The paper's key observation is that, unlike the primitives, the photographs used for training carry no reconstruction drift. GS-Pool therefore lets the reconstructions propose candidate object changes from primitive space, and lets the other visit's photographs confirm or reject them.
Because geometry and colour alone can miss a different object in the same place, GS-Pool also distills a semantic field from a foundation model into the primitives. It keeps GS-Diff's drift model, geometry and colour kernels and observability weight unchanged, and adds four contributions: an object pool, a photographic carrier, a per-scene change threshold, and an evaluation against MV-3DCD and O-SCD on identical inputs.
SAM2 masks become a 3D object pool
GS-Pool takes two independently reconstructed Gaussian fields of the same space, sharing a camera frame, and returns the changed objects in each together with their masks. Each visit is reconstructed by an unmodified 3DGS trainer at its published defaults; the paper uses vanilla 3DGS and FastPGSR, the FastGS acceleration of PGSR.
SAM2 segments each visit's keyframes. Each mask is lifted onto the primitives that render it, subject to two tests: a primitive must lie near the rendered surface, and at least half of its rendering weight in that view must land inside the mask. Segments that share an id across the keyframe chain form a track, and tracks whose primitive sets overlap with IoU at least 1/2 are merged into one object. A primitive claimed by several objects belongs to the one holding most of its rendering weight among objects that claimed it in at least two keyframes.
The result is a disjoint object pool per visit. Objects that are too small to aggregate evidence over, and the largest object, usually the space itself, are excluded; an object is poolable when its covered primitive count sits between the lower quartile of the pool's own object sizes and half of W, the number of covered primitives in objects at or above the size threshold.
Four carriers are ranked against a per-scene null
Each object is scored by four carriers per primitive: geometric, colour, semantic and photographic. The semantic field attaches a DINOv3 (ViT-L/16) descriptor to every primitive, reduced by one PCA to 32 dimensions and distilled onto the primitives while the reconstruction itself is held fixed; the PCA is fitted to both visits together so the two visits' features lie in one feature space.
The photographic carrier is the 3DGS training loss of each input reconstruction against the other visit's photographs, backpropagated through the rasteriser to the primitives that rendered each pixel. The paper also tests each object against the photographs directly: an object's footprint in a photograph is the set of pixels whose weight comes at least half from its covered primitives, and the photograph is hot for the object when the mean photographic loss over that footprint exceeds the 95th percentile of the loss over the whole photograph.
Each object's evidence is compared with that of the objects present in both visits, which form an empirical null distribution of unchanged objects. The four carrier ranks are combined by Fisher's statistic, and a scaled chi-squared threshold is set so that about one of the null objects exceeds it. This is what makes the change threshold scene-specific rather than a fixed 0.5.
Each rule component adds measurable gain
The paper builds the decision rule one component at a time on the same pools and carriers, averaged over the 60 joint-frame members per trainer. Photographs alone give 0.4681 mIoU / 0.5896 F1 on FastPGSR and 0.4353 / 0.5627 on vanilla 3DGS. Adding semantics raises this to 0.5899 / 0.7087 and 0.6060 / 0.7291.
Averaging all four carriers gives 0.6090 / 0.7252 and 0.6107 / 0.7357. Replacing that average with the Fisher core raises mIoU on both trainers, to 0.7034 / 0.8080 and 0.6617 / 0.7762. Adding the photo rank quorum gives 0.7113 / 0.8147 and 0.6668 / 0.7796, and the full rule with view statistics reaches 0.7509 / 0.8461 and 0.7198 / 0.8209.
GS-Pool leads prior methods on PASLCD and CL-Splats
On PASLCD, GS-Pool reaches mIoU / F1 scores of 0.751 / 0.846 against 0.644 / 0.758 for GS-Diff, the strongest prior method, a gain of 17% / 12%. Its mIoU is also 36%, 40% and 57% above that of O-SCD, PlenoCI and MV-3DCD. On CL-Splats it reaches 0.855 mIoU, 33% above MV-3DCD. The strongest 2D method reported in the paper, CYWS-2D, reaches 0.273 mIoU on PASLCD.
The paper reports scene-level uncertainty by resampling the ten PASLCD scenes with replacement 100,000 times, keeping both instances and all three seeds within each block. On the joint frame, FastPGSR's mIoU interval is [0.6825, 0.8102], whose lower end is above GS-Diff's reported 0.644, and vanilla 3DGS's is [0.6371, 0.7972]. FastPGSR leads vanilla by 4.3%, with interval [0.2%, 9.1%]. These intervals describe these ten scenes under a fixed configuration.
Per-cell results vary widely. On the joint frame with FastPGSR, Garden i1 reaches 0.855 mIoU and Porch i2 reaches 0.882, while Lunch room i1 reaches 0.498 and Cantina i1 reaches 0.642. The mean across the 20 cells is 0.7509 mIoU / 0.8461 F1 for FastPGSR joint, 0.7260 / 0.8277 for FastPGSR anchored, 0.7198 / 0.8209 for vanilla 3DGS joint, and 0.7281 / 0.8266 for vanilla 3DGS anchored.
Lighting change still triggers false alarms
Between two captures of an unchanged scene under different lighting, GS-Pool flags fewer pixels than MV-3DCD and O-SCD run from their released code. A change of lighting alone still produces false alarms, however, so the method does not eliminate that failure mode.
GS-Pool takes all its evidence from the reconstructions and photographs, so a poor capture degrades it. Its objects come from SAM2, so a change that SAM2 does not segment as a separate mask cannot be recovered by later stages. The distilled field, SAM2 lifting and renders at the other visit's cameras also make GS-Pool costlier than comparing the two primitive sets alone.
Object-level decisions enable 3D inspection
GS-Pool's output is each visit's object pool, every object with its decision and its evidence, and the changed primitives as a 3DGS layer over either reconstruction. Each changed object is returned as a set of Gaussians with the evidence behind its decision, which an inspector can review in 3D.
The paper's own framing is that this moves detection from individual primitives to whole objects, which opens the way to classifying the kind of change each object underwent, a direction the authors say they will explore further. The practical priority for a reader is therefore the decision unit: GS-Pool's advantage over GS-Diff comes from aggregating evidence once per object and setting the threshold from each scene's own null objects, not from a fixed per-pixel cutoff. Where SAM2 does not separate an object as its own mask, or where lighting alone shifts the photographs, that advantage narrows.
Sources used in this answer
GS-Pool: Object-Level Change Detection in 3D Gaussian Splatting
GS-Pool decides change once per object across two independently reconstructed 3DGS fields, reaching 0.751 mIoU / 0.846 F1 on PASLCD, 17% / 12% above GS-Diff, and 0.855 mIoU on CL-Splats.
