Closed Yang-Xijie closed 9 months ago
Hi, 3DGS means the official 3DGS where a dilation operation is applied (Eq. 5 in mip-splatting paper).
3DGS + EWA means we replaced the dilation with an EWA filter which is also a gaussian filter. The difference between dilation and EWA filter is the coef part in the code (difference between Eq.5 and Eq. 10 in the paper). Please also refer to Sec 5.2 for the difference between EWA filter and our mip filter.
To tidy it up:
\mathcal{G}_k^{2D}(\mathbf{x})_{\text{2D dilation operation}} = e^{-\frac{1}{2}\left(\mathbf{x}-\mathbf{p}_k\right) ^T \left(\boldsymbol{\Sigma}_k^{2D} + s_1\mathbf{I}\right)^{-1} \left(\mathbf{x}-\mathbf{p}_k\right)}
is used in 3DGS. (from Eq. 5)
\mathcal{G}_k^{2D}(\mathbf{x})_{\text{2D Guassian filter}} = \sqrt{\frac{\left|\boldsymbol{\Sigma}_k^{2 D}\right|}{\left|\boldsymbol{\Sigma}_k^{2 D}+s_2 \mathbf{I}\right|}} e^{-\frac{1}{2}\left(\mathbf{x}-\mathbf{p}_k\right)^T\left(\boldsymbol{\Sigma}_k^{2 D}+s_2 \mathbf{I}\right)^{-1}\left(\mathbf{x}-\mathbf{p}_k\right)}
is the math form of filters used in both EWA and Mip-Splatting. (from Eq. 10)
Is this correct?
If it is correct, then my questions are related with the differences between the EWA filter and the Mip filter:
kernel_size
(default $s_2 = 0.3$) around the codes, but not change it anywhere. So is this value also chosen empirically?
And, in section 6.1, you mention that you choose the variance of our 2D Mip filter as 0.1. Is this a mismatch with codes where $s_2 = 0.3$?
Oh, I find that in all experiment commands, you add --kernel_size 0.1
so $s_2 = 0.1$ actually. I just pay attention to the default value of args: https://github.com/autonomousvision/mip-splatting/blob/ad7847a1c7f3f8eb47f24d58a42476d82d2df2f8/arguments/__init__.py#L57
Hi, that's correct.
I wonder why, if the original implementation of 3DGS includes the dilation operation, it is never mentioned in their original paper.
@MatteoFusconi This issue in the official repo of 3DGS might be helpful. And in HierarchicalGS, the authors admitted and fixed the dilation filter (Sec. 5.1).
Thanks for your great work!
I have a question. In the part "6.1. Implementation", you mention that
I'm confused about the meaning of "the EWA filter".
In the original Gaussian-Splatting (3DGS) implementation, there is a 2D low-pass filter, which chooses
s=0.3
in the equation $\mathcal{G}_k^{2D}(\mathbf{x}) = e^{-\frac{1}{2}\left(\mathbf{x}-\mathbf{p}_k\right) ^T \left(\boldsymbol{\Sigma}_k^{2D} + s\mathbf{I}\right)^{-1} \left(\mathbf{x}-\mathbf{p}_k\right)}$, and the correlated codes are shown in https://github.com/graphdeco-inria/diff-gaussian-rasterization/blob/59f5f77e3ddbac3ed9db93ec2cfe99ed6c5d121d/cuda_rasterizer/forward.cu#L73-L113.Do you mean the low-pass filter with
s=0.3
? If so, it seems that the EWA Splatting algotithm / EWA filter is already included in the official implementation of 3DGS. Could you please explain the differences between row titles of "3DGS" and "3DGS + EWA" that appear multiple times in tables of your paper? Do you mean:s=0.3
Or to be more simplified, my question is presented in the image below: