-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Incremental Model Refiner #2145
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
base: main
Are you sure you want to change the base?
Conversation
Added new option to sfm.h
Added new option to sfm.cc
@tsattler This is a nice new feature. The CI pipeline fails for some reasons though, which prevents me from merging the changes. Thanks. |
It used to work on some earlier release. Unfortunately, I haven't had the time to figure out where the problem is and to fix it. Planning to do this on one of the next days. |
No rush at all, thanks. |
Hi @tsattler, I believe I have fixed the compiling errors due to code changes,. I'm not sure if there were any tests failing as the pipeline logs are no longer available. What is the best way to submit my changes? Can I push to your local branch? |
What is a typical use case for this? |
You are given an initial set of camera poses and intrinsics that might not be super accurate, so you want to refine them. This helps getting better poses and a better model. |
Since PR #2429 simplifies the point triangulator, it would make sense to also simplify this PR to reuse components of the |
Will have a look once I find some time on my hands |
I'm also trying to get this to work because of DetectorFreeSfM. Triangulation is well encapsulated in IncrementalMapperController. Here my proposed solution:
Here is the implementation: main...Dawars:colmap:incremental_model_refiner Any feedback is welcome |
Thanks @Dawars, this indeed looks like a reasonable solution. Could you create a new PR such that I can provide detailed feedback there? |
Why not do it part of this PR? After all, it is about the same thing? |
Sure, if you have yourself time to update this PR to match the current state of the repo. The changes proposed by @Dawars look good to me. |
I don't have write permission here, so I created the new PR. #2685 |
Adjusted the IncrementalModelRefiner to work with the current version of colmap.
@@ -110,6 +110,8 @@ int main(int argc, char** argv) { | |||
commands.emplace_back("image_undistorter", &colmap::RunImageUndistorter); | |||
commands.emplace_back("image_undistorter_standalone", | |||
&colmap::RunImageUndistorterStandalone); | |||
commands.emplace_back("incremental_model_refiner", |
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.
nit: I would probably just call it "model_refiner" but no strong opinions.
Thanks @tsattler and sorry for the slow response. If you could add a short description for the new command in doc/cli.rst that would be great, otherwise this looks good to me. |
... and the code format needs to be fixed using scripts/format/c++.sh |
Fixed stupid bugs, formatted the code
Done. |
@ahojnnes the checks seems to be passing. How about I rename the method "model_refiner" (instead of "incremental_model_refiner"), add a description to doc/cli.rst , and we merge? |
Sounds great to me. Thank you 🙂 |
A variant of the point_triangulator (the code is based on the point_triangulator). For a given number of iterations, it, in each iteration, runs bundle adjustment and then completes and merges tracks. The bundle adjustment optimizes the camera parameters as well, allowing the refiner to handle inaccurate input poses better than the point_triangulator.