๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
3D Vision Graphics Lab

[๋…ผ๋ฌธ ๋ฐœํ‘œ] NeRF : Representing Scenes as Neural Radiance Fields for View Synthesis

by coderSohyun 2024. 3. 13.

 

์ด๋ฒˆ์— NeRF ๋…ผ๋ฌธ์„ ์ฝ์—ˆ๋Š”๋ฐ์š”, 

๊ฐ„๋žตํ•˜๊ฒŒ NeRF์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•œ ๋‹ค์Œ์— 

๊ตฌ์ฒด์ ์œผ๋กœ NeRF์˜ ์•„ํ‚คํ…์ฒ˜์™€ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋ฐœํ‘œํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

 

 

NeRF๋Š” Neural Radiance Field์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค. 

์ œ๋ชฉ์—์„œ๋Š” View Synthesis๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ NeRF๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•œ๋‹ค๋Š”๋ฐ์š”, 

 

์—ฌ๊ธฐ์„œ view synthesis๋ผ๋Š” ๊ฒƒ์€ 

์—ฌ๋Ÿฌ view์—์„œ ์ฐ์€ ์–ด๋–ค ๊ฐ์ฒด์˜ ์‚ฌ์ง„์„ ํ•™์Šต ์‹œ์ผฐ์„ ๋•Œ 

๊ฐ์ฒด๋ฅผ ์ƒˆ๋กœ์šด view์—์„œ ๋ฐ”๋ผ๋ณด์•˜์„ ๋•Œ์˜ ๋ชจ์Šต์„ ์•Œ์•„๋‚ด๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค. 

 

์•ž์„œ ์—ฐ๊ตฌ์—์„œ๋Š” ์ด view synthesis ์ž‘์—…์ด ์„ฑ๋Šฅ์ด ์ข‹์ง€ ์•Š๊ฒŒ ๋‚˜์˜ค๊ฑฐ๋‚˜

๋งŽ์€ ๋ฐ์ดํ„ฐ์…‹์„ ์š”๊ตฌํ•ด ๋„ˆ๋ฌด ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์š”ํ•˜๋Š” ์–ด๋ ค์›€์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ด ๋…ผ๋ฌธ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ๋ฐฉ์•ˆ์ธ "NeRF"๋ฅผ ์ œ์‹œํ•œ๊ฑด๋ฐ์š”.

 

๊ทธ๋ž˜์„œ ์—ฌ๊ธฐ ๋“œ๋Ÿผ์„ธํŠธ์˜ ์˜ˆ์‹œ๋ฅผ ํ•œ๋ฒˆ ๋ณด์‹œ๋ฉด์š”,  

input์— ์„œ๋กœ ๋‹ค๋ฅธ view์—์„œ ๋ณธ ๋“œ๋Ÿผ์„ธํŠธ์˜ ๋ชจ์Šต์„ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด input๊ฐ’์„ NeRF ๋ชจ๋ธ์— ํ•™์Šต์‹œํ‚ค๋ฉด

์ƒˆ๋กœ์šด view์—์„œ ๋ฐ”๋ผ๋ณธ ๋“œ๋Ÿผ์„ธํŠธ์˜ ๋ชจ์Šต์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š”,

 

์ด๋ ‡๊ฒŒ ๊ฐ์ฒด์˜ 3D ๋ชจ๋ธ์„ ์ง์ ‘ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ 

2D์˜ ๋ถˆ์—ฐ์†์ ์ธ ์ด๋ฏธ์ง€๋“ค์„ ์ž…๋ ฅ์„ ๋ฐ›์•„์„œ NeRF๋ฅผ ํ•™์Šต์‹œํ‚ค๋ฉด

์ƒˆ๋กœ์šด view์—์„œ์˜ ๊ฐ์ฒด์˜ ๋ชจ์Šต์ด ์˜ˆ์ธก๋˜๊ณ  ์ƒ์„ฑ ๋ฉ๋‹ˆ๋‹ค. 

๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฐ ์ถœ๋ ฅ ์ด๋ฏธ์ง€๋“ค์„ ๋ชจ๋‘ ํ•ฉ์น˜๋ฉด ๊ฐ์ฒด๋ฅผ ๋ชจ๋“  ๋ฐฉ๋ฉด์—์„œ ์—ฐ์†์ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์–ด 

๊ฒฐ๊ตญ ๋งˆ์น˜ 3D๋กœ ๋ณด๋Š” ๊ฒƒ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ์ค„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

