XYZNOT

論文 · arXiv 2003.08934

NeRF:將場景表示為用於視角合成的神經輻射場

NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

發表於 cs.CVcs.GR arXivPDF

用 XYZNOT 閱讀(全文翻譯與 AI 講解)

三句話總結

  1. 🎯 無需離散體素網格或代理網格幾何,即可合成複雜 3D 場景的高解析度逼真新視角。
  2. 🔧 使用位置編碼、可微體積渲染與階層式取樣,將靜態場景表示為由 MLP 映射的連續 5D 函數。
  3. 📈 實現了頂尖的視角合成表現,在逼真合成場景上達到 31.01 dB PSNR,並將場景表示壓縮至約 5 MB。

摘要

我們提出了一種透過使用稀疏輸入視角集最佳化底層連續體積場景函數,來合成複雜場景新視角並達到頂尖水準(state-of-the-art)結果的方法。我們的演算法使用全連接(非卷積)深度網路來表示場景,其輸入為單一連續 5D 座標(空間位置 與視角方向 ),輸出為該空間位置的體積密度與視角相關的發射輻射度。我們透過沿著相機光線查詢 5D 座標來合成視角,並使用經典的體積渲染技術將輸出的顏色和密度投影成影像。由於體積渲染本質上是可微的,最佳化我們表示法所需的唯一輸入就是一組具有已知相機姿態的影像。我們詳細介紹了如何有效最佳化神經輻射場,以渲染出具有複雜幾何形狀與外觀之場景的高逼真度新視角,並展示了優於先前神經渲染與視角合成研究的成果。視角合成的成果最適合以影片形式觀看,因此我們強烈建議讀者觀看我們的補充影片以獲得令人信服的比較。

英文原文摘要

We present a method that achieves state-of-the-art results for synthesizing novel views of complex scenes by optimizing an underlying continuous volumetric scene function using a sparse set of input views. Our algorithm represents a scene using a fully-connected (non-convolutional) deep network, whose input is a single continuous 5D coordinate (spatial location and viewing direction ) and whose output is the volume density and view-dependent emitted radiance at that spatial location. We synthesize views by querying 5D coordinates along camera rays and use classic volume rendering techniques to project the output colors and densities into an image. Because volume rendering is naturally differentiable, the only input required to optimize our representation is a set of images with known camera poses. We describe how to effectively optimize neural radiance fields to render photorealistic novel views of scenes with complicated geometry and appearance, and demonstrate results that outperform prior work on neural rendering and view synthesis. View synthesis results are best viewed as videos, so we urge readers to view our supplementary video for convincing comparisons.

論文解讀

問題與動機

從拍攝的影像進行新視角合成(Novel view synthesis)歷來依賴離散的體積表示(例如體素網格或多平面影像)或表面網格。然而,離散化體素網格的記憶體和計算量會隨解析度呈立方級數增長,而基於網格的可微最佳化則面臨不良的最佳化空間,且需要良好的初始拓撲結構。先前的隱式神經場景表示直接將座標映射到位準集函數(SDF)或單一表面點,難以處理複雜的幾何形狀、視角相關效果(如鏡面高光)以及高頻細節,容易產生過度平滑的結果。

核心概念

  • 連續 5D 場景函數:將靜態場景表示為隱式連續函數 ,將 3D 位置 與 2D 視向 映射為發射 RGB 輻射度 與體積密度 。
  • 透過非對稱預測保持多視角一致性:密度 僅由位置 預測(幾何結構與視角無關),而發射顏色 則取決於位置 和視向 (以實現鏡面與非蘭伯特反射高光)。
  • 高頻位置編碼:使用正弦基底函數將低維輸入座標映射到高維空間,以克服 MLP 面向低頻的頻譜偏差(spectral bias)。
  • 可微體積渲染與階層式取樣:採用數值積分將沿光線的連續取樣點累積為 2D 像素顏色,針對輸入照片進行端到端最佳化,並由粗到細(coarse-to-fine)的階層式取樣進行加速。

方法(與關鍵公式)

對於由近平面 和遠平面 限制的相機光線 ,其連續期望顏色 為: 其中 為累積穿透率(accumulated transmittance)。

為了進行數值計算,連續區間被劃分為 個區間並使用分層取樣進行評估,產生等同於 Alpha 合成的離散求積: 其中 。

為了捕捉高頻幾何與紋理,輸入透過位置編碼 進行映射: 對 取 ,對 取 。

