神經輻射場(neural radiance field, NeRF)
/ NUR-ul RAY-dee-uns feeld (nurf) /
神經輻射場,即NeRF,能從一組在不同角度拍下的普通照片中,構建出一個場景的三維模型——然後讓你把一台虛擬相機飛到任何一個你其實從未拍過的新視角。從二十個位置給一座雕像拍照,NeRF就能渲染出從其中任意兩個位置「之間」看過去會是什麼樣,連透視、光照、甚至反光都正確無誤。它是一種把真實的地方或物體,捕捉成「你可以在三維裡重訪之物」的方法。
它巧妙的轉折,在於它存的是什麼。NeRF存的不是傳統的、由三角形拼成的三維網格,而是一個小小的神經網路,它把整個場景記成了一個連續的函數:你問它「在這個三維點上、從這個方向看過去,那裡是什麼顏色、有多實在?」,它就回答。要生成一張圖像,電腦會向每個像素射出想像的光線,沿每條光線向網路詢問許多個點,再把顏色累加起來——這個過程叫體渲染。把網路訓練到它渲染出的視角與你的真實照片相符,它便隱式地學會了場景的幾何。
這是個驚艷的成果,但要把局限說清楚。最初的NeRF訓練慢、渲染也慢,它捕捉的是某一個特定場景(並非通用的世界模型),還假設場景靜止不動——移動的人或車會讓它犯糊塗。它在你的照片之間能漂亮地插值,卻無法真實地憑空造出某個你從未展示給它看的物體的背面。這個領域發展極快:更快的變體,以及一種叫高斯潑濺(Gaussian splatting)的相關技術,如今已能即時渲染。但說到底,NeRF重建的是一種「你可以重新觀看的外觀」;它不是測量級的三維掃描,那些沒被看見的部分,都是猜測。
你繞著一座噴泉走,拍了40張照片。一個NeRF在這些照片上訓練,然後讓你把相機滑到一個你從未站過的低角度——水流、飛濺的反光、以及深度,看起來都對。但若把虛擬相機對準噴泉那一側——你的照片從未拍到過的地方——結果就糊成了含混的瞎猜。
在你拍過的照片之間可以自由移動——但你從未展示過的部分,仍然是一場猜測。
NeRF重建的是某一個特定、且大體靜止的場景,作為一種「可重新觀看的外觀」——它既不是通用的三維世界模型,也不是測量級的掃描。它在你的照片之間插值,卻無法真實地補全它從未見過的表面。最初的版本很慢;較新的方法(以及高斯潑濺)渲染要快得多。