sarafridov / plenoxels

JAX implementation of Plenoxels
111 stars 24 forks source link

About the negative density in voxel #6

Closed Fangkang515 closed 2 years ago

Fangkang515 commented 2 years ago

Thanks for your astonishing work.

I notice that some voxels have negative density or zero density. I was wondering how the density is defined if it's negative. According to Formulas 1 and 2 in the plenoxel paper, if density is negative, the result of RGB may be unreasonable. However, I did some experiments to clip the density in the trained model,and the PSNR decreased.

I didn't find a value domain constraint on density in the code. Maybe I missed something. So I hope to get your opinion.

Thanks!

sarafridov commented 2 years ago

During rendering, negative densities are clipped to zero with a ReLU: https://github.com/sarafridov/plenoxels/blob/main/plenoxel.py#L31

Fangkang515 commented 2 years ago

Thank you very much for your substantial reply. And I have another question about this. Since the negative densities are clipped to zero with a ReLU during rendering, why not add a nonnegative constraint on density in the optimization stage. That is, ensure that the densities stored on the voxel is positive.
Have you done any related experiments? How's the effect?
Hope to get your opinion. Thanks!

sarafridov commented 2 years ago

I don't remember if we tried this or not, but I wouldn't expect it to change anything. In some sense this happens anyway during the pruning phase, because empty voxels are deleted (replaced with all zeros).