九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
使用深度學(xué)習(xí)進(jìn)行基于圖像的三維重建的最新綜述

來源:小白學(xué)視覺
僅用于學(xué)術(shù)分享,若侵權(quán)請聯(lián)系刪除

本文回顧了關(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ì)。

  • 表示相似物體的兩張圖像映射在隱空間應(yīng)彼此相似
  • 的一個(gè)小的擾動(dòng)應(yīng)與輸入形狀小的擾動(dòng)對應(yīng)
  • 由h引起的潛在表示應(yīng)和外界因素?zé)o關(guān),如相機(jī)位姿
  • 三維模型及其對應(yīng)的二維圖像應(yīng)映射在隱空間的同一點(diǎn)上,這確保表示的特征不模糊,從而有助于重建

前兩個(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)中主要有四種體積表示方法:

  • 二元占用柵格(Binary occupancy grid)。在這種表示中,物體的體素被設(shè)為1,沒有物體占用的體素設(shè)為0。
  • 概率占用柵格(Probabilistic occupancy grid)。在概率占用柵格中的每個(gè)體素編碼了它屬于物體的概率。
  • 符號距離函數(shù)(SDF-The Signed Distance Function)。每個(gè)體素編碼了到最近表面的距離。體素在物體內(nèi)距離為負(fù),在外距離為正。
  • 截?cái)喾柧嚯x函數(shù)(TSDF-Truncated Signed Distance Function)。首先估計(jì)距離傳感器的視線方向上的距離,形成一個(gè)有符號的投影距離場,然后在較小的負(fù)值和正值處截?cái)嘣搱觥?/span>

概率占用柵格尤其適合輸出為似然概率的機(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)不同。

如上圖(a)和(b),普遍柵格表示使用反卷積網(wǎng)絡(luò)解碼隱空間變量[72],[73],[78],[82]?;邳c(diǎn)集的表示如(c)所示使用全連接層[21],[72],[74],[77],[81],因?yàn)辄c(diǎn)云是無序的。使用全連接層的主要優(yōu)點(diǎn)是它可以捕捉全局信息。然而和卷積操作相比計(jì)算量較大。為了高效的卷積計(jì)算,Gadelha等人用空間劃分空間排序點(diǎn)云(如KD樹)然后用一維卷積處理它們,如上圖(d),他們?yōu)榱艘黄鹄萌趾途植啃畔?,把隱空間變量解碼為三個(gè)不同的分辨率,把它們連接起來再用卷積層處理生成點(diǎn)云。Fan等人提出[72]生成深度網(wǎng)絡(luò)結(jié)合了點(diǎn)集表示和柵格表示,上圖(a)。網(wǎng)絡(luò)結(jié)構(gòu)由幾個(gè)級聯(lián)的編碼器-解碼器組成。[74]和它類似,區(qū)別在于訓(xùn)練過程。和基于體積重建的算法類似,基于點(diǎn)的三維重建普遍也只恢復(fù)出低精度幾何結(jié)構(gòu)。對于高精度重建,Mandikal等人[81]如上圖(c)所示,使用級聯(lián)的多個(gè)網(wǎng)絡(luò)結(jié)構(gòu):第一個(gè)網(wǎng)絡(luò)預(yù)測低精度點(diǎn)云,之后的每個(gè)模塊輸入之前預(yù)測的點(diǎn)云,利用類似于PointNet[87]和PointNet++[88]的多層感受結(jié)構(gòu)(MLP)去計(jì)算全局特征,在每個(gè)點(diǎn)周圍MLP計(jì)算局部特征。局部和全局特征合在一起送進(jìn)另一個(gè)MLP預(yù)測出稠密點(diǎn)云。這個(gè)過程可以不斷重復(fù)直到得到需要的分辨率。Mandikal等人[21]還結(jié)合TL架構(gòu)和變分自動(dòng)編碼器?;邳c(diǎn)云表示的算法可以處理任意拓?fù)涞娜S物體。但是它們需要一個(gè)后處理步驟,例如泊松表面重建[89]或者SSD[90]來提取需要的三維表面網(wǎng)格。整個(gè)過程不能端到端訓(xùn)練。因此,這些方法只優(yōu)化一個(gè)定義在中間表示的輔助損失函數(shù)。

利用其他信息重建

之前章節(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è)編碼器解碼器組成。

訓(xùn)練

除了網(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)練:訓(xùn)練時(shí)需要有三維真值,損失函數(shù)最小化重建的三維形狀與真值之間的差異,有體積損失函數(shù),點(diǎn)集損失函數(shù),N個(gè)重建的最小損失函數(shù)(MoN)。
  • 二維監(jiān)督的訓(xùn)練:相對三維來說獲取2D或2.5D的視角更加容易,損失函數(shù)為真實(shí)的視角與重建物體的投影之間的差異。這需要定義估計(jì)的三維模型投影的計(jì)算子以及重投影誤差方程。重投影誤差方程主要有基于輪廓的損失函數(shù),基于表面向量和深度的損失函數(shù),或者結(jié)合二維與三維損失函數(shù)。

