本記事では、clip2latentと呼ばれる機械学習手法を用いて、テキストから顔画像や風景画像を生成する方法をご紹介します。
出典: justinpinkney/clip2latent |
clip2latent
概要
clip2latentは、事前トレーニング済みCLIPとStyleGANを用いてテキストから画像を生成する際に、拡散モデルによるサンプリングを適用した画像生成手法です。
CLIP embeddingsを入力とする拡散モデルをトレーニングし、事前トレーニング済みのStyleGANの潜在ベクトルをサンプリングすることによりテキストに応じた画像を生成します。
この構成により、条件付き拡散モデルを画像とキャプションのペアデータセットでトレーニングする必要性をなくしトレーニングコストを低減しています。
論文中では、clip2latentはテキストプロンプトに基づいて1024x1024ピクセルの高解像画像を高速にサンプリングでき、かつ、低コストでトレーニングができることが示されています。
出典: clip2latent: Text driven sampling of a pre-trained StyleGAN using denoising diffusion and CLIP |
詳細はこちらの論文をご参照ください。
本記事では上記手法を用いて、任意のテキストから顔画像や風景画像を生成してみます。
デモ(Colaboratory)
それでは、実際に動かしながらテキストから画像生成を行います。
ソースコードは本記事にも記載していますが、下記のGitHubでも取得可能です。
GitHub - Colaboratory demo
また、下記から直接Google Colaboratoryで開くこともできます。
なお、このデモはPythonで実装しています。
Pythonの実装に不安がある方、Pythonを使った機械学習について詳しく勉強したい方は、以下の書籍やオンライン講座などがおすすめです。
おすすめの書籍
[初心者向け] Pythonで機械学習を始めるまでに読んだおすすめ書籍一覧
本記事では、現役機械学習エンジニアとして働く筆者が実際に読んだ書籍の中でおすすめの書籍をレベル別に紹介しています。
おすすめのオンライン講座
[初心者向け] 機械学習がゼロから分かるおすすめオンライン講座
本記事では、機械学習エンジニアとして働く筆者が、AI・機械学習をまったく知らない方でも取り組みやすいおすすめのオンライン講座をご紹介しています。
環境セットアップ
それではセットアップしていきます。 Colaboratoryを開いたら下記を設定しGPUを使用するようにしてください。
初めにGithubからソースコードを取得します。
次にライブラリをインストールします。
最後にライブラリをインポートします。
以上で環境セットアップは完了です。
学習済みモデルのセットアップ
続いて、GANモデルをセットアップしていきます。
学習済みモデルは2種類用意されており、顔画像を生成するfaces
と風景画像を生成するlandscape
です。
Text to Image
それでは、テキストプロンプトを入力し画像を生成してみます。
出力結果は以下の通りです。
テキストプロンプトに応じた画像が生成されています。注目すべきはモデルのロードさえ完了してしまえば画像の生成が非常に速い点です。
Tesla T4のGoogle Colaboratoryでさえ、5枚の画像生成が600ミリ秒前後で完了します。
参考までにlandscapeモデルにテキストプロンプトthe sun setting over the sea
を入力した結果は以下の通りです。
まとめ
本記事では、clip2latentと呼ばれる機械学習手法を用いて、テキストから顔画像や風景画像を生成する方法をご紹介しました。
Stable Diffusionなど拡散モデルで画像を生成する手法が注目を集めますが、本手法では、拡散モデルを潜在空間の制御に用いており目の付け所が面白いです。
また本記事では、機械学習を動かすことにフォーカスしてご紹介しました。
もう少し学術的に体系立てて学びたいという方には以下の書籍などがお勧めです。ぜひご一読下さい。
また動かせるだけから理解して応用できるエンジニアの足掛かりに下記のUdemyなどもお勧めです。
参考文献
1. 論文 - clip2latent: Text driven sampling of a pre-trained StyleGAN using denoising diffusion and CLIP
0 件のコメント :
コメントを投稿