最新AI論文をキャッチアップ

無限に解像度を上げる!最新の超解像・合成・拡張モデル「InfinityGAN」を解説!

無限に解像度を上げる!最新の超解像・合成・拡張モデル「InfinityGAN」を解説!

GAN(敵対的生成ネットワーク)

3つの要点
✔️ パッチ処理により低コストで無制限に画像解像度を上げる
✔️ グローバル・ローカル両方の要因を考慮して,シームレスな画像を生成・合成
✔️ 超解像・画像合成・画像拡張の各分野に興味深いネットワーク構造を提案

InfinityGAN: Towards Infinite-Resolution Image Synthesis
written by Chieh Hubert LinHsin-Ying LeeYen-Chi ChengSergey TulyakovMing-Hsuan Yang
(Submitted on 8 Apr 2021)
Comments: Published on arxiv.

Subjects: Computer Vision and Pattern Recognition (cs.CV)

code:  

本記事で使用している画像は論文中のもの、またはそれを参考に作成したものを使用しております。 

Project page: this https URL

はじめに

今回は,最近arxiv上で公開されたInfinityGANInfinityGAN: Towards Infinite-Resolution Image Synthesis)をご紹介したいと思います.

このInfinityGANが単体でSOTAを達成して話題になっている訳ではありませんが,その提案するネットワーク構造が,超解像・画像合成・画像拡張等の各分野に応用できる可能性を秘めた面白いものになっています.まずは,InfinityGANを用いて生成した画像を見てみましょう.

こちらは論文から引用した画像ですが,パッと見た印象として不思議な感じがすると思います.普段,超解像GANの論文で見かける画像はこのようです.

これに比べると,InfinityGANで生成された画像は,もちろん解像度も高いですが,それと同時に画像の範囲がとても広く,なんだか非現実的な感じもします.

これは,InfinigyGANが,超解像・画像合成・画像拡張を同時に行っているために生じています.解像度を上げるだけでなく,同時にいくつかの画像パッチを組み合わせてテクスチャ合成を行っているのです.先ほどの画像は1024×2048ピクセルですが,実は242個の画像パッチの組み合わせであり,それぞれが合成されていたのです.

既存の超解像モデルの問題は,教師データとして非常に大きな解像度画像を用いることにありました.これによって,教師データ以上の解像度画像を生成することはできませんし,何よりコンピューティングコストが大きすぎます.

また,SinGANInGANなどの既存のテクスチャ合成モデルも高解像度画像を様々なサイズで生成できる一方で,それらは画像の構造自体を学習している訳ではなく,生成する画像は同じテクスチャを繰り返したもののようになってしまっています.

InfinityGANは,小さな画像パッチの繰り返し処理と,グローバル・ローカル・テクスチャの要素を考慮することで上記の課題を解決しています.小さな画像パッチで訓練することでコンピューティングコストを低く抑えることができ,さらに超解像・画像合成・画像拡張それぞれの側面を合わせもった性質を実現しているのです.それでは,そんな興味深い結果を出しているネットワーク構造を詳しく見ていきましょう. 

提案手法

Attentionなどでもよく言及されますが,画像はグローバルにもローカルにも考える必要があります.大局的には,画像は一貫性のあるコンテキストを保ってまとまっていなければならず,比較的コンパクトな(複雑に表現されていない)全体像になっていなければなりません.人間も,中世の風景画像を見たら,「あ,中世っぽいな」と分かるはずです.その「中世っぽさ」を何となく全体的に保持している必要があるのです.

また,局所的には,Convolutionなどで見られるように,クローズアップされた画像はローカルで近傍の構造とテクスチャによって定義されます.構造コンテンツは,局所領域内のオブジェクト,形状,それらの配置を表しています.構造が定義されると,これらを条件とした第二段階として,次にテクスチャを考慮します.そして,この構造やテクスチャは局所的ではあるもの,同時にグローバルな全体像と一致している必要もあります.

これらを全て考慮することで,無限の解像度の画像を生成することができます.まず,グローバルな全体像が決められれば,ローカルな構造とテクスチャは,この全体像のコンテキストに従う限り,無限に空間的に拡張することができます.

概要

上記の分析から,InfinityGANは,全体像のモデリングを司るstructure synthesizer Gsと,ローカルなテクスチャのモデリングを司るtexture stynthesizer Gt2つで構成することにします.また,訓練には解像度の低い画像パッチを用いることにします.このフレームワークは下図のようになります.

4つの潜在変数が生成プロセスをコントロールしています.グローバル潜在変数ZgGsGtの両方に与えられ,各画像パッチが画像の全体像を考慮できるようにします.Gsは座標グリッドcで指定された位置にある各パッチの構造をレンダリングします.パッチのローカルなバリエーションは,ローカル潜在コードZlを用いてモデル化されます.構造が一度定義されると,複数のテクスチャが存在することができるため,Gtの各層には,Zgにはない局所的な細かいディティールをモデル化するために,追加条件Znを与えます.位置cで生成されたパッチをpcとすると,生成プロセスは以下のように記述することができます.Zsは構造の潜在変数を表しています.

Structure Synthesizer

Structure Synthesizerは,ニューラルネットワークで実装された暗黙的な関数です.この目的は,グローバル潜在変数Zgとローカル潜在変数Zlを条件とした暗黙的な表現をサンプリングし,クエリされた位置cに構造を生成することです.

グローバル潜在変数Zgは,グローバルな全体像表現として機能します.Zgは単位ガウス分布から一度だけサンプリングされ,feature modulationによりGsの全ての層と全てのピクセルに注入されます.

