๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ› Research/3D Vision

[๋…ผ๋ฌธ ๋ฆฌ๋ทฐ] NeRF ๊ฐ„๋‹จ ์„ค๋ช… & ์›๋ฆฌ ์ดํ•ดํ•˜๊ธฐ | ์ƒˆ๋กœ์šด ๋ฐฉํ–ฅ์—์„œ ๋ฐ”๋ผ๋ณธ view๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ์ˆ 

by ๋ญ…์ฆค 2023. 8. 10.
๋ฐ˜์‘ํ˜•

- paper : NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis / ECCV2020 

 

NeRF ๋…ผ๋ฌธ์ด ๊ณต๊ฐœ๋œ์ง€๋„ ์‹œ๊ฐ„์ด ๊ฝค ํ˜๋ €๋Š”๋ฐ, 2020 ECCV์—์„œ ๊ณต๊ฐœ๋์„ ๋•Œ๋งŒ ํ•ด๋„ ๊ต‰์žฅํžˆ ์‹ ๊ธฐํ•˜๊ณ  ํš๊ธฐ์ ์ธ view synthesis ๋ฐฉ๋ฒ•์œผ๋กœ ๊ด€์‹ฌ์„ ๋ฐ›์•˜์ง€๋งŒ, ์—ฌ๋Ÿฌ ๋‹จ์  ๋•Œ๋ฌธ์— ์‹ค์ œ ์„œ๋น„์Šค์— ์ ์šฉ๋˜๊ธฐ๋Š” ์‰ฝ์ง€ ์•Š์•˜๋‹ค.

 

ํ•˜์ง€๋งŒ, 2023 CVPR์—์„œ๋Š” 2022๋…„์— ๋น„ํ•ด radiance๋ผ๋Š” ๋‹จ์–ด์˜ ์‚ฌ์šฉ์ด 80% ์ฆ๊ฐ€ํ•˜๊ณ , NeRF์˜ ๊ฒฝ์šฐ 39% ์ฆ๊ฐ€ํ–ˆ์„ ๋งŒํผ NeRF๋Š” ํ™œ๋ฐœํžˆ ์—ฐ๊ตฌ๋˜๊ณ  ์žˆ๋‹ค. ํŠนํžˆ ์ด์   ๊ฐœ๋… ์ฆ๋ช…์„ ๋„˜์–ด veiw editing ์ด๋‚˜ ๊ฐ์ข… application ์—ฐ๊ตฌ๊ฐ€ ์ง„ํ–‰๋˜๊ณ  ์žˆ๋‹ค. ์ฆ‰ NeRF๊ฐ€ ์ด์ œ ๊ฐ์ข… ์„œ๋น„์Šค์— ํ™œ์šฉ๋ ๋งŒํ•œ ์ˆ˜์ค€์œผ๋กœ ๋ฐœ์ „ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. 

 

๋•๋ถ„์— ๋‚˜๋„ ์‹ค๋ฌด ๋ฉด์ ‘ ๋ณผ๋•Œ ์ž ๊น ๊ณต๋ถ€ํ–ˆ๋˜ NeRF๋ฅผ ๋‹ค์‹œ ์ฐพ์•„๋ณด๊ณ  ์žˆ๊ธฐ์— ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด ๋‘๊ณ ์ž ํ•œ๋‹ค. 


NeRF (Neural Radiance Fields)

 

์šฐ๋ฆฌ๊ฐ€ ๊ฒŒ์ž„์ฒ˜๋Ÿผ ์–ด๋–ค ๊ฐ์ฒด๋‚˜ ์‚ฌ๋žŒ์„ ์ด๋ฆฌ ์ €๋ฆฌ 360๋„ ๋Œ๋ ค๊ฐ€๋ฉฐ ๋‹ค์–‘ํ•œ ๋ทฐ์—์„œ ๊ด€์ธกํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 2D ์ด๋ฏธ์ง€๊ฐ€ ์•„๋‹Œ 3D ๋ Œ๋”๋ง์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋Ÿฌํ•œ 3D ๋ Œ๋”๋ง ๊ธฐ์ˆ ์—๋Š” ๋ณดํ†ต ์ปฌ๋Ÿฌ๊ฐ€ ์ž…ํ˜€์ง„ mesh ๋˜๋Š” point cloud ๋˜๋Š” voxel๋กœ ์ด๋ฃจ์–ด์ง„ 3D ๋ชจ๋ธ์ด ์‚ฌ์šฉ๋˜๋Š”๋ฐ, SFM(Structure From Motion) ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•ด ์‹ค์ œ ์„ธ๊ณ„์˜ ๊ฐ์ฒด๋ฅผ 3D reconstruction(3์ฐจ์› ๋ณต์›)ํ•˜์—ฌ 3D ๋ชจ๋ธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

