A Straight Line Is Not a Camera Pose: Auditing Short-Clip Pose Benchmarks
Organizations: Duke University
Abstract
The absolute trajectory error (ATE) is the standard measure of camera-motion accuracy, from SLAM to feed-forward 3D reconstruction. On the common Sintel protocol, an image-free constant-velocity line has a lower mean ATE than 10 of 11 recent models re-run with official code and than 85 of 110 published methods. On Lightspeed it beats 5 of 9 models and 10 of 11 published methods, while on TUM, ScanNet, DyCheck and ADT every model beats it. Two properties of ATE's alignment explain this. First, it maps any moving constant-velocity prediction onto the line that best fits the true path, so the line scores the path's regression residual. A residual signal-to-noise ratio (SNR) criterion tells when moving a prediction towards its constant-velocity fit lowers ATE. With the alignment's first-order refit, it accounts for the outcome of all but one of 4010 model-clip evaluations, including all 504 on three benchmarks registered before any model ran. The true path's straightness flags Sintel and Lightspeed. Second, the alignment ignores where cameras look: rotating a trajectory by 30 degrees against its orientations leaves ATE unchanged yet worsens the static-point reprojection of every model on Sintel, TUM and ScanNet, and the line reprojects worst on Sintel by geometric mean. Fitting the alignment's rotation to the predicted orientations gives pose-anchored ATE (PA-ATE), a one-function change at about ATE's cost (37 vs. 34 s per clip, and 61 vs. 66 s with the rotation error). It is never below ATE and, as we prove, equals the translational relative pose error over all frame pairs divided by when the orientations agree. It ranks every image-free reference below every model on Sintel, follows the reprojection error where ATE does not, and largely preserves the models' order. Its rotation error also exposes Lightspeed ground-truth orientations that the images contradict.
Figures & tables
| Sintel (14 clips) | TUM | ScanNet | |||||
| Method | ATE | half | cl. | PA-ATE | RPE r | ATE | ATE |
| 0.082 | 0.081 | 5 | 0.131 | 0.284 | 0.015 | 0.030 | |
| Line (no img.) | 0.092 | – | – | 0.540 | 0.964 | 0.148 | 0.232 |
| DA3-Giant | 0.112 | 0.092 | 7 | 0.163 | 0.347 | 0.012 | 0.032 |
| X | 0.113 | 0.097 | 5 | 0.171 | 0.265 | 0.011 | 0.030 |
| DA3-Base | 0.133 | 0.103 | 11 | 0.193 | 0.936 | 0.029 | 0.059 |
| models gaining | median | |||||
| Benchmark | clips | predicted | observed | ratio | SNR | |
| Sintel (official) | 14 | 0.99 | 10 | 11 | 0.78 | 0.86 |
| TUM (official) | 8 | 0.51 | 0 | 0 | 2.65 | 6.1 |
| ScanNet (official) | 94 | 0.67 | 0 | 0 | 2.25 | 5.7 |
| Bonn, full | 5 | 0.36 | 0 | 0 | 1.45 | 2.7 |
| Wild-SLAM, full | 10 | 0.23 | 0 | 0 | 6.66 | 27 |
| correct (%) | ||||||||
| Set | pairs | SNR | gain | error | criterion | +refit | ||
| Development | 1056 | 7.4 | 20 | 84 | 88 | 94 | 95 | 99.9 |
| Held-out | 792 | 2.6 | 38 | 61 | 62 | 90 | 98 | 100 |
| ScanNet | 1034 | 5.7 | 5 | 94 | 94 | 95 | 97 | 100 |
| Added methods | 624 | 4.5 | 14 | 89 | 84 | 90 | 97 | 100 |
| PA-ATE | 352 | 3.3 | 32 | 80 | 77 | 92 | 97 | 100 |
| Sintel (14 clips) | TUM (8) | ScanNet (94) | |||||||
|---|---|---|---|---|---|---|---|---|---|
| Score | rank | rot. | str. | rank | rot. | str. | rank | rot. | str. |
| ATE | 2 | 0 | 10 | 12 | 0 | 0 | 12 | 0 | 0 |
| PA-ATE | 12 | 11 | 6 | 12 | 11 | 0 | 12 | 11 | 0 |
| reprojection error | 11 | 11 | 3 | 12 | 11 | 0 | 12 | 11 | 0 |
| detects | ATE’s | µs per clip | |||||
|---|---|---|---|---|---|---|---|
| Score | rotation | form | alone | +rot. | ref | flips | |
| ATE (positions) | 34 | 66 | 1 | 22 | .54 | ||
| ATE’s rotation error | 66 | – | – | 0 | .54 | ||
| RPE t , 1 frame | 40 | 68 | 3 | 18 | .69 | ||
| RPE t , 10 frames | 38 | 66 | 11 | 9 | .65 | ||
| DTE [ 40 ] | – | 11 | 9 | .65 | |||
Appendix figures & tables22 assets
Supplementary material from the paper’s appendix.
Appendix
| correct (%) | |||||||||
| Set | pairs | SNR | error | criterion | +refit | gains | certified | ||
| Development | |||||||||
| Sintel | 154 | 0.86 | 69 | 63 | 98 | 97 | 100 | 108 | 104 |
| TUM | 88 | 6.1 | 81 | 92 | 93 | 95 | 100 | 17 | 13 |
| TUM-X | 330 | 11 | 85 | 94 | 94 | 91 | 100 | 37 | 8 |
| Bonn | 154 | 2.6 | 75 | 73 | 86 | 95 | 99.4 | 38 | 30 |
| Method | ATE | method date | source | value | 14 | Sim(3) | note |
|---|---|---|---|---|---|---|---|
| UniQuery4R | 0.0310 | 2026-08 | 2608.17283 | own | – | – | d |
| VGGT-Omega | 0.0400 | 2026-05 | median of 5 | re-eval. | 0 | 1 | d |
| GenCeption (Specialist - L) | 0.0500 | 2026-07 | 2607.09024 | own | – | – | |
| PURE (DA3) | 0.0520 | 2026-10 | 2610.14698 | own | – | yes | |
| SpatialTrackerV2 | 0.0540 | 2025-07 | 2507.12462 | own | – | yes | g |
| LASER (Pi3) | 0.0610 | 2025-12 | 2512.13680 | own | – | yes |
| Source (arXiv) | lowest | exclusion basis | methods |
|---|---|---|---|
| 2602.24290 | 0.012 | two-frame inputs, ground-truth intrinsics | UFO-4D |
| 2411.13291 | 0.015 | 9 of the 14 clips | DATAP-SfM (COLMAP subset) |
| 2605.12774 | 0.017 | 18 clips, scale-normalised (MegaSaM setup) | DROID-SLAM, MegaSaM, VGGT, ViPE, WildGS-SLAM, WildPose, pi3 |
| 2412.04463 | 0.018 | 18 clips, scale-normalised (MegaSaM setup) | ACE-Zero, ACE-Zero (calibrated), CasualSAM, CasualSAM (calibrated), LEAP-VO (calibrated), MegaSaM, MegaSaM (calibrated), MonST3R, ParticleSfM, ParticleSfM (calibrated), RoDynRF, RoDynRF (calibrated) |
| 2512.06868 | 0.019 | CasualSAM/MegaSaM setup, cm units | BA-Track, DynSLAM-3DPrior, WildGS-SLAM |
| 2605.10525 | 0.020 | video-depth protocol; ATE undefined | DA3 (GemDepth), GemDepth, VGGT (GemDepth) |
| Clip | X | VGGT | DA3-S | DA3-B | DA3-L | DA3-G | MapAny. | CUT3R | TTT3R | StrVGGT | Line | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| alley_2 | 0.007 | 0.013 | 0.009 | 0.036 | 0.032 | 0.010 | 0.006 | 0.032 | 0.030 | 0.025 | 0.033 | 0.039 |
| ambush_4 | 0.045 | 0.059 | 0.168 | 0.145 | 0.086 | 0.062 | 0.063 | 0.109 | 0.162 | 0.158 | 0.139 | 0.110 |
| ambush_5 | 0.038 | 0.023 | 0.043 | 0.104 | 0.086 | 0.044 | 0.039 | 0.083 | 0.073 | 0.073 | 0.095 | 0.032 |
| ambush_6 | 0.042 | 0.045 | 0.155 | 0.257 | 0.305 | 0.146 | 0.212 | 0.295 | 0.292 | 0.242 | 0.255 | 0.129 |
| cave_2 | 0.257 | 0.922 | 1.195 | 0.554 | 0.335 | 0.892 | 0.704 | 1.195 | 0.940 | 1.071 | 0.968 | 0.270 |
| cave_4 | 0.022 | 0.018 | 0.095 | 0.133 | 0.101 | 0.041 | 0.011 | 0.110 | 0.154 | 0.146 | 0.080 | 0.046 |
| Clip | X | VGGT | DA3-S | DA3-B | DA3-L | DA3-G | MapAny. | CUT3R | TTT3R | StrVGGT | Line | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| alley_2 | 0.013 | 0.014 | 0.011 | 0.051 | 0.039 | 0.018 | 0.006 | 0.034 | 0.040 | 0.034 | 0.041 | 0.479 |
| ambush_4 | 0.047 | 0.059 | 0.169 | 0.168 | 0.116 | 0.067 | 0.071 | 0.129 | 0.177 | 0.175 | 0.159 | 0.177 |
| ambush_5 | 0.073 | 0.084 | 0.069 | 0.109 | 0.096 | 0.093 | 0.062 | 0.086 | 0.080 | 0.073 | 0.110 | 0.253 |
| ambush_6 | 0.048 | 0.050 | 0.185 | 0.288 | 0.315 | 0.155 | 0.300 | 0.303 | 0.310 | 0.289 | 0.258 | 0.138 |
| cave_2 | 0.570 | 1.223 | 1.223 | 0.948 | 0.867 | 1.222 | 1.031 | 1.223 | 1.208 | 1.223 | 1.223 | 1.223 |
| cave_4 | 0.028 | 0.025 | 0.096 | 0.200 | 0.157 | 0.045 | 0.017 | 0.164 | 0.207 | 0.186 | 0.120 | 0.250 |
| line beats | ATE | PA-ATE | |||
|---|---|---|---|---|---|
| Clip left out | (ATE) | gain | rev. | gain | rev. |
| none (all 14) | 10 | 11 | 22 | 8 | 10 |
| alley_2 | 10 | 11 | 22 | 8 | 10 |
| ambush_4 | 10 | 11 | 22 | 8 | 11 |
| ambush_5 | 10 | 10 | 21 | 8 | 10 |
| ambush_6 | 10 | 11 | 23 | 8 | 10 |
| arithmetic mean over clips | geometric mean over clips | ||||||||||
| Score | rot. | ref | gain | rev. | split | ref | gain | rev. | split | ||
| ATE (positions) | 1 | 11 | 22 | .46 | .54 | 3 | 7 | 14 | .74 | .80 | |
| rotation error | – | 2 | 0 | .19 | .54 | – | 4 | 0 | .44 | .76 | |
| RPE t , 1 frame | 3 | 11 | 18 | .54 | .69 | 3 | 11 | 23 | .81 | .69 | |
| RPE t , 10 frames | 11 | 6 | 9 | .38 | .65 | 11 | 7 | 10 | .71 | .83 | |
| DTE [ 40 ] | 11 | 8 | 9 | .50 | .65 | 11 | 7 | 8 | .66 | .83 | |
| Score | Over clips | gaining | reversals | |
|---|---|---|---|---|
| ATE | arithmetic mean | 11 | 22 | 0.54 |
| ATE | median | 4 | 8 | 0.80 |
| ATE | geometric mean | 7 | 14 | 0.80 |
| PA-ATE | arithmetic mean | 8 | 10 | 0.69 |
| PA-ATE | median | 3 | 1 | 0.91 |
| PA-ATE | geometric mean | 7 | 8 | 0.83 |
| Score | ref | gain | rev. | split | |
|---|---|---|---|---|---|
| ATE (positions) | 4 | 4 | 8 | .61 | .80 |
| rotation error | – | 3 | 0 | .06 | .65 |
| RPE t , 1 frame | 3 | 11 | 18 | .67 | .69 |
| RPE t , 10 frames | 11 | 3 | 4 | .68 | .91 |
| DTE | 11 | 5 | 3 | .55 | .69 |
| PA-ATE | 11 | 3 | 1 | .59 | .91 |
| Sintel | TUM | Wild-SLAM | ||||
|---|---|---|---|---|---|---|
| Added orientation error | chordal | chordal | chordal | |||
| none | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 | 1.00 |
| per-frame noise 5 ∘ | 0.98 | 0.99 | 1.00 | 1.00 | 0.99 | 0.98 |
| constant bias 5 ∘ | 0.96 | 0.96 | 0.89 | 0.89 | 0.89 | 0.85 |
| drift 5 ∘ | 0.96 | 0.96 | 0.93 | 0.93 | 0.96 | 0.93 |
| drift 15 ∘ | 0.93 | 0.93 | 0.85 | 0.85 | 0.85 | 0.89 |
| arithmetic mean over clips | geometric mean over clips | ||||||||||
| Score | rot. | ref | gain | rev. | split | ref | gain | rev. | split | ||
| joint fit (positions + orientations) | 11 | 8 | 14 | .46 | .65 | 11 | 7 | 9 | .72 | .87 | |
| APE, full pose (evo) | 11 | 8 | 3 | .23 | .65 | 11 | 4 | 0 | .46 | .76 | |
| first-frame alignment | 11 | 7 | 5 | .38 | .57 | 11 | 7 | 9 | .63 | .87 | |
| AUC@30 (RRA/RTA) | 11 | 11 | 11 | .60 | .76 | 11 | 11 | 15 | .73 | .76 | |
| PA-ATE ( Tab. 5 ) | 11 | 8 | 10 | .47 | .69 | 11 | 7 | 8 | .74 | .83 | |
| line rank | rotated | straightened better | ||||||
|---|---|---|---|---|---|---|---|---|
| Data | filter | gap | scale | ATE | reproj. | reproj. worse | ATE | reproj. |
| Sintel | depthonly_d2 | 1 | median ratio | 2 | 11 | 11 | 10 | 3 |
| Sintel | depthonly_d2 | 5 | median ratio | 2 | 10 | 11 | 10 | 4 |
| Sintel | depthonly_d2 | 10 | median ratio | 2 | 11 | 10 | 10 | 6 |
| Sintel | f1_d2 | 1 | median ratio | 2 | 11 | 11 | 10 | 2 |
| Sintel | f1_d2 | 1 | umeyama | 2 | 11 | 11 | 10 | 6 |
| RPE t , | PA-ATE ATE, | |||||
|---|---|---|---|---|---|---|
| predictions | ATE | 10 fr. | DTE | PA-ATE | 95% | |
| Sintel | unmodified | 0.59 | 0.71 | 0.63 | 0.64 | to |
| + rotated | 0.34 | 0.65 | 0.64 | 0.63 | to | |
| + rotated, straightened | 0.32 | 0.62 | 0.61 | 0.61 | to | |
| TUM | unmodified | 0.84 | 0.87 | 0.86 | 0.86 | to |
| + rotated | 0.62 | 0.78 | 0.76 | 0.75 | to |
| Sintel | TUM | ScanNet | |
| model pairs (clip pair) | 770 | 440 | 5170 |
| same choice (%) | 88.2 | 92.7 | 91.4 |
| All pairs, full reprojection (%) | |||
| effect | 0.8 | 0.2 | 0.6 |
| 95% interval | 1.2 to 2.8 | 0.6 to 1.0 | 1.2 to 0.04 |
| All pairs, translation-only (%) | |||
| KITTI, 2 s | KITTI, 10 s | |||
|---|---|---|---|---|
| Image-free line | ATE | PA-ATE | ATE | PA-ATE |
| forward (optical axis) | 0.204 | 0.278 | 2.96 | 3.26 |
| backward, sideways and up | 0.204 | 5.73 | 2.96 | 30.2 |
| KITTI window | ||||
| Score | 2 s | 10 s | 30 s | 60 s |
| ATE | 7 | 8 | 4 | 2 |
| RPE t , 10 frames | 9 | 6 | 2 | 1 |
| DTE | 6 | 8 | 4 | 2 |
| PA-ATE | 7 | 7 | 3 | 2 |
| rotation error under the anchor | 11 | 11 | 11 | 11 |
| Lightspeed (36 clips) | DyCheck (12) | ADT (8) | |||||
|---|---|---|---|---|---|---|---|
| Model | ATE | half | PA-ATE ∗ | ATE | PA-ATE | ATE | PA-ATE |
| VGGT- | 0.028 | 0.056 | 0.011 | 0.005 | 0.005 | 0.010 | 0.011 |
| X | 0.040 | 0.060 | 0.015 | 0.009 | 0.010 | 0.010 | 0.011 |
| 0.044 | 0.058 | 0.018 | 0.010 | 0.012 | 0.014 | 0.015 | |
| DA3-Giant | 0.050 | 0.067 | 0.012 | 0.005 | 0.006 | 0.008 | 0.008 |
| DA3-Large | 0.144 | 0.112 | 0.044 | 0.009 | 0.010 | 0.055 | 0.065 |
| TUM (8 clips) | ScanNet (94 clips) | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Method | ATE | PA-ATE | ATE | median | PA-ATE | rot. | RPE | RPE | DTE | cl. |
| 0.015 | 0.016 | 0.030 | 0.027 | 0.038 | 1.15 | 0.0124 | 0.345 | 0.038 | 0 | |
| Line (no images) | 0.148 | 0.162 | 0.232 | 0.210 | 0.364 | 27.84 | 0.0306 | 1.869 | 0.274 | – |
| DA3-Giant | 0.012 | 0.014 | 0.032 | 0.029 | 0.041 | 1.19 | 0.0128 | 0.362 | 0.042 | 0 |
| X | 0.011 | 0.013 | 0.030 | 0.027 | 0.038 | 1.12 | 0.0124 | 0.345 | 0.037 | 0 |
| DA3-Base | 0.029 | 0.032 | 0.059 | 0.047 | 0.076 | 3.31 | 0.0233 | 1.152 | 0.076 | 5 |
Camera Pose Estimation
Camera pose estimation recovers a camera’s position and orientation from images, visual features, scene geometry, and sometimes sensor measurements.
See all 257 papers