為了提高取樣效率,NeRF 同時最佳化兩個網路(粗網路取樣 點,細網路額外取樣 點)。粗取樣權重 定義了沿光線的分段常數機率密度函數,透過反變換取樣從中抽取細取樣點。

整個模型透過最小化光線批次 上的總平方誤差來進行訓練:

結果(與最重要的數據)

  • 逼真合成 :NeRF 達到了 31.01 dB PSNR、0.947 SSIM 與 0.081 LPIPS,大幅超越了基準方法如 NV(26.05 dB)、LLFF(24.88 dB)與 SRN(22.26 dB)。
  • 漫反射合成 :NeRF 獲得了 40.15 dB PSNR 與 0.991 SSIM,相較於 DeepVoxels(根據各場景分數推得的平均值為 30.55 dB)與 LLFF(34.38 dB)。
  • 真實前向場景:達到 26.50 dB PSNR,超越了 LLFF(24.13 dB)與 SRN(22.84 dB)。
  • 儲存效率:完全訓練後的 NeRF 模型僅需約 5 MB 的 MLP 權重——相較於 LLFF 體素表示(每個場景 >15 GB)減少了約 的儲存空間。

局限性與待解決問題

  • 訓練與渲染時間:最佳化一個場景需要 10 萬至 30 萬次迭代(在單張 NVIDIA V100 GPU 上約需 1-2 天)。渲染單一畫格需要 1.5 億至 2 億次 MLP 查詢,約耗時 30 秒。
  • 模型可解釋性:與體素網格或多邊形網格不同,場景被鎖定在 MLP 的權重內,使得直接編輯、檢查與除錯變得困難。
  • 嚴格的受控拍攝條件:該方法假設具備已知的相機姿態(例如透過 COLMAP 取得)、靜態場景、一致的光照以及明確的場景邊界範圍。

關鍵術語

Neural Radiance Field (NeRF)(神經輻射場)
一種連續 5D 體積場景表示法,由深度全連接神經網路參數化,將空間座標與視向映射為體積密度與發射輻射度。
Positional Encoding(位置編碼)
一種確定性正弦映射 ,可將連續輸入座標投影至更高維度的頻率空間,使網路能夠學習高頻細節。
Volume Density(體積密度)
一種與視角無關的微分不透明度 ,用於對相機光線終止於 3D 空間中極小點的機率進行建模。
Transmittance(穿透率)
相機光線從近剪裁平面傳播到光線沿途特定距離,且未終止於任何場景粒子上的機率 。
Hierarchical Volume Sampling(階層式體積取樣)
一種由粗到細的取樣方法,利用粗網路估計的光線密度來建構非均勻機率分佈,以便為細網路沿光線採樣更多點。
Stratified Sampling(分層取樣)
一種取樣程序,將光線的深度範圍劃分為均勻間隔的區間,並在每個區間內隨機均勻抽取一個連續取樣點,以在最佳化期間實現連續評估。
Normalized Device Coordinates (NDC)(正規化裝置座標)
一種將前向拍攝的透視視錐體映射到 的座標空間,使相機軸在視差上呈現線性變化。

常見問題

為什麼密度僅以位置為條件,而顏色以位置和視向兩者為條件?

將密度 限制為僅取決於空間位置 可在各視角間強制實現多視角幾何一致性;而允許顏色 將視角方向 作為輸入,則能讓 MLP 表示視角相關的非蘭伯特現象,例如鏡面反射。

NeRF 中的位置編碼與 Transformer 中的位置編碼有何不同?

Transformer 使用位置編碼將離散 token 順序注入具有排列不變性的注意力模組中;而 NeRF 使用正弦編碼將連續低維座標映射到更高維空間,以克服 MLP 面向低頻的頻譜偏差。

從頭開始最佳化 NeRF 需要哪些輸入?

NeRF 僅需要靜態場景的一組已校準 2D RGB 影像,並具有已知的相機內參、相機姿態以及近/遠場景邊界(真實資料可使用 COLMAP 估算,合成資料則使用真實標註姿態)。

NeRF 的訓練和渲染需要多長時間?

在 NVIDIA V100 GPU 上訓練單一場景需要 10 萬到 30 萬次迭代(約 1 到 2 天)。渲染新視角時,每張影像需要評估 1.5 億到 2 億次座標查詢,每訊框約耗時 30 秒。

本頁解讀由 AI 根據論文生成,可能有錯誤;細節請以原文為準。

用 XYZNOT 閱讀(全文翻譯與 AI 講解)