๐Ÿ“š Study/Paper Review

3DGS์˜ tile rasterizer์—์„œ ๊ฒน์น˜๋Š” tile๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ์ธ์Šคํ„ด์Šคํ™”ํ•˜๋Š” ์ด์œ ?

์œฐ๊ฐฑ 2024. 5. 3. 18:50

3DGS์˜ tile rasterizer ๋ถ€๋ถ„์„ ์ฝ๋‹ค๊ฐ€ ์™œ ๊ทธ๋ ‡์ง€?ํ•˜๋Š” ์ƒ๊ฐ์„ ๋“ค๊ฒŒ ํ•œ ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋‹ค.
 

We then instantiate each Gaussian according to the number of tiles they overlap
and assign each instance a key that combines view space depth and tile ID.

xoft๋‹˜์˜ ์œ ํŠœ๋ธŒ ์ฐธ๊ณ 

 
์™œ ๊ฐ€์šฐ์‹œ์•ˆ์„ ๊ทธ๋“ค์ด ๊ฒน์น˜๋Š” ํƒ€์ผ ์ˆ˜๋กœ ์ธ์Šคํ„ด์Šคํ™”ํ•˜๋Š” ๊ฒƒ์ผ๊นŒ?
์ด๋Š” ํ•ด๋‹น ๊ฐ€์šฐ์‹œ์•ˆ์ด ์ด๋ฏธ์ง€์— ์–ด๋А์ •๋„ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.
 
์˜ˆ๋ฅผ ๋“ค์–ด, ํ•œ ์ด๋ฏธ์ง€๊ฐ€ ๋…ผ๋ฌธ์ฒ˜๋Ÿผ 16x16 ํƒ€์ผ๋กœ ๋ถ„ํ• ๋˜์–ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.
์ด๋ฏธ์ง€์— projection๋œ 2D ๊ฐ€์šฐ์‹œ์•ˆ๋“ค์„ ๊ณ ๋ คํ•ด๋ณผ ๋•Œ,
๊ฐ€์šฐ์‹œ์•ˆ์ด ๊ฒน์น˜๋Š” ํƒ€์ผ ์ˆ˜๊ฐ€ ๋งŽ์„ ๊ฒฝ์šฐ -> ํ•ด๋‹น ๊ฐ€์šฐ์‹œ์•ˆ์˜ ํŠน์ง•์ด ์ƒ๋Œ€์ ์œผ๋กœ ๋”  ์ค‘์š”ํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ฐ˜๋ฉด์—, ๊ฒน์น˜๋Š” ํƒ€์ผ ์ˆ˜๊ฐ€ ์ ์€ ๊ฒฝ์šฐ -> ํ•ด๋‹น ๊ฐ€์šฐ์‹œ์•ˆ์˜ ํŠน์ง•์ด ์ƒ๋Œ€์ ์œผ๋กœ ๋œ ์ค‘์š”ํ•˜๋‹ค๊ณ  ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.
 
์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ, ๊ฐ€์šฐ์‹œ์•ˆ์„ ๊ฒน์น˜๋Š” ํƒ€์ผ ์ˆ˜๋กœ ์ธ์Šคํ„ด์Šคํ™”ํ•จ์œผ๋กœ์จ
๊ฐ ๊ฐ€์šฐ์‹œ์•ˆ์˜ ์ค‘์š”์„ฑ์„ ํŒŒ์•…ํ•˜๊ณ , ์ด๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€๋ฅผ ์ ์ ˆํ•˜๊ฒŒ rasterization ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
 
 


โš  ๊ฒน์น˜๋Š” tile์ˆ˜๋ฅผ ํ†ตํ•ด view-space depth of Gaussian์„ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ๊ณ  ์˜คํ•ดํ–ˆ์—ˆ๋‹ค.

์˜คํ•ด ํ•ด๊ฒฐ)
view-space depth of Gaussian์€ 3D Gaussian๋•Œ๋ถ€ํ„ฐ ์•Œ๊ณ  ์žˆ๋Š” ์ •๋ณด๋‹ˆ๊นŒ ๊ทธ๊ฑธ encodingํ•œ๋‹ค๋Š” ๊ฒƒ ๊ฐ™์•„.

