Add blender dataset + alpha training support#573
Add blender dataset + alpha training support#573thomakah wants to merge 1 commit intonerfstudio-project:mainfrom
Conversation
|
related issue (closed a bit quickly): #89 I knew it didn't work by looking at the nerfbaselines outputs, which had lots of distant floaters:
All the blender examples in https://nerfbaselines.github.io/m-gsplat have that issue, which is NOT reflected in the PSNR/SSIM numbers (@jkulhanek) Original 3DGS doesn't have the issue: https://nerfbaselines.github.io/m-gaussian-splatting Splatfacto isn't in nerfbaselines, but I think it doesn't have that issue. Looking at the code, it seemed clear that something was missing. Thank you @thomakah for fixing it. |
|
hey @thomakah i've implemented your pull request and i get similar results on the blender scenes with transparent bkgd. I was wondering if you have tried Blender scenes with non-transparent bkgd (e.g. hdri bkgd)? My NVS results for these scenes seem to be a lot worse (blurry bkgd, floaters), despite using a fairly simple camera trajectory and dense supervision |
|
@weihan1 no, I've only used a transparent background By HDRI background, do you mean you compose the render against an HDRI background? is the background rotated properly as it would be if it were a real 3D environment? Are you re-rendering from the original blender files to properly light the objects? I personally have not seen any use of radiance fields on synthetic data with a composed background. I think you would need at least need to adjust parameters. For example, the random point initialization needs to extend far enough to cover background. But it seems even more complex than that. I can't picture easily how the camera models would apply. For example, the HDRI would have a different effective focal length than the renders, right? |


This pull request adds the following:
The latter is the main intended purpose of the pull request, and the former is to allow for convenient testing on a public dataset with transparent images. Building off of this work, users can train models using matted photos to only produce splats for the object of interest - however this would require a small additional change on the COLMAP parsing to load the alpha channel (and is not included in this pull request).
Alpha is handled in the following way:
random_bkgdisTrue: on each iteration the same random background color is applied for both the photo and renderUsing the random background in training encourages better alpha consistency and reduces floaters. However, the final evaluation metrics are marginally worse than if using a fixed background. For this reason, I have not enforced a setting of
random_bkgd = Truewhen blender data is used.The metrics are included below.
alpha_iouis the intersection over union comparing the rendered alpha to the source image alpha channel (thresholding on> 127). nerfbaselines has also assessed the Blender dataset on an earlier version ofgsplat(patching in the dataset compatibility on their end). Compared to their results, 6 scenes show marginally better PSNR while 2 (materials and ficus) have marginally worse PSNR.