Gravity-aware partially calibrated absolute pose estimation from affine- or rotation-covariant features
Marcus Valtonen Örnhag, Alberto Jaenal, Stefan Adalbjörnsson
cs.CV
2026-08-20
UP1PfAC solves upright pose and focal length from one affine match; UP2PfORI needs two orientation features. Both cut RANSAC sampling from four points to one or two.
Absolute pose with unknown focal length (PnPf) has seven degrees of freedom. Classical minimal solvers want 3.5 point correspondences, which is expensive inside RANSAC. Phones, drones, and XR headsets already carry an IMU, so gravity collapses rotation to a single yaw about the vertical. Descriptors such as SIFT also carry scale and orientation, enough to approximate a local affine map. That extra geometry has been used for relative pose and for calibrated absolute pose. Partially calibrated absolute pose, focal length unknown, had not.
Query rotation is written as Ry (unknown yaw) times Rxz (the gravity-aligned known part). Yaw is parameterized by the half-angle tangent r = tan(θ/2). Focal length f is substituted into the affine and point constraints, producing polynomials in translation, r, and f.
UP1PfAC takes one affine correspondence: four affine equations plus two point equations, five unknowns, one affine equation dropped. The system is linear in translation, so the coefficient matrix needs a nontrivial nullspace. Vanishing 4×4 minors reduce to a quartic in r, solved in closed form, then f and translation are back-substituted. The unused affine equation picks the root, so each RANSAC sample yields one hypothesis.
UP2PfORI takes two orientation-only features (ORB-style): one orientation-covariant constraint plus four point equations, again a quartic in r, with the second orientation constraint picking the root. The two correspondences may come from different reference images, which fits HLOC-style multi-reference retrieval.
Gravity makes the camera upright. The half-angle tangent cannot represent a 180° yaw; a random rotation of the variables covers that case.
On noise-free synthetics, among solvers that estimate focal length, UP1PfAC and UP2.5Pf are the most stable, with most errors below 10^{-12}.
Median single-solve time in nanoseconds: UP1PfAC 2586, UP2PfORI 2149, P3.5Pf 19118, P4Pf 3179, UP2.5Pf 642. P3.5Pf is an order of magnitude slower. Inside RANSAC at 50% outliers, sampling one or two correspondences finds inliers faster.
Cambridge Landmarks, SuperPoint+LightGlue, unknown-focal group:
| Scene | UP1PfAC pos/rot/focal | P4Pf |
| GreatCourt | 57.7 cm / 0.13° / 0.009 | 61.5 cm / 0.14° / 0.010 |
| ShopFacade | 10.6 cm / 0.26° / 0.008 | 14.6 cm / 0.30° / 0.011 |
UP1PfAC is the best semi-calibrated solver on all five scenes for both error and time. Calibrated UP2P is at 31.6 cm on GreatCourt; semi-calibrated methods still pay a translation penalty for the focal-length ambiguity.
Aachen day, SuperPoint: UP1PfAC recalls 48.5% at 0.25 m/2°, P4Pf 46.1%, calibrated UP2P 71.8%. At night UP2PfORI reaches 62.3% versus P4Pf 54.5%. Nonlinear refinement pulls the semi-calibrated solvers together; time is what still separates them.
A concrete, incremental geometry result: the same unknown-focal problem drops from four points to one affine or two orientation features, which helps RANSAC's sampling exponent. XR and drones, devices with an IMU that must relocalize with unknown intrinsics, are the intended users. One affine correspondence is more accurate and more expensive; cheap ORB-like features can take UP2PfORI.
Translation is clearly worse than calibrated solvers; the focal-length ambiguity costs 20 cm or more on Cambridge. Query images are assumed upright, so a large headset pitch breaks Rxz. Affines are approximated from scale and orientation; SuperPoint needs a separate S3Esti pass for those. Normals come from 200 nearest neighbors, so reconstruction noise enters the constraints. IMU noise is tested around the 0.2° consumer-device level. On Aachen, semi-calibrated recall sits more than 20 points behind fully calibrated methods, and swapping the solver does not buy that back. There is no dedicated limitations section; the tables show it.