File size: 4,439 Bytes
54a5b1f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5842ff3
12e342b
 
 
54a5b1f
5842ff3
54a5b1f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
---
license: cc-by-nc-4.0
tags:
- pose-estimation
- relative-pose-estimation
- multi-view
- computer-vision
- robotics
---

# G2G: Exploiting Intra-Group Geometry for Inter-Group Pose Estimation

<p align="center">
  <a href="https://weiyufei0217.github.io/G2G/"><b>🌐 Project Page</b></a>
  &nbsp;&nbsp;|&nbsp;&nbsp;
  <a href="https://arxiv.org/abs/2606.08284"><b>📄 arXiv</b></a>
  &nbsp;&nbsp;|&nbsp;&nbsp;
  <a href="https://github.com/WeiYuFei0217/G2G"><b>💻 Code (GitHub)</b></a>
</p>

> Recovering the relative 6-DoF pose between two image groups underlies cross-sequence relocalization, multi-camera rig odometry, and other multi-view tasks. Each group carries **known intra-group geometry** from a pre-built map, odometry, or rig calibration, and pretrained multi-view backbones already fuse such geometry into visual features. Yet current models treat all views as an unstructured set, leaving **cross-group reasoning** as the missing piece.
>
> G2G keeps a multi-view foundation model entirely frozen and adds three lightweight trainable modules (32M parameters, under 6% of the full model) to bridge the two groups: a perceiver resampler, a cross-group bridge with merged self-attention, and a multi-frame pose head. Supervised only by relative poses, G2G attains state-of-the-art accuracy on both tasks across four datasets.

This repository hosts the **released artifacts** for the paper. **Code, installation, and full usage live on GitHub:** https://github.com/WeiYuFei0217/G2G

## Contents

| Path | Description |
|------|-------------|
| `release_weights/*.pth` | 10 pretrained **G2G-only** weights (frozen backbone excluded; each ~123 MB) |
| `map-anything-model/` | Frozen MapAnything backbone (DINOv2-large/1024, ~2.1 GB) |
| `examples.zip` | Sanity-check input bundles (`reloc/` + `rig/`) |
| `eval_results.zip` | Paper-subset per-pair evaluation CSVs |

> **MapAnything backbone (mirrored here).** G2G runs on a frozen DINOv2-large / 1024-dim MapAnything backbone (MapAnything **v1.0.1**, commit `fde8425`). The exact compatible checkpoint (~2.1 GB) is included under `map-anything-model/`, because the current `facebook/map-anything` Hugging Face weights are the newer **giant / 1536-dim** variant and are **incompatible** with these G2G modules. MapAnything is a work by Meta AI ([facebookresearch/map-anything](https://github.com/facebookresearch/map-anything)); please also respect its original license when using this backbone.

## Pretrained weights

| Weight | Task | Dataset |
|--------|------|---------|
| `HM3D-Reloc.pth` | Reloc | HM3D |
| `TartanGround-Reloc.pth` | Reloc | TartanGround |
| `NCLT-Reloc.pth` | Reloc | NCLT |
| `ZJH-Reloc.pth` | Reloc | ZJH |
| `HM3D-Rig-8.pth` | Rig | HM3D (8-cam) |
| `HM3D-Rig-4.pth` | Rig | HM3D (4-cam) |
| `TartanGround-Rig-4.pth` | Rig | TartanGround (4-cam) |
| `NCLT-Rig-Intra.pth` | Rig | NCLT intra-season (5-cam) |
| `NCLT-Rig-Cross.pth` | Rig | NCLT cross-season (5-cam) |
| `ZJH-Rig-4.pth` | Rig | ZJH (4-cam) |

These are G2G-only weights (frozen backbone excluded). The evaluation scripts in the GitHub repo automatically handle partial loading.

## Download

Grab a single weight:

```python
from huggingface_hub import hf_hub_download

ckpt = hf_hub_download(
    repo_id="feixue22/G2G",
    filename="release_weights/HM3D-Reloc.pth",
)
print(ckpt)
```

Or pull everything (weights + example/eval bundles):

```python
from huggingface_hub import snapshot_download

local_dir = snapshot_download(repo_id="feixue22/G2G")
print(local_dir)
```

## Usage

These weights plug into the G2G code on GitHub. After cloning and installing
(https://github.com/WeiYuFei0217/G2G), run evaluation with the downloaded checkpoint:

```bash
python scripts/eval_reloc.py \
    --config configs/reloc/hm3d.yaml \
    --checkpoint release_weights/HM3D-Reloc.pth \
    --output-dir outputs/eval_HM3D-Reloc \
    --batch-size 16 --min-overlap 0.1
```

## License

[CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/).

## Citation

```bibtex
@misc{wei2026g2gexploitingintragroupgeometry,
      title={G2G: Exploiting Intra-Group Geometry for Inter-Group Pose Estimation},
      author={Yufei Wei and Shuhao Ye and Chenxiao Hu and Yiyuan Pan and Dongyu Feng and Rong Xiong and Yue Wang and Yanmei Jiao},
      year={2026},
      eprint={2606.08284},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={https://arxiv.org/abs/2606.08284},
}
```