3D合成Transformer和CNN

本文介紹用於3D模型合成的transformer網絡與深度卷積網絡。

在這裏插入圖片描述

推薦:使用 NSDT場景設計器 快速搭建 3D場景。

1、概述

從單一視角合成 3D 數據是一種基本的人類視覺功能,這對計算機視覺算法來說極具挑戰性,這是一個共識。 但在 3D 傳感器(如 LiDAR、RGB-D 相機(RealSense、Kinect)和 3D 掃描儀)的可用性和可負擔性提高之後,3D 採集技術的最新進展取得了巨大飛躍。

與廣泛可用的 2D 數據不同,3D 數據具有豐富的比例和幾何信息,從而爲機器更好地理解環境提供了機會。 然而,與 2D 數據相比,3D 數據的可用性相對較低,而且採集成本較高。 因此,最近提出了許多深度學習方法,以在不依賴任何 3D 傳感器的情況下從可用的 2D 數據中合成 3D 數據。 但在我們深入研究這些方法之前,我們應該瞭解處理 3D 數據的格式。

在這裏插入圖片描述

合成的三維數據可以根據數據的最終用途用不同的格式表示。 一些常用的格式是:

  • 深度圖像
  • 點雲
  • 體素
  • 網格

深度圖像包含場景的深度值,其形式爲圖像幀中每個像素與相機的距離(以米爲單位)。 來自場景的深度信息對於自動駕駛汽車、增強現實、機器人技術等許多任務具有巨大價值。此類信息對於諸如在相機掃描靜止場景和虛擬相機中的動畫時啓用運動視差等任務非常有用, 但是當強調 3D 建模場景中的特定對象時,這些信息在目前的技術水平下變得不充分和不準確。

深度圖像: 在這裏插入圖片描述

點雲是分佈在 3D 空間中的三維點的集合。 這些 3D 點中的每一個都有一個由特定 (x, y, z) 座標以及其他屬性(如 RGB 顏色值)表示的確定性位置。 與深度圖像不同,點雲表示在沒有任何離散化的情況下保留了更多高質量的三維空間幾何信息。 然而,點雲表示沒有點與點之間的局部連接,從而導致自由度和高維性非常大,使得準確合成更加困難。

點雲表示: 在這裏插入圖片描述

體素或體積像素是空間網格像素到體積網格體素的直接擴展。 簡單來說,體素就是三維空間中的一個像素。 每個體素的相對位置共同定義了體積數據的獨特結構。 體素可以看作是具有固定大小的量化點雲。 然而,對於 3D 建模,體素表示過於稀疏並且在細節和計算資源之間表現出權衡,這使得它更不可行。

體素表示:

在這裏插入圖片描述

多邊形網格是邊、頂點和麪的集合,它們共同定義了多面體對象的形狀和體積。 網格的凸多邊形面連接在一起以近似幾何表面。 與體素類似,網格也可以看作是從一組連續曲面中採樣得到的三維點雲集(複雜度相對較低)。 網格面可以是三角形(triangle mesh)、四邊形(quad mesh)或凸多邊形(n-gon mesh)。 接近更真實的表示,網格也可以由帶孔的多邊形或凹多邊形組成,具體取決於表示的普遍性。 然而,與丟失重要表面細節並且重建表面模型非常重要的體素和點雲不同,網格對於許多實際應用來說更受歡迎。 因此,考慮到以上幾點,與其他格式相比,多邊形網格似乎更真實,合成效果更好。

多邊形網格表示:

在這裏插入圖片描述

在這篇博客中,我們將討論三種可用於從 2D 數據合成 3D 數據的方法。 在這三種方法中,一種方法基於基於Transformer的架構,而另外兩種方法分別基於自編碼器(AutoEncoder)和基於圖的卷積神經網絡(CNN)。 這兩種方法的主要區別在於,基於 Transformer 的深度網絡完全依賴於注意力機制來繪製輸入和輸出之間的全局依賴關係。

下面我們將首先討論最近提出的兩種使用自編碼器和基於圖的卷積神經網絡來合成 3D 數據的方法。

2、基於自編碼器的卷積神經網絡

爲了理解這種方法,我們將以使用自編碼器網絡進行 3D 人臉重建和人臉對齊爲例。

人臉重建和對齊:

在這裏插入圖片描述

