3DGS는 렌더링 이미지의 high fidelity를 유지하기 위해, 많은 양의 메모리와 저장 공간이 요구되는 문제점을 가지고 있습니다. Compact 3DGS는 Gaussian의 수를 줄이고, Gaussian attributes를 압축하여 표현하는 방식으로, 성능을 유지하면서 메모리를 줄인 논문입니다. 25배의 저장 공간이 줄었으며 렌더링 속도도 향상되었다고 밝히고 있습니다.
기존 3D GS와의 차이점은 다음과 같습니다.
1️⃣ 성능 하락 없이 Gaussian 수 감소
a learnable mask strategy -> 효율적인 학습
2️⃣ Gaussian 압축 표현
Vector Quantization -> Gaussian의 geometry 정보를 codebook으로 압축하여 표현
a grid based neural field 사용 -> view-dependent color 압축하여 표현
3. Method
전체적인 구조는 다음과 같습니다. 1️⃣ 영향이 거의 없는 가우시안을 마스킹하고, 2️⃣ codebook을 통해 geomteric attributes를 표현합니다. 3️⃣ grid-based neural field를 통해 color를 표현한 후에, 4️⃣ 각 가우시안을 렌더링하게 됩니다.
3.1 Gaussian Volume Mask
Problem
3DGS large gradients를 가지는 가우시안들에 대해 cloning, splitting의 densification을 적용하였습니다. 이때, opacity를 두어 minimal opacity를 가지는 가우시안을 제거하도록 하였지만, 그럼에도 불필요한 가우시안들이 많이 존재합니다.
또한, 저자들은 small-sized 가우시안이 전반적인 렌더링 퀄리티에 사소한 악영향을 준다고 밝힙니다. 따라서, volume 뿐만 아니라 transparency를 학습하는 Gaussian Masking을 학습합니다.
σ: sigmoid function
위의 수식을 통해 masking을 학습하고, masking이 각 가우시안의 volume(scale)과 transparency(opacity)에 적용되도록 합니다.
이때, straight-through estimaton을 통해 discrete 변수인 mask에 대해 gradient를 추정할 수 있도록 하였습니다. (Mn 수식입니다.)
Masking loss
Lm=N1n=1∑Nσ(mn)
정확한 렌더링과 가우시안을 제거하는 수에 대한 밸런스를 조절하기 위해 masking loss를 추가하였습니다. 모든 densification마다 binary mask로 가우시안을 제거합니다.
3.2 Geometry Codebook
Problem
3DGS로 학습되는 가우시안들을 관찰한 결과, geometrical shapes는 대부분 거의 비슷하다고 밝힙니다. scale, rotation에서만 아주 미세한 차이를 보입니다. 또한, 각 가우시안의 primitive가 큰 범위의 다양성을 가지지 않습니다. 위의 사항들을 고려하여 geometric 성질을 표현하는 codebook을 도입하였습니다.
Codebook
VQ(vector quantization)를 적용하여 scale과 rotation을 포함한 geometric codebook을 구현하였습니다. VQ를 직접 적용하면 연산량이 매우 커지므로, L개의 stages에서 차례대로 VQ를 적용하는 R-VQ(residual vector quantization)를 제안합니다.
Z[i]∈R4: the vector at index i of the codebook Z
첫 번째 stage에서, 각 codebook 내에 scale, rotation 벡터와 가장 유사한 코드를 찾습니다. 다음 stage(l=2)에서, original vector와 stage output vector 간의 residual을 다음 Stage codebook에서 비교하게 됩니다. residual로 찾은 index를 codebook에 적용하여 r^2를 구한 후, 이전까지의 코드와 summation하여 해당 stage에서의 rotation을 구합니다. stage L까지 해당 과정을 반복합니다.
Codebook loss는 residual과 codebook vector간의 MSE loss를 최적화하는 것으로 구현되었습니다.
final stage에서의 output rotation과 R-VQ 과정에서의 output이 scale s에 유사하게 적용된다는 점을 이용하여 Ls도 비슷하게 loss 및 R-VQ 과정을 설계하였다고 합니다. initilization은 K-means 알고리즘으로 구현됩니다.
3.3 Compact View-dependent Color
SH(max 3 degrees)로 view-dependent color를 표현했을 때, 각 가우시안은 총 59 파라미터 중 48개를 요구합니다. (color에 사용되는 파라미터 수가 매우 많은 것을 확인할 수 있습니다.) 따라서, grid-based neural field를 이용하여 각 가우시안마다 color primitive를 갖지 않고도 color를 표현하도록 설계하였습니다.
f(⋅;θ): neural field
unbounded positions p∈RN×3을 bounded range로 표현하기 위해 hash grids를 사용하였습니다. 위의 수식을 분석하면, input positions을 hash grid에 넣고, 결과 feature와 view direction d를 MLP에 넣어, view-dependent color cn(d)을 획득합니다.
3.4 Training
L=Lren+λmLm+Lr+Ls
최종 Losst식은 다음과 같습니다. rendering loss는 L1+SSIM(GT<->rendered images)으로 사용하였으며, masking loss, geometry loss가 차례대로 적용되었습니다.
4. Results
Qualitative
Quality 측면에서 3D GS와 거의 동일한 것을 확인할 수 있습니다.
Quantitative
Metric 지표는 거의 비슷하지만, Storage에서 매우 절약된 것을 확인하실 수 있습니다.
Mip-NeRF 360 Dataset에서는 FPS가 향상되지 않았지만, Tanks&Templesd에서는 FPS가 약 30 정도 향상되었습니다.
Ablations
Masking
3D GS에 비해 더 적은 Ellipsoids를 가지지만, 렌더링 이미지에서는 차이를 거의 보이지 않습니다.
Residual VQ (Codebook)
R-VQ를 적용했을 때, 빨간색 박스에서 더 적은 가우시안 수를 가지는 것을 희미하게 확인할 수 있습니다.
Ablation Quantitatives
Masking 적용 시 가우시안 수가 1.3M 가까이 줄었으며, Storage가 약 300MB 감소되었습니다.
Hash grid 적용 시 Storage가 약 170MB 감소되었습니다.
Geometry 적용 시에도 Storage가 감소되며, 후처리(Huffman encoding) 적용 시에도 약간의 성능 향상을 보입니다.