ACE Zero

Brachmann 2024 · Paper

One-line summary — ACE Zero (ACE0) re-interprets incremental structure-from-motion as the iterated training and application of a scene coordinate regression relocalizer, recovering camera poses for unposed image collections without any pre-built 3D map.

Problem

Scene coordinate regression (SCR) relocalizers such as DSAC* and ACE are accurate and compact, but training their scene-specific networks requires ground-truth camera poses — which in practice come from a feature-based SfM tool like COLMAP. That is a circular dependency: you need a map to train the localizer, but a localizer to build the map. ACE0 asks whether the relocalizer itself can bootstrap reconstruction — estimating camera parameters H={(Ki,Ti)}\mathcal{H}=\{(K_i, T_i)\} for a set of images with no pose priors, no sequential ordering, and no pre-built 3D map.

Method & architecture

SfM = iterated relocalization. ACE0 loops between two stages until all images are posed: neural mapping (train an ACE-style SCR model on the currently registered images) and relocalization (use it to register more images). The scene representation is the ACE head — a 9-layer, 512-channel MLP (4 MB in fp16) on top of a frozen ScanNet-pretrained convolutional backbone; pixel positions, poses, and scene coordinates are tied by the projection pij=π(Ki,Ti,yij)\mathbf{p}_{ij}=\boldsymbol{\pi}(K_{i},T_{i},\mathbf{y}_{ij}), with yij=fSCR(pij,Ii)\mathbf{y}_{ij}=f_{\text{SCR}}(\mathbf{p}_{ij},I_{i}).

Neural mapping. At iteration tt, the registered set IRegt\mathcal{I}^{t}_{\text{Reg}} with pose estimates Tit,KitT^t_i, K^t_i serves as pseudo ground truth, and the scene model is trained by minimizing the pixel-wise reprojection error

IiIRegt  jIipijπ(Kit,Tit,yijt).\sum_{I_{i}\in\mathcal{I}^{t}_{\text{Reg}}}\;\sum_{j\in I_{i}}\left\|\mathbf{p}_{ij}-\boldsymbol{\pi}(K_{i}^{t},T_{i}^{t},\mathbf{y}_{ij}^{t})\right\|.

Because earlier registrations are only approximate, poses are refined during mapping: an MLP Tit=fPoset(T~it)T_{i}^{t}=f^{t}_{\text{Pose}}(\tilde{T}^{t}_{i}) ingests each initial pose as 12 values and predicts 12 additive offsets (rotations re-orthonormalized by Gram-Schmidt), jointly optimized with fSCRf_{\text{SCR}} under AdamW weight decay that biases updates to stay small — the MLP models correlations between cameras, unlike per-pose backprop. Focal length is refined too, via a single parameter: fit=finit(1+αt)f^{t}_{i}=f^{\text{init}}\cdot(1+\alpha^{t}), with finitf^{\text{init}} set to 70% of the image diagonal. The refinement MLP is discarded after each mapping iteration; this joint refinement is the SCR analogue of bundle adjustment.

Relocalization. All images (registered or not) are passed through fSCRtf^{t}_{\text{SCR}}, and PnP + RANSAC returns a pose plus confidence: T~it+1,sit+1=g(Kit,{(pij,yijt)})\tilde{T}^{t+1}_{i},\,s^{t+1}_{i}=g\left(K^{t}_{i},\{(\mathbf{p}_{ij},\mathbf{y}^{t}_{ij})\}\right). Using the inlier count as ss, the next training set is IRegt+1={Iisit+1>τs}\mathcal{I}^{t+1}_{\text{Reg}}=\{I_{i}\,|\,s^{t+1}_{i}>\tau_{s}\}.

Initialization from one image. The reprojection objective is ill-posed for a single view, so the seed network is trained on targets back-projected from a monocular depth estimate (ZoeDepth): y^ij=dij(Kseedinit)1pij\hat{\mathbf{y}}_{ij}=d_{ij}(K_{\text{seed}}^{\text{init}})^{-1}\mathbf{p}_{ij}, minimizing jy^ijyij\sum_{j}\|\hat{\mathbf{y}}_{ij}-\mathbf{y}_{ij}\| with the seed pose fixed to identity. Five random seeds are tried and the one relocalizing the most of 1000 held-out images wins (~1 min each). Depth is used only here. Adaptive patch sampling and early stopping (stop when 70% of batch reprojection errors stay below 10 px for 100 batches) shrink each mapping round well below ACE’s 5 minutes.

Results

Evaluated on 31 scenes across three datasets; since COLMAP poses are themselves estimates, pose quality is measured self-supervised via novel view synthesis — train Nerfacto on each method’s poses and report test-view PSNR. All ACE0 timings on a single V100.

Why it matters for SLAM

ACE Zero completes the SCR lineage (DSAC → DSAC* → ACE) by removing its last classical dependency: the SfM-generated ground-truth poses needed for training. This makes learning-based relocalization self-contained — the map lives entirely in network weights, so no raw images or explicit 3D points need be stored, which is attractive for crowd-sourced and privacy-preserving mapping, and positions SCR as a learning-based alternative to COLMAP-style reconstruction. It also inspired follow-ups pushing SCR into real-time SLAM (ACE-SLAM) and toward generalization (ACE-G).