NeRF๋„ ๋น„์Šทํ•œ ๊ธฐ์ˆ ๊ฐ™์ง€๋งŒ, NeRF๋Š” ๊ฐ์ฒด์˜ 3D ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ์ˆ ์ด ์•„๋‹ˆ๋ผ, ๊ฐ์ฒด๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๋ชจ๋“  ์žฅ๋ฉด์„ ์ƒ์„ฑํ•˜๋Š” Novel View Synthesis ๊ธฐ์ˆ ์ด๋‹ค. ์ฆ‰, ํŠน์ • ๊ฐ์ฒด๋‚˜ ์žฅ๋ฉด์„ ์—ฌ๋Ÿฌ ๋ทฐ์—์„œ ์ดฌ์˜ํ•œ ๊ฒฐ๊ณผ๋กœ ์‹ค์ œ๋กœ ์ดฌ์˜ํ•˜์ง€ ์•Š์€ ๊ฐ๋„์—์„œ์˜ view๋ฅผ ๋งŒ๋“ค์–ด๋‚ด์–ด ๋งˆ์น˜ 3D ๋ Œ๋”๋ง๋œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ด๋ผ๋Š” ๋œป์ด๋‹ค. ๋˜ํ•œ NeRF๋Š” ์ƒˆ๋กœ์šด ๋ทฐ๋กœ ๊ด€์ธกํ•  ๋•Œ ๋งˆ๋‹ค MLP ๋„คํŠธ์›Œํฌ๋ฅผ ์ธํผ๋Ÿฐ์Šคํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์—, 3D ํ˜•์ƒ ์ •๋ณด๋ฅผ ๋ฏธ๋ฆฌ ์ €์žฅํ–ˆ๋‹ค๊ฐ€ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ์‹๊ณผ๋Š” ๋‹ค๋ฅด๋‹ค.

 

๊ทธ๋ž˜์„œ NeRF๊ฐ€ ๋‹ค๋ฅธ 3D ๋ Œ๋”๋ง ๋ฐฉ์‹๋“ค์— ๋น„ํ•ด ๊ฐ€์ง€๋Š” ์žฅ์ ์ด ๋ญ˜๊นŒ?

์šฐ์„  NeRF๋Š” ์—ฐ์†์ ์ธ ๊ณต๊ฐ„์— ๋Œ€ํ•œ ํ‘œํ˜„์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— view ์ด๋™์ด ์ž์—ฐ์Šค๋Ÿฝ๋‹ค. ๋˜ํ•œ 3D ๋ชจ๋ธ(mesh, voxel ๋“ฑ) ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ๊ด‘์„ ๊ณผ ๋ฌผ์ฒด์˜ ๊ด€๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๋ Œ๋”๋งํ•˜๋Š” ๊ธฐ์กด ๋ฐฉ์‹์— ๋น„ํ•ด ์ €์žฅ ๊ณต๊ฐ„์— ๋Œ€ํ•œ ๋ถ€๋‹ด์ด ์ ๋‹ค. (๋ฌผ๋ก  NeRF ๋˜ํ•œ view ์ด๋™์— ๋”ฐ๋ฅธ ์žฅ๋ฉด์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ง€์†์ ์œผ๋กœ MLP ์ธํผ๋Ÿฐ์Šค๋ฅผ ์‹œ์ผœ์•ผ ํ•œ๋‹ค)

 

ํŠนํžˆ NeRF๋Š” ์ปฌ๋Ÿฌ๊ฐ’ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ volume density ๊นŒ์ง€ ์ถ”์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋”์šฑ ๋ฆฌ์–ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฝ‘์•„๋‚ด ์ค€๋‹ค. 

 

ํ˜„์žฌ๋Š” NeRF ๊ฒฐ๊ณผ๋ฅผ 3D mesh ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ editing ํ•˜๋Š” ๋“ฑ ์—ฌ๋Ÿฌ ์‘์šฉ์ด ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค. ๋˜ํ•œ NeRF ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ NeRF์˜ ์žฅ์ ์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ 3D mesh ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜๋Š” ์‹œ๋„๊ฐ€ ์ด๋ฃจ์–ด์กŒ๋‹ค.

 

 

NeRF์˜ ์ „์ฒด์ ์ธ ํ๋ฆ„

NeRF์˜ ์ „์ฒด์ ์ธ ํ๋ฆ„์€ ์—ฌ๋Ÿฌ ๊ฐ๋„์—์„œ ์ดฌ์˜ํ•œ ์ด๋ฏธ์ง€๋“ค๊ณผ ์นด๋ฉ”๋ผ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ NeRF ๋ชจ๋ธ์— ์ž…๋ ฅํ•˜๋ฉด ์ƒˆ๋กœ์šด view๋“ค์„ ๋ Œ๋”๋ง ํ•ด์ฃผ๋Š” ์•„์ฃผ ๊ฐ„๋‹จํ•ด ๋ณด์ด๋Š” ๊ณผ์ •์ด๋‹ค. ์‹คํ—˜์—์„œ๋Š” ์‹ค์ œ ๊ฐ์ฒด๋ฅผ ์ดฌ์˜ํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๊ณ  ๋ธ”๋ Œ๋”์—์„œ 3D ๋ชจ๋ธ์„ ์บก์ฒ˜ํ•˜์—ฌ ๋งŒ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ–ˆ๋‹ค.

 

  • ์ž…๋ ฅ ๋ฐ์ดํ„ฐ
    • ๋‹ค์–‘ํ•œ ๊ฐ๋„์—์„œ ๊ฐ์ฒด๋ฅผ ์ดฌ์˜ํ•œ ์ด๋ฏธ์ง€ (RGB + Mask์˜ 4์ฑ„๋„)
    • ์นด๋ฉ”๋ผ ํŒŒ๋ผ๋ฏธํ„ฐ (์นด๋ฉ”๋ผ ์œ„์น˜ + ๊ฐ๋„)
  • ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ : ์ž…๋ ฅ ์ด๋ฏธ์ง€์— ์—†๋˜ ์ƒˆ๋กœ์šด view 

 

NeRF ์•„ํ‚คํ…์ฒ˜

NeRF ์ž…์ถœ๋ ฅ

NeRF์˜ ์•„ํ‚คํ…์ฒ˜๋Š” ์‚ฌ์‹ค ํฌ๊ฒŒ ์„ค๋ช…ํ•  ๊ฒƒ์ด ์—†์„ ์ •๋„๋กœ ๊ฐ„๋‹จํ•œ MLP ๋ชจ๋ธ์ด๋‹ค. ์ž…๋ ฅ์œผ๋กœ๋Š” ๋ฌผ์ฒด์˜ 3D ์œ„์น˜์™€ ๋ฌผ์ฒด๊ฐ€ ๋ฐ”๋ผ๋ณด๋Š” ๋ฐฉํ–ฅ์ด ์‚ฌ์šฉ๋˜๊ณ , MLP ๊ฒฐ๊ณผ๋กœ๋Š” ํ•ด๋‹น ์ขŒํ‘œ์—์„œ์˜ RGB ์ปฌ๋Ÿฌ๊ฐ’๊ณผ ํˆฌ๋ช…๋„์˜ ์—ญ์ˆ˜๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋Š” Density๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.

 

์ด๋Ÿฌํ•œ ๋ฐฉ์‹์ด ํŠน์ • ๊ฐ๋„์—์„œ ๋ฐ”๋ผ๋ณด๋Š” ํŠน์ • ์œ„์น˜์˜ ์ปฌ๋Ÿฌ๊ฐ’๊ณผ ํˆฌ๋ช…๋„๋ฅผ ์˜ˆ์ธกํ•ด ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

 

  • ์ž…๋ ฅ
    • Spatial location : 3D ๊ณต๊ฐ„ ์œ„์น˜ ์ •๋ณด (x,y,z)
    • Viewing diection : ๋ฌผ์ฒด๊ฐ€ ๋ฐ”๋ผ๋ณด๋Š” ๋ฐฉํ–ฅ (๐›ณ,๐œ™)
  • ์ถœ๋ ฅ
    • RGB : ๋ฌผ์ฒด์˜ ์ปฌ๋Ÿฌ๊ฐ’
    • Density(๐œŽ) : ํˆฌ๋ช…๋„์˜ ์—ญ์ˆ˜์ธ ๋ฐ€๋„ ๊ฐ’

 

NeRF ์•„ํ‚คํ…์ฒ˜ (MLP)

์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ณด๋ฉด ์‚ฌ์‹ค ๋” ๋ณ„๊ฑฐ ์—†๋‹ค. MLP ์ž…๋ ฅ๋‹จ์—์„œ x(์œ„์น˜ ์ •๋ณด(x,y,z))๊ฐ€ ์ž…๋ ฅ๋˜๊ณ  5๋ฒˆ ์งธ layer์—์„œ ํ•œ ๋ฒˆ๋” concatํ•ด์„œ ์ž…๋ ฅ๋œ๋‹ค. skip connection์˜ ์ผ์ข…์ด๋ผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  9๋ฒˆ ์งธ layer์—์„œ density(๐œŽ)๊ฐ€ ์ถœ๋ ฅ๋˜๊ณ , ์—ฌ๊ธฐ์— ๋‹ค์‹œ d(๋ฐฉํ–ฅ ์ •๋ณด(๐›ณ,๐œ™))๊ฐ€ ์ž…๋ ฅ๋˜์–ด ์ตœ์ข…์ ์œผ๋กœ RGB ๊ฐ’์ด ์ถœ๋ ฅ๋œ๋‹ค.

 

์ด๋Ÿฌํ•œ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” density์˜ ๊ฒฝ์šฐ ๋ฌผ์ฒด๊ฐ€ ๊ทธ ์œ„์น˜์— ์กด์žฌํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ฐ’์ด๋ฏ€๋กœ ๋ฌผ์ฒด๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๊ฐ๋„์™€ ์ „ํ˜€ ๊ด€๊ณ„๊ฐ€ ์—†์œผ๋‹ˆ ์œ„์น˜ ์ •๋ณด๋งŒ์œผ๋กœ ์˜ˆ์ธกํ•˜๊ณ , RGB ๊ฐ’์˜ ๊ฒฝ์šฐ ๋ฌผ์ฒด๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๊ฐ๋„์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งˆ์ง€๋ง‰ layer์—์„œ ๋ฐฉํ–ฅ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ RGB๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

๊ฐ„๋‹จํ•˜์ง€๋งŒ ๊ต‰์žฅํžˆ ๋ฆฌ์ฆˆ๋„ˆ๋ธ”ํ•œ ๋ชจ๋ธ ๊ตฌ์กฐ์ธ ๋“ฏ ํ•˜๋‹ค!

 

๊ทธ๋Ÿฐ๋ฐ 3์ฐจ์›์ธ ์œ„์น˜์ •๋ณด(x,y,z)๊ฐ€ 60์ฐจ์›, 2์ฐจ์›์ธ ๋ฐฉํ–ฅ ์ •๋ณด(๐›ณ,๐œ™)๊ฐ€ 24์ฐจ์›์œผ๋กœ ๋ช…์‹œ๋˜์–ด ์žˆ๋‹ค. ์ด์œ ๊ฐ€ ๋ญ˜๊นŒ? ์ด๋Š” positional embedding๊ณผ ๊ด€๋ จ ์žˆ์œผ๋‹ˆ ์กฐ๊ธˆ ๋’ค์—์„œ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž.

 

*NeRF ํ•™์Šต ๋ฐฉ๋ฒ•

NeRF ๋˜ํ•œ supervised learning ๋ฐฉ์‹์ด๊ธฐ์— ํ•™์Šต์— GT(์ •๋‹ต ์ •๋ณด)๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์ž…๋ ฅ ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์—ฌ๋Ÿฌ view์—์„œ์˜ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” view๋ฅผ ์˜ˆ์ธกํ•˜๋„๋ก ์ธํผ๋Ÿฐ์Šคํ•˜๊ณ  ์˜ˆ์ธก๊ฐ’๊ณผ ์‹ค์ œ ๊ฐ’์„ loss ๊ณ„์‚ฐํ•˜์—ฌ ํ•™์Šต์„ ์ง„ํ–‰ํ•œ๋‹ค.

 

 

๋ณผ๋ฅจ ๋ Œ๋”๋ง

์ž ์ด์ œ ์ด๋ ‡๊ฒŒ ํ•™์Šตํ•œ MLP๋กœ ๋ฌด์—‡์„ ํ•˜๋ ค๋Š” ๊ฒƒ์ธ์ง€ ์•Œ์•„๋ณด์ž.

 

์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•˜๊ณ ํ”ˆ view์˜ ๊ฐ€์ƒ์˜ ์นด๋ฉ”๋ผ ์ค‘์‹ฌ์œผ๋กœ๋ถ€ํ„ฐ ๊ฐ์ฒด ํ–ฅํ•ด ray๋ฅผ ์ด์„œ ์ด๋Ÿฌํ•œ ray์œ„์— ์—ฌ๋Ÿฌ ํฌ์ธํŠธ๋“ค์„ ์ƒ˜ํ”Œ๋งํ•˜๊ณ ((a)์—์„œ ray์œ„์˜ ๊ฒ€์€์ƒ‰ ์ ๋“ค), MLP๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ขŒํ‘œ์˜ RGB์™€ density ๊ฐ’์„ ์˜ˆ์ธกํ•œ๋‹ค. ์ด ๋•Œ ๊ฐ์ฒด๊ฐ€ ์—†๋Š” ์œ„์น˜๋Š” density๊ฐ€ ๋‚ฎ๊ฒŒ ๋‚˜์˜ฌ ๊ฒƒ์ด๊ณ  ๊ฐ์ฒด๊ฐ€ ์กด์žฌํ•˜๋Š” ์œ„์น˜์˜ density๋Š” ๋†’๊ฒŒ ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค. ์ด ray์œ„์˜ ์ƒ˜ํ”Œ๋ง๋œ ๋ชจ๋“  ํฌ์ธํŠธ๋“ค์˜ RGB, density ๊ฐ’์„ ๋‹ค์‹œ ๋ฐ”๋ผ๋ณด๋Š” ์‹œ์ ์œผ๋กœ projection ์‹œํ‚ค๊ณ  ํŠน์ • ์—ฐ์‚ฐ์„ ํ†ตํ•ด ์ ์ ˆํ•œ ์ตœ์ข… ์ปฌ๋Ÿฌ๊ฐ’์„ ๊ณ„์‚ฐํ•œ๋‹ค. (ray๊ฐ€ ์ฒซ ๋ฒˆ์งธ๋กœ ๋งŒ๋‚˜๋Š” ๊ฐ์ฒด์— ๋” ๋งŽ์€ ๊ฐ€์ค‘์น˜๊ฐ€ ์žˆ๋„๋ก ์—ฐ์‚ฐ)

 

์ตœ์ข… ์ปฌ๋Ÿฌ๊ฐ’์„ ๊ฒฐ์ •ํ•˜๋Š” ์ˆ˜์‹

*์ตœ์ข… ์ปฌ๋Ÿฌ๊ฐ’ ๊ณ„์‚ฐ ์ˆ˜์‹ ๊ฐ„๋‹จ ์„ค๋ช…

์ƒ˜ํ”Œ๋ง ํฌ์ธํŠธ์—์„œ์˜ density์™€ color๋ฅผ ๊ณฑํ•œ ๊ฐ’์„ ray๋ฅผ ์œ ๊ฐ€๊นŒ์šด ์ง€์ ๋ถ€ํ„ฐ ๋จผ ์ง€์ ๊นŒ์ง€ ์ ๋ถ„์„ ํ•˜๋Š”๋ฐ, ์ด ๋•Œ Accumulated transmittance(T(t))๊ฐ’ ๋˜ํ•œ ๊ณฑํ•ด์ ธ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ray๊ฐ€ ํ•ด๋‹น ํฌ์ธํŠธ์— ๋„๋‹ฌํ•  ํ™•๋ฅ ์ด๊ธฐ ๋•Œ๋ฌธ์— ray๊ฐ€ ์ฒซ ๋ฒˆ์งธ๋กœ ๋งŒ๋‚˜๋Š” ๊ฐ์ฒด์˜ color์— ๋” ๋งŽ์€ ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐ€์ง€๊ณ  ์ตœ์ข… color ๊ฐ’์ด ๊ฒฐ์ •๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค~!

 

*์ดํ•ด๋ฅผ ๋•๊ธฐ์œ„ํ•œ ์˜์ƒ์„ ์ฒจ๋ถ€

 

