-
Notifications
You must be signed in to change notification settings - Fork 2
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
Consensus #2
Conversation
This isn't ready yet. I just found that it should be possible to perform lambda twist with 2d camera points, but I am unable to reproduce this. I am currently working on making this possible. Trying to follow some direction from openMVG/openMVG#1500. |
Hi @vadixidav, I just read quickly through the email. Thank you for the test fixes! Regarding sample consensus, I'm wondering if it would be better in a separate |
@mpizenberg As we talked about offline, it wasn't ready to merge yet. I fixed the issue I was encountering when trying to make it work with normalized image coordinates. The issue was that I assumed While I was trying to debug my code, I also cross checked the entire codebase, including every potential typo, with the OpenMVG source. I found absolutely no differences, so that should help corroborate that the implementation has no errors in C++ -> Rust translation 👍. If we should separate the sample consensus stuff into a separate crate, just let me know. |
Nalgebra has specific naming conventions, and "vector" refers to free
(unbound) vectors (R^3 for example) while "point" refers to the euclidian
space (E^3 for example) so that's why it adds a 0 in homogeneous
coordinates for vectors and adds a 1 for points. Beware that similar "math"
subtleties occur in the whole nalgebra code base.
Regarding sample consensus. I'm not familiar with what this trait actually
offers. But I'm aware that traits on a data structure can only be
implemented if you own the trait or the data structure. So maybe it'll have
to be there.
As mentioned in chat, I won't be available to check on this in the coming
weeks but I'm definitely interested in extending p3p with a sample
consensus approach for pnp. So if you have quick needs don't hesitate to
fork. I'm coming back to you with some feedback as soon as I can.
Cheers, have a nice end of year holiday.
…On Sat, Dec 21, 2019, 04:08 Geordon Worley ***@***.***> wrote:
@mpizenberg <https://github.com/mpizenberg> As we talked about offline,
it wasn't ready to merge yet. I fixed the issue I was encountering when
trying to make it work with normalized image coordinates. The issue was
that I assumed Vector2::to_homogeneous
<https://docs.rs/nalgebra/0.19.0/nalgebra/base/type.Vector.html#method.to_homogeneous>
appended a 1.0 to the coordinate, when it actually appended a 0.0. Now it
actually does work with normalized image coordinates. So long as the
coordinates are passed as if the focal length is 1.0 and the origin is
actually at the "camera center", it will perform lambda twist p3p with just
the 2d coordinates.
While I was trying to debug my code, I also cross checked the entire
codebase, including every potential typo, with the OpenMVG source. I found
absolutely no differences, so that should help corroborate that the
implementation has no errors in C++ -> Rust translation 👍.
If we should separate the sample consensus stuff into a separate crate,
just let me know.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAWFOCK4RWA4J5EXBLSYT2LQZWCEJANCNFSM4J3D56SA>
.
|
No worries. I am not in any rush. I will have some time off during the holidays so you will see me pop up doing some CV stuff here and there. The traits implemented here, which can be turned on with the
Note that in the unit test, sample consensus allows the removal of estimated models that do not fit all the points. It emits all four solutions as-is and the sample consensus algorithm (in this case |
I have refactored some of the types and logic into the |
This implements traits from
sample-consensus
and adds a test that shows that it is possible to estimate the pose using arrsac. It also fixes the degenerate case checking that is being used with quickcheck so that it succeeds seemingly 100% of the time for use in CI testing (which is now enabled).