視頻監(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)。


  • 聯(lián)合二維與三維:如上圖(a)和(b),TL-embedding網(wǎng)絡(luò)一起訓(xùn)練編碼:有二維編碼器和三維編碼器。它們分別把二維圖像和它的三維標(biāo)注映射到隱空間的同一個(gè)點(diǎn)。[25],[79],[21]用這樣的方法訓(xùn)練網(wǎng)絡(luò)。
  • 對抗訓(xùn)練:通常步驟訓(xùn)練的可能結(jié)果在沒見過的數(shù)據(jù)上重建效果不好。Yang等人[46],[103]開始用生成對抗網(wǎng)絡(luò)(GAN)訓(xùn)練。GAN的潛力很大,因?yàn)樗鼈兛梢阅7氯魏畏植嫉臄?shù)據(jù)。在單視圖重建方面它們已用于體積重建[13],[17],[30],[40],[46],[103]以及基于點(diǎn)云的重建[74],[75]。三維監(jiān)督的有[17],[30],[40],[46],[103],二維監(jiān)督的有[13],[27],[97]。GAN很難訓(xùn)練,對于高精度的模型很不穩(wěn)定,因此要平衡生成器和分辨器的學(xué)習(xí),否則梯度會(huì)消失。
  • 和其他任務(wù)聯(lián)合訓(xùn)練:聯(lián)合訓(xùn)練重建與分割會(huì)讓它們互相促進(jìn)。如Mandikal等人[107]的方法。

應(yīng)用和特殊案例

很多應(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]。

數(shù)據(jù)集

下面表格列出并總結(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):

  • 三維監(jiān)督程度:基于深度學(xué)習(xí)的三維重建算法的一個(gè)重要方面是訓(xùn)練時(shí)三維監(jiān)督的程度。事實(shí)上,雖然獲取RGB圖像很容易,但獲取其相應(yīng)的真實(shí)3D數(shù)據(jù)卻相當(dāng)具有挑戰(zhàn)性。因此,在訓(xùn)練過程中,與那些需要真實(shí)三維信息的算法相比,通常更傾向于需要較少或不需要三維監(jiān)督的技術(shù)。
  • 計(jì)算時(shí)間:雖然訓(xùn)練時(shí)間慢,通常希望可以達(dá)到實(shí)時(shí)表現(xiàn)。
  • 內(nèi)存占用:神經(jīng)網(wǎng)絡(luò)需要大量參數(shù)。一些算法在體積上使用三維卷積,這樣就會(huì)消耗大量內(nèi)存,會(huì)影響實(shí)時(shí)性能限制它們的應(yīng)用范圍。

比較和討論

下圖展示了過去四年重建算法精度的改進(jìn)。

Fig. 6: Performance of some key methods on the ShapeNet dataset. References highlighted in red are point-based. The IoU is computed on grids of size . The label next to each circle is encoded as follow: First author et al. (year, n at training, n at test), where n is the number of input images.

