【读论文】RFN-Nest: 赤外線画像と可視画像のためのエンドツーエンドの残留融合ネットワーク
論文: https://arxiv.org/abs/2103.04286
コード: https://github.com/hli1221/imagefusion-rfn-nest
導入
キーワード
- 学習可能なフュージョン ネットワーク
- 2段階のトレーニング
- 斬新で効率的な損失関数
簡単な紹介
2021年に発表された論文。論文の著者はおなじみのDenseFuseの作者です。
この論文は、RFN と呼ばれる残差アーキテクチャに基づく残差融合ネットワークを提案しています。DenseNet を読むと、DenseNet で使用される融合戦略が手動で設計されていることがわかります。この記事では、RFN が融合デバイスとして使用されます。RFN はここで取得されます。学習を通じて。
論文で言及されているネットワークは、エンコーダ、デコーダ、RFN(特徴融合ネットワーク)の3つの部分から構成されており、DenseFuseとは異なり、ここでエンコーダによって抽出された特徴には、4スケールの特徴が含まれ、さらに4スケールの特徴が送信されます。特徴融合のために RFN に渡され、その後デコードのためにデコーダに渡されて、必要な融合画像が取得されます。
ネットワーク構造
論文で述べられている手法のネットワーク構造は上図のようになりますが、DenseFuseよりも複雑ですので、次に上記のネットワークを3つの部分に分けて説明します。
RFN コンバージド ネットワーク
上図に示すようにRFNの構造図であり、入力は複数のスケールで抽出された特徴量、irは赤外線画像の特徴量、viは視覚画像の特徴量となります。2 つの特徴はそれぞれ conv1 と conv2 の入力として機能し、conv6 の入力としても機能します。conv1 と conv2 の出力は接続され、conv3 の入力として機能します。
ここでは、conv6 の出力と conv5 の出力が、フュージョン ネットワークによって生成された特徴として使用される前に処理されます。ここでは、conv6 の出力が最終結果の入力として使用されていることがわかります。これは少し似ています。 ResNet によく似ていますか? 残差があることがわかるようです。
最終出力はデコーダの入力として使用されます。これについては後で説明します。
エンコーダ
デコーダの構造は上図に示されており、デコーダのネットワーク構造は 4 つのブロックに分割でき、各ブロックは 2 つの層で構成され、その後に最大プーリングが続きます。
ネットワークの入力は可視画像と赤外線画像であり、図の右側に8本の矢印があり、各矢印は出力を表しており、赤外線画像から抽出された特徴、または可視画像から抽出された特徴を表している。ここでは、以前の RFN と組み合わせることができます。RFN の vi および ir 入力は、抽出された機能です。以下に示すように
ここで、デコーダをフュージョン ネットワークと大まかに関連付けます。
では、なぜ出力が 8 つあるのでしょうか? これが論文で言及されているマルチスケール特徴抽出です。
畳み込みと最大プーリングの後、画像のサイズが変更され、下部の画像サイズが小さくなります。大きなサイズの画像は詳細な特徴を抽出するために使用され、小さなサイズの画像は全体的な特徴を抽出するために使用され、4 つのスケールに分割して特徴を抽出し、これらの特徴を RFN に入力し、融合された特徴を取得して入力します。デコーダを使って画像を再構成します。
デコーダ
デコーダの構造を上の図に示します。
ここでさらに興味深いのは各行で、一行ずつ見てみると、これが DenseNet に似ていることがわかります。スケール 3 で抽出された融合特徴量とスケール 4 で抽出された融合特徴量は、DCB20 によって一緒に処理されて出力が得られ、その出力は他の特徴処理の出力と一緒に処理され、最終出力まで継続されます。融合したイメージ。
これを見て「コンボリューション後にダウンサンプリングしてるんじゃないの?記事全体にアップサンプリングはないの?元の画像と同じサイズに戻すにはどうすればいいの?」と疑問に思うかもしれません。
ここの黒い矢印がアップサンプリングであることは明らかではありませんが、元に戻す方法を説明します。
最終的な構造を得るには、上記の 3 つのパーツを組み立てるだけです。
電車
ここでは 2 段階のトレーニング方法が使用されます。
オートエンコーダー ネットワークをトレーニングする
まず、RFN を抽出し、エンコーダとデコーダをトレーニングします。トレーニングされたネットワーク構造は次の図に示されています。
上記のネットワークをトレーニングする目的は、エンコーダの特徴抽出能力を向上させ、デコーダのデコード能力、つまり画像生成能力を向上させることです。
ここでの入力と出力は両方とも単一のイメージであることに注意してください。
損失関数
Lpixel は画素損失を表し、Lssim は構造損失を表します。
ここでの F の式は次のとおりです。Lpixel は、出力と入力の間に差を作り、その差に基づいてネットワークを継続的に最適化し、生成された画像がますます似てくるようにします。元の画像。
SSIM は、出力と入力の間の構造的類似性を計算します。具体的な計算内容については、SSIM計算式:構造類似度の計算原理、SSIMによる画質評価を参照してください。
トレーニングRFN
RFN のトレーニングは、エンコーダーとデコーダーのトレーニングが完了した後に行われますが、現時点では、エンコーダーとデコーダーが最適な効果を得るために修正された後に RFN をトレーニングすることが目的です。
トレーニング中の構造は上で説明した完全な構造であり、ここではマップはマッピングされません。
損失関数
私の理解では、ここでの Ldetail は、視覚画像内のより詳細な情報と構造情報を画像に確実に持たせることを目的としていますが、視覚画像ではターゲットの構造全体を完全には表示できないことが多く、そのためには赤外線画像から構造を抽出する必要があります。私たちが欲しい情報。
たとえば、上の 2 つの画像では、人物の体の衣服の詳細はある程度確認できますが、体の輪郭を完全に検出することはできないため、2 つを融合して、より包括的な情報を含む画像を生成する必要があります。これにより、総損失関数の第 2 項である次の損失関数が導入されます。
ここで、M はマルチスケールの数、w はパラメータ、w1 はさまざまなスケールでの特徴の情報重みを調整するために使用されるパラメータ、wvi と wir はそれぞれ視覚画像と赤外線画像の特徴情報の重みを調整するために使用されるパラメータです。 。Lfeature では主に赤外線機能を保持したいため、wvi は wir よりも小さいことがよくあります。
損失関数を見てみましょう。直観的に、損失関数は、融合された特徴と重み付けされた視覚的特徴と赤外線特徴の合計が可能な限り一致することを望んでいます。これはなぜでしょうか?
私自身の理解について話させてください。ここでは、RFN 構造を削除したオートエンコーダーのトレーニングを確認する必要があります。これは、抽出された特徴が、画像を再構築するためのデコーダーの入力として直接使用されることを意味します。さらに、再構成された画像は、融合特徴を入力として受け取りますが、このとき、融合特徴が赤外線特徴と類似している場合、デコーダによって生成される画像は赤外線画像と可能な限り類似している必要があることを意味します。私たちの目標 目標は、赤外線画像内の情報を可能な限り保持することです。
では、wvi は 0 を取ることができるのでしょうか? wvi が 0 に等しいときが最適ですか?
いいえ、Wvi が 0 の場合、Ldetail と Lfeature が競合し、ネットワークの収束に失敗するためです。では、なぜ競合が発生するのでしょうか? Wvi が 0 の場合、つまり、デコーダーによって生成された画像が赤外線画像に類似するように、融合された特徴が赤外線特徴にできるだけ似ていることを望んでいます。画像を生成することを目的とした以前の Ldetai 損失関数と同様に、複数の表示画像内で詳細が矛盾します。
実験
多くの実験を行った結果、最終的に wir=6.0、wvi=3.0、a=700 であることが判明しました。
同時に、1段階学習に比べ2段階学習の優位性やネストネットワークの必要性も確認されましたが、具体的な実験内容は原文で読むことができるので、ここでは詳しく述べません。
個人的なまとめ
DenseFuse と比較すると、エンコーダー、デコーダー、およびフュージョン戦略は両方ともはるかに複雑です。
- エンコーダーは単一スケールの特徴抽出を使用しなくなり、マルチスケールの特徴抽出を使用します。
- デコーダは多層 CNN の単純な蓄積ではなくなり、ネスト接続構造を使用してマルチスケールの特徴を処理し、融合画像を生成します。
- 融合戦略では、単純な手動設計は使用されなくなり、ニューラル ネットワークを使用して特徴情報を融合します。
- 損失関数に関しては、RFN が優れた特徴融合効果を持つことを保証するための新しい損失関数が提案されています。
参考
[1] RFN-Nest: 赤外線および可視画像用のエンドツーエンド残差融合ネットワーク