SingleBicycle commited on
Commit
4de326a
·
verified ·
1 Parent(s): 691c278

Upload folder using huggingface_hub

Browse files
README.md ADDED
@@ -0,0 +1,111 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: cc-by-nc-sa-4.0
3
+ library_name: mast3r
4
+ tags:
5
+ - 3d-reconstruction
6
+ - uncertainty-quantification
7
+ - evidential-deep-learning
8
+ - pointmap
9
+ - mast3r
10
+ - dust3r
11
+ ---
12
+
13
+ # Trust3R — evidential uncertainty for feed-forward 3D reconstruction
14
+
15
+ Checkpoints for **“Trust It or Not: Evidential Uncertainty for Feed-Forward 3D
16
+ Reconstruction with Trust3R”** (ICML 2026).
17
+
18
+ - Code: https://github.com/phai-lab/Trust3R
19
+ - Project page: https://trust3r-z.github.io/
20
+ - Paper: https://arxiv.org/abs/2605.19539
21
+
22
+ Trust3R adds two lightweight heads to a **frozen MASt3R backbone**: an evidential
23
+ uncertainty head that predicts the parameters of a Normal-Inverse-Wishart prior over each
24
+ 3D point — yielding a closed-form Student-*t* predictive distribution and a calibrated
25
+ per-pixel uncertainty map in a **single forward pass, no ensembles and no Monte Carlo
26
+ sampling** — and a gated residual head that applies small, gated corrections to the
27
+ pretrained pointmap.
28
+
29
+ ## Files
30
+
31
+ | File | Head | Backbone | Res. | Size |
32
+ |---|---|---|---|---|
33
+ | `trust3r_niw_mast3r_224.pth` | NIW evidential (full 3×3 covariance) + gated residual | frozen MASt3R ViT-L | 224 | 3.0 GB |
34
+ | `trust3r_nig_mast3r_224.pth` | NIG evidential (diagonal variance) + gated residual | frozen MASt3R ViT-L | 224 | 3.0 GB |
35
+
36
+ NIW is the main model. NIG is the evidential-family ablation. Each `.pth` ships a
37
+ `.sha256` sidecar and a `.metadata.json` recording provenance, training mix and the
38
+ evaluation protocol.
39
+
40
+ ## Download
41
+
42
+ ```bash
43
+ pip install -U "huggingface_hub[cli]"
44
+ mkdir -p checkpoints
45
+ hf download phai-lab/Trust3R \
46
+ trust3r_niw_mast3r_224.pth trust3r_nig_mast3r_224.pth \
47
+ trust3r_niw_mast3r_224.pth.sha256 trust3r_nig_mast3r_224.pth.sha256 \
48
+ --local-dir checkpoints/
49
+ (cd checkpoints && sha256sum -c *.sha256)
50
+ ```
51
+
52
+ ## Usage
53
+
54
+ ```python
55
+ from mast3r.model import AsymmetricMASt3R
56
+
57
+ model = AsymmetricMASt3R.from_pretrained("checkpoints/trust3r_niw_mast3r_224.pth").eval()
58
+ ```
59
+
60
+ The model expression is stored inside the checkpoint, so no architecture arguments are
61
+ needed. A minimal pair-inference example is `infer.py` in the GitHub repo; the NIW
62
+ predictive variance is recovered from the head outputs as
63
+
64
+ ```python
65
+ kappa = pred1["xyz_niw_kappa"] # (1, 1, H, W)
66
+ nu = pred1["xyz_niw_nu"] # (1, 1, H, W)
67
+ Psi = pred1["xyz_niw_Psi"] # (1, 3, 3, H, W)
68
+ trace_Psi = Psi[:, 0, 0] + Psi[:, 1, 1] + Psi[:, 2, 2]
69
+ total_var = trace_Psi / (kappa.squeeze(1) * (nu.squeeze(1) - 4.0).clamp_min(1e-3))
70
+ ```
71
+
72
+ Provenance and protocol metadata:
73
+
74
+ ```python
75
+ import torch
76
+ print(torch.load("checkpoints/trust3r_niw_mast3r_224.pth", map_location="cpu")["trust3r"])
77
+ ```
78
+
79
+ ## Training
80
+
81
+ Initialised from `MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric.pth`, backbone frozen,
82
+ 150k steps at 224px (batch 10, 10 epochs) on a four-dataset mix of 150k pairs per epoch:
83
+ ScanNet++ (25k), ARKitScenes (25k), Waymo (50k) and MegaDepth (50k). AdamW, base LR
84
+ 3e-4 with cosine schedule, evidence regularisation λ_evi = 1e-3.
85
+
86
+ ## Evaluation
87
+
88
+ `eval/reproduce_table1_table2.sh` in the GitHub repo reproduces the paper tables from
89
+ these checkpoints — AURC, AUSE, Spearman ρ, Sim(3)-aligned MAE/RMSE and NLL over
90
+ ScanNet++, TUM RGB-D, KITTI and ETH3D. See `eval/README.md` there for the protocol.
91
+
92
+ ## License and intended use
93
+
94
+ **CC BY-NC-SA 4.0 — non-commercial use only**, inherited from MASt3R and DUSt3R. See
95
+ `CHECKPOINTS_NOTICE` in the GitHub repo for the terms attached to the training datasets;
96
+ ScanNet++, Waymo and ETH3D additionally require registration with their providers.
97
+
98
+ These weights are trained at 224px for research on uncertainty-aware 3D reconstruction.
99
+ Other resolutions are outside the trained regime.
100
+
101
+ ## Citation
102
+
103
+ ```bibtex
104
+ @misc{zhu2026trust3r,
105
+ title = {Trust It or Not: Evidential Uncertainty for Feed-Forward 3D Reconstruction with Trust3R},
106
+ author = {Zhu, Zihao and Zhao, Wenyuan and Chen, Nuo and Tian, Chao and Fan, Zhiwen},
107
+ year = {2026},
108
+ eprint = {2605.19539},
109
+ archivePrefix = {arXiv}
110
+ }
111
+ ```
trust3r_nig_mast3r_224.metadata.json ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "Trust3R (NIG) \u2014 MASt3R backbone, 224px",
3
+ "paper": "Trust It or Not: Evidential Uncertainty for Feed-Forward 3D Reconstruction with Trust3R (ICML 2026)",
4
+ "variant": "NIG evidential head (diagonal / per-axis variance) + gated residual head, frozen MASt3R backbone",
5
+ "reproduces": "Table 6 (NIG ablation rows)",
6
+ "source_run": "gatedres_nig_xyz_mix4_150000_seed0_uq0.05_grpost_full",
7
+ "source_file": "checkpoint-final.pth (== checkpoint-step-150000.pth, bit-identical to checkpoint-best.pth / checkpoint-last.pth)",
8
+ "training_steps": 150000,
9
+ "epochs": 10,
10
+ "training_mix": "25000 @ ScanNetpp(split='train') + 25000 @ ARKitScenes(split='train') + 50000 @ Waymo(split='train') + 50000 @ MegaDepth(split='train') [resolution=224, aug_crop=16] -> 150k samples/epoch x 10 epochs = 150k steps @ batch_size 10",
11
+ "backbone_init": "MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric.pth",
12
+ "load_with": "mast3r.model.AsymmetricMASt3R.from_pretrained(<this file>)",
13
+ "eval_protocol": {
14
+ "head_type": "catmlp+dpt+xyz_evi_dpt+residual_gated",
15
+ "resolution": 224,
16
+ "max_pairs_per_benchmark": 5000,
17
+ "scene_fraction": 1.0,
18
+ "subset_seed": 0,
19
+ "alignment": "per-image Sim(3) before computing 3D errors (--sim3_align)",
20
+ "gr_post_smooth_at_inference": false,
21
+ "gr_post_smooth_note": "IMPORTANT: the paper's Table 1/2/5/6 numbers were produced with the gated-residual post-smoothing branch DISABLED at inference (head built from the model expression above, which leaves gr_post_smooth=False). The checkpoint still carries the post-smoothing weights trained with --gr_post_smooth 1 under the keys *.residual_gated.gate_post.* and *.residual_gated.delta_post.{0,1}.*; they are not used unless you explicitly enable gr_post_smooth. Enabling it will NOT reproduce the published numbers.",
22
+ "delta_post_shape_note": "delta_post in this checkpoint is a depthwise-separable Sequential (.0 = depthwise 3x3, .1 = pointwise 1x1). The released model code builds delta_post as a single depthwise Conv2d, so these 8 tensors land in unexpected_keys under load_state_dict(strict=False). This is harmless for reproduction because the branch is bypassed, but it means the smoothing module cannot be reconstructed from the released code as-is."
23
+ },
24
+ "paper_numbers": {
25
+ "readout": "u_epi (epistemic variance-trace)",
26
+ "table6_evidential_family_ablation": {
27
+ "ScanNet++": {
28
+ "AURC": 0.123662,
29
+ "AUSE": 0.044843,
30
+ "SpearmanRho": 0.487491
31
+ },
32
+ "ETH3D": {
33
+ "AURC": 0.321256,
34
+ "AUSE": 0.149341,
35
+ "SpearmanRho": 0.322906
36
+ }
37
+ }
38
+ },
39
+ "license": "CC BY-NC-SA 4.0 (inherited from MASt3R / DUSt3R); see CHECKPOINTS_NOTICE",
40
+ "sha256": "95b4ff101fd427d95dcb07f9ac2f3786b5b909d40a3697a7cea86da3cef3f9c0",
41
+ "size_bytes": 3181008615
42
+ }
trust3r_nig_mast3r_224.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:95b4ff101fd427d95dcb07f9ac2f3786b5b909d40a3697a7cea86da3cef3f9c0
3
+ size 3181008615
trust3r_nig_mast3r_224.pth.sha256 ADDED
@@ -0,0 +1 @@
 
 
1
+ 95b4ff101fd427d95dcb07f9ac2f3786b5b909d40a3697a7cea86da3cef3f9c0 trust3r_nig_mast3r_224.pth
trust3r_niw_mast3r_224.metadata.json ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "name": "Trust3R (NIW) \u2014 MASt3R backbone, 224px",
3
+ "paper": "Trust It or Not: Evidential Uncertainty for Feed-Forward 3D Reconstruction with Trust3R (ICML 2026)",
4
+ "variant": "NIW evidential head (full 3x3 covariance) + gated residual head, frozen MASt3R backbone",
5
+ "reproduces": "Tables 1, 2, 5, 6 (NIW rows); Figure 3",
6
+ "source_run": "gatedres_niw_xyz_mix4_150000_seed0_uq0.05_grpost_full",
7
+ "source_file": "checkpoint-final.pth (== checkpoint-step-150000.pth, bit-identical to checkpoint-best.pth / checkpoint-last.pth)",
8
+ "training_steps": 150000,
9
+ "epochs": 10,
10
+ "training_mix": "25000 @ ScanNetpp(split='train') + 25000 @ ARKitScenes(split='train') + 50000 @ Waymo(split='train') + 50000 @ MegaDepth(split='train') [resolution=224, aug_crop=16] -> 150k samples/epoch x 10 epochs = 150k steps @ batch_size 10",
11
+ "backbone_init": "MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric.pth",
12
+ "load_with": "mast3r.model.AsymmetricMASt3R.from_pretrained(<this file>)",
13
+ "eval_protocol": {
14
+ "head_type": "catmlp+dpt+xyz_niw_dpt+residual_gated",
15
+ "resolution": 224,
16
+ "max_pairs_per_benchmark": 5000,
17
+ "scene_fraction": 1.0,
18
+ "subset_seed": 0,
19
+ "alignment": "per-image Sim(3) before computing 3D errors (--sim3_align)",
20
+ "gr_post_smooth_at_inference": false,
21
+ "gr_post_smooth_note": "IMPORTANT: the paper's Table 1/2/5/6 numbers were produced with the gated-residual post-smoothing branch DISABLED at inference (head built from the model expression above, which leaves gr_post_smooth=False). The checkpoint still carries the post-smoothing weights trained with --gr_post_smooth 1 under the keys *.residual_gated.gate_post.* and *.residual_gated.delta_post.{0,1}.*; they are not used unless you explicitly enable gr_post_smooth. Enabling it will NOT reproduce the published numbers.",
22
+ "delta_post_shape_note": "delta_post in this checkpoint is a depthwise-separable Sequential (.0 = depthwise 3x3, .1 = pointwise 1x1). The released model code builds delta_post as a single depthwise Conv2d, so these 8 tensors land in unexpected_keys under load_state_dict(strict=False). This is harmless for reproduction because the branch is bypassed, but it means the smoothing module cannot be reconstructed from the released code as-is."
23
+ },
24
+ "paper_numbers": {
25
+ "readout": "u_epi (epistemic covariance-trace) -- the default ranking measure",
26
+ "table1_uncertainty": {
27
+ "ScanNet++": {
28
+ "AURC": 0.12328,
29
+ "AUSE": 0.044445,
30
+ "SpearmanRho": 0.493043
31
+ },
32
+ "TUM RGB-D": {
33
+ "AURC": 0.048135,
34
+ "AUSE": 0.017793,
35
+ "SpearmanRho": 0.516943
36
+ },
37
+ "KITTI": {
38
+ "AURC": 0.98689,
39
+ "AUSE": 0.44308,
40
+ "SpearmanRho": 0.459576
41
+ },
42
+ "Avg": {
43
+ "AURC": 0.386102,
44
+ "AUSE": 0.168439,
45
+ "SpearmanRho": 0.489854
46
+ }
47
+ },
48
+ "table2_reconstruction": {
49
+ "ScanNet++": {
50
+ "MAE": 0.195861,
51
+ "RMSE": 0.284884
52
+ },
53
+ "TUM RGB-D": {
54
+ "MAE": 0.087329,
55
+ "RMSE": 0.149637
56
+ },
57
+ "KITTI": {
58
+ "MAE": 1.664771,
59
+ "RMSE": 3.077223
60
+ }
61
+ },
62
+ "table5_6_eth3d": {
63
+ "u_alea": {
64
+ "AURC": 0.31749,
65
+ "AUSE": 0.145209,
66
+ "SpearmanRho": 0.309347
67
+ },
68
+ "u_total": {
69
+ "AURC": 0.306399,
70
+ "AUSE": 0.134117,
71
+ "SpearmanRho": 0.345515
72
+ },
73
+ "u_epi": {
74
+ "AURC": 0.304036,
75
+ "AUSE": 0.131755,
76
+ "SpearmanRho": 0.348302
77
+ }
78
+ }
79
+ },
80
+ "license": "CC BY-NC-SA 4.0 (inherited from MASt3R / DUSt3R); see CHECKPOINTS_NOTICE",
81
+ "sha256": "0754dae8e29f0ac0aa6063429f1ac1da8ecb4ec2a3a9339a2038d25f47b8e442",
82
+ "size_bytes": 3181008103
83
+ }
trust3r_niw_mast3r_224.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0754dae8e29f0ac0aa6063429f1ac1da8ecb4ec2a3a9339a2038d25f47b8e442
3
+ size 3181008103
trust3r_niw_mast3r_224.pth.sha256 ADDED
@@ -0,0 +1 @@
 
 
1
+ 0754dae8e29f0ac0aa6063429f1ac1da8ecb4ec2a3a9339a2038d25f47b8e442 trust3r_niw_mast3r_224.pth