[Paper Review] Compact3D: Smaller and Faster Gaussian Splatting with Vector Quantization
0. Abstract
1. ๋ง์ Gaussian๋ค์ด similar parameters๋ฅผ ๊ณต์ ํ๋ค๋ ์ ์ ๋ฐ๊ฒฌํ๋ค
2. ๋ฐ๋ผ์, Gaussian parameters๋ฅผ quantizeํ๊ธฐ ์ํด K-means ๊ธฐ๋ฐ์ vector quantization ๋ฐฉ๋ฒ๋ก ์ ์ ์ํ๋ค.
์ด๋ ๊ฐ๊ฐ์ Gaussian์ ์ฝ๋ index์ ํจ๊ป codebook์ ์ ์ฅํ๋ค.
์ถ๊ฐ๋ก ์ธ๋ฑ์ค๋ ์ ๋ ฌํ ํ run-length encoding๊ณผ ๋น์ทํ ๋ฐฉ๋ฒ๋ก ์ ์ฌ์ฉํจ์ผ๋ก์จ ์์ถํ๋ค.
3. Gaussian ์๋ฅผ ์ค์ด๊ธฐ ์ํด zero opacity (invisible Gaussian)์ ์ฅ๋ คํ๋ regularizer๋ ์ ์ํ๋ค.
์ด ๋ฐฉ๋ฒ์ ๋ชจ๋ธ์ ์์ถํ๊ณ rendering ์๋๋ฅผ ๋น ๋ฅด๊ฒ ํ๋๋ฐ ํจ๊ณผ์ ์ด๋ค.
4. ๊ฒฐ๋ก ์ ์ผ๋ก ๊ธฐ์กด 3DGS์ ๋นํด ์ฑ๋ฅ์ ์ฝ๊ฐ ๋จ์ด์ง์ง๋ง,
storage cost๋ 40x - 50x ๋ฐฐ๋ก ์ค์ผ ์ ์์๊ณ , rendering time์ 2x-3x ๋ฐฐ ์ ๋ ๋นจ๋ผ์ก๋ค.
1. Introduction
3DGS์ ํ๊ณ์ ์, NeRF๋ชจ๋ธ์ ๋นํด ์ ์ฅํด์ผ ํ parameter ์๊ฐ ๋ง๋ค๋ ๊ฒ์ด๋ค.
์ด๋ ๋ชจ๋ธ์ ์ ์ฅ๊ณต๊ฐ๋ ๋ง์ด ๋ค๊ณ , ๊ฒฐ๊ณผ์ ์ผ๋ก๋ ์์ device์์์ real-world application์ ์ ์ฉํ๋๋ฐ ์ด๋ ค์์ด ์๋ค.
๋ํ์ ์ธ ์์๋ก๋ AR/VR headset์ ์ ์ฉํ ๋ storing, communicating, rendering ๋ฉด์์ ํฐ ํ๊ณ๋ฅผ ์ ์ํ๋ค.
๋ฐ๋ผ์ ๋ณธ ๋ ผ๋ฌธ์์๋ (1) Vector Quantization (2) Regularization ์ด๋ ๊ฒ ๋ ๋ฐฉ๋ฒ์ ์ ์ํ๊ณ ์์ธํ ์ดํด๋ณด๊ฒ ๋ค.
2. Method
3DGS์ parameters๋ฅผ ์์ถํ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ training ์ค์ Vector Quantization์ ์ฌ์ฉํ๊ณ
Gaussian์ ์๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ์ผ๋ก๋ opacity parameter๋ฅผ Regularizingํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
2.1 Vector Quantization
ํ๋์ ๊ฐ์ฐ์์์ 59๊ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ๊ฐ๋๋ฐ, scene์ ๊ตฌ์ฑํ๊ธฐ ์ํด์๋ ์ต์ํ 100๋ง๊ฐ์ ๊ฐ์ฐ์์์ด ํ์ํ๋ค.
์ผ๋ง๋ ๋ง์ ํ๋ผ๋ฏธํฐ ์๋ฅผ ์ ์ฅํด์ผ ํ๋ค๋ ๋ง์ธ๊ฐ!
๋ฐ๋ผ์, ๋ณธ ๋ ผ๋ฌธ์์ ์ ์ํ๋ ๊ฐ์ฅ ํต์ฌ ์์ด๋์ด๋
๋ง์ ๊ฐ์ฐ์์๋ค์ด ๋น์ทํ parameter (e.g. covariance)๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ค๋ณตํด์ ์ ์ฅํ์ง ๋ง์๋ ๋ง์ด๋ค!
1. 3DGS ๋ชจ๋ธ์๋ $N$๊ฐ์ ๊ฐ์ฐ์์์ด ์๊ณ , ๊ฐ ๊ฐ์ฐ์์์ $d$์ฐจ์์ parameter vector๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
2. K-Means ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ์ด $d$์ฐจ์์ ํ๋ผ๋ฏธํฐ ๋ฒกํฐ๋ค์ $K$๊ฐ์ ํด๋ฌ์คํฐ๋ก ๋ฌถ๋๋ค.
์ฌ๊ธฐ์ $K$๋ ํด๋ฌ์คํฐ ์๋ฅผ ์๋ฏธํ๊ณ ์ผ๋ฐ์ ์ผ๋ก $N$๋ณด๋ค ํจ์ฌ ์๋ค.
3. ํด๋ฌ์คํฐ๋ง ํ, ๊ฐ ํด๋ฌ์คํฐ์ ์ค์ฌ(centroid) ๋ฒกํฐ $K$๊ฐ๋ฅผ ์ ์ฅํ๋ค. ๊ฐ ์ค์ฌ ๋ฒกํฐ์ ํฌ๊ธฐ๋ $d$์ด๋ค.
๊ฐ ๊ฐ์ฐ์์์ ์ด๋ ํด๋ฌ์คํฐ์ ์ํ๋์ง์ ๋ํ ์ ๋ณด๊ฐ ํ์ํ๋ค.
์ด๋ฅผ ์ํด $N$๊ฐ์ ์ ์ ์ธ๋ฑ์ค(๊ฐ ๊ฐ์ฐ์์๋ง๋ค ํ๋์ฉ)๋ฅผ ์ ์ฅํ๋ค.
์ด ์ธ๋ฑ์ค๋ ๊ฐ ๊ฐ์ฐ์์์ด ์ํ ํด๋ฌ์คํฐ๋ฅผ ๋ํ๋ธ๋ค.
์ด ๋ฐฉ๋ฒ์ ๊ฒฐ๊ณผ์ ์ผ๋ก, N๊ฐ์ d์ฐจ์ ๋ฒกํฐ๋ฅผ K๊ฐ์ d์ฐจ์ ๋ฒกํฐ์ N๊ฐ์ ์ ์ ์ธ๋ฑ์ค๋ก ๋์ฒดํ๋ค.
N์ด K๋ณด๋ค ํจ์ฌ ํฌ๊ธฐ ๋๋ฌธ์, ์ด ๋ฐฉ๋ฒ์ ํฐ ์์ถ ๋น์จ์ ๋ฌ์ฑํ ์ ์๋ค.
๊ทธ๋ฌ๋ ๋จ์ํ ํ์ต๋ model parameter๋ค์ clusteringํ๋ ๊ฒ์ ์ฑ๋ฅ ๋ฉด์์ ๋๋น ์ง ์ ์๋ค.
๋ฐ๋ผ์ ๋ณธ ๋ ผ๋ฌธ์์๋ ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
(1) ํ์ตํ๋ ๋จ๊ณ์์๋, non-quantized parameter๊น์ง ์ ๋ถ ์ ์ฅํ๋ค..
(2) ํ์ต ์ค forward pass์์, parameter๋ค์ quantizeํ๊ณ ์ด๋ฅผ quantized version์ธ centroid๋ก ๋ฐ๊พผ๋ค
(3) ๊ทธ๋ฆฌ๊ณ ๋ฐ๊ฟ์ง ํ์ renderingํ๊ณ loss๋ฅผ ๊ณ์ฐํ๋ค.
(4) backward pass์์, quantized parameter์ ๋ํ gradient๋ค์ ์ป๊ณ non-quantized parameter๊น์ง ์ ๋ฐ์ดํธํ ์ ์๋๋ก gradient๋ฅผ copyํ๋ค
(5) ํ์ต ์ดํ, non-quantized parameter๋ ์ญ์ ํ๊ณ ์ค์ง codebook๊ณผ ๊ฐ์ฐ์์์ ๋ํ code index๋ค๋ง ์ ์ฅํ๋ค.
์กฐ๊ธ ์ด๋ ต๊ฒ ์ค๋ช ํ ๊ฒ ๊ฐ์ง๋ง, ๊ทธ๋ฅ ๊ฐ๋จํ๊ฒ ์ค๋ช ํ๋ฉด
ํ์ต๊ณผ์ ์ ์ผ๋ฐ 3DGS์ ๋น์ทํ๊ฒ ์งํํ๋, K-means๋ฅผ ํตํด codebook๊ณผ assignment๋ฅผ ์ ๋ฐ์ดํธํ๋ค.
๊ทธ๋ฆฌ๊ณ renderingํ๊ฑฐ๋ loss๊ณ์ฐํ ๋๋ quantized ๋ฒ์ ์ Gaussian์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ด๋ค.
K-means์ computation overhead๋ฅผ ์ค์ด๊ธฐ ์ํด์,
๋งค iteration๋ง๋ค centroid๋ฅผ ์ ๋ฐ์ดํธํ๋ ๋ฐ๋ฉด assignment๋ $t$ iter๋ง๋ค ์ ๋ฐ์ดํธ๋ฅผ ํ๋ค.
($t$๋ ์ผ๋ฐ์ ์ผ๋ก 500์ด์์ด์ด์ผ training์ด ๋๋ฌด ์ค๋๊ฑธ๋ฆฌ์ง ์์ผ๋ฉด์ ๊ด์ฐฎ์๋ค๊ณ ํ๋ค.)
๊ทธ๋ฆฌ๊ณ , ๊ฐ์ฐ์์๋ค์ element ์์๊ฐ ์ ํด์ง์ง ์์ ์งํฉ์ด๊ธฐ ๋๋ฌธ์,
quantize๋ index๋ฅผ ๊ธฐ์ค์ผ๋ก sortํ๊ณ RLE(Run-Length-Encoding) ๋ฐฉ๋ฒ์ผ๋ก ์ ์ฅํ๋ค.
RLE(Run-Length-Encoding)
: ์ฐ์์ ์ผ๋ก ๋ฐ๋ณต๋๋ ๊ฐ์ ํ๋์ ๊ฐ๊ณผ ๋ฐ๋ณต ํ์๋ก ํํํ๋ ์์ถ ๋ฐฉ๋ฒ
ex)
AAAABBBCCDAA๋ผ๋ ๋ฌธ์์ด์ RLE๋ก ์์ถํ๋ฉด
4A3B2C1D2A๊ฐ ๋๋ค.
K-means clustering์์๋
(1) assignment๋ก๋ถํฐ centroid๋ฅผ update ํ๋ ๋ฐฉ๋ฒ (2) centroid๋ก๋ถํฐ assignment๋ฅผ updateํ๋ ๋ฐฉ๋ฒ
์ด๋ ๊ฒ ๋๊ฐ์ง๊ฐ ์๋๋ฐ ๋๋ฒ์งธ ๋ฐฉ๋ฒ์ด ์ค๋ ๊ฑธ๋ ค์ ํน์ iter์์๋ง ์ํํ๋ค๊ณ ํ๋ค.
์ด ๋ถ๋ถ์ด ์ ์ดํด๊ฐ ์๋ผ์ ๋ฐ๋ก ์ ๋ฆฌํ๋ค
๋ํ, ์ ์ฒด d์ฐจ์์ ํ๋ผ๋ฏธํฐ์ ๋ํด์ K-means๋ฅผ ์ํํ๋ ๊ฒ์ ๋งค์ฐ ํฐ ์ฝ๋๋ถ์ด ํ์ํ๊ธฐ ๋๋ฌธ์
๋น์ทํ parameter๋ค์ ๊ทธ๋ฃน์ง์ด์ ๊ฐ๊ฐ ํด๋ฌ์คํฐ๋ง์ ์ํํ๋ค.
๋ฐ๋ผ์ ๊ฐ๊ฐ์ ๊ฐ์ฐ์์๋ค์ parameter์ ๋ฐ๋ฅธ ์ฌ๋ฌ ๊ฐ์ index๋ฅผ ๊ฐ๊ณ ์๋ค.
DC component of color, SH(Spherical Harmonics), Scale, Rotation ์ด๋ ๊ฒ 4๊ฐ์ ํ๋ผ๋ฏธํฐ๋ค์ quantizeํ๋ค.
๋ฐ๋ผ์ ๊ฒฐ๊ณผ์ ์ผ๋ก๋ 4๊ฐ์ ์ฝ๋๋ถ์ ์ฌ์ฉํ ๊ฒ์ด๋ค.
์ด๋, 1์ฐจ์ scalar์ธ opacity๋ ๊ตณ์ด quantizeํ์ง ์์๊ณ
point๋ค์ clustering ํ์ ๋ ๋์ผํ ์์น์ ๊ฐ์ฐ์์๋ค์ด ์กด์ฌํด ๊ฒน์น ์ ์๊ธฐ ๋๋ฌธ์ ๋ํ ํ์ง ์์๋ค.
๋ง์ง๋ง์ผ๋ก, index ์ญ์ integer์ด๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๋ ์ค์ด๊ธฐ ์ํด RLE ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
assignments๋ค์ ์์, ์ฆ ๊ฐ์ฐ์์๋ค์ ์์๋ ์ ํ ์ค์ํ์ง ์๊ธฐ ๋๋ฌธ์ ํ๋์ ์ธ๋ฑ์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ค.
์๋ฅผ ๋ค์ด์, Scale parameter์ ๋ํด ์ธ๋ฑ์ค ๋ฆฌ์คํธ๊ฐ [3,1,2,3,2,1]๋ผ๋ฉด,
์ด๋ฅผ ์ ๋ ฌํ์ฌ [1,1,2,2,3,3]๋ก ๋ง๋๋ ๊ฒ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๋ ฌ๋ ๋ฆฌ์คํธ์์๋ ๋์ผํ ์ธ๋ฑ์ค ๊ฐ์ ๊ฐ์ง ๊ฐ์ฐ์์๋ค์ด ์ฐ์์ผ๋ก ๋์ค๊ธฐ ๋๋ฌธ์
- ์ธ๋ฑ์ค 1: ์ฒซ ๋ฒ์งธ ์์น (0), ๋ ๊ฐ์ ๊ฐ์ฐ์์
- ์ธ๋ฑ์ค 2: ์ธ ๋ฒ์งธ ์์น (2), ๋ ๊ฐ์ ๊ฐ์ฐ์์
- ์ธ๋ฑ์ค 3: ๋ค์ฏ ๋ฒ์งธ ์์น (4), ๋ ๊ฐ์ ๊ฐ์ฐ์์
๋ค์๊ณผ ๊ฐ์ ๊ท์น์ผ๋ก ํํํ์ฌ [(0,2),(2,2),(4,2)] ์ด๋ ๊ฒ ์์ถํ ์ ์๋ค.
์๋๋ 6๊ฐ์ ์ ์๋ฅผ ์ ์ฅํด์ผ ํ์ง๋ง, RLE๋ฅผ ์ ์ฉํ ํ์๋ 3๊ฐ์ ์ ์๋ง ์ ์ฅํด๋ ๋๋ฏ๋ก ์์ถํจ๊ณผ๊ฐ ๋ํ๋๋ค.
2.2 Regularization
์์ ํ๋ฅผ ๋ณด๋ฉด, quantize๋์ง ์์ parameter๋ค (position, opacity)๊ฐ ์ฐจ์งํ๋ ๋ฉ๋ชจ๋ฆฌ ๋น์จ์ด ๋งค์ฐ ๋์ ๊ฒ์ ์ ์ ์๋ค.
์ด๋ฅผ ์ค์ด๊ธฐ ์ํด ๋ณธ ๋ ผ๋ฌธ์์๋ '๊ฐ์ฐ์์ ์๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ'์ ์ ์ํ๋ค.
๋ฐ๋ผ์, Lossํจ์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ ์ ์๋ค.
$L = L_{3DGS} + \lambda_{reg}\sum_{i}\sigma_{i}$
์ด๋ฅผ ํตํด, ๋ชจ๋ธ์ ํฌ๋ช ๋๋ฅผ ๋ฎ์ถ ์ ์๋ ๋ฐฉํฅ์ผ๋ก ํ์ตํ๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก๋, ๋ชจ๋ธ์ด Gaussian๋ค์ ํฌ๋ช ๋ ๊ฐ์ ๋ฎ์ถ๋๋ก ์ ๋ํ๊ณ ,
์ต์ข ์ ์ผ๋ก ํฌ๋ช ๋๊ฐ threshold ์ดํ์ธ Gaussian๋ค์ ์ ๊ฑฐํจ์ผ๋ก์จ ๊ฐ์ฐ์์ ์๋ฅผ ์ค์ผ ์ ์๋ ๊ฒ์ด๋ค.
3. Experiment
์คํ ๋ํ ์ผ์ ๋ํด ์ ๋ฆฌํด๋๊ฒ ๋ค.
- ๊ธฐ์กด 3DGS์ ๋น๊ตํด์ hyperparameter์์๋ ๋ณํ๊ฐ ์๋ค.
- Vector Quantization์ 20K iter ์ดํ๋ถํฐ ์ ์ฉํ๋ค. (์ฆ, ๋จ์ 10K ๋์)
- 20K-25K ๋์์๋ ๋งค 100๋ฒ์งธ iter๋ง๋ค K-means ์๊ณ ๋ฆฌ์ฆ์ ์คํํ๋ค.
- ๊ทธ๋ฆฌ๊ณ 25K-30K๋์์๋ ํด๋ฌ์คํฐ ํ ๋น์ ๊ณ ์ ํ๋ค.
- color์ ๋ํด์๋ 4096 ํฌ๊ธฐ, covariance์ ๋ํด์๋ 16384 ํฌ๊ธฐ์ codebook์ ์ฌ์ฉํ๋ค.
- 1000๋ฒ์ iter๋ง๋ค ์งํํ๋ pruning์ ๊ธฐ๋ฐ์ผ๋ก 15K-20K์๋ $\lambda_{reg} = 10^(-7)$ ์ฌ์ฉํ๋ค.
- ๋ชจ๋ ์คํ์ RTX-6000 GPU๋ฅผ ์ฌ์ฉํ๋ค.