Hierarchical Incremental Beta Splatting for Online Reconstruction
Organizations: University of Würzburg
Abstract
Online 3D Gaussian Splatting reconstructs a scene during capture: each keyframe spawns primitives once and refines them for only a few dozen iterations, leaving little chance to fix poor initialization or missing detail. Gaussians are also inherently soft, needing many overlaps for solid surfaces. We present Hierarchical Incremental Beta Splatting (HIBS), which brings beta kernels to incremental reconstruction. Their shape parameter interpolates between a soft, Gaussian-like profile and a flat-topped, near-opaque surfel, acting as a confidence dial for geometry. Our confidence-aware spawning uses geometric observability and multi-view depth agreement to initialize both opacity and shape, producing solid primitives where geometry is verifiable and soft, correctable primitives where it is not. As online densification, error-driven relocation recycles stale primitives into photometric-error hotspots. Bounded beta kernel support enables exact tile culling and faster rasterization, and a closed-form, shape-preserving merging formulation provides a level-of-detail (LOD) hierarchy for fast optimization and real-time rendering. On Mip-NeRF 360 in the on-the-fly protocol, HIBS improves PSNR by up to 0.8 dB while reducing optimization time by up to 40%. Project page: https://linus-franke.com/hibs/
Figures & tables
| TUM | MipNeRF360 (otf) | StaticHikes | ||||||||||
| PSNR ↑ | SSIM ↑ | LPIPS ↓ | Time ↓ | PSNR ↑ | SSIM ↑ | LPIPS ↓ | Time ↓ | PSNR ↑ | SSIM ↑ | LPIPS ↓ | Time ↓ | |
| G+Beta-Splatting (7k) | 22.73 | 0.842 | 0.214 | 0:01:50 | 27.75 | 0.863 | 0.232 | 0:04:34 | 20.36 | 0.538 | 0.470 | 0:59:22 |
| G+Faster-GS (7k) | 23.08 | 0.845 | 0.207 | 0:01:42 | 27.81 | 0.876 | 0.210 | 0:04:22 | 20.57 | 0.547 | 0.459 | 0:59:38 |
| MonoGS † | 16.60 | 0.682 | 0.381 | 15min | 14.46 | 0.436 | 0.663 | 4min | 15.46 | 0.301 | 0.659 | 9min |
| S3PO-GS with refinement † | 21.88 | 0.777 | 0.309 | 1h | 19.82 | 0.553 | 0.576 | 20min | 18.09 | 0.368 | 0.611 | 50min |
| LongSplat † | 26.51 | 0.875 | 0.176 | 1.5h | 23.63 | 0.657 | 0.415 | 2h | 20.05 | 0.461 | 0.481 | 20h |
| MipNeRF360 | Tanks and Temples | Deep Blending | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PSNR ↑ | SSIM ↑ | LPIPS ↓ | Time ↓ | PSNR ↑ | SSIM ↑ | LPIPS ↓ | Time ↓ | PSNR ↑ | SSIM ↑ | LPIPS ↓ | Time ↓ | ||
| G ( seq.) | BetaSplatting (30K) | 25.90 | 0.703 | 0.333 | 0:09:07 | 23.31 | 0.831 | 0.190 | 0:08:27 | ||||
| FasterGS (30K) | 25.53 | 0.702 | 0.356 | 0:05:29 | 22.17 | 0.802 | 0.250 | 0:04:21 | |||||
| BetaSplatting (7K) | 24.05 | 0.656 | 0.396 | 0:03:17 | 20.81 | 0.733 | 0.321 | 0:02:55 | |||||
| FasterGS (7K) | 24.57 | 0.678 | 0.411 | 0:02:29 | 20.79 | 0.742 | 0.343 | 0:02:10 | |||||
| i3DGS | 24.75 | 0.721 | 0.280 | 0:01:59 | 22.08 | 0.783 | 0.226 | 0:01:25 | 27.16 | 0.856 | 0.285 | 0:02:03 | |
| SmallCity | CityWalk | |||||||
| PSNR ↑ | SSIM ↑ | LPIPS ↓ | Time ↓ | PSNR ↑ | SSIM ↑ | LPIPS ↓ | Time ↓ | |
| H3DGS | 21.17 | 0.679 | 0.285 | 2.5h | 11.78 | 0.557 | 0.560 | 20h |
| Octree-GS | 24.18 | 0.831 | 0.273 | 1h | 17.33 | 0.638 | 0.520 | 2.5h |
| S3PO-GS | 19.71 | 0.652 | 0.462 | 0.7h | 10.72 | 0.439 | 0.579 | 5.5h |
| OtF NVS | 23.59 | 0.789 | 0.323 | 02:21 | 21.71 | 0.712 | 0.395 | 29:35 |
| i3DGS | 23.56 | 0.800 | 0.302 | 02:54 | 22.03 | 0.772 | 0.336 | 45:20 |
| Configuration | PSNR | SSIM | LPIPS | t (s) | |
|---|---|---|---|---|---|
| Full (ours) | 25.30 | 0.810 | 0.213 | 101 | |
| w/o SB lobes ( SH) | [ Sec. 4.1 ] | 25.12 | 0.807 | 0.214 | 106 |
| DBS lobe init prior | [ Sec. 4.1 ] | 25.19 | 0.809 | 0.214 | 100 |
| w/o confidence | [ Sec. 4.2 ] | 25.14 | 0.808 | 0.215 | 99 |
| w/o solidification | [ Sec. 4.3 ] | 25.15 | 0.807 | 0.216 | 100 |
| w/o error relocation | [ Sec. 4.4 ] | 25.09 | 0.804 | 0.219 | 95 |
| Configuration | Confidence | PSNR | SSIM | LPIPS | t (s) |
|---|---|---|---|---|---|
| i3DGS [ 40 ] | none | 24.73 | 0.797 | 0.227 | 129 |
| Gaussian | 25.09 | 0.808 | 0.214 | 130 | |
| frozen at 4 | 25.06 | 0.806 | 0.217 | 100 | |
| learnable | 25.11 | 0.807 | 0.215 | 100 | |
| learnable | , | 25.15 | 0.807 | 0.216 | 100 |
| Full (ours) | , , solidify | 25.30 | 0.810 | 0.213 | 101 |
Appendix figures & tables23 assets
Supplementary material from the paper’s appendix.
Appendix
| Stage (ms/call) | Garden | fr1/desk | Truck | University2 | SmallCity |
|---|---|---|---|---|---|
| Image load, features | 13.4 | 11.8 | 13.4 | 11.4 | 13.2 |
| Pose estimation | 119.2 | 149.2 | 117.6 | 114.6 | 119.7 |
| Loop closure | 101.3 | – | 164.1 | – | – |
| Primitive spawning | 47.1 | 49.3 | 46.0 | 44.6 | 36.4 |
| Optimization burst | 170.6 | 146.5 | 129.2 | 174.9 | 329.6 |
| Hierarchy update | 2.7 | 2.7 | 3.0 | 41.4 | 56.5 |
| 1st image | Frames | Boot. | Mean latency/ | |
|---|---|---|---|---|
| Scene | (s) | used | KFs | frame (ms) |
| Garden | 1.2 | 8 | 8 | 336 |
| fr1/desk | 1.5 | 17 | 8 | 106 |
| Truck | 1.0 | 10 | 8 | 276 |
| University2 | 1.2 | 9 | 8 | 176 |
| SmallCity | 1.4 | 9 | 8 | 237 |
| Stage | ms | share |
|---|---|---|
| blend backward | 1.67 | 37% |
| preprocess backward (fused Adam) | 1.31 | 29% |
| blend forward | 0.85 | 19% |
| preprocess forward | 0.36 | 8% |
| sort / instancing | 0.37 | 8% |
| preprocess backward (no fused Adam) | 0.66 |
| Scene | Colour | PSNR ↑ | SSIM ↑ | LPIPS ↓ |
|---|---|---|---|---|
| drjohnson | SB lobes | 25.67 | 0.828 | 0.315 |
| SH | 25.88 | 0.832 | 0.309 | |
| playroom | SB lobes | 27.28 | 0.865 | 0.276 |
| SH | 27.58 | 0.868 | 0.268 |
| Dataset | Scene | PSNR | SSIM | LPIPS |
|---|---|---|---|---|
| db | drjohnson | -0.21 | -0.004 | +0.007 |
| db | playroom | -0.29 | -0.003 | +0.008 |
| MipNeRF360 | garden | +0.18 | +0.005 | -0.000 |
| MipNeRF360 | bonsai | +0.23 | +0.003 | -0.002 |
| MipNeRF360 | counter | +0.41 | +0.007 | -0.006 |
| MipNeRF360 | bicycle | +0.16 | +0.013 | -0.001 |
| Scene | Method | ATE(%) ↓ | R.APE( ∘ ) ↓ | T.RPE(%) ↓ | R.RPE( ∘ ) ↓ |
|---|---|---|---|---|---|
| fr1/desk | Ours | 0.55 | 1.90 | 0.344 | 0.644 |
| i3DGS | 0.47 | 1.42 | 0.314 | 0.548 | |
| fr2/xyz | Ours | 0.33 | 0.41 | 0.178 | 0.128 |
| i3DGS | 0.37 | 0.42 | 0.185 | 0.133 | |
| fr3/office | Ours | 0.32 | 0.94 | 0.127 | 0.326 |
| i3DGS | 0.38 | 1.02 | 0.150 | 0.347 |
| Bootstrap | ATE (%) ↓ | R. APE ( ∘ ) ↓ | PSNR ↑ | f.i. (s) | |
|---|---|---|---|---|---|
| ordered first-8 | 0.55 | 1.90 | 23.93 | 1.5 | 519 |
| ordered + parallax | 1.78 | 3.17 | 23.67 | 1.5 | 527 |
| spread, pool 30 | 0.51 | 1.21 | 24.20 | 2.6 | 511 |
| Variant | PSNR ↑ | SSIM ↑ | LPIPS ↓ |
|---|---|---|---|
| Full (error-weighted + consistency gate) | 28.45 | 0.893 | 0.133 |
| w/o error weighting (opacity-sampled) | 27.89 | 0.885 | 0.148 |
| w/o relocation | 28.21 | 0.890 | 0.136 |
| MipNeRF360 | Tanks and Temples | Deep Blending | |||||||||||
| PSNR ↑ | SSIM ↑ | LPIPS ↓ | Time ↓ | PSNR ↑ | SSIM ↑ | LPIPS ↓ | Time ↓ | PSNR ↑ | SSIM ↑ | LPIPS ↓ | Time ↓ | ||
| G ( exh.) | BetaSplatting (30K) | 28.09 | 0.822 | 0.222 | 0:12:34 | 22.18 | 0.818 | 0.209 | 0:11:14 | 30.49 | 0.915 | 0.250 | 0:10:11 |
| FasterGS (30K) | 27.66 | 0.818 | 0.251 | 0:09:01 | 20.45 | 0.781 | 0.274 | 0:07:03 | 29.78 | 0.908 | 0.306 | 0:07:14 | |
| BetaSplatting (7K) | 25.92 | 0.750 | 0.308 | 0:06:21 | 19.72 | 0.710 | 0.347 | 0:05:36 | 26.85 | 0.861 | 0.350 | 0:04:56 | |
| FasterGS (7K) | 25.36 | 0.740 | 0.347 | 0:05:34 | 19.07 | 0.712 | 0.373 | 0:04:48 | 28.91 | 0.891 | 0.358 | 0:04:17 | |
| G ( seq.) | BetaSplatting (30K) | 25.34 | 0.679 | 0.341 | 0:09:07 | 23.31 | 0.831 | 0.190 | 0:08:27 | ||||
| Scene | Order | PSNR ↑ | SSIM ↑ | LPIPS ↓ |
|---|---|---|---|---|
| Garden | ordered | 25.82 | 0.786 | 0.187 |
| shuffled | 25.34 | 0.774 | 0.191 | |
| Counter | ordered | 26.98 | 0.860 | 0.222 |
| shuffled | 27.54 | 0.877 | 0.204 | |
| Bonsai | ordered | 29.61 | 0.909 | 0.204 |
| shuffled | 27.11 | 0.850 | 0.261 |
| Constant | Value | Role | Provenance |
|---|---|---|---|
| Spawning ( Sec. 4.2 ) | |||
| full-observability angle | probed ( ) | ||
| spawn opacity, unverified | fixed heuristic | ||
| spawn opacity, fully verified | probed ( ) | ||
| opacity without MVS support | fixed heuristic | ||
| shape band around init | structural | ||
| PSNR ↑ | LPIPS ↓ | Solid. | Soft. | |
|---|---|---|---|---|
| 0.1 | 25.77 | 0.188 | 229k | 81k |
| 0.2 | 25.65 | 0.190 | 226k | 79k |
| 0.4 (ours) | 25.82 | 0.187 | 224k | 81k |
| 0.8 | 25.80 | 0.188 | 220k | 82k |
| Scene | Constant | shipped probe | PSNR ↑ | |
|---|---|---|---|---|
| Garden | (solidify opacity gate) | 0.7 0.5 | 25.78 0.05 | -0.04 0.06 |
| Garden | (solidify opacity gate) | 0.7 0.9 | 25.75 0.08 | -0.07 0.09 |
| Garden | (observability angle) | 25.78 0.02 | -0.04 0.04 | |
| Garden | (observability angle) | 25.77 0.09 | -0.05 0.10 | |
| Garden | (verified spawn opacity) | 0.3 0.2 | 25.83 0.03 | +0.01 0.05 |
| Garden | (verified spawn opacity) | 0.3 0.5 | 25.81 0.08 | -0.01 0.09 |
3D Gaussian Splatting
3D Gaussian Splatting represents scenes as optimizable 3D Gaussian primitives for fast, photorealistic rendering from new viewpoints.
See all 1,051 papers