Skip to contentWhat changed
- Added a proper ETH3D frontend diagnostic path for bootstrap, tracking, pose estimation, and map growth.
- Built PnP diagnostics to inspect correspondence counts, inlier counts, and threshold sensitivity frame by frame.
- Added pose-support filtering to separate bootstrap-born landmarks from later map-growth landmarks during PnP.
- Added post-PnP spatial coverage checks to reject poses supported by tiny local image regions.
- Added component-based support diagnostics for the winning PnP inlier set.
- Added threshold-stability diagnostics to compare pose support across nearby reprojection thresholds.
What broke
- Some later ETH3D frames produced locally consistent but globally wrong pose hypotheses.
- Looser PnP thresholds could recover a different pose on a disjoint inlier set rather than a broader version of the same solution.
- Pre-PnP thinning and local motion-consistency filtering were not reliable enough to become default guardrails.
What was learned
- The main frontend failure mode was not simply “too few matches” but unstable pose support on ambiguous thin cable structure.
- Frame 4 showed that two different pose hypotheses could coexist, each supported by a different local cluster of correspondences.
- A small spatially concentrated support set can look geometrically plausible unless it is explicitly checked.
- Threshold-stability across nearby PnP settings is a stronger signal of a bad pose than component size alone.
- Guardrails are more useful after pose recovery than aggressive filtering before PnP.
Next
- Run the threshold-stability guard across more ETH3D sequences and longer windows.
- Measure false rejections on stable frames versus detections on unstable local-cluster poses.
- Decide whether threshold stability should become a default frontend acceptance rule.