😽

古典から学ぶ拡散モデル超解像

2025/02/05に公開

― SR3(Super-Resolution via Repeated Refinement)の仕組みと魅力

近年、生成AIや画像復元の文脈で「拡散モデル」というキーワードをよく耳にするようになりました。2022~2023年にかけては、Stable DiffusionやDALL·E 2といった大規模モデルが話題をさらっています。しかし、少し前の2021年に公開された「SR3(Super-Resolution via Repeated Refinement)」は、拡散モデルを用いた画像超解像という分野で先駆的かつ代表的な研究です。
本記事では、SR3の基本的な仕組みや、なぜGANと比べて学習安定性や画質面で有利になりやすいのかを解説し、拡散モデルベースの画像復元がどのような流れで発展してきたのかを整理してみます。やや古い文献になりますが、いま改めて読むことで最新の拡散モデルをより深く理解する助けになるはずです。


1. 超解像(Super-Resolution)とは

「超解像」は、低解像度画像(あるいはぼやけた画像)を入力し、詳細な高解像度画像を出力するタスクです。

  • 医用画像や防犯カメラなどの領域でも応用が期待され、**「見えない部分のディテールを推定して補完する」**技術が求められています。
  • しかし、一つの低解像度画像から得られる可能性は無限大に広がるため、「高周波情報をどう補うか」が最大の課題です。
  • GAN(Generative Adversarial Network)を用いた超解像手法は2010年代後半に多く登場し、それまでの回帰ベースのCNN手法よりもシャープな出力を得られることが示されてきました。
  • しかしGANは学習が不安定だったり、モード崩壊(多様な出力が得られず、似たような出力に偏る現象)に悩まされたりといった課題があります。

2. SR3: Super-Resolution via Repeated Refinement

**SR3(Super-Resolution via Repeated Refinement)**は2021年に発表された研究で、

  • **「拡散モデル(DDPM)を使った繰り返しノイズ除去」**によって、低解像度画像から高解像度画像を生成する。
  • 16×16 → 128×128のような8倍超解像でも、人間が「本物」と見分けられないレベルの自然なディテールを達成したと報告されています。
  • 従来のGANベース手法を上回る画質評価や被験者テストでの誤認率を示し、大きなインパクトを与えました。

論文タイトル:
Image Super-Resolution via Iterative Refinement (SR3)


3. 拡散モデル(Diffusion Model)の基本アイデア

拡散モデル(特にDDPM: Denoising Diffusion Probabilistic Model)の核となる考え方は、**「ノイズの加え方と取り除き方を学習し、最終的に本物データの分布を生成する」**というものです。

  1. Forward Process(拡散過程)

    • 元の画像に段階的にガウスノイズを加え、最終的にはノイズのみの状態まで壊していく。
    • ステップ数を T とすると、x_0 \to x_1 \to \dots \to x_T とノイズ量を増やしていく。
  2. Reverse Process(逆拡散過程)

    • 学習済みモデルを用いて、このノイズまみれの画像から徐々にノイズを除去し、元のクリーン画像を取り戻す。
    • 推論時には純粋なノイズ(x_T)から逆方向へ一歩ずつサンプリングを行うことで、最終的にリアルな画像が得られる。
  3. 学習の方法

    • 学習は「あるステップ t のノイズ量だけが混入した画像 x_t をU-Netに入力し、“加えられたノイズ \epsilon” を当てる」ように行われる。
    • 敵対的ネットワーク(Discriminator)を使わないため、GANが抱える学習不安定・モード崩壊の問題を回避しやすい。

4. SR3における超解像の流れ

