mapillary / OpenSfM

Open source Structure-from-Motion pipeline
https://www.opensfm.org/
BSD 2-Clause "Simplified" License
3.39k stars 859 forks source link

Supplying initial pose estimates #129

Open safijari opened 7 years ago

safijari commented 7 years ago

I'm having trouble figuring out how (if it is at all possible) I can supply an initial estimate for the camera pose. I'm dealing with a situation where the input images have very little overlap with one another but the camera poses are fairly well known. I wanna use OpenSFM to improve these initial pose estimates. I'm not super concerned with the reconstruction so long as I can recover better camera poses.

Is it possible to supply initial poses to the OpenSFM command line scripts (and also tell it that the estimates are "high quality")? If not, can someone suggest which part of the codebase I should be trolling to get the functionality I need? Thank you :)

paulinus commented 7 years ago

As of now, you can not provide initial estimates of the camera poses. It is possible to code support for that. You will need to build a script that does something similar to

1- Build a reconstruction with the initial camera poses 2- Triangulate points. Probably better to set a large threshold to be tolerant with imprecise poses 3- Bundle-adjust by adding a prior so that the poses don't move too much from the initial estimate. The bundle adjuster class has methods to add such priors

The main file to look for inspiration for that is reconstruct.py. For bundling with priors you will need your own version of the bundle function in that file.

elaughli commented 6 years ago

@safijari wondering if you had any luck with this

YanNoun commented 3 years ago

See https://github.com/mapillary/OpenSfM/issues/631 and https://github.com/mapillary/OpenSfM/issues/115