---
title: "神經輻射場（NeRF (Neural Radiance Field)）"
slug: nerf-neural-radiance-field
language: zh-TW
source: https://aiterms.tw/learning/what-is-nerf-neural-radiance-field
updated_at: 2026-06-22
tags: [電腦視覺, 深度學習, 神經網路, 3D視覺]
ipas_term: false
type: deep-dive
---

# 神經輻射場 是什麼？

> 利用神經網絡隱式表達3D場景的函數，能從多視角影像重建逼真的3D場景和新視角合成。

## 核心概念

神經輻射場（NeRF）於2020年由UC Berkeley的Mildenhall等提出，成為3D深度學習的里程碑。核心創新是用神經網絡作為3D場景的隱式表達。傳統3D重建輸出點雲、網格或體素，都是顯式表達，需大量記憶體。NeRF輸出一個簡潔的MLP模型，輕量級儲存，推理時可查詢任意3D位置。

NeRF定義一個函數 `f: (x, y, z, θ, φ) → (r, g, b, σ)`，將5D輸入（3D座標和視角球面角度）映射到4D輸出（RGB顏色和體積密度）。這個函數由MLP參數化。關鍵直覺是顏色和密度是視角相關的（同一點從不同角度看顏色不同，如鏡面反射），但密度（幾何）視角無關。

## 運作原理

- **光線追蹤和體積渲染**是NeRF推理的基礎。給定相機位置和畫素座標，發出光線穿過場景。沿光線均勻採樣N個點，用MLP查詢每點的顏色和密度。色彩值按密度進行累積積分（體積渲染方程）：

`C(r) = ∫[0,∞] T(t) σ(t) c(t) dt`

其中T(t)是透射率（光線到達點t未被遮擋的概率），σ是密度，c是顏色。數值積分通過沿光線的加權和近似。

- **位置編碼**（Positional Encoding）是NeRF的關鍵技術。直接用座標輸入MLP效果差（神經網絡對低頻信號學習慢）。位置編碼將座標映射到高維特徵：

`γ(t) = (sin(2^0 πt), cos(2^0 πt), ..., sin(2^L πt), cos(2^L πt))`

這種傅里葉編碼幫助MLP學習高頻細節，大幅提升品質。

- **層次採樣**進一步優化。初次採樣在整個光線上均勻分布，第二次採樣在高密度區域加密採樣，提升高頻細節的精度。

訓練通過最小化渲染影像與真值影像的像素差異（L2損失），使用隨機梯度下降優化MLP。典型訓練需數小時到數天。

## 實際應用

- **新視角合成**是NeRF的主要應用。從多張不同角度的照片，NeRF重建場景，支持合成任意新視角的影像。這對電影製作、虛擬攝影機技術有重大意義，內容創作者無需實際轉移攝像機就能看到新視角。

- **3D場景編輯**利用NeRF的隱式表達。編輯器可直接操控MLP參數進行局部編輯（如改變物體顏色、移動物體位置）。相比顯式網格編輯複雜度低。

- **文物和建築數位化**中，NeRF從現場照片快速重建高保真3D模型。不需要昂貴的專業掃描儀，普通相機足夠。

- **遊戲和VR開發**用NeRF生成高品質3D資產。美術團隊拍攝真實物體，NeRF自動轉為可在遊戲引擎中使用的資產。

- **動態場景建模**（如人物動作）利用動態NeRF（D-NeRF）。MLP額外接收時間標籤，支持編碼動態場景並重建人物動作。

## 常見誤區

誤區一：NeRF是點雲或網格的直接替代品。實際上NeRF適合從多視角影像快速重建，但訓練時間長。如果已有高精度掃描資料，直接用點雲更快。

誤區二：NeRF能自動從少數影像完美重建。實際上NeRF需充分的多視角覆蓋。視角覆蓋不足則會有「幽靈結構」（不存在的幻覺細節）。

誤區三：NeRF就是光線追蹤。實際上NeRF用體積渲染而非精確光線追蹤，計算快但無精確光學物理。

## 與相關技術的比較

- **NeRF vs 傳統SfM/MVS**：SfM/MVS（結構運動/多視立體）是幾何方法，輸出稀疏/稠密點雲。NeRF是深度學習方法，輸出隱式表達。SfM/MVS快且可解釋，NeRF質量高但慢。

- **NeRF vs 3D卷積網絡**：3D CNN直接預測體素或網格，NeRF用MLP隱式表達。NeRF解析度不受限，更輕量。

- **NeRF vs GAN生成**：GAN從噪聲或文本生成3D，NeRF從影像重建。兩者都用神經網絡，應用場景不同。

## 常見問題

### 位置編碼為什麼這麼重要？

位置編碼（Positional Encoding）將3D座標映射到高維正弦特徵，使MLP能高效學習高頻信號。實驗表明，直接用原始座標訓練NeRF效果極差，只能学習模糊的低頻結構。原因是神經網絡的隱函數偏向低頻（馬尼費斯假設），高頻細節（如邊界、紋理）學習困難。位置編碼通過傅里葉變換將坐標升維，讓網絡在高維空間學習。這技巧來自transformer的位置嵌入思想，在NeRF上的應用取得巨大成功。不同的編碼方式（高度、頻率範圍）影響最終品質。

### NeRF訓練為什麼那麼慢？

NeRF訓練耗時主要來自兩方面。首先，訓練資料生成：每次迭代需沿大量光線採樣，再調用MLP查詢顏色和密度。對於800×600影像，每次迭代涉及48萬條光線，每條光線採樣64-128個點，共3000多萬次MLP調用。其次，梯度計算和反向傳播涉及大量浮點運算。典型NeRF模型需100K-300K次迭代（數小時到一天），遠慢於傳統SfM（數分鐘）。加速方向包括：1) 更高效的採樣策略（重要性採樣）；2) 更快的MLP（蒸餾為更小模型）；3) 並行化（多GPU）；4) 變體如Instant-NGP用混合編碼和樹狀結構，加速100倍。

### NeRF如何處理動態場景？

靜態NeRF假設場景固定，不能處理運動物體。動態NeRF（D-NeRF）擴展MLP接受時間參數。5D輸入變為6D：`f: (x, y, z, θ, φ, t) → (r, g, b, σ)`。訓練時用帶時間戳的多幀影像，每幀影像光線提供監督。推理時指定特定時間t，合成該時刻的新視角。動態NeRF能編碼人物動作、物體運動等。進一步改進是分解為靜態背景和動態前景NeRF，分別學習，避免混淆。但動態NeRF訓練更困難（數據量增加），軍運的估計也更複雜（多個時間步的光線交叉）。

---

深度解說頁：https://aiterms.tw/learning/what-is-nerf-neural-radiance-field
快查頁：https://aiterms.tw/terms/nerf-neural-radiance-field
最後更新：2026/06/22