Skip to content

Conversation

@jb-ye
Copy link
Collaborator

@jb-ye jb-ye commented Feb 9, 2024

See previous threads here: nerfstudio-project/gsplat#117

The PR must be merged after this PR (version bump of gsplat lib, nerfstudio-project/gsplat#124)

@jb-ye jb-ye changed the title Implement new rasterization mode using alpha compensation factor Implement new rasterization mode using opacity compensation factor Feb 9, 2024
@ichsan2895
Copy link

So we must add --pipeline.model.rasterize-mode 'standard' after ns-train splatfacto to see the new result? then "classic" mode is same as Original splatfacto?

@ichsan2895
Copy link

ichsan2895 commented Feb 9, 2024

I tested on another dataset, so far only 4 tested (kitchen, truck, playroom, and desolation). Where 3 of them (truck, playroom, and desolation) I see a little bit improvement.

Kitchen dataset with splatfacto-v101:
0000_Classic-NewRasterizer
0005_Classic-NewRasterizer

Kitchen dataset with --pipeline.model.rasterize-mode 'standard':
0000_Standard-NewRasterizer
0005_Standard-NewRasterizer

playroom dataset:
Left = Using --pipeline.model.rasterize-mode 'standard'
PSNR = 31,44 dB

Right = using Splatfacto v1.0.1, so it don't use this rasterization.
PSNR = 31,38 dB

Standar_vs_Classic_NewRasterizer_0004
Standar_vs_Classic_NewRasterizer_0003
Standar_vs_Classic_NewRasterizer_0002
Standar_vs_Classic_NewRasterizer_0001

@ichsan2895
Copy link

truck dataset:
Left = Using --pipeline.model.rasterize-mode 'standard'
PSNR = 26,19 dB

Right = using Splatfacto v1.0.1, so it don't use this rasterization.
PSNR = 25,97 dB

image
image
image
image

@jb-ye
Copy link
Collaborator Author

jb-ye commented Feb 9, 2024

Currently only nerfstudio viewer is supported to display the results correctly. Most other viewers which were designed for the classic mode must accommodate the same change to show the right the results of this new feature.

@ichsan2895
Copy link

ichsan2895 commented Feb 9, 2024

Currently only nerfstudio viewer is supported to display the results correctly. Most other viewers which were designed for the classic mode must accommodate the same change to show the right the results of this new feature.

for truck and kitchen dataset that I have shown before, it was a frame from video which come from ns-render result. So, it does not screenshot the 3DGS Web viewer.

for playroom dataset, yes it is the screenshot from mkellogg 3D WebGL Gaussian Splat.

@jb-ye
Copy link
Collaborator Author

jb-ye commented Feb 13, 2024

It is nice to see that this change also improves PSNR a bit on validation images

Copy link
Collaborator

@kerrj kerrj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sgtm!

@kerrj kerrj merged commit eb9bcb5 into nerfstudio-project:main Feb 13, 2024
@jb-ye
Copy link
Collaborator Author

jb-ye commented Feb 13, 2024

The new mode name is called antialiased

@f-dy
Copy link
Contributor

f-dy commented Feb 15, 2024

IMHO this should become the default, because:

  • "antialiased" hold a closer-to-reality physical representation of the scene
  • it doesn't hurt eval results when eval images are at the same distance as train images (there's even a slight improvement)
  • it would certainly improve eval results for images that are closer or farther

Note that the best test data for this is to use something with a fine and regular texture (eg coarse-thread fabric, things with grids).

As we are getting closer to a physical representation, I hope that my proposed change on working in linear space rather than gamma-compressed (#925) will have a visible impact some day.

@f-dy
Copy link
Contributor

f-dy commented Feb 15, 2024

The fact that third-party viewers don't render 2D Gaussians correctly is their own issue (some code don't even have the +0.3 trick)

@gonzalle
Copy link

gonzalle commented Feb 19, 2024

Is it the same rasterization than this solution ???
it has a viewer based on mkkellog's one... (unfortunatly, unavailable in the repo)

@jb-ye
Copy link
Collaborator Author

jb-ye commented Feb 19, 2024

@gonzalle It is not exactly the same implementation as mip-splatting, but is in similar spirit and simpler. I don't think you can use that viewer to display PLY exports from splatfacto.

@jinhwanlazy
Copy link
Contributor

@jb-ye Could you please clarify why the opacity compensation is not being applied to the rasterization of the depth image?

torch.sigmoid(opacities_crop),

@jb-ye
Copy link
Collaborator Author

jb-ye commented Feb 23, 2024

@jinhwanlazy Nice catch. I think you are right, this is a bug we have to fix. Could you send out a PR to fix it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants