EfficientNeRF
EfficientNeRF – Efficient Neural Radiance Fields:高效率的神經輻射場CVPR2022
摘要:在本文中,提出了一種高效的基于nerf的三維場景表示和新視圖圖像合成方法——EfficientNeRF,分別加速了訓練以及測試的過程。論文分析了采樣點的密度和權重分布,分別在粗階段和細階段提出了有效和關鍵的采樣,以顯著提高采樣效率。此外,設計了一種新的數據結構,在測試過程中緩存整個場景,以加快渲染速度。
貢獻:
1、粗網絡:提出了有效采樣,它保持密集的體素,動態的更新密度。粗略MLP僅推斷查詢密度大于零的有效樣本,從而節省了粗略階段的大部分時間。精細網絡:重點關注關鍵樣本的附近區域,以有效地采樣點。
2、測試階段,設計了一種新的基于樹的數據結構,即NerfTree,以更有效地表示3D場景,可以快速緩存和查詢3D場景,從而將渲染速度提高。
1、網絡結構
與采用從方向到顏色的隱式映射的原始NeRF不同,論文采用PlenOctree中的球形諧波模型,通過MLP網絡顯式預測顏色參數。它不僅提高了準確性,而且有利于測試期間的離線緩存。pipeline如下圖:首先沿每條射線r均勻采樣Nc點,并從動量密度體素Vσ中查詢密度。為密度σi>0的有效樣本計算其粗密度,獲得權重以計算最終射線顏色,并通過粗密度更新Vσ。權重為wi> ? \epsilon ?得到照顧。Ns個附近的樣本以較高分辨率沿射線r線性采樣。最后,通過精細MLP推斷精細密度和顏色參數,并通過體繪制預測光線顏色。
1、訓練階段
動量密度體素(Momentum Density Voxels ):對于特定場景,所有光線共享任何世界坐標x∈R3的密度。因此,構建了分辨率為D×D×D的動量密度體素Vσ,以存儲訓練期間目標場景上密度的最新全局值。由于每個點的密度σ≥0,我們將Vσ中的默認密度值初始化為正數ε。這意味著Vσ中的所有點在開始時都是有效樣本。
更新(Update):對于位置為x∈R3的采樣點,我們通過粗MLP推斷其粗密度σc(x)。然后我們用σc(x)更新密度體素Vσ。我們增加了一個穩定價值的動力。具體來說,我們首先將x轉換為3D體素索引 i ∈R3,
xmin、xmax∈R3表示場景的最小和最大世界坐標邊界。
接下來,對于每個訓練迭代,我們通過下式更新Vσ的索引i處的全局密度σ
Vσ反映了整個場景的最新密度分布,我們通過查詢直接獲得坐標x處的密度屬性,而不是通過MLP模塊進行計算。它主要減少了推斷時間,并用于指導動態采樣過程。
粗階段的有效采樣(Valid Sampling):從Vσ查詢最新的密度,并且只輸入具有全局密度的xi處Vσ[i]>0的點輸入MLP中,以下公式是與原始NeRF比較的加速度,主要是說明速度得到了提升。
精細階段的關鍵采樣(Pivotal Sampling at the Fine Stage):
在精細階段,應該以更高的分辨率對3D點進行采樣,以獲得更好的質量。原始NeRF首先沿著遵循粗略權重分布的每條射線r采樣Nf點。然后通過精細MLP預測密度和顏色。由于精細階段的點數通常是Nc的2倍,因此在運行期間需要更多的計算。為了在精細階段實現高效采樣,本文提出了一種關鍵采樣策略。
用位置xp定義點,其權重wp> ? \epsilon ?作為關鍵樣本,wi表示xi對光線r顏色的貢獻。重點關注關鍵樣本的附近區域,以推斷更詳細的密度和顏色。我們沿著每條射線r在xp附近均勻采樣Ns點
假設有Np個關鍵點,關鍵樣本的比例可以表示為
細級的加速度比Af為
2、測試階段
用NerfTree表示場景(Represent Scene by NerfTree):論文中為基于NeRF的方法設計了一種高效的基于樹的數據結構,稱為NerfTree,以加快推理速度。NerfTree可以離線存儲整個場景,從而消除粗略和精細的MLP。
NerfTree T={Vc,Vf}是一個2深度樹。第一深度緩存粗密集體素Vc,第二深度緩存細稀疏體素Vf,如圖所示。
Vc∈RDc×Dc×Dc只包含密度屬性,該屬性是通過粗MLP推斷每個體素網格的密度值來提取的。對于精細稀疏體素
第一維度NV表示所有有效樣本的數量,第二維度表示大小為Df×Df×D的局部體素。Vf中的每個體素存儲從精細MLP推斷的密度和顏色參數。
論文中將該網絡與MVSNeRF、IBRNet、FastNeRF等都進行了比較。具體不介紹
總結
以上是生活随笔為你收集整理的EfficientNeRF的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css中aspect,css扩展之asp
- 下一篇: 字符粘连切分方法