SR3では、この拡散モデルの枠組みを**「低解像度画像を条件としたノイズ除去プロセス」**に置き換えて運用します。

  1. 学習フェーズ

    • 高解像度画像 x_0 にノイズを加えた x_t を作り、U-Netに入力。
    • 低解像度画像をバイキュービックなどでアップサンプルしたもの(条件画像)も一緒に与える。
    • モデルは「ノイズ \epsilon」を推定し、MSEなどで損失を計算。
    • これをステップ t をいろいろ変えながら繰り返すことで、あらゆるノイズレベルに対応できるU-Netが完成する。
  2. 推論(生成)フェーズ

    1. 高解像度サイズのランダムノイズ画像を用意する。
    2. 低解像度のアップサンプル画像を条件としてU-Netに入力。
    3. U-Netが推定したノイズを取り除き、少しノイズが減った画像を得る。
    4. この結果を次のステップに再度入力し…と、何十~百回程度のステップを反復。
    5. 最終的にノイズがほぼ消えた高精細画像が得られる。

ポイントは**「毎回、条件画像(アップサンプル)と前のステップの結果をU-Netに入れる」**ことで、低解像度画像の構造を常に参照しながらディテールを付加していく点です。


5. なぜGANを上回る性能が得られるのか

SR3がGANベースの超解像よりも高品質かつ自然な画像を生成できると報告されている理由は、次のようにまとめられます。

  1. 学習の安定性

    • GANでは生成器と識別器のミニマックス最適化を行うため学習が不安定になることが多いが、拡散モデルは**単純なMSE**でノイズ推定を学習する構造のため、極めて安定しやすい。
  2. 段階的ノイズ除去による微細描画

    • 一度に高周波を生成するのではなく、小さなステップを積み重ねることでより自然なテクスチャや微妙なノイズの質感を再現しやすい。
    • 超解像においては髪の毛や布のしわ、肌理などの「微細さ」を出しやすい。
  3. 確率分布全体を覆いやすい

    • 拡散モデルは大量のノイズレベルを学習し、生成時にも様々な経路でノイズを除去するため、モード崩壊が起こりにくい
    • 同じ低解像度画像に対しても多様な出力を得られる可能性が高い。

6. 拡張応用:Cascaded Diffusion Model

SR3の論文では、さらにCascaded Diffusion Modelという考え方も提案されています。これは、

  1. 低解像度でまず画像を生成(クラス条件付きなど)。
  2. 得られた64×64画像などを超解像モデル(拡散モデル)に渡し、128×128、256×256と段階的にアップスケールしていく。

このカスケード手法により、いきなり巨大解像度の画像生成を狙うよりも、

  • モデルをステージごとに分割し、
  • 各ステージを専門化させることで、
    高品質かつ安定した生成を実現できると報告されています。実際にImageNetなどの大規模データセットで良好なFIDスコアを出し、GANと競合する性能を示しました。

7. まとめ:いまSR3を振り返る意義

  • SR3は2021年時点の研究であり、拡散モデルが急速に発展するきっかけの一つとして知られています。
  • 現在(2023年以降)は、Stable DiffusionやDALL·E 2などさらに大規模なモデルが話題ですが、「ノイズ除去による段階的な画像再構築」というコアの考え方は変わっていません
  • SR3のシンプルな仕組みを学ぶことで、テキスト生成や音声処理など他のモーダルに広がった拡散モデルの土台を理解しやすくなります。
  • 特に画像復元・修復(例:欠損補完、ブレ除去、カラー化など)においては「条件付き拡散モデル」のアーキテクチャがそのまま応用できるため、SR3が提示したフレームワークは今でも実用的・示唆的といえます。

参考リンク


おわりに

SR3は「GAN頼みだった超解像が、拡散モデルによって大きく塗り替えられる」可能性を最初に示唆した代表的な研究です。
もし「Stable Diffusionや最新の拡散モデルを見ても仕組みがイマイチ呑み込めない…」という方は、このSR3の考え方を追いかけてみると、拡散モデルの基礎をしっかり理解する良い手がかりになるでしょう。
今後も画像復元をはじめとする幅広いタスクで、拡散モデルがますます活躍することが期待されます。

当記事が、その入り口としてお役に立てば幸いです。

Discussion