Dream Fieldsによるテキストから3Dオブジェクトの自動生成(text-to-3D synthesis)

この記事では、Dream Fieldsを用いて、テキストから3Dオブジェクトを生成する方法を紹介します。

Dream Fieldsとは

背景

3Dオブジェクトモデルは、ゲームやVRなどあらゆるシーンで必要とされるため、大量かつ多様なニーズがありますが、現在はアーティストの高コストな職人技に頼らざるをえない状況です。

一方、3Dオブジェクトを自動で生成する方法の一つとして、Neural Radiance Field(NeRF)があります。NeRFは対象の写った画像を入力として学習し、新たな視点からの画像を自由に生成することのできる技術ですが、一定数の入力画像を準備する必要があるため、大量の3Dオブジェクト生成には向きません。

そこで、NeRFの構造をベースとして、入力画像を使わず、テキストから自由に3Dオブジェクトを生成できないかという考えから提案されたのが、Dream Fieldsです。

概要

通常のNeRFでは、生成した3Dオブジェクトをある視点から2D化(レンダリング)した結果と、入力画像を比較して、損失関数を計算します。Dream Fieldsは、入力したテキストから3Dオブジェクトを生成することを目的とするため、入力画像の代わりにCLIPにより画像と比較可能な形式でベクトル化したテキストと、同様にベクトル化されたNeRFのレンダリング結果を比較して、損失関数を計算します。また、視点ごとのオブジェクトの(透過率としての)シルエットも併せて最適化することで、視点間の形状の一貫性が補強され、3Dオブジェクトとしてより自然な出来上がりとなります。

CLIPについての詳細や、CLIPを用いた別の3Dモデル生成手法については、以下の記事をご覧ください。

デモ

それでは、Google Colaboratoryを使って実際に3Dオブジェクトを生成してみます。

以下のリンク先で配布されているノートブックをベースに、プロンプト(入力テキスト)だけ設定すれば生成結果がダウンロードされるお試しバージョンを作成したので、こちらを使っていきます。

お試しバージョンノートブックは以下のリンクよりご参照ください。

Open In Colab

プロンプトの設定

ここでは、「a beautiful illustration of castle in style of Ghibli studio, trending on artstation, 8k HD, cgsociety」と入力します。

3Dオブジェクトの生成

上部メニューの「ランタイム」から「すべてのセルを実行」します。

これで、環境設定から3Dオブジェクトの生成、結果のダウンロードまで自動で行われます。

生成結果

生成された任意視点の画像を動画化した結果がこちらです。

雰囲気のある城が生成できました。「Ghibli studio」ワードの影響かトトロ風の何かも配置されています。

まとめ

CLIP-Meshと比較すると、色の塗り分けや形状の非対称性の再現が精細な印象です。 もっとも、それぞれ全く異なるアプローチであり、取得できる要素の違いなどから一長一短あるので、今後どのように発展していくのか要注目です。

参考文献

Zero-Shot Text-Guided Object Generation with Dream Fields

GitHub - XavierXiao/Dreambooth-Stable-Diffusion: Implementation of Dreambooth (https://arxiv.org/abs/2208.12242) with Stable Diffusion