一般的な超解像と同様に低画質画像を入力し、高画質画像を出力します。codeformer のアイデアは、下の 2 つの図とは異なります。その動機の 1 つは、現在のモデルの一部は、深刻な劣化プロセス中に低品質の入力に非常に敏感であるということです。低品質の入力がジッターしたり、わずかに変化すると、高品質の入力は、 -品質のインプット HRのアウトプットが大きく変化し、品質の低下が深刻になりますが、その理由は何でしょうか?たとえば、gfpgan にはネットワーク内に多数のスキップ接続があり、これが残余構造であり、その機能を固定するためにいくつかの低品質情報を後続のデコーダに送信します。 hrの生成に直接影響します。
上の画像は事前の参照です。生成プロセス中に、いくつかの高品質の顔画像がトレーニングに使用されます。モデルは、高品質の顔画像からいくつかの顔の構造や特徴を自動的に学習し、それらを参照の前に参照します。低品質の画像生成をガイドします。
上の図は、事前確率を生成する gfpgan です。低品質の顔画像をエンコードおよびデコードするためのジェネレーターとしてトレーニング済みのネットワークを使用し、トレーニング済みの stylegan にさまざまなレベルの特徴を供給して画像生成を支援します。
1. Codeformer は、顔の超解像タスクを離散コードブックの予測に変換します。以前の方法では、連続潜在ベクトルを予測し、それをエンコーダーで予測してデコーダーの入力としてデコードしていましたが、codeformer はそれをエンコードしませんでした。連続空間ですが、離散コードブックにエンコードされています。たとえば、コードブックは 1024 次元、数値は 1024、次元は 256 です。画像は連続空間にマッピングされているため、コードブックに予測されます。これ範囲が大きすぎます。コードブックは限られたスペースです。これにより、より小さなコードブックへのピクチャのマッピングが完了します。これにより、コードフォーマーには基本的に残留接続がないため、不確実性が大幅に減少し、ネットワークの lr への依存度が減少します。最近傍マッチングの代わりにトランスフォーマーを使用します。
特徴ベクトルをエンコーダでエンコードした画像がありますが、この特徴ベクトルの次元はmxnxdで、VAE構造であれば連続ベクトルを生成しますが、実際には分布を生成し、その分布から直接サンプリングして、それをデコーダに送信します。vqvae では、vqvae にはさらに多くの vq 演算とベクトル量子化があります。たとえば、この図の緑の四角形は mxnxd、深さは d 次元、0 番目の四角形は 1x1xd です。それに最も近いものを見つけることで、離散コードブックでは、コードブックの次元は 1024xd です。コードブックの最近傍ベクトルのインデックスを青いテーブルに置き、コードブックを使用してマッピングを作成し、青いテーブルのインデックスに賭けて、コードブック。このようにして、青いテーブルからコードブックを取得できます。テーブル内のデコーダへの入力は、デコーダによって再構築されます。vqgan と vqvae は一致しています。エンコーダを通じて特徴を取得した後、デコーダは最近傍マッチングによってトレーニングされます。このプロセスがトレーニングされた後、エンコーダは破棄され、デコーダのみが必要になります。ただし、教師なし生成を実行したい場合は、デコーダの入力を取得するためにコードブックから対応する埋め込みを見つけることができるように、対応するインデックス テーブルが必要です。その後、このインデックス テーブルは gpt2 を通じて生成され、自己回帰によって予測されます。インデックス テーブルを使用すると、入力は得られる。vqgan と呼ばれる理由は、いくつかの gan 損失が追加されているためです。
Codeformer トレーニングは 3 つの部分に分かれています。最初の段階では、高精細コードブックとトレーニングされたデコーダーを取得します。入力として高精細画像を直接使用し、出力も高精細画像ですが、このプロセスはそうではありません入力などの残りの接続を使用します。これは hxwx3 です。エンコード後は、mxnxd です。これは離散エンコードと同じプロセスです。mxn 位置の各 d について、コードブックに移動して最も近い埋め込みを見つけます。Argmin はそれに一致します。エンコーダによって生成された mxnxd は、実際には一連の機能です。コードブックから見つけてください。エンコーダの出力を置き換える最も近い機能は、実際にはクラスタリングです。これは、コードブック内に非常に多くのクラスタリング センターがあることと同じです。また、次のことも確認できます。上の図では、hr のグラフ クラスタリング効果が非常に優れていることが示されていますが、コードブックから変換された Zc はデコーダの入力としてすぐに得られます。lr 画像を直接トレーニングに使用すると、効果は良くない可能性があります。 hr 画像をトレーニングに直接使用すると、非常に優れたコードブックが得られます。この方法には残留接続がありません。hr はコードブックから復元されます。上の図のコード gt は、最初の段階で生成された画像です。元の絵に非常に近いです。しかし、argmin は微分可能ではありません。逆伝播中に zc の勾配を zh に直接コピーします。これは上記のコード行です。量子化は zc を表します。上記の式は恒等式です。実際、デタッチ後は勾配は 0 になります。全体最初の段階の損失は l1 損失に等しく、実際にはエンコードおよびデコード プロセス (AE) です。Lper は知覚的損失であり、特徴を抽出するために両方のピクチャが vgg に送信された後、特徴の類似性が比較されることを意味します。 , しかし、トレーニング プロセス中に、 zc 勾配は zh に直接コピーされるため、コードブックは実際にはトレーニングされません。追加の Lcode 損失が提案されています。sg は、zh の勾配をロックする停止勾配であるため、Lcode は実際には zc をトレーニングしています。 zc はコードブックからの 1 次元の組み合わせなので、これは実際にコードブックを最適化しており、2 つ目は同じ方法で zh を最適化しています。
トレーニングの第 1 段階では、高精細度コードブックとトレーニング済みデコーダーが取得されます。第 2 段階では、低精細度画像の特徴とコードブック内のエンコーディングが照合されます。この照合には、第 1 段階で最近傍マッチングが使用されます。最初の段階で最近傍法を使用するのは、高精細画像では特徴自体がクラスタリングしやすいが、劣化した低精細画像では特徴がクラスタリングしにくいためです。最近傍を置き換えるためにトランスフォーマが導入されています. ネイバー, 第 2 段階では, 入力に高精細画像がありません. 劣化した低精細画像がエンコーダを通過して mxnxd ブロックを取得します. トランスフォーマが使用されているため,入力と出力を処理する必要があり、入力は (mxn)xd になり、出力は si、つまり最初の段階のインデックス テーブルになり、これも (mxn)xd、つまり、トランスフォーマーを使用して予測します。インデックス テーブル。このセクションは画像損失ではなく、コード レベルの損失トレーニング用です。hr マップは最初の段階でトレーニングされます。si が生成されるとき、この si は gt です。この gt は復元にも非常に効果的であることが証明されています。最初の段階では元の画像の s と si を変換して学習させ、Lcode はクロスエントロピー損失になります 関数、損失の後半部分は以前と同じです このとき、前のエンコーダは 2 つの損失でトレーニングされています。
3 番目の段階は忠実度と品質のバランスです。忠実度とは、残留接続がないため、生成された画像は高品質になる可能性がありますが、元の画像とは異なるため、制約を追加する必要があります。トレーニング プロセスでは、w は通常 0.5 に設定されます。これにより、実際には残差接続を通じて元の画像との類似性が制御されます。この段階では、すべての損失が使用されます。
GFPGAN は実際のシーンでもうまく機能しますが、合成シーンではうまく機能しません。
ノイズ除去された画像入力をマッチング問題に変換します。連続空間を離散空間に変換し、解空間を縮小します。分類問題には有限の解があることがよくありますが、回帰問題には無限の解があるため、より困難になります。detr アップロードは従来のボックス返却能力よりも大きくなりますか?