๊ทธ๋ž˜์„œ NeRF๋Š” ์ปดํ“จํ„ฐ ๋น„์ „, ๊ทธ๋ž˜ํ”ฝ์Šค ๋ถ„์•ผ์—์„œ ๊ต‰์žฅํžˆ ํ™œ๋ฐœํ•˜๊ฒŒ ์—ฐ๊ตฌ๊ฐ€ ๋˜๊ณ  ์žˆ๋Š” ๋ถ„์•ผ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

 

 

์•ž์„œ NeRF๋Š” 2D์˜ ์ด๋ฏธ์ง€๋ฅผ 3D๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š”๋ฐ, ์ด๋ฅผ view synthesis ๊ธฐ์ˆ ์„ ํ†ตํ•ด์„œ ํ•œ๋‹ค๊ณ  ๋ง์”€๋“œ๋ ธ๋Š”๋ฐ์š”, 

์ด์ œ ์กฐ๊ธˆ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ NeRF๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 3D ์ด๋ฏธ์ง€๋ฅผ ๋ Œ๋”๋งํ•˜๋Š”์ง€๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

 

๋จผ์ € input๊ฐ’์„ ๋ณด๋ฉด, ์นด๋ฉ”๋ผ ray๋ฅผ ๋”ฐ๋ผ ๋‚˜ํƒ€๋‚˜์ง€๋Š” continuousํ•œ 5์ฐจ์›์˜ ์ขŒํ‘œ๋ฅผ ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

์•ž์„œ ๋“œ๋Ÿผ์„ธํŠธ ์˜ˆ์‹œ๋ฅผ ๋ดค์„ ๋•Œ, 100์žฅ์˜ ์ด๋ฏธ์ง€๋ฅผ inputํ•œ๋‹ค๊ณ  ๋ง์”€์„ ๋“œ๋ ธ๋Š”๋ฐ์š”,

NeRF๋ฅผ ํ•™์Šต์‹œํ‚ฌ ๋•Œ 100์žฅ์˜ ์ด๋ฏธ์ง€๋ฅผ ํ•™์Šต์‹œํ‚ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ  

๊ฐ ์ด๋ฏธ์ง€๋“ค์˜ ํ”ฝ์…€ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ camera ray๋ฅผ ์ˆ์„ ๋•Œ ๊ทธ ์œ„์˜ ์ขŒํ‘œ๋“ค์„ samplingํ•˜์—ฌ ํ•™์Šต์‹œํ‚ต๋‹ˆ๋‹ค. 

 

์ด๋ฒˆ์—” ๋…ธ๋ž€ ๋ถˆ๋„์ € ์‚ฌ์ง„์„ ๋ณด๋ฉด

์นด๋ฉ”๋ผ์™€ input ๋ฐ›์€ ์‚ฌ์ง„, ๊ทธ๋ฆฌ๊ณ  ๋ฌผ์ฒด๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

input ๋ฐ›์€ ์‚ฌ์ง„์˜ ํ•œ ํ”ฝ์…€์„ ๊ธฐ์ค€์œผ๋กœ

์นด๋ฉ”๋ผ ray๋ฅผ ์˜์•˜์„ ๋•Œ ๋ฌผ์ฒด์— ๋‹ซ๋Š” ๋ถ€๋ถ„๋“ค, ์ฆ‰ ๋ฌผ์ฒด์˜ ์œ„์น˜ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด์ฃผ๋Š” ์ขŒํ‘œ๋“ค๊ณผ

์นด๋ฉ”๋ผ๊ฐ€ ๋ฌผ์ฒด๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๋ฐฉํ–ฅ์— ๋Œ€ํ•œ ์ขŒํ‘œ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

๊ทธ๋ ‡๊ฒŒ ์–ป์–ด๋‚ธ continuousํ•œ 5์ฐจ์›์˜ ์ขŒํ‘œ๋“ค์„ inputํ•˜์—ฌ 

fully-connectedํ•œ MLP ๋„คํŠธ์›Œํฌ์— ํ•™์Šต์‹œํ‚ค๋ฉด 

๊ทธ ray ์œ„์— sampling๋œ ์ขŒํ‘œ๊ฐ’๋“ค์— ๊ฐ๊ฐ ๋Œ€์‘ํ•˜๋Š” RGB๊ฐ’๊ณผ volume density๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. 

