Skip to content
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

A question:about camera pose optimization! #8

Open
ccy-ustb opened this issue Apr 7, 2023 · 1 comment
Open

A question:about camera pose optimization! #8

ccy-ustb opened this issue Apr 7, 2023 · 1 comment

Comments

@ccy-ustb
Copy link

ccy-ustb commented Apr 7, 2023

Hello, I am very interested in your work and would like to make some applications based on line map, such as visual localization..
Now that I have the initial pose and some 2D-3D line correspondences, how can I construct optimization problems to optimize the initial pose? (In the case of using only line correspondences instead of point line union)
Looking forward to your reply and wishing you a happy life!

@MarkYu98
Copy link
Collaborator

MarkYu98 commented Apr 12, 2023

There is a ceres-based optimizer LineLocEngine:


that only takes line correspondences and optimizes the initial camera pose. Take a look at limap.optimize.line_localization.solve_lineloc() and solve_lineloc_merged() for examples of how to use the optimizer from Python. You could also just use the point-line joint optimizer (JointLocEngine) while passing empty lists for point correspondences.

On a higher level, the heart of all our visual localization experiments is the function limap.estimators.pl_estimate_absolute_pose():

def pl_estimate_absolute_pose(cfg, l3ds, l3d_ids, l2ds, p3ds, p2ds, camera, campose=None,
.
When ransac.method is set to None in the configs, the localization is done using the optimizer mentioned over the initial pose; otherwise (hybrid) RANSAC is employed to robustly estimate the camera pose (in which case the initial pose is irrelevant). As line correspondences can be noisy, a RANSAC estimation might be preferred. Again, the joint optimization/hybrid RANSAC can be used with only line correspondences by passing empty lists for point correspondences.

We are currently working on documentations to better explain these functionalities in detail :)

zhangshaos pushed a commit to zhangshaos/limap that referenced this issue Jul 12, 2023
* endpoints triangulation as an option. port output folder.

* fix depth-based scoring for endpoints triangulation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants