ディープラーニングを使用した超解像に使用される様々なコンポーネント、損失関数、メトリクスに関する精巧な議論。
はじめに
超解像度は、特定の低解像度(LR)画像から高解像度(HR)画像を回復するプロセ 画像は、より小さい空間分解能(すなわち、サイズ)または劣化の結果(ぼかしなど)のために、「より低い解像度」を有し得る。 HR画像とLR画像を次の式で関連付けることができます。LR = degradation(HR)
明らかに、劣化関数を適用すると、HR画像からLR画像が得られます。 しかし、逆を行うことはできますか? 理想的なケースでは、はい! 正確な劣化関数を知っていれば、その逆をLR画像に適用することによって、HR画像を回復することができます。しかし、そこに問題があります。
しかし、そこに問題があります。
私達は通常手の前に低下機能を知らない。 逆劣化関数を直接推定することは、不適切な問題です。 それにもかかわらず、ディープラーニング技術は超解像に有効であることが証明されています。
このブログは、主に教師ありトレーニング方法を使用して深い学習を使用して超解像を実行するための紹介を提供することに焦点を当てています。 いくつかの重要な損失関数と指標についても議論した。 コンテンツの多くは、読者が参照できるこの文献レビューから派生しています。前に述べたように、deep learningを使用して、低解像度(LR)画像が与えられた場合、高解像度(HR)画像を推定することができます。
教師あり方法
前に、低解像度(LR)画像が与えられた場合、deep learningを使用して高解像度(HR)画像を推定できます。 HR画像をターゲット(または根拠)として使用し、LR画像を入力として使用することにより、これを教師あり学習問題のように扱うことができます。
このセクションでは、畳み込み層が編成されている方法で、さまざまな深層学習アプローチをグループ化します。 グループに進む前に、データ準備と畳み込みのタイプに関する入門書が提示されています。 モデルを最適化するために使用される損失関数は、このブログの最後に向かって別々に提示されています。
データの準備
LRデータを取得する簡単な方法の1つは、HRデータを劣化させることです。 これは、多くの場合、ノイズをぼかしたり追加したりすることで行われます。 より低い空間分解能の画像は、双一次補間や双立方体補間などの古典的なアップサンプリング法によってスケーリングすることもできます。 JPEGと量子化アーティファクトは、画像を劣化させるために導入することもできます。
注意すべき重要なことの1つは、HRイメージを非圧縮(または可逆圧縮)形式で保存することをお勧めします。 これは、非可逆圧縮によるH R画像の品質の劣化を防止するためであり、これは、最適ではない性能を与える可能性がある。
たたみ込みの種類
古典的な2Dたたみ込みに加えて、いくつかの興味深い変種をネットワークで使用して結果を改善することができます。 拡張された(Atrous)畳み込みは、より大きな有効視野を提供することができ、したがって、大きな距離で分離された情報を使用する。 スキップ接続、空間ピラミッドプーリング、密なブロックは、低レベルと高レベルの両方の機能を組み合わせてパフォーマ
上記の画像は、ネットワーク設計戦略の数を言及しています。 詳細については、この論文を参照できます。 深層学習で一般的に使用されるさまざまなタイプの畳み込みに関する入門書については、このブログを参照してください。
Group1—Pre-Upsampling
この方法では、低解像度の画像が最初に補間され、”粗い”高解像度の画像が得られます。 ここで、Cnnは、補間された低解像度画像から高解像度画像へのエンドツーエンドのマッピングを学習するために使用されます。 直感的には、低次元空間から高次元空間への直接マッピングを学ぶよりも、最初に従来の方法(双一次補間など)を使用して低解像度の画像をアップサ
この手法を使用している一部のモデルについては、このペーパーの5ページを参照できます。 利点は、アップサンプリングは従来の方法で処理されるため、CNNは粗い画像を洗練する方法を学習するだけで済み、これは簡単です。 さらに、ここでは転置畳み込みを使用していないため、市松模様のアーティファクトは回避される可能性があります。 しかし、欠点は、事前定義されたアップサンプリング方法がノイズを増幅し、ぼかしを引き起こす可能性があることです。この場合、低解像度の画像はそのままCnnに渡されます。
グループ2—アップサンプリング後
この場合、低解像度の画像はCnnに渡されます。
グループ2-アップサンプリング後
このようにします。 アップサンプリングは、学習可能なレイヤーを使用して最後のレイヤーで実行されます。
この方法の利点は、特徴抽出が低次元空間(アップサンプリング前)で実行されるため、計算の複雑さが軽減されることです。 さらに、学習可能なアップサンプリングレイヤーを使用することで、モデルをエンドツーエンドで訓練することができます。
グループ3—プログレッシブアップサンプリング
上記のグループでは、計算の複雑さが軽減されたにもかかわらず、単一のアップサンプリング畳み込みのみが使用されました。 これにより、大規模なスケーリング係数の学習プロセスが困難になります。 この欠点に対処するために、laplacian Pyramid SR Network(LapSRN)やProgressive SR(ProSR)などの作品では、プログレッシブアップサンプリングフレームワークが採用されました。 この場合のモデルは、Cnnのカスケードを使用して、各ステップでより小さなスケーリング係数で高解像度の画像を徐々に再構成します。
難しいタスクを簡単なタスクに分解することにより、学習難易度が大幅に低下し、より良いパフォーマンスが得られます。 さらに、カリキュラム学習のような学習戦略を統合することで、学習の難易度をさらに下げ、最終的なパフォーマンスを向上させることができます。
グループ4—反復上下サンプリング
もう一つの一般的なモデルアーキテクチャは、砂時計(またはUネット)構造です。 Stacked Hourglass networkのようないくつかの亜種は、いくつかの砂時計構造を直列に使用し、アップサンプリングとダウンサンプリングのプロセスを効果的に交互に
このフレームワークの下でのモデルは、LR-HR画像ペア間の深い関係をより良く掘り、より高品質の再構成結果を提供することがで
損失関数
損失関数は、生成された高解像度画像とグランド真理高解像度画像との差を測定するために使用されます。 この差(誤差)は、教師あり学習モデルを最適化するために使用されます。 損失関数のいくつかのクラスが存在し、それぞれが生成された画像の異なる側面を罰する。多くの場合、各損失関数から得られた誤差を個別に重み付けして合計することにより、複数の損失関数が使用されます。
多くの場合、各損失関数から得られた誤差を個別に重みづけして合計します。 これにより、モデルは複数の損失関数によって寄与される側面に同時に焦点を当てることができます。
total_loss = weight_1 * loss_1 + weight_ 2 * loss_2 + weight_3 * loss_3
このセクションでは、モデルのトレーニングに使用される損失関数のいくつかの一般的なクラスを探ります。
Pixel Loss
Pixel-wise lossは、生成されたイメージ内の各ピクセルがグラウンド-トゥルース-イメージ内の各ピクセルと直接比較される、最も単純なクラスの損 L1またはL2損失などの一般的な損失関数、またはSmooth L1損失などの高度な変形が使用されます。
PSNRメトリック(後述)は、ピクセル単位の差と非常に相関しているため、ピクセル損失を最小限に抑えることは、PSNRメトリック値(良好な しかし、ピクセル損失は画質を考慮せず、モデルは知覚的に満足できない結果を出力することがよくあります(多くの場合、高周波数の詳細が欠けてい
コンテンツ損失
この損失は、知覚品質に基づいて画質を評価します。 これを行う興味深い方法は、生成された画像と地上の真理値画像の高レベルの特徴を比較することです。 これらの高レベルの特徴は、これらの画像の両方を事前に訓練された画像分類ネットワーク(VGG-NetやResNetなど)に渡すことによって得ることができます。
上の式は、事前に訓練されたネットワーク(Φ)と損失が計算されるこの事前訓練されたネットワークの層(l)が与えられた場合、グラウンド-トゥルース画像と生成された画像との間のコンテンツ損失を計算します。 この損失は、生成された画像が地上真実画像と知覚的に類似していることを奨励する。 このため、それは知覚損失としても知られています。
テクスチャ損失
生成された画像が同じスタイル(テクスチャ、色、コントラストなど)を持つことを可能にするには、
テクスチャ損失
(grand truth image)としては、テクスチャ損失(またはスタイル再構成損失)が用いられる。 Gatys et.によって説明されているように、画像のテクスチャ。 alは、異なる特徴チャネル間の相関として定義される。 特徴チャネルは、通常、事前訓練された画像分類ネットワーク(Φ)を使用して抽出された特徴マップから取得される。P>
フィーチャマップ間の相関は、ベクトル化されたフィーチャマップi
j
l
(上に示す)。 グラム行列が両方の画像に対して計算されると、テクスチャ損失の計算は以下に示すように簡単です。
この損失を使用することにより、モデルは現実的なテクスチャと視覚的により満足のいく結果を作成するように動機付け
総変動損失
総変動(TV)損失は、生成された画像のノイズを抑制するために使用されます。 これは、隣接するピクセル間の絶対差の合計を取り、画像内のノイズの量を測定します。 生成された画像の場合、TV損失は以下に示すように計算されます。