Fix: Masks having wrong dimension after undistortion (causes crash in splatfacto) #2987
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I noticed that masks in splatfacto are not working after undistortion. I get an error when masks are applied in the full images datamanager in line 881 (gt_img = gt_img * mask) as the shapes are (w, h, 3) and (w, h), however they need to be (w, h, 3) and (w, h, 1).
The resulting Error is: RuntimeError: The size of tensor a (3) must match the size of tensor b (3839) at non-singleton dimension 2
terminate called without an active exception
Please note that this issue is not present in nerfacto. Also it does not appear when using undistorted images (k- and p-params all 0)
I fixed it by adding the third dimension after undistortion. Tested both splatfacto and nerfacto as well, seems to be fixed to me.