์—ฌ๊ธฐ์„œ RGB๊ฐ’์€ ๋ฌผ์ฒด์˜ color๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ด๊ณ ์š”, 

volume density๋Š” ํˆฌ๋ช…๋„์˜ ์—ญ์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๋Š” ๋ถˆํˆฌ๋ช…๋„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 

 

์ด๋ ‡๊ฒŒ ์–ป์–ด๋‚ธ ์ถœ๋ ฅ๊ฐ’๋“ค์€ volume renderingํ•  ๋•Œ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ๋ฐ

์ด๋ฅผ ํ†ตํ•ด์„œ ํ•˜๋‚˜์˜ ํ”ฝ์…€๊ฐ’์„ ํ•ฉ์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

 

์–ป์–ด๋‚ธ ํ”ฝ์…€๊ฐ’๊ณผ ground truth์˜ ํ”ฝ์…€๊ฐ’์„ ๋น„๊ตํ•ด loss๊ฐ’์„ ๊ตฌํ•˜๊ณ  backpropagationํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, 

์ด๋•Œ volume rendering์ด๋ผ๋Š” ๊ธฐ๋ฒ•์€ ๋ฏธ๋ถ„ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—

backpropagation์„ ํ†ตํ•ด์„œ ๋„คํŠธ์›Œํฌ๋ฅผ ํ•™์Šต์‹œํ‚ค๋Š” ๊ตฌ์กฐ๊ฐ€

NeRF์˜ ํ•™์Šต์‹œํ‚ค๋Š” ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค. 

(backpropagation, ๋ฏธ๋ถ„ ๊ฐ€๋Šฅ ๋“ฑ์— ๊ด€ํ•ด์„œ ๋ฌผ์–ด๋ณผ ์ˆ˜ ์žˆ์œผ๋‹ˆ ๊ณต๋ถ€ํ•˜๊ธฐ!) 

 

๊ทธ๋ž˜์„œ ์ œ๊ฐ€ ์„ค๋ช…ํ•œ NeRF ๋ชจ๋ธ์ด  

์ด ์‚ฌ์ง„์— ์˜ˆ์˜๊ฒŒ ํ‘œํ˜„๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

์ด ์‚ฌ์ง„์—์„œ ์ €์ž๋“ค์€ (a)์™€ (b)๋ฅผ ์ƒˆ๋กญ๊ฒŒ ์ œ์‹œํ•œ ๊ฒƒ์ด๊ณ , 

volume rendering ๋ถ€๋ถ„์€ ์ด๋ฏธ image rendering ๋ถ„์•ผ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด์„œ ๊ตฌํ˜„ํ–ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

(NEXT Page)

์ œ๊ฐ€ ์•ž์„œ MLP์— ๋Œ€ํ•ด์„œ๋Š” ๊ฐ„๋žตํ•˜๊ฒŒ fully-connectedํ•œ ๋„คํŠธ์›Œํฌ์ด๋‹ค~ ๋ผ๊ณ ๋งŒ ํ•˜๊ณ  ๋„˜์–ด๊ฐ€์„œ

MLP๋ฅผ ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ๋ณด๊ณ ์ž ํ•˜๋Š”๋ฐ์š”.

๊ทธ๋ž˜์„œ MLP ๋„คํŠธ์›Œํฌ์˜ ๊ตฌ์กฐ๋ฅผ ๋„์‹ํ™”ํ•œ ์‚ฌ์ง„์„ ๊ฐ€์ ธ์™€๋ดค์Šต๋‹ˆ๋‹ค. 

 

์ œ๊ฐ€ ์ฒ˜์Œ์— 5์ฐจ์›์˜ ๋ฐ์ดํ„ฐ๋ฅผ MLP์˜ input๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋ผ๊ณ  ๋ง์”€๋“œ๋ ธ์Šต๋‹ˆ๋‹ค.

๊ทผ๋ฐ ์‹ค์ œ๋กœ 5์ฐจ์›์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ๊บผ๋ฒˆ์— MLP์— ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜๊ฐ€ ์žˆ๋Š”๋ฐ์š”,

 

๋จผ์ € ๋ฌผ์ฒด์˜ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด์ฃผ๋Š” 3์ฐจ์›์˜ ์ขŒํ‘œ๋ฅผ input๊ฐ’์œผ๋กœ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด ๊ฐ’๋“ค์€ 8๊ฐœ์˜ fully-connectedํ•œ layer์„ ํ†ต๊ณผํ•˜๊ฒŒ ๋˜๊ณ  

