Geometric Degeneracy and Algebraic Conditioning in Minimal Pose Estimation
This repository provides the reference implementation for the paper:
Luo, P. "From Qualitative to Quantitative: Geometric Degeneracy and Algebraic Conditioning in Minimal Pose Estimation."
├── cpp/
│ ├── CMakeLists.txt # CMake build
│ ├── include/ # Header files (p3p_luo.h, benchmark.h, data.h)
│ ├── src/ # P3P solver (p3p_luo.cpp) + benchmarks
│ ├── banno/ # Banno's solver
│ ├── ding/ # Ding's solver
│ ├── ke/ # Ke's solver
│ └── kneip/ # Kneip & Nakano solvers
├── matlab/ # MATLAB experiments & figure generation
├── python/ # Python figure generation
└── README.md
cd cpp
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j4./build/benchmark # Monte Carlo accuracy benchmark
./build/benchmark_ransac # RANSAC framework benchmark
./build/benchmark_tum # 7-Scenes real-data benchmark
./build/benchmark_cylinder # Danger cylinder conditioning experimentLocal-homography formulation with geometrically explicit constraint coefficients. Features: direct quartic construction, Newton refinement, bisector-based pose recovery.
fig_all_experiments.py— Scaling law validation, parameterization comparison, collinear analysisfig_geometry.py— 3D geometry formulation diagramfig_cylinder.py— Danger Cylinder geometric proof visualization
Condition number experiments, singularity verification, solver comparison benchmarks.
@article{luo2025p3p,
title={From Qualitative to Quantitative: Geometric Degeneracy and Algebraic Conditioning in Minimal Pose Estimation},
author={Luo, Peilin},
journal={Journal of Mathematical Imaging and Vision},
year={2025}
}