自編碼器使用卷積網絡將輸入的 2D 圖像降維到潛在空間,然後使用該潛在空間表示來重建原始 3D 數據格式。 許多研究已經使用自編碼器(基於編碼器-解碼器的架構)來估計 3D 面部可變形模型係數和模型變形函數。 這些研究的目的主要是利用這些 3D 模型變形函數從單個 RGB 圖像中恢復相應的 3D 形狀,從而同時提供密集的 3D 人臉對齊和重建輸出。

然而,此類方法的性能受到人臉模型模板定義的 3D 表示空間的限制。 同樣,像體積迴歸網絡 (VRN) 這樣的方法使用全卷積層架構來估計 3D 二進制體積作爲點雲的離散版本。 然而,大多數輸出點對應於浪費的非表面點,而且這種離散化限制了輸出表示的分辨率。 因此,更好的研究應該是像位置圖迴歸網絡 (PRN) 這樣的網絡,它使用 UV 位置和紋理圖共同預測密集對齊並重建 3D 面部形狀。

UV位置和紋理貼圖: 在這裏插入圖片描述

PRN 以 UV 位置圖的形式構建 3D 面部結構的 2D 表示。 UV位置是記錄面部點雲的3D面部座標的2D圖像。 貼圖還在表示中的每個位置附加了 3D 座標的語義特徵。 簡單來說,UV 貼圖是 3D 數據的 2D 表示,它記錄了 UV 空間中所有點的 3D 座標。

計算機圖形學領域的研究人員經常使用 UV 空間和 UV 位置圖將 3D 空間參數化爲 2D 圖像平面。 轉到 PRN 的網絡架構,網絡使用簡單的編碼器-解碼器結構(自編碼器)獲取輸入 RGB 圖像並將 2D 圖像信息傳輸到 UV 位置圖中。

自動碼器使用 10 個下采樣殘差塊和 17 個上採樣轉置卷積塊來擬合此傳遞函數,最終預測 256×256×3 UV 位置圖。 學習到的 UV 位置圖有助於直接回歸要合成的 3D 人臉的最終 3D 結構和語義特徵。 對於像 PRN 這樣的訓練網絡,我們只需要像 2D 圖像到 3D 點雲映射這樣的數據集,這使得這種方法更有用,因爲網絡的輸出格式不受特定 3D 模板或 3D 可變形模型線性空間的限制。

PRN架構:

在這裏插入圖片描述

因此,考慮到該方法的簡單性和有效性,PRN 似乎是從 2D 圖像合成 3D 數據以用於其網絡輸出格式的最佳選擇之一。

3、基於圖的卷積神經網絡

如前一節所示,大多數基於自編碼器的傳統深度學習方法都利用點雲和體素數據格式來合成 3D 數據。 特別強調這兩種數據格式的主要原因是流行的基於網格的網絡架構所施加的限制。 然而,點雲和體素表示有其自身的缺點,如第一部分所述。

因此,爲了避免體素或點雲表示的缺點,許多研究已經轉向合成 3D 多邊形網格數據,從應用的角度來看,這是一種更理想的格式。 一些在合成網格數據方面非常有效的最佳架構設計方法包括基於圖形的卷積神經網絡。 在本節中,我們將以 Wang 等人提出的Pixel2Mesh方法爲例。

使用Pixel2Mesh的實體重建: 在這裏插入圖片描述

Pixel2Mesh 是一個基於圖形的端到端深度學習框架,它將單個 RGB 彩色圖像作爲輸入,並將 2D 圖像轉換爲更理想的相機座標格式的 3D 網格模型。 基於圖形的卷積神經網絡提取並利用 2D 圖像中的感知特徵,通過逐漸變形橢圓體直到達到語義正確和優化的幾何形狀來生成 3D 網格。 採用的策略是一種由粗到精的方法,使橢球變形過程在幾何上平滑穩定。 作者還定義了各種與網格相關的損失函數,以幫助網絡捕獲更多屬性,從而保證物理和視覺上吸引人的 3D 幾何結果。

圖像特徵網絡和級聯網格變形網絡:

在這裏插入圖片描述

Pixel2Mesh 的架構主要由級聯網格變形網絡和圖像特徵網絡組成。

圖像特徵網絡負責從輸入的 2D 圖像中提取感知特徵,並將這些特徵逐步傳遞給基於圖形的級聯網格變形網絡,以逐步將橢球網格的幾何形狀變形爲目標對象的 3D 網格。

網格變形網絡的圖卷積網絡包含三個變形塊以及兩個中間圖解假脫機層。 變形塊逐步處理網格模型的輸入圖,而中間圖反池化層逐漸增加圖形頂點以增加圖形的信息存儲容量,同時仍保持數據的三角形網格形成。

