本文回顧了關(guān)于特定物體(如人臉)的近期研究。一些重要論文性能的分析和比較,總結(jié)了這一領(lǐng)域的現(xiàn)有問題并討論未來研究的方向。
本文是深度學(xué)習(xí)做三維重建的一篇綜述
對自2015年以來本領(lǐng)域的149個(gè)方法做詳盡的回顧
深入分析深度學(xué)習(xí)三維重建的各個(gè)方面,包括訓(xùn)練集,網(wǎng)絡(luò)架構(gòu)選擇以及重建結(jié)果,訓(xùn)練技巧和應(yīng)用場景
總結(jié)對比了普遍的三維重建算法(88種),本文還包含了三維人臉重建算法(11種),人體形狀重建算法(6種方法)
假設(shè) 為物體的一張或多張RGB圖片。三維重建可以總結(jié)為一個(gè)學(xué)習(xí)預(yù)測算子的過程,輸入圖像到該算子可得到一個(gè)和物體相似的模型。因此重建的目標(biāo)函數(shù)為,其中為算子的參數(shù),為重建結(jié)果和目標(biāo)的距離函數(shù),也稱作深度學(xué)習(xí)中的損失函數(shù)。
如上表所示,本文依據(jù)輸入數(shù)據(jù)(Input),輸出的表示(Output),神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)(Network architecture)和訓(xùn)練步驟(Training)對算法進(jìn)行了分類。輸入可以是單張圖片,多張圖片(已知/未知外參),或是視頻流,即具有時(shí)間相關(guān)性的圖像序列;輸入也可以是描述一個(gè)或多個(gè)屬于已知/未知類別的物體;還可以包括輪廓,語義標(biāo)注等先驗(yàn)作為輸入數(shù)據(jù)。輸出的表示對網(wǎng)絡(luò)結(jié)構(gòu)的選擇來說很重要,它影響著計(jì)算效率和重建質(zhì)量,主要有三種表示方法。體積表示(Volumetric):在早期深度學(xué)習(xí)的三維重建算法中廣泛采用,它可采用體素網(wǎng)格來參數(shù)化三維物體;這樣二維卷積可以很容易擴(kuò)展到三維,但是會(huì)極大消耗內(nèi)存,也只有極少數(shù)方法達(dá)到亞像素精度。基于面的表示(Surface):如網(wǎng)格和點(diǎn)云,它們占用內(nèi)存小,但不是規(guī)則結(jié)構(gòu),因此很難融入深度學(xué)習(xí)架構(gòu)中。中間表示(Intermidiate):不直接從圖像預(yù)測得到三維幾何結(jié)構(gòu),而是將問題分解為連續(xù)步驟,每個(gè)步驟預(yù)測一個(gè)中間表示。實(shí)現(xiàn)預(yù)測算子的網(wǎng)絡(luò)結(jié)構(gòu)有很多,它的主干架構(gòu)在訓(xùn)練和測試階段也可能是不同的,一般由編碼器h和解碼器g組成,即。編碼器將輸入映射到稱為特征向量或代碼的隱變量x中,使用一系列的卷積和池化操作,然后是全連接層。解碼器也稱為生成器,通過使用全連接層或反卷積網(wǎng)絡(luò)(卷積和上采樣操作的序列,也稱為上卷積)將特征向量解碼為所需輸出。前者適用于三維點(diǎn)云等非結(jié)構(gòu)化輸出,后者則用于重建體積網(wǎng)格或參數(shù)化表面。雖然網(wǎng)絡(luò)的架構(gòu)和它的組成模塊很重要,但是算法性能很大程度上取決于它們的訓(xùn)練方式。本文將從三方面介紹。數(shù)據(jù)集:目前有多種數(shù)據(jù)集用于深度學(xué)習(xí)三維重建,一些是真實(shí)數(shù)據(jù),一些是計(jì)算機(jī)圖形生成的。損失函數(shù):損失函數(shù)很大程度上影響著重建質(zhì)量,同時(shí)反映了監(jiān)督學(xué)習(xí)的程度。訓(xùn)練步驟和監(jiān)督程度:有些方法需要用相應(yīng)的三維模型標(biāo)注真實(shí)的圖像,獲得這些圖像的成本非常高;有些方法則依賴于真實(shí)數(shù)據(jù)和合成數(shù)據(jù)的組合;另一些則通過利用容易獲得的監(jiān)督信號的損失函數(shù)來避免完全的三維監(jiān)督。以下為這些方面的詳細(xì)介紹
基于深度學(xué)習(xí)的三維重建將輸入圖像編碼為特征向量,其中為隱空間。一個(gè)好的映射方程應(yīng)該滿足一下性質(zhì)。
前兩個(gè)條件可以通過使用編碼器解決,編碼器將輸入映射到離散或者連續(xù)的隱空間,它可以是平面的或?qū)哟蔚?。第三個(gè)條件可以通過分離表示解決,最后一個(gè)在訓(xùn)練階段通過使用TL架構(gòu)(將在training章節(jié)中講)來解決。
離散隱空間Wu在他們的開創(chuàng)性工作[3]中引入了3D ShapeNet,這是一種編碼網(wǎng)絡(luò),它將表示大小為的離散體積網(wǎng)格的三維模型映射到大小4000×1的向量表示中。其核心網(wǎng)絡(luò)由3個(gè)卷積層(每個(gè)卷積層使用3D卷積濾波器)和3個(gè)全連接層組成。這種標(biāo)準(zhǔn)的普通架構(gòu)已經(jīng)被用于三維形狀分類和檢索,并用于從以體素網(wǎng)格表示的深度圖中進(jìn)行三維重建。將輸入圖像映射到隱空間的2D編碼網(wǎng)絡(luò)有著與3D ShapeNet相似的網(wǎng)絡(luò)架構(gòu),但使用2D卷積,代表工作有[4],[5],[6],[7],[8],[9],[10]和[11]。早期的工作在使用的網(wǎng)絡(luò)層的類型和數(shù)量上有所不同,包括池化層和激活函數(shù)有所不同。
連續(xù)隱空間使用前一小節(jié)中介紹的編碼器,隱空間可能不是連續(xù)的,因此它不允許簡單的插值。換句話說,如果并且,則不能保證可以解碼為有效的3D形狀。此外,的小擾動(dòng)也不會(huì)對應(yīng)于輸入的小擾動(dòng)。變分自編碼器(VAE)及其3D擴(kuò)展(3D-VAE)具有一個(gè)讓它們適合生成建模的獨(dú)特的特性:通過設(shè)計(jì),它們的隱空間是連續(xù)的,允許采樣和插值。其關(guān)鍵思想是,它不是將輸入映射到特征向量,而是映射到多變量高斯分布的平均向量和標(biāo)準(zhǔn)差向量。然后,采樣層獲取這兩個(gè)向量,并通過從高斯分布隨機(jī)采樣生成特征向量,該特征向量將用作隨后解碼階段的輸入。這樣的思想用于為體積表示([17],[18]),深度表示([19]),表面表示([20]),以及點(diǎn)云表示([21],[22])的三維重建算法學(xué)習(xí)連續(xù)隱空間。3D-VAE可以對在訓(xùn)練階段沒有見過的圖片重建出不錯(cuò)結(jié)果。
層次隱空間Liu[18]表明,將輸入映射到單個(gè)潛在表示(向量表示)的編碼器不能提取豐富的結(jié)構(gòu),因此可能導(dǎo)致模糊的重建。為提高重建質(zhì)量,Liu引入了更復(fù)雜的內(nèi)部變量結(jié)構(gòu),其具體目標(biāo)是鼓勵(lì)對潛在特征檢測器的分層排列進(jìn)行學(xué)習(xí)。該方法從一個(gè)全局隱變量層開始,該層被硬連接到一組局部隱變量層,每個(gè)隱變量層的任務(wù)是表示一個(gè)級別的特征抽象。跳躍連接以自上而下的定向方式將隱編碼(向量)連接在一起:接近輸入的局部代碼將傾向于表示較低級別的特征,而遠(yuǎn)離輸入的局部代碼將傾向于表示較高級別的特征。最后,當(dāng)輸入到特定于任務(wù)的模型(如三維重建)中時(shí),將局部隱編碼連接到扁平結(jié)構(gòu)。
分離表示一張圖像中物體的外觀受多個(gè)因素的影響,例如對象的形狀、相機(jī)位姿和照明條件。標(biāo)準(zhǔn)編碼器用經(jīng)過學(xué)習(xí)的編碼表示所有這些變量。這在諸如識別和分類之類的應(yīng)用中是不可取的,這些應(yīng)用應(yīng)該對諸如位姿和照明之類的外部因素保持不變。三維重建也可以受益于分離式表示,其中形狀、位姿和燈光用不同的編碼表示。為了達(dá)到這一目的,Grant等[5]提出一個(gè)編碼器,可以將RGB圖像映射為一個(gè)形狀編碼和一個(gè)位姿變換編碼。它們將會(huì)分別解碼為三維形狀與光線條件位姿。此外,Zhu等人[24]使用相似的思想,將6DOF的位姿參數(shù)和三維模型解耦。這樣減少網(wǎng)絡(luò)中的參數(shù),提高了效率。
體積表示將三維物體離散化成三維體素柵格。離散化的越精細(xì),模型也表示的更準(zhǔn)確。解碼的目標(biāo)就是輸入圖像,恢復(fù)出柵格,使得三維形狀近似真實(shí)的三維物體。使用體積柵格表示的優(yōu)點(diǎn)是很多為二維圖像分析設(shè)計(jì)的深度學(xué)習(xí)框架可以很簡單地?cái)U(kuò)展到三維數(shù)據(jù)(三維卷積與池化)。下面分別介紹不同體積表示方式,低精度解碼器架構(gòu)以及高精度三維重建。下表為各種體積解碼器的分類:
三維形狀的體積表示在文獻(xiàn)中主要有四種體積表示方法:
概率占用柵格尤其適合輸出為似然概率的機(jī)器學(xué)習(xí)算法。符號距離函數(shù)可提供表面位姿和法向量方向的無歧義的估計(jì)。然而它們很難從部分?jǐn)?shù)據(jù)(如深度圖)構(gòu)建。截?cái)嗑嚯x符號函數(shù)犧牲了使用完整的距離域,但是允許基于局部觀測來局部更新。他們適合從一組深度圖中重建三維體積。
低精度三維體積重建
一旦通過編碼器學(xué)習(xí)到輸入的向量表示,下一步就是學(xué)習(xí)解碼算子,也叫做生成器或生成模型,它把向量表示映射成體積體素柵格。方法普遍使用卷積反卷積網(wǎng)絡(luò)。Wu等人[3]是最先用這種方法從深度圖重建三維體積的。Wu等人[6]提出一個(gè)叫做MarrNet的兩階段三維重建網(wǎng)絡(luò)。第一階段輸入圖片、得到深度圖、法向量圖和輪廓圖,這三個(gè)稱作2.5簡圖。然后再輸入另一對編碼器解碼器回歸出三維體積模型。這個(gè)工作在后來被Sun等人[9]發(fā)展出也回歸輸入的位姿。這三類圖更容易從二維圖片中恢復(fù),但很難重建出復(fù)雜精細(xì)的結(jié)構(gòu)。Wu等人的工作[3]也有很多其他擴(kuò)展,如[7],[8],[17],[27],[40]。尤其是近期的工作如[8],[11],[13],[18]不用中間表示回歸出三維體素柵格。
高精度三維體積重建
有方法為高精度體積重建設(shè)計(jì)深度學(xué)習(xí)架構(gòu)。例如,Wu等人[6]的工作可以重建出大小為的體素柵格。但是柵格精度越高,其存儲(chǔ)會(huì)隨著三次方增長,因此體積柵格表示消耗大量內(nèi)存。我們把基于算法是否使用空間劃分,形狀劃分,子空間參數(shù)化,或是由粗到精的優(yōu)化策略分為四類。
空間劃分
雖然體積柵格利于卷積操作,但是它很稀疏因?yàn)槲矬w表面只在很少的體素內(nèi)。一些論文用這個(gè)稀疏性解決分辨率問題,如[32],[33],[41],[42]。它們可以通過使用空間劃分的方法(如八叉樹)重建出到的三維體素柵格。使用八叉樹做基于深度學(xué)習(xí)的三維重建有兩個(gè)問題。一個(gè)是內(nèi)存和計(jì)算密集,第二點(diǎn)是八叉樹的結(jié)構(gòu)是和物體有關(guān)的,因此深度神經(jīng)網(wǎng)絡(luò)需要學(xué)習(xí)如何推斷八叉樹的結(jié)構(gòu)以及它的內(nèi)容。下面是兩個(gè)問題的解決方案。一是使用預(yù)先定義的八叉樹結(jié)構(gòu),即假設(shè)運(yùn)行時(shí)八叉樹的結(jié)構(gòu)是已知的。然而這在很多情況下八叉樹的結(jié)構(gòu)是未知的且必須要預(yù)測。Riegler等[41]提出一種混合的柵格-八叉樹結(jié)構(gòu)叫做OctNet,它限制八叉樹的最大深度為一個(gè)小的數(shù)字,并在一個(gè)柵格上放幾個(gè)這樣的八叉樹。二是學(xué)習(xí)八叉樹的結(jié)構(gòu):同時(shí)估計(jì)出八叉樹的結(jié)構(gòu)和內(nèi)容。首先輸入編碼為一個(gè)特征向量。然后反卷積解碼得到粗糙的輸入的體積重建。將這個(gè)構(gòu)建好的基分割成八份,包含邊界體素的部分通過反卷積實(shí)現(xiàn)上采樣以及后續(xù)處理,改善重建的區(qū)域。不斷遞歸知直到達(dá)到期待的精度。
占用網(wǎng)絡(luò)
雖然空間劃分方法可以減少內(nèi)存消耗,但是很難實(shí)現(xiàn)并且現(xiàn)有的算法建出的體素柵格也比較?。?span>到)。最近一些論文提出用神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)三維模型的隱式表示,如[43]和[44]。
形狀劃分
除了在空間上劃分三維模型,還可以考慮把形狀作為幾何部分來分配,獨(dú)立地重建出各個(gè)部分,再組合起來構(gòu)成完整的三維模型。[42]和[29]使用了這樣的思想。
子空間參數(shù)化
所有可能形狀的空間可以使用一組正交基參數(shù)化。每一個(gè)形狀可以由基的線性組合表示,即。這個(gè)簡化了重建問題。不用學(xué)習(xí)如何重建體積柵格,取而代之的是設(shè)計(jì)一個(gè)由全連接層構(gòu)成的解碼器去從隱層表示估計(jì)參數(shù),恢復(fù)出完整的三維模型。可參考文獻(xiàn)[12]。
由粗到細(xì)優(yōu)化
另一個(gè)提高體積表示三維重建算法分辨率的方法是使用多階段的方法,如[26],[28],[35],[45],[46]。第一階段用編碼器和解碼器恢復(fù)出低精度體素柵格()。接下來的階段作用為上采樣網(wǎng)絡(luò)在局部地方改善重建模型。
盡管體積表示適應(yīng)于任意拓?fù)涞娜S模型,但它需要一個(gè)后處理步驟,即立方體匹配(marching cubes)[49],獲得實(shí)際的三維網(wǎng)格。這樣,整個(gè)過程不可以端到端地訓(xùn)練,為此Liao等人提出[50]一個(gè)可端到端訓(xùn)練的網(wǎng)絡(luò)深度立方體匹配,可以預(yù)測出任意拓?fù)涞娘@式表面表示。
基于體積表示的重建算法浪費(fèi)大量計(jì)算資源,因?yàn)樾畔⒅辉谌S物體表面附近豐富?;诒砻娴闹亟ǎ╩esh,點(diǎn)云)主要挑戰(zhàn)是他們不是均勻的結(jié)構(gòu),因此它們很難放在深度學(xué)習(xí)框架。這一章節(jié)把基于表面重建算法分為三類:基于參數(shù)的,基于模版變形的,以及基于點(diǎn)的方法。前兩類為基于網(wǎng)格的解碼器,下表為它的分類。
基于參數(shù)的三維建模(Parameterization-based 3D reconstruction)
我們可以用一個(gè)映射,其中為一個(gè)正則參數(shù)域。三維建模的目標(biāo)是從輸入中恢復(fù)出形狀的函數(shù)。當(dāng)為三維域內(nèi)時(shí),重建算法就是上一節(jié)的體積重建。本節(jié)取為二維域內(nèi)參數(shù),它可以是一個(gè)二維空間平面的子集。球形參數(shù)和幾何圖像[62],[63]和[64]為最常用的參數(shù)化方法,但它們只適合0形(genus-0)和近似圓盤的表面,任意拓?fù)涞谋砻嫘枰殖上駡A盤的幾部分,然后展開成一個(gè)二維域。這樣它適合重建屬于同一類外形的物體重建,如人臉和軀干。
基于形變的三維重建(Deformation-based 3D reconstruction)
這類算法輸入圖像然后估計(jì)一個(gè)形變域,當(dāng)運(yùn)用在一個(gè)三維模版模型上時(shí),就得到重建好的三維模型?,F(xiàn)有的算法在形變模型的使用,模板定義的方式,以及用于估計(jì)形變域的網(wǎng)絡(luò)架構(gòu)上有所不同。我們假設(shè)三維模型由n個(gè)頂點(diǎn)和表面組成。定義為一個(gè)模板形狀。
形變模型:大致分三種。一是頂點(diǎn)形變:假設(shè)三維模型可以寫作模版獨(dú)立頂點(diǎn)的線形組合,這個(gè)形變域定義為,該形變模型如上圖的上半部分所示,假設(shè)了物體和模版的頂點(diǎn)一一對應(yīng)且有相似的拓?fù)浣Y(jié)構(gòu),[55],[56],[57]用了該模型。二是可漸變模型:假設(shè)為平均形狀, 為一組正交基,任何形狀可以表達(dá)為,它的第二項(xiàng)可以視為形變域,算法[68],[69],[70]使用了該模型。三為自由式形變(FFD):除了對模版頂點(diǎn)形變,還可以如上圖下半部分所示對附近空間形變,它被用于[58],[59],[60],它的優(yōu)點(diǎn)是不需要頂點(diǎn)一對一的對應(yīng)。
定義模版:Kato等人[55]用球形做模板,Wang等人[56]使用橢圓,Henderson等人[20]定義兩種模板。為了加速收斂,Kuryenkov等人[59]提出DeformNet,可以輸入一張圖片,在數(shù)據(jù)庫找到最近臨形狀再用FFD形變。其他定義模板方法如[70],[57]。
網(wǎng)絡(luò)架構(gòu)
基于形變的算法也使用編碼器解碼器架構(gòu)。編碼器使用連續(xù)卷積操作把輸入映射到隱空間,解碼器通常使用全連接層估計(jì)形變域,用球形匹配輸入輪廓。[59]如之前所述,在數(shù)據(jù)庫找到相似模板,這個(gè)模板首先體素化,用三維CNN編碼到隱空間表示,再通過反卷積解碼到定義在體素柵格頂點(diǎn)的FFD域,相似的算法還有[60]。
基于點(diǎn)的算法(Point-based techniques)
一個(gè)三維模型可以由一組無序的N個(gè)點(diǎn)表示?;邳c(diǎn)的表示簡單但消耗內(nèi)存小從而較有效。很多論文如[72],[21],[22],[73],[74],[75],[76],[77],[79],[80],[81],[82]等使用點(diǎn)云重建。
點(diǎn)的表示
點(diǎn)云的主要問題是它們沒有規(guī)則的結(jié)構(gòu)因此很難用于探索空間特征的神經(jīng)網(wǎng)絡(luò)。應(yīng)對這種局限有三種方法解決。一是用點(diǎn)云集表示把點(diǎn)云當(dāng)作的矩陣,如[21],[22],[72],[75],[77],[81]。二是使用一個(gè)或多個(gè)大小為的三通道柵格,如[72],[73],[82]。每一個(gè)柵格內(nèi)的像素編碼了三維點(diǎn)的坐標(biāo)。三是用多視角得到的深度圖,如[78],[83]。后兩種解決方法可稱為柵格表示,適合用于卷積網(wǎng)絡(luò),同時(shí)計(jì)算上也有效率因?yàn)樗鼈兛梢灾挥枚S卷積來預(yù)測。
網(wǎng)絡(luò)架構(gòu)
和體積與基于表面表示的算法一樣,基于點(diǎn)表示的算法也使用編碼器解碼器模型,如下圖所示,它們使用解碼器的種類和架構(gòu)不同。
之前章節(jié)討論了直接從二維觀測重建三維物體。本節(jié)介紹其他額外信息(如中間表示和時(shí)間關(guān)系)如何用來幫助三維重建。
中間表示
一些方法把三維重建問題分解為幾步,首先估計(jì)2.5維的信息,例如深度圖,法向圖或語義分割的區(qū)塊,最后再用傳統(tǒng)的方法(如空間分割或三維反向投影)再濾波,數(shù)據(jù)關(guān)聯(lián),恢復(fù)出完整的三維幾何結(jié)構(gòu)及輸入的位姿。早期算法對不同模塊單獨(dú)訓(xùn)練,而如今的工作提出了端到端的解決方案如[6],[9],[38],[53],[80],[91],[92]。還有的算法從預(yù)先定義或任意的視角估計(jì)多個(gè)深度圖,再利用深度圖得到重建結(jié)果,如[83],[19],[73],[93]。[83],[73]和[9]除了深度圖還估計(jì)出了輪廓圖。使用多階段方法的優(yōu)點(diǎn)是深度圖,向量圖和輪廓圖更容易從二維圖像恢復(fù)出。從這三個(gè)恢復(fù)出三維模型要比單獨(dú)直接從二維圖像中恢復(fù)三維模型要更簡單。
時(shí)空關(guān)系
有時(shí)候可以獲取到從不同角度對同一物體拍攝的照片。基于單張圖片的重建算法可以用來處理單幀得到三維建模,再通過配準(zhǔn)合成完整模型。比較理想的是,我們可以利用圖片間的時(shí)空關(guān)系來解決歧義,尤其是在遮擋以及特別雜亂的場景。也就是說,cnn在t時(shí)刻應(yīng)該知道t-1時(shí)刻重建了什么,使用它以及新時(shí)刻的輸入來重建t時(shí)刻的物體或場景。處理這樣連續(xù)時(shí)刻數(shù)據(jù)已經(jīng)使用RNN和LSTM解決,它們可以使網(wǎng)絡(luò)記住一段時(shí)間內(nèi)的輸入。Choy等人提出[7]叫做3D循環(huán)重建網(wǎng)絡(luò)(3D-R2N2),它可以從不同視角的信息學(xué)習(xí)物體的三維表示。這個(gè)算法讓神經(jīng)網(wǎng)絡(luò)記住看過的圖片并在輸入新圖片時(shí)更新存儲(chǔ),這可以解決物體自我遮擋問題。LSTM和CNN比較耗時(shí)并且RNN在輸入圖片輸入順序變化時(shí)不能再估計(jì)物體形狀,為了解決這樣問題,Xie等人提出[86]叫做Pix2Vox,由并行的多個(gè)編碼器解碼器組成。
除了網(wǎng)絡(luò)結(jié)構(gòu),深度學(xué)習(xí)網(wǎng)絡(luò)也依賴它們訓(xùn)練的方法。本節(jié)討論文獻(xiàn)中使用的不同監(jiān)督模式和訓(xùn)練步驟。
監(jiān)督的程度
早期算法依賴于三維監(jiān)督。然而不管是手動(dòng)還是用傳統(tǒng)三維重建算法來獲取三維數(shù)據(jù)的真值都比較困難。因此最近一些算法嘗試通過其他監(jiān)督信號例如一致性通過列表最小化三維監(jiān)督程度。
視頻監(jiān)督訓(xùn)練
另一個(gè)降低監(jiān)督程度的方法是使用運(yùn)動(dòng)代替三維監(jiān)督。為此,Novotni等人提出[100]使用運(yùn)動(dòng)估計(jì)結(jié)構(gòu)(SFM)從視頻生成監(jiān)督信號:在訓(xùn)練階段用視頻序列生成部分點(diǎn)云和相對的相機(jī)參數(shù)。誤差函數(shù)為網(wǎng)絡(luò)訓(xùn)練的深度圖和SFM得到的深度圖的差異。在測試時(shí),這個(gè)網(wǎng)絡(luò)就可以直接從RGB圖像恢復(fù)出三維幾何結(jié)構(gòu)。
訓(xùn)練步驟
除了數(shù)據(jù)集,損失函數(shù)和監(jiān)督程度,還有一些訓(xùn)練神經(jīng)網(wǎng)絡(luò)做三維重建的實(shí)踐經(jīng)驗(yàn)。
很多應(yīng)用處理特定類別的物體如人的身體部位(臉和手等),野外的動(dòng)物和汽車。使用這些物體類別的先驗(yàn)知識可以顯著提高重建質(zhì)量。
三維人體重建
虛擬的(數(shù)字的)人在很多應(yīng)用如游戲,視覺體驗(yàn)影片中很重要,一些算法可以輕量地只從幾個(gè)RGB圖像中恢復(fù)出人體形狀和位姿。有基于體積表示的,也有基于模板或參數(shù)表示的算法。一些算法只重建出人體模型[108],[109],還有算法也重建出了衣服[110],[111]。基于參數(shù)的算法主要把問題轉(zhuǎn)化為不同的統(tǒng)計(jì)模型,三維人體模型估計(jì)就變?yōu)槟P蛥?shù)估計(jì)。主要模型有SCAPE[108],[109],[115]和SMPL[110],[116],[117],[118],[119]。基于體積的方法直接推斷占用柵格,在之前章節(jié)描述的基于體積的方法可直接用于人體重建[121],[122]。
三維人臉重建
大多數(shù)方法使用參數(shù)表示來重建,廣泛使用的是Blanz和Vetter提出的[68]三維形變模型(3DMM)。該模型從幾何和紋理的角度捕捉面部的變化。Gerig等人[124]通過將表情作為單獨(dú)的空間擴(kuò)展了這個(gè)方法。
三維場景解析
除了單獨(dú)的物體重建,場景解析問題在于遮擋,聚類,形狀和位姿的不確定還需要估計(jì)場景布局。該問題結(jié)局方案涉及到三維物體檢測和識別,位姿估計(jì)和三維重建。主要方法有[136],[138]。
下面表格列出并總結(jié)了普遍使用的數(shù)據(jù)集的屬性。基于深度學(xué)習(xí)的三維重建需要特別大的訓(xùn)練數(shù)據(jù)集,監(jiān)督學(xué)習(xí)還需要對應(yīng)的三維標(biāo)注,弱監(jiān)督和無監(jiān)督學(xué)習(xí)依賴外界監(jiān)督信號如相機(jī)內(nèi)外參。下表為一些數(shù)據(jù)集的信息。
本節(jié)討論一些關(guān)鍵算法的性能,下面介紹各種性能的標(biāo)準(zhǔn)和度量,并討論和比較一些算法的性能。
精度指標(biāo)和性能標(biāo)準(zhǔn)
設(shè)為真實(shí)三維形狀,為重建結(jié)果。
精度指標(biāo):
均方誤差(MSE):重建結(jié)果和真值的對稱表面距離
這里和分別是和的采樣點(diǎn)數(shù)量,是p到沿垂直方向到的距離,如L1和L2,距離越小,重建越好。
交并比(IoU):IoU測量重建預(yù)測出的形狀體積與真實(shí)體積的交集與兩個(gè)體積的并集的比率
其中是指示函數(shù),是第i個(gè)體素的預(yù)測值,是真值,是閾值。IoU值越高,重建效果越好,這一指標(biāo)適用于體積重建。因此,在處理基于曲面的表示時(shí),需要對重建的和真實(shí)的三維模型進(jìn)行體素化。
交叉熵?fù)p失的均值:熵的均值越低,重建效果越好。
搬土距離(EMD)和倒角距離(Chamfer Distance)
性能標(biāo)準(zhǔn):
比較和討論
下圖展示了過去四年重建算法精度的改進(jìn)。
早期的研究大多用體素化表示,這樣可以表示任意拓?fù)鋸?fù)雜物體的表面和內(nèi)部細(xì)節(jié)。隨著O-CNN,OGN和OctNet等空間分割技術(shù)提出,體積表示的算法可以達(dá)到相對較高的分辨率,例如。這是由于內(nèi)存效率的顯著提高。然而只有很少論文采用這些方法因?yàn)樗鼈兊膶?shí)現(xiàn)比較復(fù)雜。為了實(shí)現(xiàn)高分辨率的三維體積重建,最近的許多論文都使用了中間表示,通過多個(gè)深度圖,然后進(jìn)行體積或基于點(diǎn)的融合。最近有幾篇論文開始關(guān)注學(xué)習(xí)連續(xù)的有符號距離函數(shù)的機(jī)制或連續(xù)占用網(wǎng)格,這些機(jī)制在內(nèi)存需求方面要求較低。它們的優(yōu)點(diǎn)是,由于它們學(xué)習(xí)了一個(gè)連續(xù)的場,因此可以在所需的分辨率下提取重建的三維物體。圖片顯示出自2016年以來,使用ShapeNet數(shù)據(jù)集作為基準(zhǔn)的幾年來性能的演變。在大小為的體積柵格上計(jì)算的IoU度量上,我們可以看到在訓(xùn)練和測試時(shí)使用多個(gè)視圖的方法優(yōu)于僅基于單個(gè)視圖的方法。此外,2017年開始出現(xiàn)的基于表面的重建算法略優(yōu)于體積算法。圖片還可看出2017年基于二維監(jiān)督的算法出現(xiàn)后,性能越來越高。(a)和(b)兩圖看出基于三維監(jiān)督的算法性能稍微更好。論文中表6為一些有代表性的算法的性能,見文尾原文的參考鏈接。
在過去五年的大量研究中,使用深度學(xué)習(xí)進(jìn)行基于圖像的三維重建取得了很好的效果。然而這一課題仍在初級階段,有待進(jìn)一步發(fā)展。這一節(jié)介紹一些當(dāng)前的問題,并強(qiáng)調(diào)未來研究的方向。
這篇論文綜述了近五年來利用深度學(xué)習(xí)技術(shù)進(jìn)行基于圖像的三維物體重建的研究進(jìn)展,將頂級的算法分為基于體積、基于表面和基于點(diǎn)的算法。然后,根據(jù)它們的輸入、網(wǎng)絡(luò)體系結(jié)構(gòu)和它們使用的訓(xùn)練機(jī)制討論了每個(gè)類別中的方法,還討論并比較了一些關(guān)鍵方法的性能。該調(diào)研重點(diǎn)是將三維重建定義為從一個(gè)或多個(gè)RGB圖像中恢復(fù)對象的三維幾何體的問題的方法。然而,還有許多其他相關(guān)問題也有類似的解決辦法。包括RGB圖像的深度重建[153]、三維形狀補(bǔ)全[26],[28],[45],[103],[156],[160],[161],深度圖像的三維重建[103]、新視角合成[164],[165]和三維形狀結(jié)構(gòu)恢復(fù)[10],[29],[83],[96]等等。在過去五年中,這些主題已被廣泛調(diào)查,需要單獨(dú)的總結(jié)論文。
若覺得還不錯(cuò)的話,請點(diǎn)個(gè) “贊” 或 “在看” 吧
以前的微信群也仍然在維護(hù)使用,該有的各種福利和信息也都會(huì)同步,如果有不習(xí)慣用QQ的朋友,也可以加我微信邀請加微信群(微信請掃描右邊的二維碼, 備注“”研究方向-城市)。
聯(lián)系客服