-
Notifications
You must be signed in to change notification settings - Fork 313
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
Implement Bilateral Guided Gaussian Splatting. #291
Implement Bilateral Guided Gaussian Splatting. #291
Conversation
how to test it with gsplat-mcmc? Is it like this?
|
Use
|
Great, I will test later. I will inform the result in |
I got error when run
|
Oops. Missed an |
Whats going on to this PR? It really nice feature implementation for gsplat :) |
@ichsan2895 The nerfstudio team is comparing it to appearance embeddings and working on adding it to splatfacto. @liruilong940607 will probably decide what to do with this PR in gsplat when he gets back from vacation. |
Super exciting, I'm eager to test processing a sequence of frames! |
Hmm. I realize this probably isn't the right place, but I thought the point of Gsplat was to implement all the base methods, and for Nerfstudio/Splatfacto to integrate the individual methods from Gsplat. |
Bilateral grids can be used to improve both nerfacto and splatfacto. Thus it makes sense for the method to live nerfstudio and share code between the two. This method exists entirely outside the core gsplat rasterization library but could live in gsplat for showcase/experimentation purposes. |
Ah, okay, makes sense, I didn't realize it applied to NeRFs too. |
@jefequien Thanks very much for your great implementation. In my experiments, the grid sampling of large images will take unacceptable video memory because it will sample from a very large 5D grid with size (num_pixels_in_the_img, 12, 8, 16, 16), do you have any ideas on it? thanks in advance. |
The problem is solved with the custom grid_sample function, which can largely reduce memory consumption in the case of sampling from the same bilateral_grid(image). |
gsplat/util/lib_bilagrid.py
Outdated
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.
I think we could put this file under examples/
, as this is not something falls into the umbrella of gsplat
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.
LGTM overall! Just a minor request on moving the lib_bilagrid.py
to the examples/
folder
gsplat/util/__init__.py
Outdated
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.
Remove this util/ folder if we move the lib_bilagrid
out
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.
Done
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.
LGTM! thanks Jeffrey for bring the bilateral grid into gsplat!
Bilateral Guided Radiance Fields showed that bilateral grids are very effective at modeling exposure changes and other ISP effects. This PR ports their bilateral grid library onto Gaussian splatting. It seems quite effective at removing floaters in casually captured videos and improves color-corrected PSNR on the bilarf dataset.
compare_exp_opt.mp4
lionpavilion_compare.mp4
Original authors also expected this to work quite well. yuehaowang/bilarf#1
TODO:
Does this belong in gsplat or is this more appropriate for nerfstudio?