三維計(jì)算機(jī)視覺(jué)可以分為兩個(gè)主要問(wèn)題:三維重建(3D Reconstruction)和三維理解(3D Understanding),前者側(cè)重于從圖片恢復(fù)出場(chǎng)景的幾何表示,后者側(cè)重于提取出場(chǎng)景中實(shí)體的空間關(guān)系和語(yǔ)義信息。三維重建已經(jīng)是一個(gè)被深入研究的問(wèn)題,其中涉及到的知識(shí)包括基礎(chǔ)的多視角幾何(Multiple view geometry),狀態(tài)估計(jì)(State Estimation),優(yōu)化理論,到圖像處理/視覺(jué)中特征點(diǎn)檢測(cè)、圖形學(xué)中的幾何表示和處理等等。
基于視覺(jué)的三維重建將輸入的一系列圖片轉(zhuǎn)換為幾何模型。盡管三維重建可以幫助我們采集場(chǎng)景的幾何結(jié)構(gòu),對(duì)于三維測(cè)繪、自動(dòng)駕駛等場(chǎng)景具有極大價(jià)值,但如果我們想要感受真實(shí)世界一樣,那么三維重建的結(jié)果遠(yuǎn)遠(yuǎn)不能滿(mǎn)足我們?nèi)搜鄣囊?。同時(shí),由于和真實(shí)世界的差距,利用三維重建出的模型訓(xùn)練深度網(wǎng)絡(luò)也會(huì)產(chǎn)生一些泛化性的問(wèn)題(Domain Gap)。這樣,逆渲染(Inverse Rendering)可以在三維重建的基礎(chǔ)上,進(jìn)一步恢復(fù)出場(chǎng)景的光照、材質(zhì)等信息,從而可以實(shí)現(xiàn)更具真實(shí)感的渲染。
什么是逆渲染呢?我們先說(shuō)渲染是什么。渲染(Rendering)是圖形學(xué)的三大問(wèn)題之一,除此之外還包括幾何(Geometry)和動(dòng)畫(huà)(Animation)。給定一個(gè)虛擬三維場(chǎng)景的描述(包括模型、位置關(guān)系、光照等),渲染過(guò)程將3D的場(chǎng)景轉(zhuǎn)化為2D的圖片。而逆渲染則是渲染的逆過(guò)程,給定一系列照片,恢復(fù)出場(chǎng)景的幾何、光照和材質(zhì)。
因此無(wú)論是三維重建和逆渲染,都可以視為圖片和場(chǎng)景之間的一個(gè)橋梁。在介紹其流程之前,我們先介紹下照片和場(chǎng)景的本質(zhì)。
照片的本質(zhì)
照片本質(zhì)是三維世界在二維平面上的一個(gè)投影。我們通過(guò)相機(jī)中的圖像傳感器陣列來(lái)記錄場(chǎng)景中物體表面發(fā)出的光線(xiàn)的顏色(RGB)。因此圖片中的每一個(gè)像素對(duì)應(yīng)了三維空間中的一個(gè)點(diǎn),而這樣一個(gè)對(duì)應(yīng)關(guān)系通過(guò)相機(jī)模型(Camera Model)來(lái)表達(dá)。相機(jī)模型有一系列相機(jī)參數(shù),稱(chēng)為相機(jī)的內(nèi)參(Intrinsic)。最為常見(jiàn)的就是針孔相機(jī)模型(Pin-hole),全景相機(jī)(Omnidirectional)等等。
https://mphy0026.readthedocs.io/en/latest/calibration/camera_calibration.html
場(chǎng)景的本質(zhì)
雖然我們一直說(shuō)三維重建要恢復(fù)場(chǎng)景,那么到底如何表示場(chǎng)景呢?簡(jiǎn)單來(lái)說(shuō),場(chǎng)景(Scene)可以由多個(gè)物體(Object)組成。場(chǎng)景可以通過(guò)物體本身的模型以及之間的相對(duì)位置關(guān)系來(lái)描述。我們可以對(duì)每個(gè)物體賦予一個(gè)坐標(biāo)系,并且定義一個(gè)世界原點(diǎn)。這樣,無(wú)論是什么樣的物體,我們都可以通過(guò)坐標(biāo)系之間的相對(duì)坐標(biāo)系變換來(lái)表示,包括位置(Translation)和旋轉(zhuǎn)(Rotation)兩部分,簡(jiǎn)稱(chēng)位姿(Pose)。同樣的,作為拍攝場(chǎng)景的相機(jī)(Camera),也可以視作一個(gè)特殊的物體。
http://www.codinglabs.net/article_world_view_projection_matrix.aspx
不過(guò)通常來(lái)說(shuō),在三維重建中我們主要將場(chǎng)景中的所有物體視為一個(gè)整體,用單個(gè)模型來(lái)表示。對(duì)于一個(gè)模型,我們分成幾何結(jié)構(gòu)(Geometry)、材質(zhì)紋理(Texture/Material)及其映射關(guān)系來(lái)表示。對(duì)于幾何表示,我們主要關(guān)心的是物體的表面(畢竟里面看不到),因此我們可以用最基礎(chǔ)的Point Cloud,即一系列3D點(diǎn)的集合來(lái)表示。也可以再增加點(diǎn)與點(diǎn)之間的連接關(guān)系,通過(guò)一系列的面片來(lái)表示,也就是Mesh。
如何從照片恢復(fù)場(chǎng)景
由于逆渲染一定程度上包括了三維重建,我們先說(shuō)說(shuō)如何進(jìn)行三維重建。經(jīng)典的三維重建可以分為三步:
1)從多個(gè)視角的照片恢復(fù)出各視角的相機(jī)位姿,以及場(chǎng)景的稀疏結(jié)構(gòu)——SfM
2)估計(jì)出各個(gè)視角的深度圖,從而得到單視角的點(diǎn)云——MVS
3)融合各個(gè)視角的點(diǎn)云,并進(jìn)行表面重建——Surface Reconstruction
這一技術(shù)路線(xiàn)已經(jīng)有相當(dāng)成熟的開(kāi)源工作和產(chǎn)品,如Colmap,RealityCapture等。
當(dāng)然,深度學(xué)習(xí)方法也可以與經(jīng)典方法結(jié)合,在某些情況下可以起到明顯作用。如SfM中的特征點(diǎn)檢測(cè),利用深度網(wǎng)絡(luò)可以更好地處理紋理缺失、運(yùn)動(dòng)模糊的情況,或者M(jìn)VS中利用深度模型進(jìn)行深度估計(jì)。
同時(shí)近兩年端到端的表面重建方法效果上也逐漸超過(guò)了經(jīng)典方法,如IDR、VolSDF,NeuS等,這些方法利用深度網(wǎng)絡(luò)來(lái)將輸入圖片直接嵌入進(jìn)網(wǎng)絡(luò)中,進(jìn)而提取出Mesh。
VolSDF
如何進(jìn)一步恢復(fù)材質(zhì)和光照
利用三維重建方法得到物體的幾何模型后,我們可以進(jìn)一步通過(guò)逆渲染技術(shù)恢復(fù)出物體的材質(zhì)、場(chǎng)景的光照,從而可以在新的光照條件下實(shí)現(xiàn)更具真實(shí)感的效果。
光照是場(chǎng)景中能量的來(lái)源。對(duì)于物體為中心的場(chǎng)景,常通過(guò)環(huán)境貼圖(Environmental Map)來(lái)表示。材質(zhì)則決定了光線(xiàn)如何與物體表面進(jìn)行作用,比如反射、散射或透射。光照、材質(zhì)、幾何與圖片之間的映射關(guān)系,則通過(guò)渲染方程(Rendering Equation)來(lái)描述。
逆渲染可以分成兩個(gè)子問(wèn)題:
1)光照恢復(fù)(Inverse Lighting)
2)材質(zhì)恢復(fù)(Inverse Material)
對(duì)于光照恢復(fù),經(jīng)典方法通常構(gòu)造一個(gè)最小二乘優(yōu)化問(wèn)題或以矩陣分解的方式來(lái)求解光照,使得該光照能呈現(xiàn)出與觀(guān)測(cè)到的照片相同的效果。但由于這一問(wèn)題的病態(tài)性(ill-posed),導(dǎo)致多種光照設(shè)定都能呈現(xiàn)出相同的結(jié)果,因此需要一些特殊的正則化來(lái)保證光照的合理性。
而對(duì)于材質(zhì)恢復(fù),如果想要獲得較為準(zhǔn)確的結(jié)果,則需要已知光照條件下求解。實(shí)際中通常會(huì)對(duì)物體在不同角度下打光,觀(guān)測(cè)物體表面的反射情況。
而隨著可微渲染(Differentiable Rendering)以及神經(jīng)渲染(Neural Rendering)的爆發(fā)增長(zhǎng),我們可以利用渲染方程作為橋梁,直接優(yōu)化未知的光照和材質(zhì)參數(shù),使得問(wèn)題大大簡(jiǎn)化。
PhySG
審核編輯 :李倩
-
虛擬化
+關(guān)注
關(guān)注
1文章
365瀏覽量
29757 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5471瀏覽量
120904
原文標(biāo)題:現(xiàn)實(shí)虛擬化:從三維重建到逆渲染(Inverse Rendering)
文章出處:【微信號(hào):3D視覺(jué)工坊,微信公眾號(hào):3D視覺(jué)工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論