利用多光照信息的單視角NeRF算法S^3-NeRF,可恢復場景幾何與材質信息
目前圖像 3D 重建工作通常采用恒定自然光照條件下從多個視點(multi-view)捕獲目標場景的多視圖立體重建方法(Multi-view Stereo)。然而,這些方法通常假設朗伯表面,并且難以恢復高頻細節(jié)。
另一種場景重建方法是利用固定視點但不同點光源下捕獲的圖像。例如光度立體 (Photometric Stereo) 方法就采用這種設置并利用其 shading 信息來重建非朗伯物體的表面細節(jié)。然而,現(xiàn)有的單視圖方法通常采用法線貼圖(normal map)或深度圖(depth map)來表征可見表面,這使得它們無法描述物體背面和被遮擋的區(qū)域,只能重建 2.5D 場景幾何。此外,法線貼圖無法處理深度不連續(xù)的情況。
在最近的一項研究中,來自香港大學、香港中文大學(深圳)、南洋理工大學、MIT-IBM Waston AI Lab 的研究者們提出了通過利用單視圖多光源(single-view,multi-lights)圖像,重建完整 3D 場景的工作。
- 論文鏈接:https://arxiv.org/abs/2210.08936
- 論文主頁:https://ywq.github.io/s3nerf/
- 代碼鏈接:https://github.com/ywq/s3nerf
與現(xiàn)有基于法線貼圖或深度圖的單視圖方法不同,S3-NeRF 基于神經(jīng)場景表征(neural scene representation),同時利用場景中的 shading 和 shadow 信息來重建整個 3D 場景(包括可見 / 不可見區(qū)域)。神經(jīng)場景表征方法使用多層感知器 (MLP)對 連續(xù) 3D 空間進行建模,將 3D 點映射到如密度、顏色等的場景屬性。盡管神經(jīng)場景表征在多視圖重建和新視圖合成方面取得了重大進展,但其在單視圖場景建模中的探索較少。與現(xiàn)有依賴多視圖照片一致性的基于神經(jīng)場景表征的方法不同,S3-NeRF 主要通過利用單視圖下的 shading 和 shadow 信息來優(yōu)化神經(jīng)場。
我們發(fā)現(xiàn)簡單的在 NeRF 中直接引入光源位置信息作為輸入無法重建場景的幾何和外觀。為了更好地利用捕獲的光度立體圖像,我們使用反射場(reflectance field)對表面幾何和 BRDF 進行顯式建模,并采用基于物理的渲染來計算場景 3D 點的顏色,并通過立體渲染得到該光線(ray)對應的二維像素的顏色。同時,我們對場景的可見度(visibility)進行可微建模,通過追蹤 3D 點到光源之間的光線,計算該點的可見度。然而,考慮一條光線上所有采樣點的可見性計算成本較大,因此我們通過計算光線追蹤得到的表面點的可見性來優(yōu)化陰影建模。
基于神經(jīng)反射場的場景表征
我們采用類似 UNISURF 的 occupancy field 來表征場景幾何。UNISURF 通過 MLP 將 3D 點坐標及視線方向映射到該點的 occupancy 值和顏色,并通過立體渲染得到像素的顏色,
Nv為每條射線上采樣點的數(shù)量。
為了有效利用光度立體圖像中的 shading 信息,S3-NeRF 顯式地對場景的 BRDF 進行了建模,并使用基于物理的渲染得到 3D 點的顏色。同時我們對場景 3D 點的光可見性進行建模以利用圖像中豐富的陰影線索,并通過下式得到最后的像素值。
基于物理的渲染模型
我們的方法考慮了非朗伯表面和空間變化的 BRDF。點 x 在近場點光源(pl, Le)下從視線方向 d 觀測得到的值可以表示為
其中,我們考慮到點光源的光線衰減問題,通過光源 - 點之間的距離計算入射該點處的光照強度。我們采用考慮漫反射和鏡面反射的 BRDF 模型
通過球形高斯(Sphere Gaussian)基的加權組合來表示鏡面反射率
陰影建模
陰影在場景幾何重建中是至關重要的其中一個線索。圖中的三個物體在正視圖中具有相同的形狀和外觀,但其背面卻是形狀各異。通過不同光照下產生的陰影,我們可以觀察到其陰影的形狀各不相同,這些反應了正視圖中不可見區(qū)域的幾何信息。光線通過映射在背景中的陰影對物體的背面輪廓產生了一定的約束。
我們通過計算 3D 點 - 光源之間的 occupancy 值來反映該點的光可見度
其中,NL是該點 - 光源線段上采樣的點的數(shù)量。
由于計算像素點沿光線采樣的所有 Nv 點的可見度計算成本較大(O (NvNL)),現(xiàn)有的方法有的采用 MLP 直接回歸點的可見度(O (Nv)),或是得到場景幾何后預先提取表面點(O (NL))。S3-NeRF 則通過 root-finding 定位的表面點以在線方式計算該像素的光可見度,并通過下式表示像素值。
場景優(yōu)化
我們的方法不需要對陰影進行監(jiān)督,而是依靠圖像的重建 loss 來進行優(yōu)化??紤]到單視角下沒有其他視角帶來的額外約束,如果采用類似 UNISURF 逐漸縮小采樣范圍的采樣策略,將會導致模型在采樣間隔減小后開始退化。因此,我們采用聯(lián)合立體渲染和表面渲染的策略,利用 root-finding 定位得到的表面點渲染顏色并計算 L1 loss。
實驗結果
與神經(jīng)輻射場方法的比較
我們首先與基于神經(jīng)輻射場的兩個 baseline 方法進行比較(由于任務不同,我們在其顏色 MLP 中引入光源信息)??梢钥吹剿鼈儫o法重建場景幾何,也無法準確生成新光照下的陰影。
與單視角形狀估計方法的比較
在與現(xiàn)有單視圖法線 / 深度估計的方法比較中可以看到,我們的方法在法線估計和深度估計上都取得了最好的結果,并且能夠同時重建場景中可見與不可見的區(qū)域。
不同背景的場景重建
我們的方法適用于各種不同背景條件的場景。
新視圖渲染、改變光照與材料編輯
基于神經(jīng)反射場的場景建模,我們成功解耦了場景的幾何 / 材質 / 光照等,因而可以應用于新視圖渲染、改變場景光照、材料編輯等應用。
真實拍攝場景的重建
我們拍攝了三個真實場景來探索其實用性。我們將相機位置固定,利用手機的手電筒作為點光源(環(huán)境光源關閉),手持手電筒隨機移動以捕捉不同光源下的圖像。該設置無需光源校準,我們應用 SDPS?Net 得到光源方向的粗略估計,并粗略估計相機 - 物體及光源 - 物體的相對距離來初始化光源位置。光源位置在訓練過程中隨場景的幾何和 BRDF 聯(lián)合優(yōu)化??梢钥吹郊幢闶禽^為隨意的數(shù)據(jù)捕捉設置(沒有對于光源的校準),我們的方法仍能較好的重建 3D 場景幾何。
總結
- S3-NeRF 通過利用單視圖多個點光源下拍攝的圖像來優(yōu)化神經(jīng)反射場以重建 3D 場景幾何和材質信息。
- 通過利用 shading 和 shadow 線索,S3-NeRF 能有效恢復場景中可見 / 不可見區(qū)域的幾何形狀,實現(xiàn)單目視角下完整場景幾何 / BRDF 的重建。
- 各項實驗表明我們的方法能夠重建各種復雜幾何 / 材質的場景,并能應對各種幾何 / 材質的背景以及不同的光照數(shù)量 / 光源分布。