深層学習プロジェクト ブランチ 1: テキストから画像へのモデル 01

1. 背景説明

テキストから画像への生成は、深層学習ベースの機械学習タスクであり、その目的は、テキストを画像に変換して自然言語記述を含む画像を構築する方法をテキストから学習することです。このような技術は、言語概念と視覚概念を結びつけることに基づいており、テキストによる説明を理解して画像に翻訳できるようになります。

3 つのテキストから画像へのモデルが際立っています: Stable Diffusion、Midjourney、DALL E 2

オープンソースの画像ジェネレーターをお探しの場合、現時点では 3 つのオプションのうち Stable Diffusion が唯一のオプションです。Stable Diffusion はコンピュータ上でローカルに実行できるため、より詳細な制御が可能になり、カスタマイズが強化され、深層学習のテキストから画像へのモデルを使用して独自の AI ツールを構築することもできます。

2. 情報源

1. 見せて、参加して、伝えてください: 視覚的な注意を伴うニューラル画像キャプションの生成、论文地址:https://arxiv.org/abs/1502.03044

2. DenseCap: 高密度キャプションのための完全畳み込みローカリゼーション ネットワーク、論文アドレス: https://arxiv.org/abs/1511.07571

3. Neural Baby Talk、論文アドレス: https://arxiv.org/abs/1508.06624

4. 敵対的テキストから画像への生成合成、論文アドレス: https://arxiv.org/abs/1605.05396

5. テキストからの画像生成、論文アドレス: https://arxiv.org/abs/1511.02793

6. 思考ベクトルを使用したテキストから画像への合成,论文地址:https://arxiv.org/abs/1605.05396

7. StackGAN: スタックされた敵対的生成ネットワークを使用したテキストからフォトリアリスティックな画像への合成、论文地址:https://arxiv.org/abs/1612.03242

8. Show、Control、Tell: A Definitive Image Captioning Framework、論文アドレス: https://arxiv.org/abs/1703.09137

9. セマンティック アテンションを使用した画像キャプション、論文アドレス: https://arxiv.org/abs/1709.06309

10. 敵対的テキストから画像への生成合成、論文アドレス: https://arxiv.org/abs/1605.05396

3. コードソース

今回、CVPR 2022 の論文「潜在拡散モデルを使用した高解像度画像合成」に基づいて、ミュンヘン大学とランウェイの研究者は、Eleuther AI や LAION などのチームと協力して、コンシューマー上で実行できるモデルを共同開発しました。 -グレード GPU: テキストから画像へのモデル Stable Diffusion、現在のプロジェクト コードはオープン ソースです。

コードアドレス: https://github.com/CompVis/stable-diffusion

安定拡散モデルは、4000 個の A100 Ezra-1 AI の非常に大規模なクラスターでトレーニングされた最初のテキストから画像へのモデルです。テストに関しては、研究チームは 10,000 人を超えるベータ テスト ユーザーを対象にこのモデルを大規模にテストし、1 日あたり 170 万枚の画像を作成しました。この研究では、モデルによって出力されたオープン合成データセットもリリースされます。

Stable Diffusion はコンシューマ GPU 上の 10 GB の VRAM で実行でき、前処理や後処理を行わずに数秒で 512x512 ピクセルの画像を生成することができ、速度と品質において画期的な進歩を遂げます。

論文アドレス: https://arxiv.org/pdf/2112.10752.pdf

 

この研究では、拡散モデルを使用してテキストから画像への変換を実現しようとしています。拡散モデルでは、対応する損失項をアンダーサンプリングすることで知覚的に無関係な詳細を無視することができますが、依然としてピクセル空間での高価な関数評価が必要であり、その結果、計算時間とエネルギーリソースに多大なコストがかかります。この研究では、圧縮段階と生成学習段階を明示的に分離することでこの問題を回避し、最終的には高解像度画像合成のための拡散モデルのトレーニングに必要な計算量を削減します。

 4.モデルの基本的な考え方

モデルの基本的な考え方は、テキスト内の各単語と各フレーズを、一連の拡散操作を通じて、テキストの内容を表す一連のグラフィックスに変換することです。

まず、テキスト内の各単語やフレーズがグラフに変換され、次にこれらのグラフがグリッド内に配置されます。各グリッドは概念または概念に関連する単語やフレーズを表します。

次に、プログラムは拡散プロセスをシミュレートして、これらのグラフィック間の関係を表し、それらを接続してテキストの内容を表すマップを形成します。最後に、ユーザーはこのマップをカスタマイズして、テキストの内容をより適切に反映し、テキスト内の情報をより適切に抽出することができます。

プログラムは次のように拡散プロセスをシミュレートします。