除了架構細節之外,Pixel2Mesh 基於圖形的架構的主要優勢之一是能夠執行同步形狀分析,這類似於傳統的基於圖表的方法,這些方法直接針對表面流形進行卷積運算。 這種方法通過合併網格對象的兩種自然表示(圖形和表面流形),充當基於圖表的方法和 3D 重建方法之間的橋樑。

4、基於 Transformer 的深度架構

卷積神經網絡被廣泛用於計算機視覺任務,因爲它們具有端到端的學習能力,可以直接從數據中執行任務,而無需任何手動設計的視覺特徵。 然而,儘管 CNN 的架構設計對計算要求很高,但 3D 合成的任務使這種計算更加密集,併爲計算優化和效率提升開闢了廣闊的空間。

展望下一代神經架構,Transformers 是可擴展視覺模型的最佳家族,它們不僅與領域無關,而且計算高效且經過優化。 此外,最近的研究表明,Transformer在許多基於計算機視覺的任務上取得了最先進的結果。 爲了理解 3D 數據合成中轉換器的工作原理,我們將以 Deepmind 的 Polygen 爲例。

Polygen生成的模型示例:

在這裏插入圖片描述

Polygen 是一種通過使用基於Transformer的架構按順序預測網格面和頂點來直接建模 n 邊形 3D 網格的方法。 模型設計使得它可以調節一系列輸入(對象類、體素和 2D 圖像)並以概率方式產生輸出,以捕獲模棱兩可場景中的不確定性。

Polygen網絡由頂點模型和人臉模型組成。 頂點模型是一個掩碼Transformer解碼器,它無條件地表達頂點序列上的分佈以對網格頂點建模。 而人臉模型是一個基於pointer網絡的Transfer,它有條件地表達可變長度輸入頂點序列上的分佈以對網格面進行建模。 因此,簡單來說,這兩個 transformer 模型的目標是通過首先生成網格頂點來估計 3D 網格上的分佈,然後使用這些頂點生成網格面。

頂點網絡和麪網絡:

在這裏插入圖片描述

Polygen 中使用的Transformer架構的靈感來自 WaveNet、PixelRNN 和Pointer網絡等順序模型。 這項工作還從 Polygon-RNN(使用多邊形分割)中獲得了重要靈感,而頂點模型類似於 PointGrow 的定製自注意力架構,它使用自迴歸分解對 3D 點雲進行建模。

與順序自迴歸模型相比,PointGrow 具有更淺的自我注意架構,通過對固定長度的點雲輸入進行操作,使用自我注意機制來預測離散座標分佈。 因此,Polygen 可以被認爲是通過新穎的基於Transformer的網絡設計手段組合的一些最佳想法的均衡集合。

網格變形塊及感知特徵池化:

在這裏插入圖片描述

Polygen 的關鍵特性之一是能夠根據輸入上下文(上下文示例:2D 圖像、對象類)調節輸出。

爲了實現這種條件性質,頂點和麪部模型的輸入流被改變以合併上下文。 對於 2D 圖像和體素等輸入格式,輸入首先使用適合域的編碼器進行編碼,以檢索 transformer 解碼器的上下文嵌入,從而對嵌入序列執行交叉注意。

而對於像對象類這樣的輸入格式,預學習的類嵌入被投影到一個向量,該向量被添加到位於每個網絡塊中的自注意層之後的中間Transformer預測表示。 這是可能的,因爲頂點模型的通用性質使用簡單、表達能力強且建模能力強的Transformer-解碼器架構,允許網絡對來自不同領域的數據進行建模。 Transformer利用其高效信息聚合的能力來捕獲網格頂點和對象幾何中存在的強非局部依賴性。

5、結束語

在這篇博客中,我們討論了兩種主要類型的 3D 合成方法,即卷積深度網絡和基於變換器的深度網絡。 新一代網絡的Transformer以計算效率更高和優化的方式設計,因此可以被認爲比傳統的卷積網絡領先一步。

然而,在接近實時推理場景時,Transformer 要趕上我們在自動編碼器部分討論的相對輕量且推理速度快的方法,還有很長的路要走。 儘管如此,Transformer 的研究範圍很廣,而且它們的注意力機制能夠有效地聚合信息並提取輸入和輸出之間的全局依賴關係,這使它們更有前途。

在這裏插入圖片描述


原文鏈接:3D合成深度神經網絡 — BimAnt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章