早期的研究大多用體素化表示,這樣可以表示任意拓?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)未來研究的方向。

  • 訓(xùn)練數(shù)據(jù)問題。深度學(xué)習(xí)技術(shù)的成功在很大程度上取決于訓(xùn)練數(shù)據(jù)的可用性,不幸的是,與用于分類和識別等任務(wù)的訓(xùn)練數(shù)據(jù)集相比,包含圖像及其3D注釋的公開數(shù)據(jù)集的大小很小。二維監(jiān)督技術(shù)被用來解決缺乏三維訓(xùn)練數(shù)據(jù)的問題。然而,它們中的許多依賴于基于輪廓的監(jiān)督,因此只能重建視覺外殼。因此,期望在未來看到更多的論文提出新的大規(guī)模數(shù)據(jù)集、利用各種視覺線索的新的弱監(jiān)督和無監(jiān)督方法,以及新的領(lǐng)域適應(yīng)技術(shù),其中使用來自某個(gè)領(lǐng)域的數(shù)據(jù)訓(xùn)練的網(wǎng)絡(luò)(例如,合成渲染圖像)適應(yīng)新的領(lǐng)域。研究能夠縮小真實(shí)圖像和綜合渲染圖像之間差距的渲染技術(shù),可能有助于解決訓(xùn)練數(shù)據(jù)問題。
  • 對看不見的物體的一般化。大多數(shù)最新的論文將數(shù)據(jù)集分成三個(gè)子集進(jìn)行訓(xùn)練、驗(yàn)證和測試,例如ShapeNet或Pix3D,然后測試子集的性能。但是,還不清楚這些方法如何在完全不可見的對象/圖像類別上執(zhí)行。實(shí)際上,三維重建方法的最終目標(biāo)是能夠從任意圖像中重建任意三維形狀。然而,基于學(xué)習(xí)的技術(shù)僅在訓(xùn)練集覆蓋的圖像和對象上表現(xiàn)良好。
  • 精細(xì)的三維重建。目前最先進(jìn)的技術(shù)能夠恢復(fù)形狀的粗糙三維結(jié)構(gòu),雖然最近的工作通過使用細(xì)化模塊顯著提高了重建的分辨率,但仍然無法恢復(fù)植物、頭發(fā)和毛皮等細(xì)小的部分。
  • 重建與識別。圖像三維重建是一個(gè)不適定問題。因此,有效的解決方案需要結(jié)合低層次的圖像線索、結(jié)構(gòu)知識和高層次的對象理解。如Tatarchenko[44]最近的論文所述,基于深度學(xué)習(xí)的重建方法偏向于識別和檢索。因此,他們中的許多人沒有很好地概括,無法恢復(fù)精細(xì)的尺度細(xì)節(jié)。期望在未來看到更多關(guān)于如何將自頂向下的方法(即識別、分類和檢索)與自下而上的方法(即基于幾何和光度線索的像素級重建)相結(jié)合的研究,這也有可能提高方法的泛化能力。
  • 專業(yè)實(shí)例重建。期望在未來看到特定于類的知識建模和基于深度學(xué)習(xí)的三維重建之間的更多協(xié)同作用,以便利用特定于領(lǐng)域的知識。事實(shí)上,人們對重建方法越來越感興趣,這些方法專門用于特定類別的物體,如人體和身體部位、車輛、動(dòng)物、樹木和建筑物。專門的方法利用先前和特定領(lǐng)域的知識來優(yōu)化網(wǎng)絡(luò)體系結(jié)構(gòu)及其訓(xùn)練過程。因此,它們通常比一般框架表現(xiàn)得更好。然而,與基于深度學(xué)習(xí)的三維重建類似,建模先驗(yàn)知識需要三維注釋,這對于許多類型的形狀(例如野生動(dòng)物)來說是不容易獲得的。
  • 在有遮擋和雜亂背景的情況下處理多個(gè)對象。大多數(shù)最先進(jìn)的技術(shù)處理包含單個(gè)對象的圖像。然而,在野生圖像中,包含不同類別的多個(gè)對象。以前的工作采用檢測,然后在感興趣的區(qū)域內(nèi)重建。然而,這些任務(wù)是相互關(guān)聯(lián)的,如果共同解決,可以從中受益。為實(shí)現(xiàn)這一目標(biāo),應(yīng)處理兩個(gè)重要問題。一是缺乏多目標(biāo)重建的訓(xùn)練數(shù)據(jù)。其次,設(shè)計(jì)合適的CNN結(jié)構(gòu)、損失函數(shù)和學(xué)習(xí)方法是非常重要的,特別是對于沒有3D監(jiān)督的訓(xùn)練方法。這些方法通常使用基于輪廓的損失函數(shù),需要精確的對象級分割。
  • 3D視頻。本文研究的是一幅或多幅圖像的三維重建,但沒有時(shí)間相關(guān)性,而人們對三維視頻越來越感興趣,即對連續(xù)幀具有時(shí)間相關(guān)性的整個(gè)視頻流進(jìn)行三維重建。一方面,幀序列的可用性可以改善重建,因?yàn)榭梢岳煤罄m(xù)幀中可用的附加信息來消除歧義并細(xì)化當(dāng)前幀處的重建。另一方面,重建的圖像在幀間應(yīng)該平滑一致。
  • 走向全三維場景解析。最后,最終目標(biāo)是能夠從一個(gè)或多個(gè)圖像中語義分析完整的3D場景。這需要聯(lián)合檢測、識別和重建。它還需要捕獲和建模對象之間和對象部分之間的空間關(guān)系和交互。雖然在過去有一些嘗試來解決這個(gè)問題,但它們大多局限于室內(nèi)場景,對組成場景的對象的幾何和位置有很強(qiáng)的假設(shè)。

總結(jié)和評論

這篇論文綜述了近五年來利用深度學(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è) “贊” 或 “在看” 吧

搞了個(gè)QQ交流群,打算往5000人的規(guī)模擴(kuò)展,還專門找了大佬維護(hù)群內(nèi)交流氛圍,大家有啥問題可以直接問,主要用于算法、技術(shù)、學(xué)習(xí)、工作、求職等方面的交流,征稿、公眾號或星球招聘、一些福利也會(huì)優(yōu)先往群里發(fā)。感興趣的請搜索群號444129970,或者掃描下方二維碼。

以前的微信群也仍然在維護(hù)使用,該有的各種福利和信息也都會(huì)同步,如果有不習(xí)慣用QQ的朋友,也可以加我微信邀請加微信群(微信請掃描右邊的二維碼, 備注“”研究方向-城市)。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
2020開年解讀:數(shù)據(jù)洞察對話即得,三維構(gòu)建直面挑戰(zhàn)
蘋果、俄勒岡州立提出AutoFocusFormer: 擺脫傳統(tǒng)柵格,采用自適應(yīng)下采樣的圖像分割
《HALCON機(jī)器視覺與算法原理編程實(shí)踐》第13章 相機(jī)標(biāo)定與三維重建
【視覺】一文了解目前所有的視覺三維重建技術(shù)
什么是三維重建
【點(diǎn)云論文速讀】基于YOLO和K-Means的圖像與點(diǎn)云三維目標(biāo)檢測方法
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服