Transformer變革3D建模,MeshGPT生成效果驚動專業建模師

機器之心報道

機器之心編輯部

在計算機圖形學中,「三角形網格」是 3D 幾何物體的主要表現形式,也是遊戲、電影和 VR 界面中主要使用的 3D 資產表示方法。業界通常基於三角形網格來模擬複雜物體的表面,如建築、車輛、動物,常見的幾何變換、幾何檢測、渲染着色等動作,也需要基於三角形網格進行。

與點雲或體素等其他 3D 形狀表示法相比,三角形網格提供了更連貫的表面表示法:更可控、更易操作、更緊湊,可直接用於現代渲染流水線,以更少的基元獲得更高的視覺質量。

此前,已有研究者嘗試過使用體素、點雲和神經場等表示方法生成 3D 模型,這些表示也需要通過後處理轉換成網格以在下游應用中使用,例如使用 Marching Cubes 算法進行 iso-surfacing 處理。

遺憾的是,這樣做的結果是網格密度過高、網格劃分過細,經常出現過度平滑和等值曲面化帶來的凹凸不平的錯誤,如下圖所示:

相比之下,3D 建模專業人員建模的 3D 網格在表示上更加緊湊,同時以更少的三角形保持了清晰的細節。

一直以來,很多研究者都希望解決自動生成三角形網格的任務,以進一步簡化製作 3D 資產的流程。

在最近的一篇論文中,研究者提出了新的解決方案:MeshGPT,將網格表示直接生成爲一組三角形。

論文鏈接:https://nihalsid.github.io/mesh-gpt/static/MeshGPT.pdf

受語言生成模型 Transformer 的啓發,他們採用了一種直接序列生成方法,將三角形網格合成爲三角形序列。

按照文本生成的範式,研究者首先學習了三角形詞彙,三角形被編碼爲潛在量化嵌入。爲了鼓勵學習到的三角形嵌入保持局部幾何和拓撲特徵,研究者採用了圖卷積編碼器。然後,這些三角形嵌入由 ResNet 解碼器解碼,該解碼器將其處理表示三角形的 token 序列,生成三角形的頂點座標。最終,研究者在所學詞彙的基礎上訓練基於 GPT 的架構,從而自動生成代表網格的三角形序列,並獲得了邊緣清晰、高保真度的優勢。

在 ShapeNet 數據集上進行的多個類別的實驗表明,與現有技術相比,MeshGPT 顯著提高了生成 3D 網格的質量,形狀覆蓋率平均提高了 9%,FID 分數提高了 30 個點。

在社交媒體平臺上,MeshGPT 也引發了熱議:

有人說:「這纔是真正革命性的 idea。」

一位網友指出,該方法的亮點在於克服了其他 3D 建模方法的最大障礙,即編輯能力。

有人大膽預測,或許每一個自上世紀 90 年代以來尚未解決的難題,都可以從 Transformer 中得到啓發:

也有從事 3D / 電影製作相關行業的用戶對自己的職業生涯表示擔憂:

不過,也有人指出,從論文給出的生成示例來看,這一方法還未達到大規模落地的階段,一位專業建模人員完全可以在 5 分鐘內製作出這些網格。

這位評論者表示,下一步可能是由 LLM 控制 3D 種子的生成,並將圖像模型添加到架構的自迴歸部分。走到這一步後,遊戲等場景的 3D 資產製作才能實現大規模的自動化。

接下來,就讓我們看看 MeshGPT 這篇論文的研究細節。

方法概述

受大語言模型進步的啓發,研究者開發了一種基於序列的方法,將三角形網格作爲三角形序列進行自迴歸生成。這種方法能生成乾淨、連貫和緊湊的網格,具有邊緣銳利和高保真的特點。

研究者首先從大量的 3D 物體網格中學習幾何詞彙的嵌入,從而能夠對三角形進行編碼和解碼。然後,根據學習到的嵌入詞庫,以自迴歸下索引預測的方式訓練用於網格生成的 Transformer。

爲了學習三角形詞彙,研究者採用了圖形卷積編碼器,對網格的三角形及其鄰域進行操作,以提取豐富的幾何特徵,捕捉 3D 形狀的複雜細節。這些特徵通過殘差量化被量化爲 codebook 中的 Embedding,從而有效減少了網格表示的序列長度。這些內嵌信息在排序後,在重建損失的指導下,由一維 ResNet 進行解碼。這一階段爲 Transformer 的後續訓練奠定了基礎。

然後,研究者利用這些量化的幾何嵌入,訓練出一個 GPT 類型的純解碼器 transformer。給定從網格三角形中提取的幾何嵌入序列,訓練 transformer 來預測序列中下一個嵌入的 codebook 索引。

訓練完成後,transformer 可以自迴歸採樣,以預測嵌入序列,然後對這些嵌入進行解碼,生成新穎多樣的網格結構,顯示出與人類繪製的網格類似的高效、不規則三角形。

MeshGPT 採用圖卷積編碼器處理網格面,利用幾何鄰域信息捕捉表徵 3D 形狀複雜細節的強特徵,然後利用殘差量化方法將這些特徵量化成 codebook 嵌入。與簡單的向量量化相比,這種方法能確保更好的重建質量。在重建損失的指導下,MeshGPT 通過 ResNet 對量化後的嵌入進行排序和解碼。

該研究使用 Transformer 從預先學習的 codebook 詞彙中生成網格序列作爲 token 索引。在訓練過程中,圖形編碼器會從網格面提取特徵,並將其量化爲一組面嵌入。這些嵌入會被扁平化,用開始和結束 token 進行標記,然後送入上述 GPT 類型的 transformer。該解碼器通過交叉熵損失進行優化,預測每個嵌入的後續 codebook 索引。

實驗結果

該研究將 MeshGPT 與常見的網格生成方法進行了比較實驗,包括:

此外,該研究還將 MeshGPT 與基於神經場的 SOTA 方法 GET3D 進行了比較。

如圖 6、圖 7 和表 1 所示,在全部的 4 個類別中,MeshGPT 都優於基線方法。MeshGPT 可以生成尖銳、緊湊的網格,並具有較精細的幾何細節。

具體來說,與 Polygen 相比,MeshGPT 能生成具有更復雜細節的形狀,並且 Polygen 在推理過程中更容易積累錯誤;AtlasNet 經常出現摺疊瑕疵(folding artifact),導致多樣性和形狀質量較低;BSPNet 使用平面的 BSP 樹往往會產生具有不尋常三角測量模式的塊狀形狀;GET3D 可生成良好的高層次形狀結構,但三角形過多,且平面不完美。

如表 2 所示,該研究還讓用戶對 MeshGPT 生成網格的質量進行了評估,在形狀和三角測量質量方面,MeshGPT 明顯優於 AtlasNet、Polygen 和 BSPNet。與 GET3D 相比,大多數用戶更喜歡 MeshGPT 生成的形狀質量(68%)和三角測量質量(73%)。

形狀新穎性。如下圖 8 所示,MeshGPT 能生成超出訓練數據集的新奇形狀,確保模型不僅僅是檢索現有形狀。

形狀補全。如下圖 9 所示,MeshGPT 還可以基於給定的局部形狀推斷出多種可能的補全,生成多種形狀假設。