-
Notifications
You must be signed in to change notification settings - Fork 113
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refined P3P solver, and a new implementation for rel_pose_upright_3pt #93
Conversation
Refine the P3P solver. A new implementation for the relative pose with known rotation axis.
Check C++ formatting: You can run this line at the top-level in the repo: |
Thanks! It should be fine now. |
@yaqding thanks for refinement! I took a quick look over changes and found out that ensuring BC is largest is enough to make current implementation as stable as lambda twist (according to poselib internal benchmark). Regarding posebench results - i failed to reproduce numbers you posted, all 4 implementation yielded the same AUC5=89.48 on eth3d_130_dusmanu, but it looks a strange given that current implementation is a bit less stable then lambda twist. I will try to find some time to recheck that. |
replaced std::vector with std::array
@S-o-T The little difference in the posebench is possibly due to the different random samples in different machines. After using std::array instead of std::vector, now the runtime is ~209ns. |
It seems it is still complaining about the formatting. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. We could potentially switch this to be the default p3p solver.
Did minor changes to set as default solver. |
Maybe make the older solver available as p3p_lambdatwist as well. |
added now |
fixed the same issue, email removed.
Refined P3P_ding solver.
Compare with default solver with Newton refinement:
without Newton refinement:
Performance on real dataset. Slight improvements over the existing solvers. First sequence AUC5 89.57 vs 89.48 and more efficient.
Latest implementation:
Default P3P solver:
Original p3p_ding by Mark Shachkov:
A new implementation for rel_pose_upright_3pt solver based on intersections of conics.
Default solver:
New implementation: