본문 바로가기
컴퓨터비젼

NeRF (Neural Radiance Fields)

by 3in9u 2025. 4. 4.

✅ 정의

  • 3D 장면을 신경망으로 학습하여 보지 못한 시점에서도 실사처럼 렌더링하는 딥러닝 기반 모델
  • 입력: 위치 (x,y,z), 시선 방향 (θ,ϕ)
  • 출력: 색상(RGB), 밀도(σ)
  • 학습 시 여러 카메라 뷰로부터 장면 정보를 얻고, 추론 시 새로운 각도로 자유롭게 시점 이동 가능

📦 NeRF Architecture 구성 요소

구성 요소 설명
Positional Encoding MLP의 저주파 한계를 극복하기 위해 위치를 고차원 사인/코사인 공간으로 사영
MLP (신경망) 위치 + 방향을 입력으로 받아 RGB와 밀도 σ를 출력
Hierarchical Sampling coarse → fine 단계로 ray 상의 샘플 위치 정밀화

🌈 Volume Rendering: NeRF의 핵심 렌더링 방식

🧠 핵심 아이디어

  • 카메라에서 출발하는 Ray를 따라 여러 위치를 샘플링
  • 각 위치에서 얻은 σ(밀도), RGB를 가중합하여 최종 픽셀 색 계산

📌 수학적 개념

  • 투과율 T(t) : 앞쪽에서 광이 흡수되지 않고 지나친 정도
  • 누적 가중치 w(t) : 각 샘플의 기여도
  • 출력 픽셀:


🔍 Positional Encoding

입력값 변환 결과 (예시)
x
  • 입력을 여러 주기의 sin/cos 함수에 매핑하여 고주파 세부 묘사 가능

📷 Pinhole Camera Model

  • 3D 세계의 점을 2D 이미지 평면에 투영
  • 투영 공식:

  • NeRF에서 각 픽셀은 이 모델을 따라 ray를 생성하게 됨

 


🎯 Ray Generation (TinyNeRF 예시)

  1. 이미지 픽셀 하나마다 Ray(origin, direction) 생성
  2. 카메라 위치와 방향 행렬에서 추출
  3. 이 Ray가 3D 공간에서 샘플링을 수행하여 NeRF에 입력됨

📦 3D Mesh vs NeRF            

항목 3D Mesh  NeRF
표현 방식 명시적 (삼각형 표면) 암묵적 함수 (MLP)
장점 빠른 렌더링, 편집 용이 사실적 표현, 복잡한 구조 가능
사용 예 CAD, 게임 신(scene) 복원, 자유 시점 뷰

⚡ Gaussian Splatting: NeRF의 실시간 대안


특징 설명
표현 수천 개의 3D Gaussian 분포로 장면을 구성
렌더링 각 Gaussian을 2D 화면에 퍼뜨리는 방식(splat)
장점 실시간, 빠른 추론, 우수한 품질
구성 요소 중심, 크기, 색, 불투명도, 공분산 등

기존 NeRF보다 수십~수백 배 빠른 렌더링, 실시간 AR/VR에 적합


📊 Multivariate Gaussian PDF (for Gaussian Splatting)

  • 하나의 Gaussian은 3D 공간 상에서 다음과 같이 정의:

  • 각 Gaussian이 점이 아닌 "덩어리"로 작용 → 여러 Gaussian이 모여 복잡한 형태 표현 가능

🗺️ Structure from Motion (SfM)

  • 여러 시점의 이미지에서 카메라 위치와 장면의 3D 구조 복원
  • NeRF 학습을 위한 카메라 포즈 추정에 사용
  • SfM → camera extrinsics → ray 생성 가능

🔄 NeRF 관련 기술 관계도 요약

📸 다중 이미지
   ↓ SfM
🧭 카메라 위치, 포즈
   ↓
📐 Ray 생성 (Pinhole Camera)
   ↓
🔍 NeRF 학습 (Positional Encoding + MLP)
   ↓
🎨 Volume Rendering
   ↓
🖼️ 새로운 시점에서의 사실적 이미지 생성

🆚

🚀 Gaussian Splatting
   → NeRF와 유사한 목표, 더 빠른 실시간 렌더링

✨ NeRF 요약 키워드

  • 입력: (x, y, z, θ, φ)
  • 출력: RGB + σ
  • 구조: MLP + Positional Encoding
  • 학습 데이터: 다중 시점 이미지 + 카메라 포즈
  • 핵심 기법: Volume Rendering
  • 확장 기술: Gaussian Splatting, Instant-NGP, etc.

'컴퓨터비젼' 카테고리의 다른 글

객체 추적(Object Tracking)  (0) 2025.04.04
OpenCV 기능 상세 정리  (0) 2025.04.04
OpenCV란?  (0) 2025.04.04
객체 검출 (Object Detection)  (0) 2025.03.27
영상의 미분 (Image Derivative)  (0) 2025.03.21