NeRF ์ตœ์ ํ™”

์•ž์„œ ์„ค๋ช…ํ•œ ๋ฐฉ๋ฒ•๋งŒ์œผ๋กœ๋Š” NeRF์˜ ์„ฑ๋Šฅ์ด ์šฐ์ˆ˜ํ•˜์ง€ ์•Š๊ธฐ์— ๋…ผ๋ฌธ์—์„œ๋Š” ๋‘ ๊ฐ€์ง€ ์ถ”๊ฐ€์ ์ธ ๋ฐฉ๋ฒ•์„ ํ™œ์šฉํ•ด์„œ NeRF์˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•œ๋‹ค.

 

1. Positional Encoding

Positional Encoding ์ˆ˜์‹

Positional Encoding์€ high-frequency ์ •๋ณด๋ฅผ ์ž˜ ๋ณด์กดํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ MLP ์ž…๋ ฅ์ธ ์œ„์น˜ ์ •๋ณด์™€ ๋ฐฉํ–ฅ ์ •๋ณด์— ์ ์šฉ๋œ๋‹ค. 3์ฐจ์›์ธ ์œ„์น˜ ์ •๋ณด์™€ 2์ฐจ์›์ธ ๋ฐฉํ–ฅ ์ •๋ณด๊ฐ€ ๋„ˆ๋ฌด ์ €์ฐจ์›์ด๊ธฐ์— positional Encoding์œผ๋กœ ๊ณ ์ฐจ์›์œผ๋กœ ์ž„๋ฒ ๋”ฉ์‹œ์ผœ MLP์˜ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์ฐจ์›ํ™” ์‹œ์ผœ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. (์ €์ฐจ์› ์ž…๋ ฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒฐ๊ณผ๊ฐ€ low-frequency์— ์น˜์ค‘๋จ)

 

์Œ... ๊ฒฐ๊ตญ ์ด๊ฒŒ ๋ฌด์Šจ ์˜๋ฏธ๋‚˜๋ฉด, ์–ด๋–ค ๊ฐ์ฒด์˜ ์„ธ๋ฐ€ํ•œ ๋ถ€๋ถ„์„ ์ž˜ ํ‘œํ˜„ํ•˜๋ ค๋ฉด ๋ฐ”๋กœ ์˜† ํ”ฝ์…€๊ณผ์˜ ์ฐจ์ด๋„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ž˜ ํ‘œํ˜„๋˜์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ๋ƒฅ (x,y,z) ์ž…๋ ฅ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด x ๋ฐฉํ–ฅ์œผ๋กœ +0.1 ์ด๋™ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ์ฐจ์ด๊ฐ€ ๋„ˆ๋ฌด ์ ๊ธฐ์— ์ด๋Ÿฌํ•œ ์ฐจ์ด๋ฅผ MLP๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ์ธ์ง€ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. (5,5,5)๋ฅผ ์ž…๋ ฅํ–ˆ์„๋•Œ๋ž‘ (5.1,5,5)๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ MLP ์ž…์žฅ์—์„œ๋Š” ๊ทธ๋ž˜์„œ ๋ญ? ๋‘ ๊ฐœ ์ฐจ์ด ๋ณ„๋กœ ์—†๋Š”๋””? ๋ผ๊ณ  ํ•œ๋‹ค๋Š” ๊ฒƒ. ํ•˜์ง€๋งŒ positional encoding์„ ์‚ฌ์šฉํ•˜๋ฉด ์œ„์น˜์˜ ์ž‘์€ ์ฐจ์ด๋„ ๋” ๊ณ ์ฐจ์›์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ธฐ์— MLP๊ฐ€ ์œ„์น˜์˜ ์„ธ๋ฐ€ํ•œ ์ฐจ์ด๋ฅผ ์ž˜ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๊ณ  ๊ทธ๋ ‡๊ธฐ์— high-frequency๋ฅผ ์ž˜ ์œ ์ง€ํ•˜๊ฒŒ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

๋ฐฉํ–ฅ ์ •๋ณด, Positional Encoding ํšจ๊ณผ๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฐ๊ณผ