ํ˜„์žฌ 3D ๊ฐ€์šฐ์‹œ์•ˆ์ด Image Plane ์œ„๋กœ projectionํ•˜์—ฌ 2D ๊ฐ€์šฐ์‹œ์•ˆ์œผ๋กœ ๋ณ€ํ•œ ์ƒํƒœ์ด๋‹ค.
์ด๋•Œ 2D ๊ฐ€์šฐ์‹œ์•ˆ์ด ๊ฒน์นœ tile์˜ ๊ฐœ์ˆ˜๊ฐ€
๊ทธ ๊ฐ€์šฐ์‹œ์•ˆ์ด ์นด๋ฉ”๋ผ๋กœ๋ถ€ํ„ฐ์˜ ๋–จ์–ด์ง„ ๊ฑฐ๋ฆฌ(depth)์™€ ์–ด๋–ค ์—ฐ๊ด€์„ฑ์ด ์žˆ๋Š” ๊ฒƒ์ผ๊นŒ?
 
ํ•œ๋งˆ๋””๋กœ ์ •๋ฆฌํ•˜๋ฉด,
Image plane์— ์ƒ๊ธด 2D ๊ฐ€์šฐ์‹œ์•ˆ์„ ๋ณด๊ณ  ์–ด๋–ป๊ฒŒ ์นด๋ฉ”๋ผ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ผ๊นŒ?
 
๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ์œผ๋กœ๋Š”, ๊ฒน์น˜๋Š” tile์ˆ˜๊ฐ€ ๋งŽ์„์ˆ˜๋ก, view space depth๊ฐ€ ๋” ๊นŠ๋‹ค๊ณ  ์—ฌ๊ธธ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.
๊ทธ ์ด์œ ๋Š”,
๊ฒน์น˜๋Š” tile์ˆ˜๊ฐ€ ๋งŽ๋‹ค๋Š”๊ฑด, ํ•ด๋‹น ์œ„์น˜์—์„œ์˜ ์ •๋ณด๊ฐ€ ๋” ๋„“์€ ์˜์—ญ์„ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
์ด๋Š” ํ•ด๋‹น ์œ„์น˜์—์„œ์˜ ์ •๋ณด๊ฐ€ ๋ณด๋‹ค ๊ด‘๋ฒ”์œ„ํ•œ ๊ณต๊ฐ„์„ ํฌํ•จํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋” ๊นŠ์€ ๊ณณ์— ์œ„์น˜ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.
์ฆ‰ ๋‹ค์‹œ ๋งํ•ด ๋ฐฐ๊ฒฝ์ด ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
 
์˜ˆ๋ฅผ ๋“ค์–ด, ์ž”๋””๋ฐญ์— ๊ณต์ด ์žˆ๋Š” image๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.
์ด๋ฅผ point cloud๋กœ ํ‘œํ˜„์„ ํ•œ๋‹ค๋ฉด, ์ž”๋””๋ฐญ๋ณด๋‹ค๋Š” ๊ณต์— point๊ฐ€ ๋งŽ์„ ๊ฒƒ์ด๋‹ค.
๊ทธ ์ด์œ ๋Š”, ์ž”๋””๋ฐญ์€ ํฌ๊ณ  ๋„“์€ ํ‘œ๋ฉด์„ ํ˜•์„ฑํ•˜๋ฏ€๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ์ ์€ ์ˆ˜์˜ point๊ฐ€ ํ•„์š”ํ•œ ๋ฐ˜๋ฉด
๊ณต์€ ํ‘œ๋ฉด์˜ ๊ณก๋ฅ ์ด๋‚˜ ์„ธ๋ถ€์ ์ธ ํ˜•ํƒœ๋ฅผ ์ •ํ™•ํ•˜๊ธฐ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋” ๋งŽ์€ ํฌ์ธํŠธ๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค.
์ด์ œ ๊ทธ point๋“ค์„ ๊ธฐ์ค€์œผ๋กœ 3D Gaussian์„ ์ƒ์„ฑํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด๋ฉด
์ž”๋””๋ฐญ์˜ Gaussian์€ ๋” ๋„“์€ ์˜์—ญ์„ ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ณต์˜ Gaussian๋ณด๋‹ค ํฌ๊ธฐ๊ฐ€ ํด ๊ฒƒ์ด๋‹ค.
 
์ •๋ฆฌํ•ด๋ณด๋ฉด,
Gaussian์ด ํด์ˆ˜๋ก = overlap๋˜๋Š” tile์ˆ˜๊ฐ€ ๋งŽ๊ณ  = ๋” ๋„“์€ ์˜์—ญ์„ ํฌํ•จํ•˜๋ฏ€๋กœ ๋ฐฐ๊ฒฝ์ด ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Œ = ๊นŠ์ด๊ฐ€ ๊นŠ์„ ๊ฒƒ