Gaussian Splatting Underwater: A Controlled Cross-Regime Study
Abstract
The underwater environment is challenging for 3D reconstruction, because particles suspended in the water scatter and diffuse light, turbidity varies, absorption depends on wavelength, and illumination is rarely uniform. Methods based on Gaussian splatting have generally been developed for conditions that allow good image quality, and have primarily been tested on relatively shallow water. This paper examines how well Gaussian splatting performs across publicly available underwater datasets representing different degrees of turbidity, loss of illumination, and colour attenuation, together with an industrial survey. Five systems with public code are run under one protocol, with shared poses, initialisation, budget, and evaluator, to establish their relative advantages, disadvantages, and limitations. What these methods can do turns out to depend more on the setup than on the architecture. Water clarity binds upstream of rendering, since structure-from-motion registers 99.5 % of frames in clear water and 0.0 % at 12 NTU. Illumination geometry decides whether a medium model helps at all: under an artificial light that moves with the camera, medium-blind splatting beats both medium-aware systems. On the survey the benchmark's photometric leader comes last, beaten on geometry by a restoration pre-pass in front of vanilla 3DGS---and none of it is visible in the scores the field reports. Scene builds, per-run configurations, and evaluation code are released at https://github.com/olayasturias/uw3dgs
Figures & tables
| Per-Gaussian state | Medium realisation | Extra supervision / inputs | |
|---|---|---|---|
| M0 vanilla 3DGS [ 1 ] | pos., SH-3 colour, opacity, scale, rot. | — | — |
| M1 UIE 3DGS [ 1 ] | as M0 | removed in 2D pre-pass: gray world + CLAHE | restored images as input |
| M2 WaterSplatting [ 2 ] | as M0 (gsplat param.) | separate field: dir.-conditioned MLP medium colour, attenuation and backscatter densities | medium regularisers |
| M3 SeaSplat [ 3 ] | pos., SH-0 colour , opacity, scale, rot. | analytic Eq. ( 1 ) in image space; CNNs infer from rendered depth | depth-smooth, depth-weighted recon., dark-channel, grey-world |
| M4 UW-GS [ 4 ] | as M0 + clean/degraded colour pair via view–distance MLP | per-Gaussian distance-dependent transform | depth-alignment loss; mono-depth maps required |
| NTU | Ctrl | System | PSNR | Err [mm] | Floater | #G (k) |
| 0.0 | 24.1 | M0 3DGS | 31.97 | 99 | 0.071 | 117 |
| M1 UIE 3DGS | 26.85 ∗ | 68 | 0.058 | 296 | ||
| M2 WaterSplatting | 32.87 | 289 | 0.001 | 154 | ||
| M3 SeaSplat | 28.17 | 438 | 0.047 | 269 | ||
| + COLMAP poses | 28.30 | — | — | 129 | ||
| 6.0 | 31.5 | M0 3DGS | 35.54 | 845 | 0.076 | 22 |
| Scene | System | PSNR | SSIM | LPIPS | Chamfer | Floater mass | Train (min) | #G (M) |
| S1 Curaçao | M0 3DGS | 29.3 | 0.877 | 0.199 | n/a | 0.21 | 24 | 0.58 |
| M1 UIE 3DGS | 25.0 ∗ | 0.807 ∗ | 0.251 ∗ | n/a | 0.191 | 24 | 1.34 | |
| M2 WaterSplatting | 29.5 | 0.919 | 0.141 | n/a | 0.077 | 40 | 1.06 | |
| M3 SeaSplat | 30.2 | 0.895 | 0.173 | n/a | 0.37 | 82 | 3.35 | |
| M4 UW-GS | 30.6 | 0.898 | 0.179 | n/a | 0.551 | 188 | 0.93 | |
| S4 EIVA | M0 3DGS | 25.9 | 0.780 | 0.509 | 58 | 0.024 | 28 | 0.24 |
| Config | Med. | Dep. | Bks. | PSNR | SSIM | Floater | #G (M) |
|---|---|---|---|---|---|---|---|
| A0 full | ✓ | ✓ | ✓ | 30.22 | 0.895 | .41 / .37 / .33 | 3.35 |
| A1 backsc. | ✓ | ✓ | – | 19.84 | 0.825 | .31 / .26 / .21 | 1.30 |
| A2 depth | ✓ | – | ✓ | 27.46 | 0.881 | .30 / .25 / .21 | 0.62 |
| A3 medium | – | ✓ | – | 23.98 | 0.865 | .29 / .24 / .21 | 1.58 |