作者:程耀
單位:中國(guó)移動(dòng)智慧家庭運(yùn)營(yíng)中心
當(dāng)今,三維重建技術(shù)在計(jì)算機(jī)視覺(jué)和計(jì)算機(jī)圖形學(xué)領(lǐng)域扮演著越來(lái)越重要的角色,它們有助于將物理世界中的實(shí)體轉(zhuǎn)換為數(shù)字模型。三維重建技術(shù)的應(yīng)用范圍非常廣泛,包括增強(qiáng)現(xiàn)實(shí)、虛擬現(xiàn)實(shí)、建筑設(shè)計(jì)、游戲開(kāi)發(fā)等領(lǐng)域。本文將介紹三維重建技術(shù)的概念、方法,重點(diǎn)關(guān)注神經(jīng)輻射場(chǎng)(NeRF)算法。
三維重建的概念
三維重建是一種將物理世界中的實(shí)體轉(zhuǎn)換為數(shù)字模型的計(jì)算機(jī)技術(shù)。其基本概念是通過(guò)對(duì)物理世界中的物體或場(chǎng)景進(jìn)行掃描或拍攝,并使用計(jì)算機(jī)算法將其轉(zhuǎn)換為三維數(shù)字模型。抽象意義上的三維模型指的是:形狀和外觀的組合,并且可以渲染成不同視角下真實(shí)感強(qiáng)烈的RGB圖像。
三維重建技術(shù)可以應(yīng)用于許多領(lǐng)域,如建筑設(shè)計(jì)、游戲開(kāi)發(fā)、虛擬現(xiàn)實(shí)等。通過(guò)三維重建技術(shù),可以快速、準(zhǔn)確地獲取物體的幾何形狀、紋理、顏色等信息,從而實(shí)現(xiàn)更高質(zhì)量的渲染和呈現(xiàn)效果。
三維重建技術(shù)的實(shí)現(xiàn)方式有很多種,如通過(guò)多視角立體重建、激光掃描、結(jié)構(gòu)光掃描等方式進(jìn)行。近年來(lái),隨著深度學(xué)習(xí)等技術(shù)的發(fā)展,深度神經(jīng)網(wǎng)絡(luò)也被應(yīng)用于三維重建技術(shù)中,取得了令人矚目的成果。三維重建技術(shù)的發(fā)展和應(yīng)用將進(jìn)一步推動(dòng)數(shù)字化建設(shè)的發(fā)展和普及。這些突破性進(jìn)展為三維重建技術(shù)的持續(xù)演進(jìn)提供了強(qiáng)大動(dòng)力,進(jìn)一步推動(dòng)了數(shù)字化建設(shè)的普及和發(fā)展。
三維重建的應(yīng)用
三維重建生成的應(yīng)用非常廣泛,其中一項(xiàng)重要的應(yīng)用是生成新視角的圖片或視頻。通過(guò)三維重建技術(shù),我們可以從已有的視角獲取物體的幾何形狀和表面紋理等信息,并生成具有真實(shí)感的RGB圖像及視頻。
例如,三維重建技術(shù)可以用于視頻增強(qiáng),即從已有的視頻中生成新的視角,從而改善視頻的觀感和交互性。例如,觀眾可以根據(jù)自己的喜好選擇不同的視角觀看物體、環(huán)境,實(shí)現(xiàn)全景觀看,達(dá)成更好的用戶(hù)交互體驗(yàn)。如下圖所示,我們可以從照片中推斷出當(dāng)前的三維環(huán)境,供用戶(hù)從多角度觀看,但通常情況下,這需要多張照片。
圖1 三維重建的應(yīng)用
另外,三維重建技術(shù)也可以用于視頻編輯和特效制作,例如在電影中添加虛擬場(chǎng)景。
三維重建的方法
掃描三維重建和多視角立體重建(Multi-View Stereo, MVS)是常見(jiàn)的兩種傳統(tǒng)三維重建方法。其流程如下圖所示:
圖2 三維重建的流程
掃描三維重建是指使用專(zhuān)業(yè)掃描儀等設(shè)備,對(duì)物體進(jìn)行多角度、高精度的掃描,獲取物體表面的點(diǎn)云數(shù)據(jù),之后,通過(guò)點(diǎn)云重建算法生成物體的三維模型。這種方法對(duì)物體形狀和細(xì)節(jié)的重建精度較高,適用于文物保護(hù)、工業(yè)設(shè)計(jì)等領(lǐng)域。但是,掃描儀的價(jià)格昂貴,需要較高的技術(shù)和操作水平,同時(shí)掃描過(guò)程需要一定的時(shí)間,不適用于消費(fèi)級(jí)或工業(yè)級(jí)產(chǎn)品。
MVS三維重建是指使用多個(gè)視角的圖像,通過(guò)多視角幾何原理和圖像匹配算法,計(jì)算出場(chǎng)景中物體表面的深度和法向信息,最終生成三維模型。這種方法無(wú)需特殊設(shè)備,只需使用相機(jī)等普通設(shè)備即可實(shí)現(xiàn),適用于復(fù)雜場(chǎng)景的三維重建。但是,MVS方法對(duì)圖像質(zhì)量和視角的要求較高,需要處理視角重疊度不足、陰影等問(wèn)題,同時(shí)圖像匹配算法的準(zhǔn)確度也對(duì)重建效果有很大影響。
圖3 三維重建示意圖(左邊為輸入圖片,右邊為生成的三維模型)
除了傳統(tǒng)的三維重建方法,三維模型的隱式重建近幾年也在不斷發(fā)展,其主要思想是使用神經(jīng)網(wǎng)絡(luò)建立場(chǎng)景或物體的三維模型,從而實(shí)現(xiàn)高質(zhì)量的重建。三維隱式重建并不顯性地產(chǎn)生例如三維曲面的模型,而是通過(guò)數(shù)學(xué)表達(dá)式來(lái)隱式地表達(dá)場(chǎng)景中每一個(gè)點(diǎn)的顏色、深度。也就是說(shuō),隱式重建省略了圖1的中間過(guò)程,從輸入物體照片直接得到了新視角下圖片。
三維物體的隱式表達(dá)一般有,有向距離函數(shù)(SDF,Signed Distance Function)、占用場(chǎng)(OF,Occupancy Field)來(lái)表示一個(gè)點(diǎn)距離附近三維物體的有向距離或者該點(diǎn)是否在三維物體內(nèi)部。
與傳統(tǒng)的MVS相比,隱式重建可以從較少的觀測(cè)數(shù)據(jù)中構(gòu)建高質(zhì)量的三維模型,并且可以更好地處理遮擋、反射和光照等復(fù)雜情況,重建效果相比MVS更加光滑。另外,相比傳統(tǒng)顯式重建得到的離散面片構(gòu)成的三維模型,由于函數(shù)的連續(xù)性,隱式模型能更好的適應(yīng)高分辨率的情況。但同時(shí),隱式重建方法需要大量的訓(xùn)練數(shù)據(jù),并且它難以處理具有復(fù)雜結(jié)構(gòu)和幾何形狀的物體,無(wú)法重現(xiàn)物體的高頻特征,在細(xì)節(jié)方面比較粗糙。
神經(jīng)輻射場(chǎng)(NeRF,Neural Radiance Field)是另一種隱式三維重建技術(shù),使用一個(gè)神經(jīng)網(wǎng)絡(luò)來(lái)預(yù)測(cè)從一個(gè)視點(diǎn)看到的場(chǎng)景中每個(gè)像素的顏色和深度值。這個(gè)神經(jīng)網(wǎng)絡(luò)使用輻射場(chǎng)以學(xué)習(xí)從一系列觀察視角拍攝的圖像中重建場(chǎng)景的表面形狀和紋理?;谏窠?jīng)網(wǎng)絡(luò)輸出的編碼后的信息,采用體渲染輸出指定視角下的二維圖片。
相比于另外兩種隱式三維重建方法,NeRF只需要少量的二維圖像和對(duì)應(yīng)的深度值用于訓(xùn)練,并且在高頻特征上具有更好的表現(xiàn)。
NeRF的提出與發(fā)展
NeRF的概念首次被提出于2020年,由美國(guó)加州大學(xué)伯克利分校(UC Berkeley)和谷歌研究的Ben Mildenhall、Pratul P. Srinivasan、Matthew Tancik和Jonathan T. Barron等人在論文《NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis》中闡述。NeRF的核心思想源于物理學(xué)、計(jì)算機(jī)圖形學(xué)、深度學(xué)習(xí)等多個(gè)領(lǐng)域的結(jié)合。他們提出了一種新穎的神經(jīng)網(wǎng)絡(luò)架構(gòu),通過(guò)學(xué)習(xí)一個(gè)連續(xù)的三維空間中的輻射場(chǎng)來(lái)從有限的二維圖像中重建高質(zhì)量的三維場(chǎng)景。
NeRF自提出后也持續(xù)在生成范圍、生成效果、所需基礎(chǔ)數(shù)據(jù)上進(jìn)行改進(jìn)。例如包含光影變化效果NeRV、動(dòng)態(tài)NeRF HyperNeRF接近實(shí)時(shí)生成Instant NGP和Instant NeRF全場(chǎng)景NeRF mip NeRF 360。
圖4 NeRF示意圖
NeRF整體框架
NeRF算法的整體訓(xùn)練架構(gòu)如下圖所示:
圖5 NeRF訓(xùn)練框架
首先通過(guò)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)場(chǎng)景的輻射場(chǎng)函數(shù)來(lái)實(shí)現(xiàn)對(duì)三維信息的編碼,輸入為三維空間中的坐標(biāo)和方向,輸出為對(duì)應(yīng)點(diǎn)的顏色和透明度值。
第二步體渲染,首先將場(chǎng)景分成小的體素,然后對(duì)每個(gè)體素內(nèi)的光線進(jìn)行采樣,通過(guò)對(duì)所有采樣點(diǎn)的輻射場(chǎng)函數(shù)進(jìn)行加權(quán)平均,得到最終的像素顏色值。相當(dāng)于對(duì)體素中的輻射場(chǎng)進(jìn)行了積分,從而得到了最終的圖像。直觀來(lái)說(shuō),一個(gè)點(diǎn)的透明度越高,這點(diǎn)在射線下的顏色反應(yīng)在像素上的權(quán)重越小。
NeRF還使用了一些技巧來(lái)提高重建質(zhì)量和效率。例如,位置編碼(Positional Encoding)技術(shù)將輸入坐標(biāo)進(jìn)行編碼,使得模型可以更好地處理坐標(biāo)信息。此外,分層體素采樣(Hierarchical Volume Sampling)技術(shù)通過(guò)對(duì)采樣分層,可以減少渲染時(shí)間,提高渲染效率。
輻射場(chǎng)
輻射場(chǎng)是一個(gè)五維函數(shù),用來(lái)描述輻射在空間中的傳播行為和相互作用,在計(jì)算機(jī)圖形學(xué)和計(jì)算機(jī)視覺(jué)領(lǐng)域,輻射場(chǎng)常用于表示三維場(chǎng)景中的光照和顏色信息,可以用于實(shí)現(xiàn)渲染、重建、紋理合成等任務(wù)。
輻射場(chǎng)包含三個(gè)空間維度和兩個(gè)方向維度
,分別表示輻射在空間中的位置和光線的方向。輻射場(chǎng)可以用來(lái)描述光線在介質(zhì)中的傳播、反射、折射、散射等現(xiàn)象,以及介質(zhì)中的吸收、發(fā)射等能量轉(zhuǎn)換過(guò)程。神經(jīng)輻射場(chǎng)可以看作是從空間位置和視角方向到顏色
和透明度
的映射。
圖6 輻射場(chǎng)示意圖
輻射場(chǎng)用數(shù)學(xué)公式可以表達(dá)為:
在NeRF中,輻射場(chǎng)被表示為一個(gè)神經(jīng)網(wǎng)絡(luò)模型,用于從相機(jī)位置和方向計(jì)算出每個(gè)像素點(diǎn)的顏色和透明度,從而實(shí)現(xiàn)高質(zhì)量的三維重建和渲染。此時(shí)函數(shù)可以表達(dá)為:
其中是一個(gè)神經(jīng)網(wǎng)絡(luò)模型,
是模型參數(shù)。
神經(jīng)網(wǎng)絡(luò)架構(gòu)如下圖所示,這里采用的是全連接的形式,綠色為輸入,紅色為輸出,其中代表輸入位置、角度映射出的
維向量,這里我們可以看出,透明度和視角無(wú)關(guān)而顏色和視角有關(guān):
圖7 輻射場(chǎng)神經(jīng)網(wǎng)絡(luò)示意圖
體渲染
體渲染是一種用于可視化三維數(shù)據(jù)的方法,將數(shù)據(jù)中的體素(Voxel)轉(zhuǎn)換為圖像,以顯示其內(nèi)部結(jié)構(gòu)和特征。體渲染通常涉及到光線傳播、顏色合成和光照計(jì)算等過(guò)程,可以通過(guò)各種算法和技術(shù)來(lái)實(shí)現(xiàn)高質(zhì)量的體渲染效果。
體渲染中最基本的方法是基于光線投影(Ray Casting)的體積光線渲染(Volume Ray Casting),其核心思想是在三維體素?cái)?shù)據(jù)上投射光線,并計(jì)算沿光線傳播過(guò)程中體素的透明度和顏色,從而生成渲染圖像。
圖8 渲染示意圖
光線傳播過(guò)程中,透明度和顏色的計(jì)算通常基于體素的密度和光線與體素交點(diǎn)的位置和方向等信息。在體渲染中,常用的透明度傳輸函數(shù)(Opacity Transfer Function)和顏色傳輸函數(shù)(Color Transfer Function)可以用于調(diào)整渲染效果。
在NeRF中,體渲染可以用以下公式來(lái)表示:
其中代表投影點(diǎn)的顏色,
代表光線從物體到觀測(cè)點(diǎn)沿途的透明度的累和,
和
分別代表神經(jīng)輻射場(chǎng)輸出的三維空間的顏色和透明度,
表示光線與數(shù)據(jù)集的最大交點(diǎn),
表示光線的方向。
總結(jié)
隨著智能交互技術(shù)的發(fā)展,圖形學(xué)領(lǐng)域近年來(lái)發(fā)展迅速,從傳統(tǒng)的MVS重建到基于神經(jīng)網(wǎng)絡(luò)的隱式重建,都在為更好的顯示、交互效果不斷演變。自NeRF發(fā)布以來(lái),基于NeRF的新模型也層出不窮,例如HeadNeRF重建三維人臉,PixelNeRF只需輸入極少量的目標(biāo)圖片,即可產(chǎn)生新視角圖片。圖形學(xué)必將為我們帶來(lái)更好的智能交互體驗(yàn)。