本記事では、DreamFusionと呼ばれる機械学習手法を用いて、テキストから3Dモデルを生成する方法をご紹介します。
DreamFusion
概要
DreamFusionは、事前トレーニング済みのText to Imageタスクの拡散モデルを使用して、Text to
3D modelタスクを実現する3次元モデル合成技術です。
2022年現在、テキストから画像を生成するText to
Imageタスクにおいて、大きなブレークスルーを実現している拡散モデルは、何十億もの画像とテキストのペアでトレーニングされています。
この手法をText to 3D
modelタスクに適用する場合、大規模なラベル付けされた3Dデータが必要ですが、これらの用意は現状困難です。
このためDreamFusionでは、Deep
Dreamのような手順でランダムな角度からのレンダリングの損失が最小化するように勾配降下によって3Dモデルを最適化しています。
この方法により、3Dデータを必要とせず3次元モデルの生成を可能にしています。
詳細はこちらの論文をご参照ください。
本記事では上記手法を用いて、テキストから3Dモデルを生成する方法をご紹介します。
デモ(Colaboratory)
それでは、実際に動かしながらテキストから3Dモデルを生成していきます。
ソースコードは本記事にも記載していますが、下記のGitHubでも取得可能です。
GitHub - Colaboratory demo
また、下記から直接Google Colaboratoryで開くこともできます。
なお、このデモはPythonで実装しています。
Pythonの実装に不安がある方、Pythonを使った機械学習について詳しく勉強したい方は、以下の書籍やオンライン講座などがおすすめです。
おすすめの書籍
[初心者向け] Pythonで機械学習を始めるまでに読んだおすすめ書籍一覧
本記事では、現役機械学習エンジニアとして働く筆者が実際に読んだ書籍の中でおすすめの書籍をレベル別に紹介しています。
おすすめのオンライン講座
[初心者向け] 機械学習がゼロから分かるおすすめオンライン講座
本記事では、機械学習エンジニアとして働く筆者が、AI・機械学習をまったく知らない方でも取り組みやすいおすすめのオンライン講座をご紹介しています。
環境セットアップ
それではセットアップしていきます。 Colaboratoryを開いたら下記を設定しGPUを使用するようにしてください。
初めにGithubからソースコードを取得します。
次にライブラリをインストールします。
次にHuggingFaceからStable
Diffusionの事前学習済みモデルをロードするためHugginFaceにログインします。
AccessTokenの取得方法は以下の記事をご参照ください。
[Stable Diffusion] AIでテキストから画像を生成する[text2img]
本記事では、機械学習手法Stable Diffusionを用いてテキストから画像を生成する方法をご紹介しています。
以上で環境セットアップは完了です。
トレーニングのセットアップ
任意のPromptに応じた3Dモデルを生成するためのトレーニングをセットアップしていきます。
今回はbananaの3Dモデルを生成してみたいと思います。
以下の通りトレーニングを実行します。
GPUにもよりますが、1エポック1分ほどなので、軽く見積もっても1時間程度を要します。
本記事では、時間短縮のため20エポックで切り上げています。
Text to 3D model
学習途中のモデルではありますが、3Dモデルを生成してみます。
20エポックでの出力結果は以下の通りです。
残念ながらこの段階ではまだバナナの視認できるような形状ではありません。
その他プロンプトによっては50エポックでもうまく3Dモデルが生成されない場合もあり、やや不安定です。
うまく生成され次第プロンプトと生成結果を更新予定です。
まとめ
本記事では、DreamFusionを用いてText to 3D modelを試してみました。
現状、Google
Colaboratoryでは学習コストにやや難があります。トレーニングの高速化などを探りたいところです。
また本記事では、機械学習を動かすことにフォーカスしてご紹介しました。
もう少し学術的に体系立てて学びたいという方には以下の書籍などがお勧めです。ぜひご一読下さい。
また動かせるだけから理解して応用できるエンジニアの足掛かりに下記のUdemyなどもお勧めです。
0 件のコメント :
コメントを投稿