์œ„ ์‹คํ—˜ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด MLP์— ๋ฐฉํ–ฅ ์ •๋ณด๋ฅผ ์ฃผ์ž…ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋ฐฉํ–ฅ์— ๋”ฐ๋ฅธ ์ปฌ๋Ÿฌ ์ฐจ์ด๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜์‚ฌ๊ฐ€ ์ผ์–ด๋‚˜๋Š ๋ถ€๋ถ„์ด ํ‘œํ˜„๋˜์ง€ ์•Š๊ณ , positional encoding์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—” high-frequency ์ •๋ณด๊ฐ€ ๋งŽ์ด ์†Œ์‹ค๋˜์–ด ์„ธ๋ฐ€ํ•œ ๋ถ€๋ถ„์ด ์ž˜ ํ‘œํ˜„๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

2. Hierarchical Sampling

ray ์œ„์—์„œ ํฌ์ธํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ์ƒ˜ํ”Œ๋งํ•˜๋Š”์ง€๋„ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ผ์น˜๋Š”๋ฐ, ๋‹จ์ˆœํžˆ ์ผ์ • ๊ฐ„๊ฒฉ์œผ๋กœ ์ƒ˜ํ”Œ๋งํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๋™์ผํ•œ ์œ„์น˜์˜ ์ƒ˜ํ”Œ ํฌ์ธํŠธ๋งŒ ํ•™์Šตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ข‹์€ ์„ฑ๋Šฅ์„ ๊ธฐ๋Œ€ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ๋•Œ๋ฌธ์— ์ผ์ข…์˜ ๋žœ๋ค ์ƒ˜ํ”Œ๋ง์ธ strtified sampling์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ bin ๋งˆ๋‹ค ์ผ์ • ๊ฐ„๊ฒฉ์œผ๋กœ ์ƒ˜ํ”Œ๋ง์„ ํ•˜์ง€๋งŒ, bin ๋‚ด์—์„œ๋Š” ๋žœ๋คํ•˜๊ฒŒ ์ƒ˜ํ”Œ ํฌ์ธํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 

 

๋˜ํ•œ ๊ธฐ๋ณธ์ ์ธ ๊ณผ์ •์ธ coarse ์ƒ˜ํ”Œ๋ง ์ดํ›„ fine ์ƒ˜ํ”Œ๋ง ๊ณผ์ •์—์„œ density๊ฐ€ ๋†’์€ ๊ณณ์—์„œ๋Š” ์ƒ˜ํ”Œ๋ง์„ ๋” ๋งŽ์ด ์ˆ˜ํ–‰ํ•˜์—ฌ ์ถ”๊ฐ€ ํ•™์Šต์„ ์ง„ํ–‰ํ•œ๋‹ค.

 


NeRF ๊ฒฐ๊ณผ๋Š” ์ด๋ฏธ์ง€๋ณด๋‹ค๋Š” ์˜์ƒ์ด๋‚˜ ๋ฐ๋ชจ๋กœ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹๊ธฐ์— ์ตœ๊ทผ NVIDIA์—์„œ ๊ณต๊ฐœํ•œ Instant NeRF๋กœ ์ œ์ž‘๋œ ์˜์ƒ์„ ์†Œ๊ฐœํ•˜๋ฉฐ ์„ค๋ช…์„ ๋งˆ์น˜๊ณ ์ž ํ•œ๋‹ค.

 

 

 


NeRF์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ์›๋ฆฌ์— ๋Œ€ํ•ด ์•Œ์•„ ๋ณด์•˜๋Š”๋ฐ, ์ดˆ๊ธฐ NeRF๋Š” ๊ฐ์ฒด๋ณ„ ํ•™์Šต์„ ํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋‹ด๊ณผ view๋ณ„ ์ธํผ๋Ÿฐ์Šค ์‹œ๊ฐ„ ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ œ์•ฝ์ด ๋งŽ์•˜๋‹ค. ์•„์ง๊นŒ์ง€๋„ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„๋“ค์€ ๋งŽ์ง€๋งŒ ์ ์  ๊ฐœ์„ ๋˜์–ด ๊ฐ€๊ณ  ์žˆ๋Š” ์ถ”์„ธ์ด๊ธฐ์—, ์กฐ๋งŒ๊ฐ„ ์—ฌ๋Ÿฌ ์„œ๋น„์Šค์—์„œ NeRF๋ฅผ ๋งŒ๋‚˜๋ณผ ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ•ด ๋ณธ๋‹ค.

 

๋ฐ˜์‘ํ˜•