画像生成における拡散モデルの基礎概念と衛星データへの応用
天地人は、衛星データを使った土地評価コンサルを行っているJAXA認定ベンチャーです。地球観測衛星の広域かつ高分解能なリモートセンシングデータ(気象情報・地形情報等)や農業分野の様々なデータを活用した、土地評価サービス「天地人コンパス」を提供しています。
Tenchijin Tech Blogでは、宇宙に関連するさまざまな最新情報を、天地人のエンジニア、研究者、ビジネスリーダーが一歩踏み込んで解説します。
今回は、近年注目度が高まり続けている画像生成AIの概要、および衛星データへの応用について、天地人の画像解析エンジニアとしてインターンを務める柴田が社内で行ったTechdemoを記事化します。
拡散モデルの基礎的概念
慶應大学大学院総合デザイン工学科修士1年の柴田です。本日は画像生成AIで使用される拡散モデルの基礎的な概念を扱うということで、複雑な数理モデルなどの説明はなるべく避けて全体感を理解していただけるような内容にしたいと思います。
さっそく、拡散モデルとは何かを説明していきます。基本的には、画像に対してノイズを付与して、そのノイズを除去するように学習を行うことで、データの(条件付き)分布を獲得するという手法です。ユーザーのプロンプトに応じて画像生成をコントロールできるという点で非常に優れており、注目を集めています。上の図が実際に拡散モデルで生成された画像で、かなりリアルなアウトプットになっています。
ノイズを付与してそれを除去するというのは、一見不可解かもしれませんが、上の図がメカニズムを端的に表しています。これは拡散モデルの元となった論文の一つからの抜粋です。右端のX0を元になる高品質な画像として、ここから左に行くに連れてノイズが付与されていきます。そして、左のXTでは完全なるノイズに覆われていることを表しています。拡散モデルは何を学習させるかというと、左のノイズが乗った画像から右のノイズがない状態の推定を行っています。また、様々なスケールのノイズを付与し、デノイジング過程を学習させることによって広範なデータ分布を学習することが可能となります。
拡散モデルの強みが活きる活用法として、まず挙げられるのがユーザーの指定(プロンプト)に沿った画像生成です。例えば、上の画像には「シェフ」「キッチン」というプロンプトを与えていますが、ノイズから画像を生成するため、同じプロンプトでも乱数次第でアウトプットが大きく変わる点も一つの特徴です。
二つ目の活用法は「インペインティング」という、画像の欠損箇所やマスクされた箇所(上図, 紫色箇所)に関して可能性が高い外見パターンを出力するタスクになります。そもそも画像の欠損部分を埋めるインペインティングタスクは、高品質な画像を出力する画像生成拡散モデルにとって有利な問題設定と言えます。また、上の図のように、画像の中の空白を自由に埋めるというプロンプトの場合、当てはまる答え(見え方)は無限にありますよね。答えが複数あって決定的な関数で表せない場合にでも、データの分布を学習している拡散モデルを使用することで妥当な出力を得ることが可能になります。
そのほかに、画像生成以外の活用事例として、2023年のトップカンファレンスに採択された研究を2本紹介します。まず一つ目は、音楽に合わせてダンスを生成する「EDGE」というモデルです。生成されたダンスをユーザーの手で後から編集も可能である点が非常に優れた研究だと思います。
二つ目が、曖昧さを持った医療画像のセグメンテーション(画像分割)モデルです。医療画像はクオリティにムラがあり、画像がぼやけていたりすると臓器の輪郭周辺などにおいて臓器や腫瘍の位置の正確な特定が困難になります。臓器のセグメンテーションタスクにおいて、既存の手法ではニューラルネットワークを決定的な関数として使用し、一意的な予測をしていました。一方、提案手法は拡散モデルを活用することで、予測値を複数出力し、あり得そうな正解値の分布の広がり(不確実性)を考慮した学習/推論を実施することが可能となります。
続いて、拡散モデルの概要を簡単に説明します。
Forward Diffusion Processでは、高品質なオリジナルの画像X0から始まり、段々とガウシアンノイズが加えられます。このプロセスによって、XTではほぼ完全なガウシアンノイズが得られます。一方、Reverse Diffusion Processはその逆を行います。XTから始まり、少しずつノイズが取り除かれた画像が得られるというものです。このような過程を拡散モデルで学習させます。MidJourneyやStable Diffusionで画像生成を行う場合、ランダムなノイズパターンが存在し、学習済みのデノイジングモデルを通して段階的にノイズが除去されて画像が生成されます。したがって、同じプロンプトを用いても、ノイズパターンが異なれば異なる結果が得られることになります。
拡散モデルの応用例
一方、SNSなどでよく話題になっているのは、「条件付き画像生成」という異なる手法です。先述の画像生成では何も条件が与えられずノイズから画像生成を行っている一方で、条件付き画像生成は、テキストや画像の構成などの情報を表す条件ベクトルを別途準備し、それを追加してデノイジング学習を行います。直感的に言い換えれば、「このような文章と、このような画像がペアとして現実に存在するのか」といった考え方でモデルが学習しているようなイメージです。
例えば、上の画像は「乗馬する宇宙飛行士の写真」といったプロンプトを提示していますが、画像とテキストを共通の潜在空間に埋め込むよう大規模に学習されたモデル(CLIP)を利用し、この文章を一つのテキストベクトルに変換します。そのベクトルを先述のニューラルネットワークの間に組み込むことで、このようなテキストに適合する画像を生成することができるようになるのです。
ニューラルネットワークにテキストを入れるメカニズムについて、最も有名な画像生成モデルである Stable Diffusion の構造をもとに簡単に説明します。
ポイントは3つあります。まず、先程も少し触れましたが、U-Net構造で複数の解像度の画像特徴量を活用することで、画像の大局的/局所的な情報を利用することができます。
上の図を見てみましょう。まず、入力画像Xが左上にありますが、扱う画像を小さくし、推論にかかる時間を短縮させるため、VAEと呼ばれるモデルを使用し大きさサイズの画像から低次元の潜在表現を抽出します。次に、ノイズのないZの状態からスタートし、徐々にノイズを増やしていく拡散プロセスを通じて、ノイズばかりのZTが得られます。
デノイジングの過程では、右下のノイズだけのZTから始まり、それをニューラルネットワークに入力し、UNet構造により画像のサイズを縮小/拡大することで、画像の大局/局所的な情報を同時に利用しています。
さらに、これが2番目のポイントですが、複数の解像度(例えば32x32や16x16など)で、クロスアテンションと呼ばれる画像-テキスト間の関係性を抽出する機構が働き、画像のどの部分とテキストのどの部分が関連しているかを計算します。例えば「馬」という単語がある場合、画像中の「馬」と関連のある箇所に注意が集まり、該当箇所はより「馬」らしさを取り込んだ見た目に変化します。さらに、場合によってはレイアウトなども条件として考慮されます。そういった条件においてもテキストの場合と同様に一つのベクトルに変換され、それが各層に挿入されます。
更に、3つ目のポイントとしては、より高品質な画像を得るために、一度のノイズからリアルな画像を生成するのではなく、この過程を複数回繰り返している点です。例えば、T=1000の場合、徐々にデノイジングを行うことで最終的に高品質な出力画像を得ることができます。
リモートセンシングへの応用
最後に、天地人のコア事業である衛星データ活用に関連する話題ということで、ICLRという画像処理のトップカンファレンスに採択された最新の論文”DiffusionSat: A Generative Foundation Model for Satellite Imagery”を紹介します。この研究は、衛星データを扱う基盤モデル構築を目的としたものであり、スタンフォード大学とStabilityAI(Stable Diffusionの制作会社)の協力で執筆されました。私自身も、StabilityAIが衛星データに興味を持っていることに驚きましたが、この研究は大規模な衛星画像生成学習が実現されたこと、モデルが持つ高い応用可能性を有していることなどから非常に優れていると感じたので、皆さんにご紹介したいと思います。
以降の内容は有料となります。この記事のみ購入する場合は200円ですが、月に3~4記事が月額500円になるお得なサブスクリプションプランもご用意しております。天地人へのご質問・記事に関するご感想・記事の内容のリクエスト等ございましたら、pr@tenchijin.co.jp までお気軽にお問い合わせください。
ここから先は
¥ 200