輻射場:由光源發出的光線在場景中的傳播與反射過程中所形成的能量分佈。通俗來說就是一個函數,記錄了空間某個位置處向某個方向的輻射訊息,輻射訊息(或說能量分佈)其實就是顏色、亮度、陰影等資訊。這裡的方向需要額外留意,它是NeRF實現真實重建的重要因素之一!
由此引出神經輻射場的概念。
神經輻射場:用神經網路儲存空間位置向任意方向的輻射。原文中的描述如下:
更規範的公式表達如下:
輸入3D位置(x,y ,z)和2D的視角方向(),輸出是顏色和體密度
NeRF具體的網絡結果參考原文如下:
由上面可知,NeRF是隱式建模,因為模型是儲存在MLP裡面的,模型就是MLP的參數,這和以往點雲和mesh建模不同(點雲/mesh是可以直接看到模型的)。 NeRF必須查詢一個個的三維點,然後渲染成一章影像。這種檢視方式或是說渲染方式就叫體渲染。
在看體渲染之前。我們先來看看網路的效果如何:
可以看出,不同視角下顏色是不同的!這是NeRF相對於傳統重建非常重要的優點之一~
下面進入NeRF的第二個核心要點-體渲染。體渲染就是用來將顏色和密度渲染成2D影像的方法!
示意圖如下:圖a展示了從相機光心位置發出射線,射線上有採樣點,將採樣點和方向送入MLP以獲得顏色和體密度。圖c展示的就是沿著射線的體密度分佈曲線,是透過採樣獲得的,對曲線進行積分就能獲得像素的顏色。這個過程就是體渲染
總結體渲染步驟:
體渲染的公式如下:
#當然實際使用的是離散版本公式:
在講完神經輻射場和體渲染後,現在開始完整的重建流程~
#在在形成一個完成的pipeline之前,還有以下兩個問題需要解決:
#為了解決上述兩個問題,NeRF提出了位置編碼和分層採樣過程
位置編碼:
論文直觀地展示了位置編碼的效果對比:
#可以看出,去掉位置編碼,模型無法表達高頻的幾何和紋理資訊~
多層採用:
##訓練流程如下:##實驗設定:
實驗結果可以看出,各種材質的小球上面的散光也可以很好的表現出來~
消融實驗:
#總結缺陷:
渲染、訓練速度慢;原文連結:https://mp.weixin.qq.com/s/ctDBTaLWuHTM9MONrAor4g
以上是初學者必備,NeRF學習筆記洞察一切!的詳細內容。更多資訊請關注PHP中文網其他相關文章!