一張 2D 證件照,幾秒鍾就能設計出 3D 遊戲化身!
這是擴散模型在 3D 領域的最新成果。例如,隻需一張法國雕塑家羅丹的舊照,就能分分鍾把他 " 變 " 進遊戲中:
△RODIN 模型基于羅丹舊照生成的 3D 形象
甚至隻需要一句話就能修改裝扮和形象。告訴 AI 生成羅丹 " 穿着紅色毛衣戴着眼鏡的造型 ":
不喜歡大背頭?那就換成 " 紮着辮子的造型 ":
再試試換個發色?這是 " 棕色頭發的時尚潮人造型 ",連胡子顔色都搞定了:
(AI 眼中的 " 時尚潮人 ",确實有點潮過頭了)
上面這個最新的 3D 生成擴散模型 " 羅丹 "RODIN(Roll-out Diffusion Network),來自微軟亞洲研究院。
RODIN 也是首個利用生成擴散模型在 3D 訓練數據上自動生成 3D 數字化身(Avatar)的模型,論文目前已被CVPR 2023接收。
一起來看看。
直接用 3D 數據訓練擴散模型
這個 3D 生成擴散模型 " 羅丹 "RODIN 的名字,靈感來源于法國雕塑藝術家奧古斯特 · 羅丹(Auguste Rodin)。
此前 2D 生成 3D 圖像模型,通常用 2D 數據訓練生成對抗網絡(GAN)或變分自編碼器(VAE)得到,但結果往往不盡人意。
研究人員分析,造成這種現象的原因在于這些方法存在一個基礎的欠定(ill posed)問題。即由于單視角圖片存在幾何二義性,僅僅通過大量的 2D 數據,很難學到高質量 3D 化身的合理分布,導緻生成效果不好。
因此,他們這次嘗試直接用 3D 數據來訓練擴散模型,主要解決了三個難題:
首先,如何用擴散模型生成 3D 模型多視角圖。此前擴散模型在 3D 數據上沒有可參考實踐方法和可遵循前例。
其次,高質量和大規模 3D 圖像數據集很難獲取,且存在隐私版權風險,但網絡公開 3D 圖像無法保證多視圖一緻性。
最後, 2D 擴散模型直接拓展成 3D 生成,所需的内存、存儲與計算開銷極大。
爲了解決這三個難題,研究人員提出了 "AI 雕塑家 "RODIN 擴散模型,超越了現有模型的 SOTA 水平。
RODIN 模型采用神經輻射場(NeRF)方法,借鑒英偉達的 EG3D 工作,将 3D 空間緊湊地表達爲空間三個互相垂直的特征平面(Triplane),并将這些圖展開至單個 2D 特征平面中,再執行 3D 感知擴散。
具體而言,就是将 3D 空間在橫、縱、垂三個正交平面視圖上以二維特征展開,這樣不僅可以讓 RODIN 模型使用高效的 2D 架構進行 3D 感知擴散,而且将 3D 圖像降維成 2D 圖像也大幅降低了計算複雜度和計算成本。
△3D 感知卷積高效處理 3D 特征
上圖左邊,用三平面(triplane)表達 3D 空間,此時底部特征平面的特征點對應于另外兩個特征平面的兩條線;上圖右邊,則引入 3D 感知卷積處理展開的 2D 特征平面,同時考慮到三個平面的三維固有對應關系。
具體而言,實現 3D 圖像的生成需要三個關鍵要素:
其一,3D 感知卷積,确保降維後的三個平面的内在關聯。
傳統 2D 擴散中使用的 2D 卷積神經網絡(CNN),并不能很好地處理 Triplane 特征圖。
3D 感知卷積并不是簡單生成三個 2D 特征平面,而是在處理這樣的 3D 表達時,考慮了其固有的三維特性,即三個視圖平面中其中一個視圖的 2D 特征本質上是 3D 空間中一條直線的投影,因此與其他兩個平面中對應的直線投影特征存在關聯性。
爲了實現跨平面通信,研究員們在卷積中考慮了這樣的 3D 相關性,因此高效地用 2D 的方式合成 3D 細節。
其二,隐空間協奏三平面 3D 表達生成。
研究員們通過隐向量來協調特征生成,使其在整個三維空間中具有全局一緻性,從而獲得更高質量的化身并實現語義編輯。
同時,還通過使用訓練數據集中的圖像訓練額外的圖像編碼器,該編碼器可提取語義隐向量作爲擴散模型的條件輸入。
這樣,整體的生成網絡可視爲自動編碼器,用擴散模型作爲解碼隐空間向量。對于語義可編輯性,研究員們采用了一個凍結的 CLIP 圖像編碼器,與文本提示共享隐空間。
其三,層級式合成,生成高保真立體細節。
研究員們利用擴散模型,先生成了一個低分辨率的三視圖平面(64 × 64),然後再通過擴散上采樣生成高分辨率的三平面(256 × 256)。
這樣,基礎擴散模型集中于整體 3D 結構生成,而後續上采樣模型專注于細節生成。
△RODIN 模型概述基于 Blender 生成大量随機數據
在訓練數據集上,研究員們借助開源的三維渲染軟件 Blender,通過随機組合畫師手動創建的虛拟 3D 人物圖像,再加上從大量頭發、衣服、表情和配飾中随機采樣,進而創建了 10 萬個合成個體,同時爲每個個體渲染出了 300 個分辨率爲 256*256 的多視圖圖像。
在文本到 3D 頭像的生成上,研究員們采用了 LAION-400M 數據集的人像子集,訓練從輸入模态到 3D 擴散模型隐空間的映射,最終讓 RODIN 模型隻使用一張 2D 圖像或一句文字描述,就能創建出逼真的 3D 頭像。
△給定一張照片生成虛拟形象
不僅能一句話改變形象,如 " 留卷發和大胡子穿着黑色皮夾克的男性 ":
甚至連性别都能随意更換," 紅色衣着非洲發型的女性 ":(手動狗頭)
研究人員也給出了一個應用 Demo 示範,創建自己的形象隻需要幾個按鈕:
△利用文字做 3D 肖像編輯
更多效果可以戳項目地址查看 ~
△更多随機生成的虛拟形象
做出了 RODIN 後,團隊接下來的計劃是?
據微軟亞洲研究院作者們表示,目前 RODIN 的作品還主要停留在3D 半身人像上,這也與它主要采用人臉數據訓練有關,但 3D 圖像生成需求不僅局限于人臉上。
下一步,團隊将會考慮嘗試用 RODIN 模型創建更多 3D 場景,包括花草樹木、建築、汽車家居等,實現 " 一個模型生成 3D 萬物 " 的終極目标。
論文地址:
https://arxiv.org/abs/2212.06135
項目頁面:
https://3d-avatar-diffusion.microsoft.com