output์œผ๋กœ๋Š” volume density์™€ 256์ฐจ์›์˜ feature vector๋ฅผ ์ถœ๋ ฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

๊ทธ๋ ‡๊ฒŒ ํ•ด์„œ ์•ž์„œ ๋ง์”€๋“œ๋ฆฐ volume density ๊ฐ’์„ ๋จผ์ € ๊ตฌํ•˜๊ฒŒ ๋˜๊ณ ,

 

์ด ๊ฐ’๊ณผ ๋ฐฉํ–ฅ์„ ๋‚˜ํƒ€๋‚ด์ฃผ๋Š” ์ขŒํ‘œ๋ฅผ ์ด๋•Œ ์ž…๋ ฅํ•ด์ฃผ๊ณ  

๋˜ ํ•˜๋‚˜์˜ additionalํ•œ fully connected layer์„ ํ†ต๊ณผํ–ˆ์„ ๋•Œ 

RGB๊ฐ’์ธ ๋ฌผ์ฒด์˜ ์ƒ‰๊น”์„ ์ถœ๋ ฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

 

์ด๋ ‡๊ฒŒ ์ƒ‰๊น”์„ ๊ตฌํ•  ๋•Œ๋Š” ๋ฐฉํ–ฅ ์ขŒํ‘œ๋ฅผ ๊ฐ™์ด ์ž…๋ ฅ ๋ฐ›๋Š” ์ด์œ ๋Š” Non-Lambertian Effect ๋•Œ๋ฌธ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ์š”, 

์ด Non-Lambertian Effect๋Š” ๋ฌผ์ฒด๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๊ฐ๋„์— ๋”ฐ๋Ÿฟ ์ƒ‰์ด๋‚˜ ๋ฐ˜์‚ฌ์œจ์ด ๋‹ฌ๋ผ์ง€๋Š” ํ˜„์ƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. 

๋”ฐ๋ผ์„œ ๋ฌผ์ฒด์˜ ๋ฐ€๋„๋ฅผ ๊ตฌํ•  ๋•Œ๋Š” ๋ฌผ์ฒด๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๊ฐ๋„์™€๋Š” ์ƒ๊ด€์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ฒ˜์Œ 8๊ฐœ์˜ FC์—์„œ๋Š” ์œ„์น˜ ์ •๋ณด๋งŒ ํ•™์Šตํ•˜๋„๋ก ํ•˜์˜€์ง€๋งŒ, RGB ๊ฐ’์„ ๊ตฌํ•  ๋•Œ๋Š” ๋ฌผ์ฒด๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๋ฐฉํ–ฅ ๊ฐ’๊นŒ์ง€ ์ถ”๊ฐ€์ ์œผ๋กœ ํ•™์Šต์‹œ์ผœ ๋งˆ์ง€๋ง‰ FC์— ์ž…๋ ฅ์œผ๋กœ ๋„ฃ์–ด์ค€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

 

(PREVIOUS Page)

๊ทธ๋ž˜์„œ MLP์˜ ์ถœ๋ ฅ๊ฐ’ ๋ถ€๋ถ„์—๋Š” RGB๊ฐ’์€ ์œ„์น˜ ์ขŒํ‘œ์™€ ๋ฐฉํ–ฅ ์ขŒํ‘œ๋ฅผ ๊ฐ™์ด ์ž…๋ ฅ ๋ฐ›์•„ ์˜ˆ์ธกํ–ˆ๋‹ค๊ณ  ๋˜์–ด์žˆ๊ณ , 

๋ฐ€๋„๊ฐ’์€ ์˜ค๋กœ์ง€ ์œ„์น˜ ์ขŒํ‘œ ๊ฐ’๋งŒ์œผ๋กœ ์˜ˆ์ธกํ–ˆ๋‹ค๊ณ  ๋˜์–ด ์žˆ๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค. 

 

๊ทธ๋ž˜์„œ ๋ฐ‘์— ์‚ฌ์ง„์„ ๋ณด์‹œ๋ฉด ground truth๊ฐ’๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ

