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

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

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

評論