本文是對我們ICCV 2021被接收的文章NerfingMVS: Guided Optimization of Neural Radiance Fields for Indoor Multi-view Stereo 的介紹。在這個工作中,我們通過對神經(jīng)輻射場(NeRF)進行引導(dǎo)優(yōu)化,實現(xiàn)了室內(nèi)的多視角三維重建(multi-view stereo)。很榮幸地,我們的文章被接收為ICCV 2021的Oral論文,目前項目代碼已開源,歡迎大家試用和star~
效果展示
arXiv:https://arxiv.org/abs/2109.01129
主頁:https://weiyithu.github.io/NerfingMVS/
Code:https://github.com/weiyithu/NerfingMVS
概述
熟悉3D視覺領(lǐng)域的朋友們都知道,近一年來NeRF大火。NeRF概括來說是一個用MLP學(xué)習(xí)得到的神經(jīng)輻射場。它的訓(xùn)練數(shù)據(jù)是多視角的RGB圖片。學(xué)得的神經(jīng)輻射場可以表示場景的三維結(jié)構(gòu),從而實現(xiàn)新視角的視圖合成。對NeRF更加具體的介紹,請大家參考林天威:https://zhuanlan.zhihu.com/p/360365941
既然Nerf可以表示場景的三維信息,一個自然的想法是能不能將NeRF應(yīng)用到室內(nèi)場景三維重建任務(wù)中呢。NeRF有著一些優(yōu)勢:相較于傳統(tǒng)的MVS,SfM算法,NeRF蘊含了整個場景的信息,所以有潛力重建出低紋理區(qū)域的三維結(jié)構(gòu);而相較于另一個在線優(yōu)化的深度估計算法CVD ,NeRF不需要顯示地對不同視角的像素進行匹配,這一點在室內(nèi)場景是很難做到的。但可惜的是,原生NeRF在室內(nèi)場景中存在形狀輻射歧義(shape-radiance ambiguity)的問題。這個問題的大致意思是NeRF可以合成出高質(zhì)量的新視角的RGB圖片,但它卻沒有學(xué)會場景的三維結(jié)構(gòu)。
為了解決這個問題,我們提出了NerfingMVS。我們方法的核心是用網(wǎng)絡(luò)預(yù)測出來的深度先驗去引導(dǎo)神經(jīng)輻射場的優(yōu)化過程。我們首先用SfM得到的稀疏深度訓(xùn)練一個專屬于當(dāng)前場景的單目深度網(wǎng)絡(luò)。之后用這個單目深度網(wǎng)絡(luò)預(yù)測的深度圖來指導(dǎo)NeRF的學(xué)習(xí)。最后我們根據(jù)視角合成的結(jié)果利用濾波器去進一步提升深度圖的質(zhì)量。在ScanNet上的實驗結(jié)果表明,我們的方法超過了當(dāng)前最好方法的性能,并且我們還提升了新視角RGB圖片的質(zhì)量以及縮短了三倍的NeRF訓(xùn)練時間。
方法
我們的方法分為三個步驟:場景敏感的深度先驗,神經(jīng)輻射場的引導(dǎo)優(yōu)化,基于合成視圖的深度圖濾波。
場景敏感的深度先驗:與CVD類似,我們同樣利用了神經(jīng)網(wǎng)絡(luò)預(yù)測出來的深度先驗。但不同的是,為了進一步提升深度先驗在當(dāng)前場景的精度,我們利用SfM重建出的稀疏深度對單目深度網(wǎng)絡(luò)進行了微調(diào)(finetune)。這一步的目的其實是讓這個深度網(wǎng)絡(luò)過擬合在當(dāng)前場景上。具體來說,我們使用了COLMAP算法得到了多視角融合的點云,并將點云投影到各個視角下得到每個視角的稀疏深度。由于多視角融合的點云是經(jīng)過了幾何一致性校驗的,因此雖然深度是稀疏的,但也是相對準(zhǔn)確的。此外,由于尺度歧義的問題,我們使用了尺度不變的損失函數(shù):
神經(jīng)輻射場的引導(dǎo)優(yōu)化:我們發(fā)現(xiàn)如果簡單地在室內(nèi)場景應(yīng)用NeRF無法得到正確的三維重建結(jié)果。這其實就是所謂的形狀輻射歧義現(xiàn)象,換句話說,NeRF可以很好地擬合出訓(xùn)練視角的RGB圖片(圖(a)),但卻沒有學(xué)到正確的場景3D結(jié)構(gòu)(圖(c))。造成這個問題的本質(zhì)原因是對于同一組RGB圖片,會有多個神經(jīng)輻射場與之對應(yīng)。此外,現(xiàn)實室內(nèi)場景的RGB圖片會比較模糊并且圖片之間的位姿變換也會比較大,這導(dǎo)致了網(wǎng)絡(luò)的學(xué)習(xí)能力下降,加劇了這個問題。
為了解決這個問題,我們利用深度先驗去指導(dǎo)NeRF的采樣過程。我們首先根據(jù)幾何一致性校驗計算得到每個視角深度先驗的誤差圖。具體來講,我們將每個視角的深度投影到其它視角下并與其它視角的深度計算相對誤差。NeRF中每個視角下每條ray的采樣中心點為對應(yīng)位置處的深度先驗,采樣范圍由誤差圖決定。誤差越小,深度先驗的置信度越高,那么采樣范圍就越??;反之,誤差越大,深度先驗的置信度越低,那么采樣范圍就越大。
基于合成視圖的深度圖濾波:為了進一步提升深度圖的質(zhì)量,我們最后進行了一步濾波。這步操作是基于一個假設(shè):如果渲染出的RGB都不對,那么對應(yīng)位置處算出來的深度也往往是錯的。因此我們可以根據(jù)渲染得到的RGB與真實RGB之間的誤差計算逐像素的置信度圖:
這個置信度圖可以被用來濾波,我們這里使用的是平面雙邊濾波器(plane bilateral filtering)。
實驗結(jié)果
與SOTA方法對比:
無論是從定量還是定性的結(jié)果來看,我們的方法都達到了當(dāng)前最好性能,甚至超過了一些有監(jiān)督的方法:DELTAS,Atlas,DeepV2D。
視圖合成結(jié)果:
前兩行是訓(xùn)練視角,后兩行是新視角。盡管視圖合成不是我們的主要任務(wù),我們的方法仍顯著地提升了NeRF視圖合成的結(jié)果。訓(xùn)練視角的提升也說明了我們的方法可以幫助NeRF聚焦在更重要的區(qū)域并提升網(wǎng)絡(luò)的性能。此外,我們將NeRF的訓(xùn)練時間縮短至三分之一。
In-the-wild結(jié)果展示:
我們用手持相機在家拍攝了一些demo。
總結(jié)與討論
在這個工作中,我們將傳統(tǒng)SfM算法與NeRF結(jié)合解決室內(nèi)多視角重建問題。我們方法的核心是將深度先驗引入NeRF中指導(dǎo)它的采樣過程。在真實室內(nèi)場景數(shù)據(jù)集ScanNet上的實驗結(jié)果表明,NerfingMVS取得了很好的效果。當(dāng)然我們的方法現(xiàn)在也存在一些limitations:1. 盡管我們大大加速了NeRF的訓(xùn)練過程,但現(xiàn)在仍無法達到實時。2. 我們需要SfM提供位姿和稀疏深度,因此比較依賴COLMAP的重建結(jié)果。
審核編輯 :李倩
-
算法
+關(guān)注
關(guān)注
23文章
4709瀏覽量
95327 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1224瀏覽量
25434 -
3D視覺
+關(guān)注
關(guān)注
4文章
452瀏覽量
28236
原文標(biāo)題:ICCV 2021 Oral | NerfingMVS:引導(dǎo)優(yōu)化神經(jīng)輻射場實現(xiàn)室內(nèi)多視角三維重建
文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
怎樣去設(shè)計一種基于RGB-D相機的三維重建無序抓取系統(tǒng)?
如何去開發(fā)一款基于RGB-D相機與機械臂的三維重建無序抓取系統(tǒng)
無人機三維建模的信息
基于紋理映射的醫(yī)學(xué)圖像三維重建
基于FPGA的醫(yī)學(xué)圖像三維重建系統(tǒng)設(shè)計與實現(xiàn)
透明物體的三維重建研究綜述

NVIDIA Omniverse平臺助力三維重建服務(wù)協(xié)同發(fā)展
深度學(xué)習(xí)背景下的圖像三維重建技術(shù)進展綜述
從多視角圖像做三維場景重建 (CVPR'22 Oral)
三維重建:從入門到入土
如何實現(xiàn)整個三維重建過程

基于光學(xué)成像的物體三維重建技術(shù)研究

航天宏圖全棧式3DGS實景三維重建系統(tǒng)解決方案

評論