view dependency๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š์•˜์„ ๋•Œ๋Š” ๋ฐ”ํ€ด์— ๋น›์ด ๋ฐ˜์‚ฌ๋˜์–ด ํ•˜์–—๊ฒŒ ๋ณด์ด๋Š” ๋ถ€๋ถ„์€ ๋ฐ˜์˜์ด ๋˜์ง€ ์•Š์€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์œ„์— ์‚ฌ์ง„์„ ๋ณด๋ฉด, ํ•˜๋‚˜์˜ view๋ฅผ ์žก๊ณ  ๋ฌผ์ฒด๋ฅผ ์›€์ง์˜€์„ ๋•Œ, ์ฆ‰ ๋ฌผ์ฒด๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๋ฐฉํ–ฅ์„ ๋ฐ”๋€Œ์คฌ์„ ๋•Œ,

์ƒ‰๊น”์ด ์—ฐ์†์ ์œผ๋กœ ์ž˜ ์ถœ๋ ฅ์ด ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

 

 

 

๋‹ค์Œ์œผ๋กœ๋Š” Volume Rendering ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์„ค๋ช…์ด ๋‚˜์˜ค๋Š”๋ฐ์š”, 

์ด ๋ถ€๋ถ„์€ NeRF ์ €์ž๋“ค์ด ์ง์ ‘ ๋งŒ๋“ค์–ด๋‚ธ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ๊ณ 

์ด๋ฏธ Image Rendering ๋ถ„์•ผ์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๊ธฐ๋ฒ•์ด์—ฌ์„œ 

๋…ผ๋ฌธ์—์„œ๋„ classic volume rendering technique๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ผ๊ณ  ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. 

 

๊ทธ๋ž˜์„œ volume rendering์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด 

volume density์™€ rgb๊ฐ’์„ ํ•ฉ์ณ์„œ ํ•˜๋‚˜์˜ ํ”ฝ์…€๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์ž‘์—…์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 

 

์ด ๊ฐœ๋…์— ๋Œ€ํ•œ ์ˆ˜์‹์€ (1) ์ˆ˜์‹์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

(1) ์ˆ˜์‹์„ ๋ณด๊ธฐ ์ „์—, r(t)๊ฐ’์„ ๋จผ์ € ๋ณด๋ฉด, 

์ด๊ฒƒ์€ ์นด๋ฉ”๋ผ ray๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 

o๋Š” ์›์  ์ฆ‰, ์นด๋ฉ”๋ผ์˜ ์œ„์น˜๋ฅผ ์˜๋ฏธํ•˜๊ณ , 

d๋Š” ์นด๋ฉ”๋ผ ray์˜ ๋ฐฉํ–ฅ, ๊ทธ๋ฆฌ๊ณ  t๋Š” ray ์œ„์˜ ์ ์˜ ์œ„์น˜๊ฐ€ ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

 

๊ทธ๋ž˜์„œ ์‹์„ ํฌ๊ฒŒ ๋ดค์„ ๋•Œ, ์นด๋ฉ”๋ผ ray์— ๋Œ€ํ•œ ๋ฐ€๋„์™€ RGB๊ฐ’์„ ์„œ๋กœ ๊ณฑํ•ด์„œ 

tn~tf๊นŒ์ง€ ๋งŒํผ ์ „๋ถ€ ์ ๋ถ„ํ•œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— density ๊ฐ’์ด ํด์ˆ˜๋ก ํ”ฝ์…€๊ฐ’์— RGB๊ฐ’์ด ๋” ๋งŽ์ด ๋ฐ˜์˜๋˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

๊ทผ๋ฐ ์—ฌ๊ธฐ์— ์ถ”๊ฐ€์ ์œผ๋กœ T(t)๋ผ๋Š” ๊ฐ’์ด ๋ณด์ด๋Š”๋ฐ์š”, ์ด๋Š” transmittance๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

Transmittance๋Š” t๋ณด๋‹ค ์•ž์— ์žˆ๋Š” ์ ๋“ค์˜ ๋ฐ€๋„์˜ ํ•ฉ์„ ์˜๋ฏธํ•˜๋Š”๋ฐ์š”, (์ ๋ถ„ ์‹ ๋ณด์—ฌ์ฃผ๋ฉด์„œ ๋งํ•˜๊ธฐ)

์ด ๊ฐ’์€ - ๋ถ€ํ˜ธ๋ฅผ ๊ฐ€์ง€๋ฏ€๋กœ transmittance๊ฐ’์ด ํด์ˆ˜๋ก ๋ณด๊ณ  ์‹ถ์€ ๋ฌผ์ฒด๊ฐ€ ๊ฐ€๋ ค์กŒ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 

 

์ด transmittance๊ฐ’๊นŒ์ง€ ๊ณฑํ•ด์คŒ์œผ๋กœ์จ ray์˜ ๊ตฌ๊ฐ„ ์•ˆ์˜ ๋ชจ๋“  ์ ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฐ˜์˜์„ ํ•˜์—ฌ 

๋ฐ€๋„์™€ RGB๊ฐ’์— ๋”ฐ๋ผ์„œ ํ•˜๋‚˜์˜ ์ด๋ฏธ์ง€ ํ”ฝ์…€๊ฐ’ C(t)๋ฅผ ๊ณ„์‚ฐํ•จ์„ ํ™•์ธํ•  ์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทผ๋ฐ ์—ฌ๊ธฐ์„œ ์ด๋Ÿฌํ•œ ์ƒ๊ฐ์„ ํ•˜์‹ค ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

์นด๋ฉ”๋ผ ray๋Š” ์ง์„ ์ด๊ณ  ์ด ์œ„์—๋Š” ๋ฌด์ˆ˜ํžˆ ๋งŽ์€ ์ ๋“ค์ด ์žˆ์„ํ…๋ฐ, 

์ด ๋ฌด์ˆ˜ํ•˜๊ฒŒ ๋งŽ์€ ์ ๋“ค์„ ์ „๋ถ€ samplingํ•˜๋Š” ๊ฒƒ์€ ๋ง์ด ๋˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ค ๊ฒƒ ๊ฐ™์•„์š”. 

 

๊ทธ๋ž˜์„œ ๋…ผ๋ฌธ์—์„œ๋„ ray ์œ„์—์„œ ๋ช‡ ๊ฐœ์˜ ์ ๋“ค์„ ์ƒ˜ํ”Œ๋งํ•˜์—ฌ ๋ฝ‘์•„๋‚ด๋Š”๋ฐ, 

ray ์œ„์—์„œ ๋ฌด์ž‘์œ„๋กœ ๋ฝ‘์•„๋‚ด๋ฉด ์ •๋ณด๊ฐ€ ์ ๋ฆฌ๊ฑฐ๋‚˜ ๋ถ€์กฑํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ๊น 

๋…ผ๋ฌธ์—์„œ๋Š” ray๋ฅผ N๋“ฑ๋ถ„ํ•˜์˜€๊ณ , ๊ฐ๊ฐ์˜ ๋“ฑ๋ถ„ํ•œ ๊ณณ์„ bin์ด๋ผ๊ณ  ํ‘œํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด bin๋“ค์€ ๋ชจ๋“  ํ™•๋ฅ ์ด ๊ท ์ผํ•œ ๋ถ„ํฌ๋ฅผ ์ด๋ฃจ๋„๋ก ์ ์„ ๋ฝ‘์Šต๋‹ˆ๋‹ค. 

์ด๋ ‡๊ฒŒ ๋˜๋ฉด ํ•™์Šตํ•  ๋•Œ๋งˆ๋‹ค sampling๋˜๋Š” ์ ์ด ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ ์—ฐ์†์ ์ธ ๊ฐ’์— ๋Œ€ํ•ด์„œ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์„ stratified sampling approach๋ผ๊ณ  ํ•˜๊ณ , 

์ˆ˜์‹ (2)์—์„œ ๋ณด์ด์‹œ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ

tn๋ถ€ํ„ฐ tf๊นŒ์ง€์˜ ๊ตฌ๊ฐ„์„ N๋“ฑ๋ถ„ํ•˜์—ฌ ๊ฐ ๋“ฑ๋ถ„ ๊ตฌ๊ฐ„์—์„œ i๋ฒˆ์งธ ๋‚œ์ˆ˜ ti๋ฅผ ์ƒ์„ฑํ•˜๋Š”๋ฐ

์ด๋•Œ ๊ฐ ๊ตฌ๊ฐ„๋งˆ๋‹ค Uniform Distribution (๊ท ์ผ ๋ถ„ํฌ)๋ฅผ ๋”ฐ๋ฅด๋„๋กํ•จ์„ ์ˆ˜์‹ํ™” ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

 

(NEXT Page) 

์ด๋ ‡๊ฒŒ NeRF์˜ ๊ธฐ๋ณธ์ ์ธ implementation ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์„ค๋ช…๋“œ๋ ธ๋Š”๋ฐ์š”,

