Consistent world coordinates when training with different subsets of frustums #3727
Unanswered
NicolasAraya932
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
I am training a model on a dataset with camera frustums around an object, specifically the indoor bonsai n24 MipNeRF360 sparse dataset (see: https://nerfbaselines.github.io/mipnerf360-sparse).
When I train on the full set of frustums and then train a second model on a subset of those frustums (e.g., I delete roughly half of them), the world coordinate system changes between runs.
Because of this, I cannot directly match:
between the "full frustums" model and the "subset frustums" model, even though they are supposed to represent the same physical scene.
Screenshots illustrating the misalignment (same point set, different runs):
Setup
nerfstudio(using the COLMAP dataparsers)Experiments:
Experiment A (Full)
Experiment B (Subset)
Then I:
The resulting coordinate frames are different (visually shifted / recentered).
Observed behavior
Based on my visualizations, I do not observe any rescaling of the scene (and it's confirmed in the last topic).
The issue seems to be purely a change in origin and/or orientation, not a change in scale.
As a result:
What I tried
I was looking into the code to find where exactly the scene center is defined / fixed.
I found the function in
nerfstudio/cameras/camera_utils.py:Verification that the scenes are the same (up to a rigid transform)
To check whether the two trainings (full frustums vs subset of frustums) were actually learning the same geometry or something different, I did the following:
After this pipeline, the two scenes match well under a rigid SE(3) transform (rotation + translation, no scaling).
So:
Although this pose-correction pipeline works as a workaround, it adds extra complexity.
What I really need is a simpler solution: a way to keep the original dataset frustum positions / world frame fixed, so that training on a subset of cameras does not change the global pose convention in the first place.
Beta Was this translation helpful? Give feedback.
All reactions