PULSE: 暗黙の空間に基づく画像超解像アルゴリズム

PULSE: 暗黙の空間に基づく画像超解像アルゴリズム

CVPR 2020 に採択された論文「PULSE: 生成モデルの潜在空間探索による自己教師あり写真アップサンプリング」を共有します。著者は、新しい画像超解像法を提案しました。教師ありの PSNR ベースおよび GAN​​ ベースの方法とは異なり、この方法は教師なしの方法であり、つまり、高品質で高解像度の画像を復元するには低解像度の画像のみが必要です。

コードは現在オープンソースです:

https://github.com/adamian98/pulse

論文情報:

1. 動機

画像超解像タスクの基本的な目標は、低解像度の画像を対応する高解像度の画像に超解像することです。 PNSR または GAN に基づく教師あり学習方法のいずれであっても、ピクセル単位のエラー損失関数が多かれ少なかれ使用され、生成される画像はより滑らかになることが多く、細部があまり良くない場合があります。そこで著者は考えを変えました。**これまでの方法はすべて、LRからHRを徐々に回復して生成するものでした。高解像度画像HRのマニフォールドを見つけ、そのマニフォールドから高解像度画像を検索して、そのダウンサンプリングをLRに復元できれば、検索した画像がLR超解像後の結果になります。 **したがって、この記事では主に次の 2 つの問題を解決します。

Manifold の高解像度画像を見つけるにはどうすればいいですか?
高解像度画像の多様体上で画像を検索し、ダウンサンプリングによって LR を復元するにはどうすればよいでしょうか。

2. 方法

高解像度画像の多様体が であり、これが M 上の高解像度画像であると仮定します。低解像度画像が与えられた場合、LR がダウンサンプリング操作 DS を通じて復元できる場合、それは LR の超解像結果と見なすことができます。問題は次のように定義されます。

つまり、両者の差が一定のしきい値未満の場合です。 、この記事の課題は、次の図に示すような解決策を見つけることです。

以上がこの記事の核となる内容です。コードで具体的にどのように実装されているか見ていきましょう。

まず、高解像度のマニフォールドを近似するための生成モデルが必要です。この記事では、著者は StyleGAN の事前トレーニング済みモデルを使用します。

StyleGAN のジェネレーター ネットワークには 2 つの部分があり、1 つは潜在コードをスタイル コードにマッピングするために使用されるマッピング ネットワークで、もう 1 つはマッピング後に取得されたスタイル コードを使用して画像の生成をガイドするために使用される合成ネットワークです。ここで注意すべき点は、この記事では StyleGAN の事前トレーニング済みモデルのみを使用し、そのパラメータをトレーニングまたは更新していないことです。 2 つの部分のパラメータをロードした後、100,000 個のランダム潜在コードがランダムに構築されます。マッピング ネットワークを通過した後、新しい潜在コードを使用して平均と分散を計算します。

  1. 潜在 = torch.randn(( 1000000 , 512 ),dtype=torch.float32, デバイス= "cuda" )
  2. 潜在出力 = torch.nn.LeakyReLU( 5 )(マッピング(潜在))
  3. self.gaussian_fit = { "平均" : latent_out.mean( 0 ), "標準偏差" : latent_out.std( 0 )}

