Skip to content

LSXI7/Wat3R

Repository files navigation

Wat3R: Underwater 3D Geometry Learning
without Annotations

Jiangwei Ren, Xingyu Jiang, Zijie Song, Wei Xu, Hongkai Lin, Dingkang Liang and Xiang Bai

Huazhong University of Science & Technology.
(†) Corresponding author.

arxiv HuggingFace Space license

Figure 3

📣 News

  • [10/Jul/2026] Our Wat3R is accepted to ECCV 2026.
  • [10/Jul/2026] Release the code and checkpoint.

Abstract

Estimating 3D geometry in underwater environments presents unique challenges due to light attenuation, scattering, and the absence of large-scale, high-quality 3D annotations. Pioneering methods rely on massive dense annotations that are impractical in underwater settings. In this paper, we propose Wat3R, a cross-domain semi-supervised learning framework designed to adapt feed-forward 3D reconstruction models from air to underwater scenes. Uniquely, our method eliminates the need for any annotated underwater data following a teacher-student architecture, that learns robust geometry representations merely on abundant unlabeled real underwater video footage. We also design a cross-view consistency loss that leverages geometric cues from other views to compensate for the information degradation in the current view caused by water attenuation and scattering. Furthermore, considering the lack of comprehensive evaluation benchmarks, we construct Water3D, a diverse dataset covering various water bodies and underwater scenarios, designed for geometric task evaluation. Experimental results demonstrate that Wat3R outperforms current state-of-the-art methods in underwater multi-view depth estimation and point cloud reconstruction.

Overview

Figure 3

Performance

Figure 3

Quick Start

Installation

Run the commands from the Wat3R repository root:

conda env create -f environment.yaml
conda activate wat3r
pip install -e . --no-deps

Basic Usage

import torch
from wat3r.models.wat3r import Wat3R
from wat3r.utils.load_fn import load_and_preprocess_images
from wat3r.utils.pose_enc import pose_encoding_to_extri_intri

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
dtype = torch.bfloat16 if device.type == "cuda" and torch.cuda.get_device_capability()[0] >= 8 else torch.float16

# Initialize Wat3R and load the released student checkpoint.
model = Wat3R.from_pretrained("lsxi77777/Wat3R").to(device).eval()

# Load and preprocess example images.
image_names = ["path/to/imageA.png", "path/to/imageB.png", "path/to/imageC.png"]
images = load_and_preprocess_images(image_names, mode="max", target_size=518).to(device)

with torch.no_grad(), torch.cuda.amp.autocast(dtype=dtype, enabled=device.type == "cuda"):
    # Predict cameras, depth maps, and point maps.
    predictions = model(images)

extrinsics, intrinsics = pose_encoding_to_extri_intri(
    predictions["pose_enc"], images.shape[-2:]
)

Main outputs:

  • predictions["depth"]: [B, S, H, W, 1]
  • predictions["depth_conf"]: [B, S, H, W]
  • predictions["world_points"]: [B, S, H, W, 3]
  • predictions["world_points_conf"]: [B, S, H, W]
  • extrinsics: [B, S, 3, 4], OpenCV world-to-camera / cam-from-world [R|t]
  • intrinsics: [B, S, 3, 3], pixel-space camera matrix

Demo

We provide online demo HuggingFace Space, and local viser demo.

The Viser demo supports static and dynamic visualization.

python demo_viser.py  --input examples/images  --checkpoint /path/to/wat3r.pt --mode static # or dynamic

Benchmark Evaluation

See Evaluation for details.

TODO List

  • Underwater Evaluation Benchmark
  • Online Demo
  • Water3D Dataset
  • Training Code

Acknowledgement

We sincerely thank the VGGT, Fast3R and Marigold for their open-source code.

Citation

If you find our work useful in your research, please consider giving a star ⭐ and a citation

@inproceedings{ren2026wat3r,
  title={Wat3R: Underwater 3D Geometry Learning without Annotations},
  author={Ren, Jiangwei and Jiang, Xingyu and Song, Zijie and Xu, Wei and Lin, Hongkai and Liang, Dingkang and Bai, Xiang},
  booktitle={Proceedings of the European Conference on Computer Vision},
  year={2026}
}

License

This repository is under the Apache-2.0 license.

About

[ECCV 2026] Wat3R: Underwater 3D Geometry Learning without Annotations

Topics

Resources

License

Stars

44 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors