-
Hi there, I am interested in using the theseus library for bundle adjustment in my research project, and I have a couple of questions about its capabilities. Specifically, I was wondering:
I would greatly appreciate any information you could provide on these questions. Thank you very much for your time and assistance! Best regards, |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
Hi @kamzero thanks for your interest! Currently we do not support those two. However, if you are using BaSpaCho solver you won't need Schur complement since the solver is built to work without it. @maurimo (author) can share further insights if you have questions. Also tagging @fantaosha if you have anything to add. |
Beta Was this translation helpful? Give feedback.
-
Great question! On a practical note, probably you're better off doing sliding window directly in C++, unless you want to do differentiable sliding window, and then you need Theseus support for differentiable optimization? I think this is not something that is currently supported by Theseus, but here I think @mhmukadam @luisenp can correct me! |
Beta Was this translation helpful? Give feedback.
Great question!
In short (more details on BaSpaCho github page):
Cholesky decomposition, marginalization and Schur complement are essentially the same thing (if we allow some confusion of the languages of probability and linear algebra): Cholesky decomposition works doing iterative marginalization, while Schur complement (as used in bundle adjustment) is the realization that hey, you can marginalize simulateneously all the points, and can do so in parallel.
Since the best Cholesky solvers (like CHOLMOD) are of supernodal type, it means that they get their speed from adding some zero fill and using dense BLAS operations, but this strategy is very bad in the case of marginalization of point…