์•„์‰ฝ๊ฒŒ๋„ high-frequency์™€ high-resolution์˜ complexํ•œ scene๋“ค์„ ํ‘œํ˜„ํ•˜๊ธฐ์—๋Š” ๊ธฐ๋ณธ์ ์ธ ๊ตฌํ˜„ ๋ฐฉ์‹์ด ์„ฑ๋Šฅ์— ์žˆ์–ด์„œ ๋ถ€์กฑํ•จ์„ ๋ณด์˜€๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

๊ทธ๋ž˜์„œ ๋…ผ๋ฌธ์—์„œ๋Š” ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Positional encoding ๋ฐฉ๋ฒ•๊ณผ Hierarchical volume sampling ๋ฐฉ๋ฒ•, 2๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

 

๋จผ์ € Positional Encoding์— ๋Œ€ํ•ด์„œ ๋ง์”€๋“œ๋ฆฌ์ž๋ฉด, NLP์—์„œ์˜ ๊ฐœ๋…๊ณผ๋Š” ๋‹ค๋ฅธ ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. 

NeRF์—์„œ Positional Encoding์„ ํ•˜๋Š” ์ด์œ ๋Š” high-frequency ์˜์—ญ๊นŒ์ง€ ํ•™์Šต์„ ํ•˜๊ณ  ์‹ถ์€๋ฐ, 

์ •์ž‘ ์ž…๋ ฅ๊ฐ’์ด 5์ฐจ์›๋ฐ–์— ๋˜์ง€ ์•Š์•„, ํ•™์Šตํ•  ๋•Œ ์ •๋ณด๊ฐ€ ๋งŽ์ด ๋ถ€์กฑํ•˜์—ฌ ์„ฑ๋Šฅ์ด ํฌ๊ฒŒ ๋–จ์–ด์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

 

๊ทธ๋ž˜์„œ (4)๋ฒˆ ์‹์„ ํ†ตํ•ด์„œ high-frequency ์ •๋ณด๊นŒ์ง€ ์ž˜ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์คฌ๋Š”๋ฐ์š”,

์ด ์ˆ˜์‹์—์„œ L์€ ์ฐจ์› ์ˆ˜๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 

๋…ผ๋ฌธ์—์„œ๋Š” ์ฒ˜์Œ ์œ„์น˜ ์ขŒํ‘œ๊ฐ’์— ๋Œ€ํ•ด์„œ๋Š” L์„ 10์œผ๋กœ, 

๋ฐฉํ–ฅ ์ขŒํ‘œ๊ฐ’์— ๋Œ€ํ•ด์„œ๋Š” L์„ 4๋กœ ํ•ด์คฌ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ์š”, 

 

๊ทธ๋ž˜์„œ MLP ๋„คํŠธ์›Œํฌ๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•˜๋ฉด ์™œ γ(x)์™€ γ(d)์˜ ์ฐจ์›์ด ๊ฐ๊ฐ 60์ฐจ์›๊ณผ 24์ฐจ์›์œผ๋กœ ํ‘œํ˜„๋๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

์™œ๋ƒํ•˜๋ฉด, γ(x)์˜ ๊ฒฝ์šฐ, ์›๋ž˜ 3์ฐจ์›์˜ ์œ„์น˜ ์ขŒํ‘œ๊ฐ’ ๊ฐ๊ฐ์ด 10์ฐจ์›์ด ๋˜๊ณ , sin๊ณผ cos๊ฐ’์ด ๋ฒˆ๊ฐˆ์•„ ํ‘œํ˜„๋˜๊ธฐ ๋•Œ๋ฌธ์— 3x10x2ํ•ด์„œ 60์ฐจ์›์ด ๋จ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

γ(d) ๊ฐ’๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฐฉํ–ฅ ์ขŒํ‘œ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ๋Š” 3D์˜ Cartesian ์ขŒํ‘œ๋ฅผ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋„ฃ๊ธฐ ๋•Œ๋ฌธ์— 3x4x2ํ•ด์„œ 24์ฐจ์›์ด ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

์ด๋ ‡๊ฒŒ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์ฐจ์› ๋ฐ์ดํ„ฐ๋กœ ๋งŒ๋“ค์–ด์คŒ์œผ๋กœ์จ high-frequency์˜ ํ•จ์ˆ˜๋กœ ํ•™์Šต์ด ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 

 

๋‹ค์Œ์œผ๋กœ๋Š” Hierarchical Volume sampling ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. 

 

