ECCV 2026

Learning Global Camera Poses from Noisy View-Graphs for Structure from Motion

VGPA · View-Graph Pose Averaging

Weizmann Institute of Science

Point cloud and 2,251 recovered camera frusta for MegaDepth scene 0141.
Scene 0141 — MegaDepth, 2,251 cameras recovered
Point cloud and 942 recovered camera frusta for MegaDepth scene 0023.
Scene 0023 — MegaDepth, 942 cameras recovered
Point cloud and 1,078 recovered camera frusta for MegaDepth scene 0455.
Scene 0455 — MegaDepth, 1,078 cameras recovered

Reconstructions and recovered cameras on three large scenes. The largest holds 2,251 cameras. Image-based deep methods such as VGGT and VGGSfM do not run at this scale.

Abstract

Camera pose estimation is a key step in 3D reconstruction and view-synthesis pipelines. We present a deep, global Structure-from-Motion framework based on learned view-graph aggregation. Our method employs a permutation-equivariant, edge-conditioned graph neural network that takes noisy pairwise relative poses as input and outputs globally consistent camera extrinsics. The network is trained without ground-truth supervision, relying solely on a relative-pose consistency objective. This is followed by 3D point triangulation and robust bundle adjustment. Our approach is efficient, scalable to more than a thousand images, and robust to graph density. We evaluate our method on MegaDepth, 1DSfM, Strecha, and BlendedMVS. These experiments demonstrate that our method achieves superior rotation and translation accuracy compared to deep track-centric methods while registering more images across many scenes, and competitive results compared to state-of-the-art classical pipelines, while being much faster.

At a glance

Runtime is the mean over the ten 1DSfM scenes, on the same point tracks as every baseline, and excludes the shared matching stage.

1.9M
parameters — the whole pose-averaging network
16×
faster than COLMAP, and 6× faster than GLOMAP
Self-supervised
no ground-truth poses are used at any stage of training

Interactive reconstructions

Interactive 3D views of the reconstructions. Press Explore in 3D on any of them to orbit it yourself.

Reconstruction of MegaDepth 0455: recovered 3D points with the estimated cameras in red.
Reconstruction of MegaDepth 0023: recovered 3D points with the estimated cameras in red.
Reconstruction of Notre Dame: recovered 3D points with the estimated cameras in red.
Reconstruction of Ellis Island: recovered 3D points with the estimated cameras in red.
Reconstruction of NYC Library: recovered 3D points with the estimated cameras in red.
Reconstruction of Yorkminster: recovered 3D points with the estimated cameras in red.

Method

The pipeline has two parts: preprocessing, which builds the view graph and the point tracks, and a network that averages the graph into global camera poses. The view graph has one node per image and one edge per relative pose recovered by RANSAC. Point tracks are used only afterwards, for triangulation and bundle adjustment.

VGPA architecture: preprocessing builds a view graph from essential matrices, an edge-conditioned GNN aggregates it into camera embeddings, a head regresses global extrinsics, and triangulation plus bundle adjustment recovers structure.

Preprocessing

SIFT matching and RANSAC give a partial set of essential matrices. Decomposing each yields a relative rotation Rij and a unit translation direction tij, which become the edges of the view graph. The matched pairs are also joined into point tracks, which are set aside until after the poses are solved.

Pose-averaging GNN

All the geometry lies on the edges, so nodes start from a shared token and are updated by edge-conditioned message passing. The network is equivariant to relabelings of the graph.

Pose head

A 3-layer MLP maps each node embedding to a translation and a quaternion, normalized to the unit sphere. One forward pass produces every camera in the scene at once.

Triangulation & BA

The predicted cameras and the point tracks give 3D points by DLT triangulation, followed by robust bundle adjustment. An optional view-reintegration step adds back cameras that bundle adjustment discarded.

Quantitative results

Nc is the number of input images, Nr the number registered. A marker highlights the best value in each row for each metric.

Scene Nc Out.% VGPA (ours) RESfM Theia GLOMAP
Nr Rot° Trans Nr Rot° Trans Nr Rot° Trans Nr Rot° Trans
Alamo 573 32.6 523 1.35 0.322 484 3.66 0.515 549 4.42 1.433 557 2.45 1.520
Ellis Island 227 25.1 215 0.28 0.081 214 0.82 0.122 213 5.01 1.527 219 0.58 0.155
Madrid Metropolis 333 39.4 298 1.31 0.145 244 8.42 0.827 319 2.61 0.903 320 1.22 0.242
Montreal Notre Dame 448 31.7 442 0.93 0.418 346 2.82 0.352 420 4.47 1.285 444 0.60 0.211
NYC Library 330 33.6 295 0.34 0.095 224 3.96 0.429 313 4.06 1.141 323 0.58 0.189
Notre Dame 549 35.6 527 0.52 0.105 517 1.20 0.231 531 3.70 0.828 543 2.73 0.389
Piazza del Popolo 336 33.1 318 5.37 0.670 249 2.20 0.186 324 3.31 1.053 331 0.80 0.188
Tower of London 467 27.0 457 0.89 0.057 94 0.67 0.026 448 6.61 1.189 466 0.81 0.138
Vienna Cathedral 824 31.4 763 7.90 0.590 479 1.52 0.112 767 12.25 1.663 822 2.00 2.414
Yorkminster 432 29.0 402 0.43 0.044 331 14.54 1.468 387 8.35 1.916 418 0.95 0.316
Mean 451 31.9 424 1.93 0.253 318 3.98 0.427 427 5.48 1.294 444 1.27 0.576

GLOMAP registers the most images on nine of ten scenes; VGPA is the most accurate on rotation and translation on the majority of them, and has the lowest mean translation error.

BibTeX

@inproceedings{khatib2026vgpa,
  title     = {Learning Global Camera Poses from Noisy View-Graphs
               for Structure from Motion},
  author    = {Khatib, Fadi and Galun, Meirav and Basri, Ronen},
  booktitle = {European Conference on Computer Vision (ECCV)},
  year      = {2026}
}