簡介:神經輻射場(NeRF)學習時數據包含不在圖像拍攝期間持續存在的干擾物(如移動物體、光照變化、陰影)時,會出現偽影。為了處理這些干擾物,本工作提出一種用于NeRF訓練的魯棒性估計,將訓練數據中的干擾物建模為優化問題的離群值。我們的方法成功地從場景中去除了離群值,并在合成和真實場景上改進了目前NeRF方法的結果。本方法只需很少的超參數就能加入到各種類型的NeRF算法中。
介紹
盡管NeRF在新視角合成方面表現出色并且方法直接,但它隱藏了一些假設。由于模型通常是為了最小化在RGB顏色空間中的誤差而訓練的,因此圖像的光照一致性非常重要——從相同視角拍攝的兩張照片應該是相同的,除了噪聲。應該手動保持相機的焦點、曝光、白平衡和ISO固定。
圖1
然而,正確配置相機并不是捕捉高質量NeRF的全部要求,還有一個重要的要求是避免干擾物:即在整個捕捉過程中并不持續存在的任何干擾物體。干擾物以多種形式出現,從拍攝者影子,到突然出現的寵物等。手動去除干擾物是繁瑣的,需要逐像素的標記。檢測干擾物也很繁瑣,因為典型的NeRF場景是從數百張輸入圖像中訓練的,而干擾物的類型事先是未知的。如果忽略干擾物,重建場景的質量會顯著降低,如圖1。
在通常使用的nerf數據中,一個場景往往無法從同一視角捕捉多幅圖像,這使得數學建模干擾物變得困難。更具體地說,雖然視角相關效應(View-Dependent)是使NeRF看起來逼真的因素,但模型如何區分干擾物和視角相關效果呢?
盡管存在挑戰,研究界已經設計了幾種方法來克服這個問題:
如果已知干擾物屬于特定類別(例如人),可以使用預訓練的語義分割模型將其去除,這個過程不適用于“意外”干擾物,如陰影。
可以將干擾物建模為每張圖像的瞬時的現象,并控制瞬時/永久建模的平衡,就像NeRF in the wild一樣處理,但是這個優化問題是困難的。
可以將數據建模為時間(即高幀率視頻)并將場景分解為靜態和動態(即干擾物)兩部分,但這顯然僅適用于視頻捕捉而不是照片收集捕捉。
相反,本工作通過將它們建模為NeRF優化中的離群值來解決干擾物問題。我們從魯棒性估計的角度進行了分析,從而能理解干擾物的特征,并設計出一種不僅可以簡單實現,而且更有效的方法,需要很少或不需要超參數調整,并實現了SOTA的性能。
方法
傳統的NeRF訓練損失在捕獲光照一致的場景方面非常有效,然而,當場景中存在不在整個拍攝場景中持續存在的元素時會發生什么?這種場景的簡單示例包括只在某些觀察圖像的一部分中存在的對象,或者可能不在所有觀察圖像中的相同位置。例如,圖2描繪了一個包含持久對象(卡車)以及幾個瞬時對象(如人和狗)的2D場景。盡管來自三臺相機的藍色光線與卡車相交,但來自相機1和3的綠色和橙色光線與瞬時對象相交。對于視頻捕捉和時空NeRF模型,持久對象組成了場景的“靜態”部分,而其余部分被稱為“動態”。
圖2
對離群值的敏感性
對于Lambertian場景,光照一致的結構是視角無關的,因為場景輻射僅取決于入射光線。對于這種場景,視角相關NeRF模型,通過最小化RGB L2 Loss進行訓練,可以產生解釋瞬時對象的局部最優解。圖2右解釋了這一點,出射顏色對應于離群值的記憶顏色——即視角相關顏色。這種模型利用模型的視角相關容量來過擬合訓練數據,有效地記憶瞬時對象。可以改變模型以消除對的依賴性,但L2損失仍然有問題,因為最小二乘(LS)估計對離群值或重尾噪聲分布敏感。
在更自然的條件下,放棄Lambertian假設,問題變得更加復雜,因為非Lambertian反射現象和離群值d都可以被解釋為視角相關輻射。雖然我們希望模型能夠捕捉光照一致的視角相關輻射,但理想情況下,離群值和其他瞬時現象應該被忽略。在這種情況下,使用L2損失進行優化會導致重建中出現明顯的錯誤,如圖1 MipNeRF360所示。這種問題在NeRF模型擬合中普遍存在,特別是在不受控的環境中,具有復雜的反射、非剛性或獨立運動的物體。
對離群值的魯棒性
通過語義分割實現的魯棒性
在NeRF模型優化期間減少離群值污染的一種方法是依賴于一個Mask,該Mask指定給定像素是否為離群值,并且不計算該像素的Loss,在實際應用中,可以使用一個預訓練的語義分割網絡提供mask。例如,NeRF in the Wild使用語義分割模型來刪除被人占據的像素,因為在旅游照片數據集中,短暫存在的人群為離群值。Urban Radiance Fields分割了天空像素,這種方法的明顯問題在于需要一個可以檢測任意干擾物的分割網絡。
Robust Loss
本文提出了一種用于NeRF模型擬合的帶有修剪最小二乘(LS)損失的迭代重新加權最小二乘(IRLS)形式,如圖3所示。
圖3
IRLS是一種廣泛使用的用于魯棒性估計的方法,它涉及求解一系列加權最小二乘問題,這些問題的權重根據逐漸減小離群值的影響而調整。但是為NeRF優化選擇合適的權重函數(即Kernel函數,權重函數)是不容易的,這主要是因為視角相關輻射現象與離群值之間的相似性。一個可能的方法是通過學習神經網絡權重函數來解決這個問題,但是生成足夠的標注訓練數據比較困難。相反,本文所提出的Kerner函數利用離群值結構中的先驗,利用了修剪最小二乘估計的簡潔,便達到了目標效果。
Robust Kernel
RobustNeRF提出一種用于迭代加權最小二乘優化的權重函數(圖3),能既簡單又捕獲了用于NeRF優化的有用歸納誤差。為了簡單起見,RobustNeRF選擇了一種具有直觀參數的二進制權重函數,它在模型擬合過程中自然地適應,以便快速學習非離群值的細粒度圖像細節。Robust Kernel捕獲了典型離群值的結構化性質,根據結構先驗,干擾物通常具有局部連續性,因此離群值預計占據圖像的大塊連續區域(例如,從旅游照片數據集中分割出一個人的輪廓)。
實驗
與Mip-NeRF 360比較
在自然場景中,RobustNeRF通常比MipNeRF360的變體在PSNR上高出1.3到4.7 dB。由于、和Charbonnier損失同等對待所有像素,MipNeRF360被迫將干擾物表示為具有視角相關外觀的“云”而不是忽略它們。我們發現當干擾物在多個幀中保持靜止時,云最為明顯。相比之下,RobustNeRF的損失將干擾物像素隔離出來,并將它們的權重設為零。為了確定重建準確性的上限,我們使用Charbonnier損失在每個場景的不包含干擾物的版本上訓練MipNeRF360,這些圖像從(大致)相同的視角拍攝。RobustNeRF在訓練沒有干擾物的幀時,實現了幾乎相同的性能,見圖4。
圖4
與D2NeRF比較
定量上,RobustNeRF與D2NeRF相當,具體取決于場景中離群的對象數量。在Statue和Android中,分別移動了一個和三個非剛性對象。D2NeRF能夠對這些對象進行建模,因此可以將它們與場景的靜態內容分開。在其余的場景中,使用了更多干擾物體,包含100到150個唯一的非靜態對象——這對于D2NeRF來說太多了,無法有效地建模。因此,在其靜態表示中出現了偽影,類似于MipNeRF360產生的偽影。相比之下,RobustNeRF將非靜態內容識別為離群值,并在重建過程中省略它。盡管這兩種方法使用了類似數量的參數,但D2NeRF的內存使用峰值比RobustNeRF高2.3倍,而在批處理大小歸一化時高出37倍。這是模型結構差異的直接結果D2NeRF專門用于同時建模靜態和動態內容,因此具有更高的復雜性。
表1
-
模型
+關注
關注
1文章
3247瀏覽量
48855 -
數據建模
+關注
關注
0文章
11瀏覽量
6990 -
圖像生成
+關注
關注
0文章
22瀏覽量
6896
原文標題:CVPR2023 | RobustNeRF: 從單張圖像生成3D形狀
文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論