์ด ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ ์ด์œ ๋Š”, ์•ž์„œ volume rendering์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ stratified sampling์„ ์ง„ํ–‰ํ•œ๋‹ค๊ณ  ๋ง์”€๋“œ๋ ธ์Šต๋‹ˆ๋‹ค.

๊ทผ๋ฐ ์ด๋•Œ ray ์œ„์˜ ์ ๋“ค ์ค‘์—์„œ ๋ฌผ์ฒด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”

free space๋‚˜ occluded region์„ ๋ฝ‘์•„ ํ•™์Šต์‹œ์ผฐ์„ ๋•Œ์˜ ๋น„ํšจ์œจ์„ฑ์„ ๊นจ๋‹ฟ๊ฒŒ ๋˜์–ด,

๋ฌผ์ฒด๊ฐ€ ์กด์žฌํ•˜๋Š” ์œ ์˜๋ฏธํ•œ ์ ๋“ค์„ ๋‹ค์‹œ samplingํ•˜์—ฌ ์ถ”๊ฐ€ํ•™์Šต์„ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

 

๊ทธ๋ž˜์„œ Coarse ๋„คํŠธ์›Œํฌ์™€ Fine ๋„คํŠธ์›Œํฌ, ๋‘ ๊ฐœ์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ํ•™์Šต์‹œํ‚ค๋Š” ๊ฒƒ์ธ๋ฐ์š”, 

์ฒ˜์Œ์—” ray ์ „์ฒด์— ๋Œ€ํ•ด stratified samplingํ•˜์—ฌ ํ•™์Šต์„ ์‹œํ‚ต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ Coarse ๋„คํŠธ์›Œํฌ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์•ž์—์„œ ํ•™์Šต๋์„ ๋•Œ ๋ฐ€๋„ ๊ฐ’์ด ํฌ๊ฒŒ ๋‚˜์˜จ ๋ถ€๋ถ„์„ ๋‹ค์‹œ ๊ณจ๋ผ์„œ samplingํ•ด์„œ ์ถ”๊ฐ€์ ์œผ๋กœ ํ•™์Šต ์‹œํ‚ฌ ๊ฒƒ์ธ๋ฐ, ์ด ๋„คํŠธ์›Œํฌ์—์„œ๋Š” Nc๊ฐœ์™€ Nf๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋„ฃ์–ด์„œ ํ•™์Šต์‹œํ‚ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. (์ „์ฒด ๋ถ€๋ถ„๋„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ์„ค์ •ํ•จ) ์ด๊ฒƒ์„ Fine ๋„คํŠธ์›Œํฌ๋ผ๊ณ  ํ•˜๊ณ , ์ด๊ฒƒ์„ ํ†ตํ•ด์„œ ์ตœ์ข… ํ”ฝ์…€๊ฐ’์„ ์–ป์–ด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

 

(NEXT Page)

๋งˆ์ง€๋ง‰์œผ๋กœ Implementation detail์„ ๋ณด๋ฉด

iteration์„ ๋Œ ๋•Œ๋งˆ๋‹ค, camera ray๋ฅผ randomํ•˜๊ฒŒ samplingํ•˜๊ณ  

์—ฌ๊ธฐ์—์„œ samplingํ•  ์ ๋“ค์„ hierarchical sampling์„ ํ†ตํ•ด์„œ ์ •ํ•˜๊ณ  

volume rendering์„ ํ†ตํ•ด์„œ ์–ป์€ ํ”ฝ์…€๊ฐ’์œผ๋กœ 

ground truth ๊ฐ’๊ณผ ๋น„๊ตํ•˜์—ฌ loss๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๊ตฌ์กฐ์ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

 

์ด๋•Œ loss๋Š” ์•„๋ž˜ ์ˆ˜์‹์ฒ˜๋Ÿผ coarse network์˜ loss๊ฐ’๊ณผ fine network์˜ loss๊ฐ’์„ ํ•ฉํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด ์‹คํ—˜์—์„œ๋Š” 4096๊ฐœ์˜ ray๋“ค์„ ๊ฐ€์ง€๊ณ  ์‹คํ—˜ํ–ˆ๋‹ค๊ณ  ํ•˜๊ณ , 

Nc๋Š” 64, Nf๋Š” 128๋กœ sampling์„ ์ง„ํ–‰ํ–ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

 

NeRF๋Š” NVIDIA V100 GPU๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ, ํ•˜๋‚˜์˜ scene์„ ๋งŒ๋“œ๋Š”๋ฐ 1-2์ผ์ด ๊ฑธ๋ฆฐ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.