絕!OpenAI 年底上新,單卡 1 分鐘生成 3D 點雲,text-to 3D 告別高算力消耗時代

語言: CN / TW / HK

內容一覽:繼 DALL-E、ChatGPT 之後,OpenAI 再發力,於近日釋出 Point·E,可以依據文字提示直接生成 3D 點雲。

關鍵詞:OpenAI 3D 點雲 Point·E

OpenAI 年底衝業績,半個多月前釋出的 ChatGPT 廣大網友還沒玩明白,近日又悄麼釋出了另一利器--可以依據文字提示,直接生成 3D 點雲的 Point·E。

text-to-3D:用對方法,一個頂倆

3D 建模想必大家都不陌生,近年來,在電影製作、視訊遊戲、工業設計、VR 及 AR 等領域中,都可以看到 3D 建模的影子。

然而,藉助人工智慧建立逼真的 3D 影象,仍然是一個耗時耗力的過程, 以 Google DreamFusion 為例,給定文字生成 3D 影象通常需要多個 GPU、執行數小時。

給定一個描述,DreamFusion 生成高保真 3D 物體

通常意義上,文字到 3D 合成的方法分為兩類:

方法 1:直接在成對的 (text, 3D) 資料或無標籤的 3D 資料上訓練生成模型。

此類方法雖然可以利用現有的生成模型方法,有效地生成樣本,但由於缺乏大規模 3D 資料集,因此很難擴充套件到複雜的文字提示。

方法 2:利用預先訓練好的 text-to-image 模型,優化可區分的 3D 表徵。

此類方法通常能夠處理複雜多樣的文字提示,但每個樣本的優化過程都代價高昂。此外,由於缺乏強大的 3D prior,此類方法可能會陷入 local minima(無法與有意義或連貫的 3D 目標一一對應)。

Point·E 結合了 text-to-image 模型以及 image-to-3D 模型,綜合以上兩種方法的優勢,進一步提升了 3D 建模的效率,只需要一個 GPU、一兩分鐘即可完成文字到 3D 點雲的轉換。

原理解析:3 步生成 3D 點雲

Point·E 中,text-to-image 模型利用了大型語料庫 (text, image pair),使其對複雜的文字提示也能處理得當;image-to-3D 模型則是在一個較小的資料集 (image, 3D pair) 上訓練的。

用 Point·E 依據文字提示生成 3D 點雲的過程分為三個步驟:

1、依據文字提示,生成一個合成檢視 (synthetic view)

2、依據合成檢視,生成 coarse point cloud (1024 point)

3、基於低解析度點雲和合成檢視,生成 fine point cloud (4096 Point)

Point·E 流程概覽

由於資料格式和資料質量對訓練結果影響巨大,Point·E 藉助 Blender,將所有訓練資料都轉換為了通用格式。

Blender 支援多種 3D 格式,並配有優化的渲染 engine。 Blender 指令碼將模型統一為一個 bounding cube,配置一個標準的 lighting 設定,最後使用 Blender 內建的實時渲染 engine 匯出 RGBAD 影象。

"""
Script to run within Blender to render a 3D model as RGBAD images.

Example usage

    blender -b -P blender_script.py -- \
        --input_path ../../examples/example_data/corgi.ply \
        --output_path render_out

Pass `--camera_pose z-circular-elevated` for the rendering used to compute
CLIP R-Precision results.

The output directory will include metadata json files for each rendered view,
as well as a global metadata file for the render. Each image will be saved as
a collection of 16-bit PNG files for each channel (rgbad), as well as a full
grayscale render of the view.
"""

Blender 指令碼部分程式碼

通過執行指令碼,將 3D 模型統一渲染為 RGBAD 影象

完整指令碼詳見:

https://github.com/openai/point-e/blob/main/point_e/evals/scripts/blender_script.py

過往 text-to-3D AI 橫向對比

近兩年來,湧現了眾多關於 text-to-3D 模型生成的相關探索,Google、NVIDIA 等大廠也紛紛推出了自己的 AI。

我們收集彙總了 3 個 text-to-3D 合成的 AI,供大家橫向對比差異。

DreamFields

釋出機構:Google

釋出時間:2021 年 12 月

專案地址:https://ajayj.com/dreamfields

DreamFields 結合了神經渲染 (neural rendering) 與多模態影象及文字表徵, 僅依據文字描述,就可以可以在沒有 3D 監督的情況下,生成各種各樣 3D 物體的形狀和顏色。

DreamFields 從 4 個視角分別渲染的示例

DreamFields 生成 3D 物體的過程中,借鑑了在大型文字影象資料集上預訓練過的 image-text model,並對源自多視角的 Neural Radiance Field 進行了優化, 這使得預訓練 CLIP 模型渲染的影象,在目標文字下取得了良好的效果。

DreamFusion

釋出機構:Google

釋出時間:2022 年 9 月

專案地址:https://dreamfusion3d.github.io/

DreamFusion 可以藉助預訓練 2D text-to-image diffusion model,實現 text-to-3D synthesis。

DreamFusion 引入了一個基於概率分佈蒸餾 (probability density distillation) 的 loss,使 2D diffusion model 能夠作為引數影象生成器 (parametric image generator) 優化的 prior。

輸入文字提示

a DSLR photo of a peacock on a surfboard

DreamFusion 生成 3D 物體

通過在與 DeepDream 類似的程式中應用該 loss,Dreamfusion 優化了一個隨機初始化的 3D 模型(一個 Neural Radiance Field 或者 NeRF),通過梯度下降法使其從隨機角度的 2D 渲染達到一個相對較低的 loss。

Dreamfusion 不需要 3D 訓練資料,也無需修改 image diffusion model, 證明了預訓練 image diffusion model 作為 prior 的有效性。

Magic3D

釋出機構: NVIDIA

釋出時間: 2022 年 11 月

專案地址: deepimagination.cc/Magic3D/

Magic3D 是一個 text-to-3D 內容的建立工具,可用於建立高質量的 3D mesh model。 利用 image conditioning 技術以及基於文字提示的編輯方法,Magic3D 提供了控制 3D 合成的新方法,為各種創意應用開闢了新的途徑。

Magic3D 結構概述

以 coarse-to-fine 的方式

依據輸入的文字提示,生成高解析度的 3D 內容

過程包括兩個階段:

階段 1: 使用低解析度的 diffusion prior 獲得一個 coarse model,並用 hash grid 和 sparse acceleration structure 進行加速。

階段 2: 使用從粗略神經表徵 (coarse neural representation) 初始化的 textured mesh model,通過高效的可微分渲染器與高解析度的 latent diffusion 模型互動進行優化。

技術進步仍需突破侷限

text-to 3D 的 AI 陸續面世,但基於文字生成 3D 合成尚處於早期發展階段, 業內還沒有一套公認的 Benchmark,能用來更公正地評估相關任務。

Point·E 對於 fast text-to 3D 合成而言,具有重大意義, 它極大提升了處理效率,降低了算力消耗。

但不可否認, Point·E 仍然具有一定的侷限性, 比如 pipeline 需要合成渲染,生成的 3D 點雲解析度較低,不足以捕捉細粒度的形狀或紋理等。

關於 text-to 3D 合成的未來,你怎麼看?未來的發展趨勢又會怎樣?歡迎評論區留言討論。