-
-
Notifications
You must be signed in to change notification settings - Fork 853
landmarks can now be defined with respect to a camera geometric frame instead of the world geometric frame #1896
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: develop
Are you sure you want to change the base?
Conversation
05ef3bd to
f4db7a0
Compare
f4db7a0 to
cf31ad5
Compare
|
This needs a unit test to validate the behavior on simple generated data. |
f5e691a to
886a40c
Compare
3e69cbc to
43e9590
Compare
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.
Pull Request Overview
This PR adds support for landmarks to be defined relative to a camera's geometric frame instead of the world frame. The new referenceViewIndex parameter enables landmarks to store their coordinates relative to a specific camera view, which requires coordinate transformations during bundle adjustment.
- New
referenceViewIndexfield added to landmarks for specifying reference camera frame - Updated serialization/deserialization to handle the new reference view parameter
- Added projection cost function for relative landmarks with coordinate transformation logic
Reviewed Changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| Landmark.hpp | Adds referenceViewIndex field and updates equality operator |
| jsonIO.cpp | Adds JSON serialization support for referenceViewIndex |
| AlembicImporter.cpp | Imports referenceViewIndex from Alembic format |
| AlembicExporter.cpp | Exports referenceViewIndex to Alembic format |
| projection.hpp | New ProjectionRelativeErrorFunctor for relative landmark projections |
| BundleAdjustmentCeres.cpp | Integrates relative projection cost function into bundle adjustment |
| bundleAdjustment_test.cpp | Adds test case for relative landmark bundle adjustment |
| NViewDataSet.hpp | Adds useRelative configuration flag for test datasets |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
43e9590 to
a0d612b
Compare
a0d612b to
1c989d9
Compare
|
Shouldn't there be a check everywhere we e.g. reproject landmarks into an image to take into account the relative view (or discard it if it is not supported)? |
1c989d9 to
115bbca
Compare
We are adding multiple things in successive PR. I do agree that we should but this will be a future effort which will rely on heavy modifications. |
115bbca to
e1a8073
Compare
6fa8f4d to
7ad85cb
Compare
A new parameter to landmarks is added "referenceViewId".
For a landmark, if this parameter is not UndefinedIndexT, this is considered as the reference view index for this landmark.
In this case, the landmark coordinates will be considered to be relative to the reference view geometric frame.