DSAC*
Brachmann 2021 · Paper
One-line summary — The consolidated TPAMI version of the DSAC line: one unified scene-coordinate-regression framework for visual relocalization from RGB or RGB-D images, with substantially improved training stability and efficiency.
Problem
By 2020 the DSAC line had accumulated separate recipes for different settings — RGB vs RGB-D input, training with vs without a 3D scene model — each with its own initialization stages and stability caveats. DSAC* consolidates these variants into a single, reliable framework, so that scene coordinate regression can be applied uniformly across input modalities and supervision regimes.
Method & architecture
Scene coordinate regression + robust pose solving. A fully convolutional network maps a grayscale image to dense scene coordinates — the 3D point in scene space observed by each pixel, related to camera-space points by . The output is subsampled 8x, each prediction has an 81 px receptive field, and the map is the 28 MB of network weights. Pose optimization is classical RANSAC: sample hypotheses with a minimal solver — a P3P/PnP solver on 2D-3D correspondences for RGB (residual ), or the Kabsch solver on 3D-3D correspondences for RGB-D () — then choose the hypothesis with maximal inlier count ( px RGB / 10 cm RGB-D) and refine it iteratively on its inliers (Levenberg-Marquardt PnP or Kabsch).
One initialization objective for three settings. DSAC* trains in any of: RGB-D; RGB + 3D model (rendered ground-truth coordinates ); or RGB only. The unified per-pixel loss switches dynamically per pixel from 3D distance to reprojection error once a prediction becomes valid:
where soft-clamps the reprojection error (square root beyond 100 px). Without a 3D model, is replaced by heuristic targets hallucinated at constant 10 m depth. This replaces DSAC++‘s two wasteful separate initialization stages, halving pre-training from 4 to 2 days.
End-to-end training through differentiable RANSAC. The whole pipeline is then trained on the pose loss with . Every component is made differentiable: Kabsch via SVD gradients; PnP via analytical gradients of the last Gauss-Newton iteration, ; inlier counting via a sigmoid relaxation with ; and hypothesis selection via DSAC — sampling from a softmax over scores and minimizing the expected pose loss
whose gradient combines a score-function term with the pathwise derivative. Geometric data augmentation (±30° rotations, 66-150% rescaling) is added during training.
Results
- 7Scenes (% frames within 5 cm/5°): 85.2% in the RGB + 3D model setting — state of the art, matching SCoCR at a fraction of the model size (28 MB vs 165 MB); RGB-only training improves +27.6% over DSAC++; RGB-D accuracy slightly exceeds OtF Forests’ 93.4% (without their ICP post-processing). Data augmentation contributes +9.1/+7.7/+4.1% depending on setup (+51.5% on Stairs, RGB-only).
- 12Scenes: state of the art in all settings, ~99% — “solved”, even RGB-only for DSAC*.
- Cambridge Landmarks (median translation cm / rotation °, with 3D model): St Mary’s Church 13/0.4, Great Court 49/0.3, Old Hospital 21/0.4, King’s College 15/0.3, Shop Facade 5/0.3 — on par with DSAC++ but trained in 2.5 days instead of 6. Without a 3D model DSAC* beats DSAC++ on all scenes (e.g. Great Court 34/0.2 — better than any method trained with the model, whose SfM reconstruction is outlier-heavy).
- Efficiency: 50 ms forward pass (vs 150 ms DSAC++), 75 ms total inference (vs 200 ms); a 4 MB “Tiny” variant still reaches 73.6% (7Scenes) and 98.1% (12Scenes); 28 MB DSAC* gives the highest average accuracy in a scene-compression comparison on Cambridge.
Why it matters for SLAM
Relocalization — recovering the 6-DoF camera pose inside a previously mapped scene — is what SLAM systems need after tracking loss or when restarting in a known environment. DSAC* is the mature form of the scene-coordinate-regression answer: the map is stored implicitly in network weights while a geometric PnP/Kabsch + RANSAC solver stays in the loop, giving centimeter-level indoor accuracy from a single image. Its stable, consolidated training recipe became the reference baseline that the ACE family later accelerated by orders of magnitude.
Related
- DSAC — original differentiable RANSAC for camera localization
- DSAC++ — self-supervised training from camera poses only
- ACE — matches DSAC* accuracy with minutes of training
- ACE Zero — extends SCR to learn poses and map jointly from scratch
- CNN Pose Regression Limitations — why SCR beats direct pose regression