ローカル潜在変数はZlで表されます.局所的な変動は,空間次元においては位置に依存しないので,Zlの各空間位置に対して,単位ガウス事前分布からは独立してサンプリングします.ここで,単位ガウス分布から独立してサンプリングすることによって,空間的に無限に拡張可能な体積テンソルを形成することができます.このZlGsの入力としています.

最後にサンプリングされた暗黙的な表現がZgと任意の大きさのZlを条件として,座標cは暗黙的な画像から取り出すべき領域を得るための検索クエリのような役割を果たしています.ここで,Tを正弦波座標の周期とすると,cを次のように符号化することとする.

さらに,モデルがZlを無視して反復的な構造を繰り返し生成することを防ぐために,mode-seeking diversity lossを,ローカル潜在変数Zl1Zl2の間に採用しています.

また,GsZlcがより広範囲の情報を考慮できるように,feature unfoldingのテクニックを利用しています.Gsで中間特徴量fが与えられたとき,k×kfeature unfoldingを用いて得られる特徴量マップuは次のようになります.

ここで、「Concat(-)」はチャネル次元でアンフォールディングされたベクトルを連結します.特徴展開を使用することで、cは単純なtripletではなく、グリッド状の座標に変わります.

Texture Synthesizer

ここまでくればあと少しです.次はTexture Synthesizerについてです.

Texture Synthesizerは,有名なStyleGAN2モデルを用いています.まず,固定された定数の入力をzSに置き換え,細かくランダムなテクスチャをモデル化するために、znを用いてランダムなノイズを注入します.次に,zgをマッピング層の入力とし,マッピング層は,単一のzgを多層パーセプトロンを用いて層ごとのスタイルzTに投影します.そして、スタイルzTは、feature modulationによって各層のすべてのピクセルに注入されます。最後に,下図に示すように,生成器からすべてのゼロパディングを取り除きます.

すべてのゼロ加算を除去するのは,主に3つの理由からです.まず,StyleGAN2モデルは生成器のゼロパディングを通してCNNの位置エンコーディングに大きく依存し,訓練画像から構造情報を記憶していることがわかります.

第二に,ゼロパディングでの位置エンコーディングは,任意の大きさの入力潜在変数を持つ任意の大きさの画像を合成するモデルを一般化するための重要な問題になります.上図の3番目の列では、StyleGAN2成績器の入力潜在変数を複数回拡張した場合,特徴の中心部分がパディングから期待される座標情報を受け取れず,出力画像の中心部分に広範囲に反復したテクスチャーが発生することを示しています.

最後に,パディングの存在は,Gが合成可能な独立したパッチを生成する際に障害となります.そのため,生成器からすべての位置情報を取り除くために,すべてのパディングを取り除きます.

これらの工夫により,任意の解像度の画像を容易に合成することができます.このようにして.GSが提供する構造的特徴に完全に依存するようにモデルを強化し.GTはテクスチャ関連の詳細をモデル化するだけの役割を果たすようにしています.

学習

InfinityGANの識別器Dは,StytleGAN2のものと同様です.ネットワーク全体は,StyleGAN2の損失関数,非飽和ロジスティック損失,R1正則化,path length regulationを用いて学習されます.さらに,条件つき分布を画像の垂直方向にも従うように生成を促すために,パッチの垂直方向の位置を予測する補助タスクを用いてGDを学習させます.

従って,InfinityGANの全体的な損失関数は次式になります. 

実験

上図は,Extended Resolutionタスクにおいて,他の手法と比較した表になります.ここで注意したいのは,単なる超解像やOutpaintingタスクではなく,画像を合成・拡張しつつ,さらに画質も高めるという独自のタスクであるということです.性能は,生成した高解像度の画像を再び訓練時の解像度に戻し,元の画像との差異から計算しています.

上図より,画像を4倍,8倍と拡張すればするほど,InfinityGANがグローバルな画像の特徴を捉えているために,他の手法よりも性能が良くなっていく様が分かります.また,下図ではInfinityGANが他の手法とは違い,全体像の特徴を保持したまま,さらにテクスチャを繰り返さずに合成に成功している様子が見て取れます. 

さらに,下図では,ローカル潜在変数Zlとテクスチャ潜在変数Ztを変化させることで,Structure SynthesizerTexture Synthesizerがそれぞれ別々に構造とテクスチャをモデル化し,それぞれの役割を分離できていることが分かります.

さらに,下図は258個の独立して生成されたパッチを4つのスタイルで合成して得られたものです.複数のスタイルを融合させたこの画像からも,InfinityGANの面白さが伝わるかと思います.

さらに,下図はOut paintingのタスクにおいてもInfinityGANが優れていることを示しています.In&OutというOut paintingのためのモデルにInfinityGANを加えることで明らかに精度を向上させ,SOTAを達成しています. 

 

 

まとめ

いかがでしたでしょうか.単純に何かのタスクで優れているというよりは,パッチベースかつグローバル・ローカルコンテキストを考慮することで興味深い結果が得られた,というような内容でした.今後,超解像やスタイル合成,画像拡張などの各分野への新しい知見として発展していくかもしれません.

また,本論文には補足資料が多く掲載されています.また,プロジェクトページも用意されています.さらにビジュアル的に詳しく見たい,生成器のネットワーク構造やスタイル合成の実装部分を知りたいという方は,そちらを参照してみるとよいかもしれません.

宣伝

AI-Jobsがまもなくリリースされます. AI/DSを本気で取りたい企業のみご利用いただけるようにAI-SCHOLARで求人のチェックから支援 そして,内容次第では掲載の取りやめも考えます. AI/DS人材の環境や価値をしっかり守るための求人掲載プラットフォームになります。

記事の内容等について改善箇所などございましたら、
お問い合わせフォームよりAI-SCHOLAR編集部の方にご連絡を頂けますと幸いです。
どうぞよろしくお願いします。

お問い合わせする