✅ 정의
- 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 예시)
- 이미지 픽셀 하나마다 Ray(origin, direction) 생성
- 카메라 위치와 방향 행렬에서 추출
- 이 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 |
