ニューラル ネットワーク学習ノート 8 - FPN 理論とコードの理解

シリーズ記事ディレクトリ

ターゲットセグメンテーションに関する
RPNステーションBの説明


序文

特徴ピラミッド ネットワーク (FPN) の基本的な考え方は、さまざまなサイズの検出ターゲットに対する検出アルゴリズムの堅牢性を向上させることを目的として、モデルのトレーニングとテスト用にさまざまなスケールの一連の画像または特徴マップを構築することです。ただし、FPN 計算をそのまま定義どおりに実行すると、多大な計算オーバーヘッドが発生します。FPNでは計算量を削減するために、計算量を大幅に増やすことなく特徴表現のスケールロバスト性を大幅に向上できるマルチスケール特徴融合手法を採用しています。

1. ピラミッド構造

ここに画像の説明を挿入

图(a)

まず、元の画像をさまざまなスケールにスケーリングして画像ピラミッドを構築し、画像ピラミッドの各スケールから異なる特徴を抽出します。スケールの数を何度も予測する必要があります。
メリット:画像から直接得られるので精度が良い
デメリット:規模が大きくなるほど計算量が増え、繰り返し演算が多く、効率が悪く、メモリ使用量が多くなる

図(b)

元の画像はバックボーンを通じて畳み込まれてプールされ、以前の出力からさまざまなサイズの新しい特徴マップが取得され、画像の特徴空間にピラミッドが構築されます。浅いネットワークは詳細な情報に注意を払い、上位ネットワークは意味論的な情報に注意を払うため、ターゲットの正確な検出に役立つと考えられ、複数のスケーリングの後、最終的なネットワークで予測と分類が実行されます。機能マップ。

利点: 速度が速く、メモリ使用量が少ない。
欠点: ターゲットの特徴が小さい場合、深いネットワークの最後の層の特徴のみに焦点を当て、他の層の特徴を無視するため、失われやすくなります。

図(c)

元の画像はバックボーンを通じて畳み込まれてプールされ、以前の出力からさまざまなサイズの新しい特徴マップが取得され、画像の特徴空間にピラミッドが構築されます。ただし、低レベルの特徴と高レベルの特徴を使用して個別に予測を行い、異なるスケールの特徴マップを通じて異なる予測を行うことで、小さなターゲットの損失を軽減します。

利点: 対応するターゲットを異なるレイヤーに出力し、すべてのレイヤーを経由せずに対応するターゲットを出力するため、アルゴリズムの検出パフォーマンスが向上し、高速になります。

短所: 得られる特徴は堅牢ではなく、すべて弱い特徴であり、浅い層の影響を受けやすいです。

図(d)

FPN は、バックボーンを介して元の画像に対して畳み込みおよびプーリング操作を実行し、前の出力からさまざまなサイズの新しい特徴マップを取得し、画像の特徴空間にピラミッドを構築します。ただし、図 bc のように単純にスケーリングしてから予測を行うのではなく、異なるスケールの特徴マップを融合した後に予測されます。

簡単にまとめると、ボトムアップ、トップダウン、水平接続、畳み込み融合です。

2、FPN構造

1. ローカル

異なるレベルのフィーチャ マップ フィーチャの表現力は異なるため、浅いフィーチャは主に明暗、エッジなどの詳細を反映し、深いフィーチャはより豊かな全体構造を反映します。浅いフィーチャだけを使用すると、全体的な構造情報を含めることができず、フィーチャの表現力が弱まります。深い特徴自体は浅い特徴から構築されるため、浅い特徴の特定の特別な情報が含まれています。深い特徴が浅い特徴に融合される場合、いくつかの詳細と全体的なセマンティクスが考慮され、融合された特徴は次のようになります。より豊かな表現力。
FPN はこの考えを取り入れて実装しています. 特徴ピラミッドからいくつかの層の特徴マップが抽出されます. これらの層自体が浅い層から深い層への階層関係を形成し, その後, 深い特徴を浅い層に段階的にマージして新しいものを形成します特徴ピラミッド、この新しいピラミッドの各層は浅い情報と深い情報を統合し、新しいピラミッドの各層の特徴が検出に使用され、異なるスケールのターゲットを検出するという目的を達成します。この特徴を構築する方法を特徴ピラミッド法と呼びます。この方法は、ネットワーク自体の階層構造を利用し、元の画像に基づいたエンドツーエンドのトレーニング方法を提供します。これは、計算量とメモリのオーバーヘッドを大幅に増加させることなく使用できます。 、マルチスケールの物体検出を実現します。
ここに画像の説明を挿入

  1. FPN で使用される異なるスケールの特徴マップは、最下層の特徴マップのサイズが 28x28 であると仮定すると、上層が 14x14、最上層が 7x7 である 2 重の関係で選択する必要があります。 、元の左のピラミッド。
  2. 左側のピラミッドの各特徴マップは、それに対して1x1 conv操作を実行し、バックボーン上の異なる特徴マップのチャネルを調整して、融合用のチャネルが同じになるようにします。
  3. 高レベルの特徴マップで2 倍のアップ操作を実行すると、2 倍のアップサンプリングになります。たとえば、中間層の特徴マップと同じサイズを確保するために、最上位の 7x7 の特徴マップで 2 倍のアップサンプリングを実行して 14x14 の特徴マップを取得します。 。
  4. 処理後、最上位層と中間層の特徴マップの形状はまったく同じであるため、加算操作を実行できます。たとえば、最上位層の 7×7 特徴マップは 2 倍アップサンプリングされ、中央の 14×14 特徴マップは 1×1 です。製品はチャネルを調整し、2 つを加算して新しいピラミッド レイヤーを出力します。取得された新しい特徴レイヤーは予測でき、このレイヤーは予測の基礎として使用できます。次のレイヤーのアップサンプリング。

2.全体

resnet モデルを組み合わせて FPN の全体的な構造を示すと、モデルはステーション Bから取得されます。
ここに画像の説明を挿入

  1. resnet50 をバックボーンとして使用し、元の画像 640×640×3 から 20×20×2048 までの元のピラミッドを出力し、C2、C3、C4、および C5 の 4 つの特徴マップを取得します。
  2. C2、C3、C4、C5 の 4 つの特徴マップはそれぞれ 1×1×256 の畳み込み演算を実行しますが、この畳み込み演算を行う理由は、2 つを融合したときにチャネルが同じになるようにするためです。 、チャンネルは 256 に変更されます。
  3. Upsample 演算は、上位層の特徴マップに対して 2 倍のアップサンプリングを実行し、下位層の特徴マップと融合します。例えば、C5 は 1×1×256 の畳み込み演算を受けた後、入力されます。 2 倍のアップサンプリングでアップサンプリングし、1×1× と組み合わせます。256 畳み込み演算の C4 特徴マップが融合されます。
  4. 融合後の出力結果も 3×3×256 の畳み込み演算を受け、最終的に P2、P3、P4、および P5 が得られます。このうち、P5は、C5による1×1×256畳み込み演算と3×3×256畳み込み演算を連続して行うことで得られ、融合は不要である。
  5. P5 に基づいて、ステップ サイズ 2 の 1×1×256 ダウンサンプリングが実行されて P6 が得られます。P6 は RPN 部分にのみ使用されます。これは、P23456 を RPN 部分に使用できることを意味します。予測では、Fast-RCNN は予測に P2345 のみを使用します。

コード

ResNet + FPN 実装 + 無料の売春婦コード

おすすめ

転載: blog.csdn.net/qq_45848817/article/details/128417039