サブタイトルのとおり、FPN は非常にシンプルな方法で、ほぼすべてのモデルで結果を改善するために使用することができます。 論文の技術的な内容にはすぐに飛びつきますが、このブログでは、いくつかの前提条件があります。 Fast RCNN, Faster RCNN, anchor boxes, SSDの知識など、以下のことについて大まかに知っておくと便利でしょう。 これらの論文についてはブログでも紹介していますので、そちらをご覧ください(リンクはこのブログの最後にあります)。 FPNは、前提条件をすべて理解していれば、比較的簡単です。
予測時にイメージピラミッド(複数のスケールの画像)を使用して結果を改善することがよくあります。 しかし、最新の深層学習アーキテクチャを使用して結果を計算することは、しばしば計算と時間の両方の点で高価なプロセスです。
FPN は、深層 CNN の固有のマルチスケールピラミッド階層を利用することがベースになっています。 RCNNは領域ベースのオブジェクト検出器であり、まず選択的探索などのアルゴリズムを用いてROIを見つけ、画像からこれらのROI(約2000)を切り出してCNNに送り込み、結果を得る。高速RCNNでは、CNNの最初の層が画像全体に対して共有され、ROIの切り出しは抽出された特徴マップ上で行われるため、多くの時間を節約することができる。 FPNの場合は、内部のマルチスケール性を利用した研究であり、画像ピラミッドを何らかの形で内部に実装し、アーキテクチャとネットワークのほとんどの部分を共有する。
CNNは階層構造に基づいており、階層を重ねるごとに特徴マップの解像度が下がっていきますが、深い階層ほど前の階層よりも強い意味づけができるようになっています。 意味的に強い特徴は、ダウンサンプリングのため空間的に粗くなる。 FPNは、意味的に強い特徴を、前の層の特徴(サブサンプリング回数が少ないため、より正確な位置情報を持っている)と統合するアーキテクチャを構築している。
このアーキテクチャは2つの経路で構成されている。
- ボトムアップ経路(通常のフィードフォワードCNN)
- トップダウン経路(特徴の統合に使用する新しいアーキテクチャ)
- 通常のフィードフォワードCNNアーキテクチャである。 この論文では、性能評価のためにResnetアーキテクチャを使用している。 まず、C2, C3, C4, C5という層があるが、これはConv 2, 3, 4, 5層であり、ResnetアーキテクチャではC2, C3, C4, C5となる。 C2を適用した後の特徴マップのサイズは画像サイズ/4であり、この空間次元は各層の後に2倍ダウンサンプリングされる。
トップダウン経路(上画像の右ピラミッド)
この経路では、深い特徴は横のつながりを使って低い特徴と結合される。 ボトムアップ経路の各層のチャンネル数は同じではないので、まず1*1畳み込みを行い、各層のチャンネル数を一定にする(論文ではこの次元を256としている)。 また、空間サイズも異なるので、深い方の特徴をアップサンプル(2倍)して、この特徴の空間サイズをボトムダウン経路の前の層の高解像度特徴マップに一致させる。 ここで、2つの特徴マップの次元は同じであり、要素ごとの加算によってマージされます。 画像サイズを512*512とすると、各畳み込み層(C2, C3, C4, C5)後の特徴マップのサイズは、. 各層の出力チャンネル数は. ここで、C2, C3, C4, C5の出力に1*1畳み込み(出力チャンネル数=256)をかけ、同じ数のチャンネルを得ます。 この出力チャンネル数が等しい中間特徴量を、C2, C3, C4, C5 に対応する S2, S3, S4, S5 と呼ぶことにする。 ここでS5を32*32にアップサンプリングし、要素ごとの加算でS4と合成する。 この出力は64×64にアップサンプルされ、S3と統合されます。 この段階での出力をT2、T3、T4、T5と呼ぶことにする。
アップサンプリングによるエイリアシングの影響を減らすため、T2、T3、T4、T5に3*3畳み込みを適用し、C2、C3、C4、C5に対応する最終特徴マップP2、P3、P4、P5を作成する。 これらの特徴は、最終的な分類と回帰のスコア(bbox)を生成するために使用されます。 FPNの理論については以上です。
FPN for Faster RCNN
Faster RCNNは領域提案ネットワークを使用する。 RPNはバウンディングボックスの提案を生成するために使用され、これらの提案は後で最終的な予測を生成するために使用される。 RPNは最後の層(C5)で抽出された特徴量に対して実装される小さなネットワークである. 3×3の畳み込みがこの抽出された特徴に適用され、その後2つの同様の1×1の畳み込み層(1つは分類用、もう1つは回帰用)が続く。
RPN はここでは単に単一スケールの特徴マップを FPN に置き換えることによって適応されている。 このように、RPNはC5だけでなく、P2-P5に対して実装されています。 RPNの学習には、複数スケールのアンカーボックスが使用される。 しかし、現在ではマルチスケールは抽出された特徴に内在しているので、どのレベルにおいてもマルチスケールのアンカーボックスを持つ必要はない。 その代わり、各レベルに1つのスケールのアンカーボックスが割り当てられる。 本論文で使用するアンカーボックスのサイズは、{P2, P3, P4, P5, P6}に対して{32², 64², 128², 256², 512²}である。 P6は、大きなサイズのアンカーボックスを使用できるように、ここで導入されています。 P6は、P5からストライド2でサブサンプリングされています。 3407>
これらのアンカーボックスはground truthボックスとマッチングされ、モデルはend to endで学習される。 Fast RCNNは、ROIを生成するために選択的探索などの領域提案技術を使用し、最終結果を得るために単一スケール特徴マップにROIプーリングを使用する。 FPN を適用すると、スケールの異なる複数の特徴マップを持つことになり、与えられた ROI を特徴マップに割り当てる戦略が必要となる(複数の特徴マップがあるため、与えられた ROI に対してどの特徴マップを使用するか?)
使用する特徴マップは以下のように計算する:
ここで224はimagenetデータセット中の画像の学習サイズ(使用するresnetはimagenetに保持されている)、225はimagenetデータセット中の画像のサイズ。 k0は224サイズのROIを割り当てる特徴マップ、wとhはROIの幅と高さである。 headは各フィーチャーマップに対して共通のパラメータを持っている
。