順拡散プロセスでは、入力画像 x0 にガウス ノイズが徐々に追加され、合計で T ステップがあります。このプロセスにより、ノイズの多い画像サンプル x₁、…、x_T のシーケンスが生成されます。T → ∞ とすると、最終結果は、等方性ガウス分布からサンプリングされたかのように、完全にノイズの多い画像になります。

  • 順拡散処理→ 潜在データにノイズを加える

  • 逆拡散処理→ 潜在データからノイズを除去

V. 拡散モデルの構成要素

安定拡散は、単一のモデルではなく、コンポーネントとモデルのシステムです。

モデル全体の観点からモデル内を観察すると、テキスト情報を使用するテキスト理解コンポーネントが含まれていることがわかります。

 テキスト内の意味情報を取得するために数値表現に変換されます。

モデルはまだマクロの観点から分析されているため、モデルの詳細は後ほど明らかになりますが、このテキスト エンコーダーは特別な Transformer 言語モデル (具体的には、CLIP モデルのテキスト エンコーダー) であると大まかに推測できます。

モデルの入力はテキスト文字列で、出力は数値のリストです。これはテキスト内の各単語/トークンを表すために、つまり各トークンをベクトルに変換するために使用されます。

この情報は、複数のコンポーネントを含む画像ジェネレーターに送信されます。

画像生成は主に 2 つの段階で構成されます。

1. 画像情報生成装置

このコンポーネントは Stable Diffusion 独自の秘伝のソースであり、以前のモデルと比べて多くのパフォーマンス向上がここで達成されています。

このコンポーネントは複数のステップを実行して画像情報を生成します。ステップは Stable Diffusion インターフェイスおよびライブラリのパラメータでもあり、デフォルトでは通常 50 または 100 です。

画像情報生成器は完全に画像情報空間 (または潜在空間) で動作するため、ピクセル空間で動作する他の拡散モデルよりも高速に実行されます。技術的には、このコンポーネントは UNet ニューラル ネットワークとスケジューリング (スケジューリング) アルゴリズム構成で構成されます。 。

拡散という言葉は、このコンポーネントの内部動作中に何が起こるかを表します。つまり、情報が段階的に処理され、最終的に次のコンポーネント (画像デコーダ) によって高品質の画像が生成されます。

2. 画像デコーダ

画像デコーダは、画像情報作成者から取得した情報に従って画像を描画し、最終的なピクセル画像を生成するプロセス全体が 1 回だけ実行されます。

 

安定拡散は 3 つの主要コンポーネントで構成されており、それぞれに独立したニューラル ネットワークがあることがわかります。

1) テキストのエンコードにはクリップテキストが使用されます。

入力テキスト

出力: 77 個のトークン埋め込みベクトル (各ベクトルには 768 次元が含まれます)

2) UNet + Scheduler は、情報 (潜在) 空間内で情報を段階的に処理/拡散します。

入力: テキストの埋め込みとノイズの初期多次元配列 (テンソルとも呼ばれる構造化された数値リスト)。

出力: 処理された情報の配列

3) オートエンコーダ デコーダ。処理された情報行列を使用して最終画像を描画するデコーダ。

入力: 次元 (4、64、64) の処理済み情報行列

出力: 結果画像。各次元は (3, 512, 512)、つまり (赤/緑/青、幅、高さ) です。

 拡散とは何ですか?

拡散は、下図のピンクの画像情報作成コンポーネントで発生するプロセスです。このプロセスには、入力テキストを表すトークンの埋め込みと、ランダムな初期画像情報行列 (潜在とも呼ばれます) が含まれます。このプロセスには、Image も使用する必要があります。デコーダを使用して、最終画像の情報マトリックスを描画します。

実行プロセス全体は段階的に行われ、各段階でより関連性の高い情報が追加されます。

プロセス全体をよりよく理解するには、ランダム潜在行列の途中で、それが視覚的なノイズにどのように変換されるかを確認します。ここでは、画像デコーダーを使用して視覚的な検査が行われます。

拡散プロセス全体には複数のステップが含まれており、各ステップは入力潜在行列に基づいており、「入力テキスト」とモデル画像セットから取得した「視覚情報」をよりよく適合させるために別の潜在行列を生成します。

 

これらの潜在力を視覚化すると、各ステップで情報がどのように加算されるかがわかります。

プロセス全体がゼロから始まります。

ステップ 2 とステップ 4 の間のプロセスの移行は、あたかもノイズから絵の輪郭が浮かび上がるかのように、特に興味深いものに見えます。

6. 拡散の動作原理の概要

拡散モデルを使用して画像を生成するという中心的なアイデアは、依然として既存の強力なコンピューター ビジョン モデルに基づいており、入力データ セットが十分に大きい限り、これらのモデルは任意の複雑な操作を学習できます。

すでに画像があり、ノイズを生成して画像に追加すると、その画像をトレーニング サンプルとして扱うことができるとします。

  • 前方拡散 → 画像にノイズを加えます。

  • 逆拡散処理 → 画像のノイズを除去します。

おすすめ

転載: blog.csdn.net/weixin_45888522/article/details/130016392
おすすめ