この記事では、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オブジェクトを生成してみます。
以下のリンク先で配布されているノートブックをベースに、プロンプト(入力テキスト)だけ設定すれば生成結果がダウンロードされるお試しバージョンを作成したので、こちらを使っていきます。
お試しバージョンノートブックは以下のリンクよりご参照ください。
プロンプトの設定
ここでは、「a beautiful illustration of castle in style of Ghibli studio, trending on artstation, 8k HD, cgsociety」と入力します。
3Dオブジェクトの生成
上部メニューの「ランタイム」から「すべてのセルを実行」します。
これで、環境設定から3Dオブジェクトの生成、結果のダウンロードまで自動で行われます。
生成結果
生成された任意視点の画像を動画化した結果がこちらです。
雰囲気のある城が生成できました。「Ghibli studio」ワードの影響かトトロ風の何かも配置されています。
まとめ
CLIP-Meshと比較すると、色の塗り分けや形状の非対称性の再現が精細な印象です。 もっとも、それぞれ全く異なるアプローチであり、取得できる要素の違いなどから一長一短あるので、今後どのように発展していくのか要注目です。