この平均と分散は、新しい潜在コードをマッピングするために使用できます。次のステップは、潜在コードとノイズをランダムに初期化することです(StyleGAN に必要)。

  1. # 潜在コードを初期化する
  2. 潜在 = torch.randn((batch_size, 18 , 512 ), dtype=torch.float , requires_grad=True, device= 'cuda' )
  3. # ノイズを初期化する
  4. i が範囲( 18 )内にある場合: # [?, 1 , 4 , 4 ] -> [?, 1 , 1024 , 1024 ]
  5. res = (batch_size, 1 , 2 **(i //2+2), 2**(i//2+2))  
  6. new_noise = torch.randn(res、dtype= torch.float 、デバイス= 'cuda' )
  7. if (i < num_trainable_noise_layers): # num_trainable_noise_layers
  8. new_noise.requires_grad = True
  9. noise_vars.append(新しいノイズ)
  10.                     
  11. ノイズ.append(新しいノイズ)

**ここから、モデルが実際にはモデル パラメータではなく、潜在的なコードとノイズの最初の 5 層を最適化していることがわかります。 **初期化が完了したら、以下を実行できます。

  1. # 以前に取得した平均と分散に基づいて潜在コードをマッピングする
  2. latent_in = self.lrelu(latent_in*self.gaussian_fit[ "std" ] + self.gaussian_fit[ "mean" ])
  3. # 画像生成用の合成ネットワークをロードする
  4. # 画像の結果を[- 1 , 1 ]から[ 0 , 1 ]に変更します
  5. gen_im = (self.synthesis(latent_in, ノイズ) + 1 ) / 2  

損失は​​、元の低解像度画像と生成された高解像度画像に基づいて計算されます。コードでは、損失は次の 2 つの部分で構成されます。

L2 損失は、生成された高解像度画像 gen_im の LR をバイキュービックダウンサンプリングによって復元し、入力 LR とのピクセル単位の誤差を計算するもので、GEOCROSS は測地線距離です。

最終的に選択される最適化装置は球状最適化装置です。

  1. # opt = SphericalOptimizer(torch.optim.Adam, [x], lr= 0.01 )
  2.  
  3. クラスSphericalOptimizer(Optimizer):
  4. def __init__(self, オプティマイザ, パラメータ, **kwargs):
  5. self.opt = オプティマイザ(パラメータ、**kwargs)
  6. self.params = パラメータ
  7. torch.no_grad() の場合:
  8. self.radii = {param: (param.pow( 2 ).sum(tuple(range( 2 ,param.ndim)),keepdim=True)+1e- 9 ).sqrt()で、paramparams 内になります}
  9.  
  10. @torch .no_grad()
  11. def step(self, クロージャ=None):
  12. 損失 = self.opt.step(クロージャ)
  13. self.params 内の paramの場合:
  14. param.data.div_((param.pow( 2 ).sum(tuple(range( 2 ,param.ndim)),keepdim=True)+1e- 9 ).sqrt())
  15. param.mul_(自己.半径[param])
  16.  
  17. リターンロス

3. 結果

結果から、PULSE によって生成された画像は、髪の毛、目、歯など比較的微妙な領域を含む詳細がより豊富であることがわかります。さらに、ノイズの多い LR の場合でも非常にうまく生成できるため、アルゴリズムの堅牢性が高まっていることがわかります。

最終的な比較指標は MOS です。

4. 質問

PULSE は教師なし画像超解像モデルであり、画像の品質は実際には選択された生成モデルの品質に大きく依存します。一方、PULSE の基本原理は、ダウンサンプリング後に LR を復元できるように高解像度の画像を見つけることであるため、結果は一意ではないことを意味します。生成された画像は非常に鮮明かもしれませんが、識別情報は失われています。

5. リソース

PaperPULSE: https://arxiv.org/pdf/2003.03808.pdfStyleGAN: https://arxiv.org/abs/1812.04948高次元のランダムベクトル: https://www.sci-hub.ren/10.1017/9781108231596.006
GitHub: https://github.com/adamian98/pulse.git

<<:  シリコンバレーの大企業も「名門校の学位」を重視するのでしょうか? Redditの男の魂を問う質問が白熱した議論を巻き起こす

>>:  金融技術分野における人工知能と機械学習の応用と開発

ブログ    
ブログ    

推薦する

生成型 AI は急速な発展期を迎えています。その応用はどのように実装されるのでしょうか?

先月、国際的に有名な学術誌「ネイチャー」が2023年のトップ10を発表しました。世界的な科学イベント...

...

自動駐車を徹底研究!業界標準の動向、評価指標、システム紹介まであらゆる角度から収集!

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

人工知能と人間の知能のギャップは何でしょうか?

AlphaGoがイ・セドルを破った後、人類の知能の最後の高みも人工知能によって征服されたと誰もが言...

鉄道欠陥検出における機械学習の実用化

【51CTO.com クイック翻訳】はじめに列車が走行しているとき、線路には大きな圧力がかかることが...

AIが人間社会に与える影響

今後 25 年間は、既存の制御可能かつプログラム可能ないわゆる「人工知能」を活用して、人類が生物学の...

...

工業情報化省がロボット産業の「第14次5カ年計画」を発表:2035年までに指定規模以上の製造業でデジタル化が普及する

12月28日、工業情報化部など各部門は「第14次5カ年計画:インテリジェント製造業発展計画」(以下、...

2021年の10のAIトレンド

[[361168]] IDCは2019年9月の時点で、2023年までに人工知能技術への支出が3倍以上...

小売業における AI の ROI をマクロとミクロのレベルで測定

[[259079]] AI の応用により予測コストが大幅に削減され、企業はますます新しい、予想外の方...

「幻想」を消し去れ! Google の新しい ASPIRE メソッドにより、LLM は自己採点が可能になり、その効果はボリューム モデルよりも 10 倍優れています。

大規模モデルの「幻覚」問題は解決されつつあるのでしょうか?ウィスコンシン大学マディソン校とグーグルの...

...

8つの予測分析ツールの比較

予測分析ツールとは何ですか?予測分析ツールは、人工知能とビジネスレポートを融合します。これらのツール...

GPU の在庫は 600,000 に達します!ザッカーバーグ氏、新たな目標を確認:汎用人工知能の創出

1 月 19 日、テクノロジー業界が超人的、神レベルの知能を達成する道を歩んでいるという確固たる信念...

人工知能の10年を振り返る: CNN、AlphaGo…世界をどのように変えたか

過去 10 年間に AI で達成された重要な進歩を振り返ります。人工知能技術は過去 10 年間で飛躍...