1. 定義と概要
FPN(Feature Pyramid Network、特徴ピラミッドネットワーク)とは、CNNの各層が持つ特徴マップ(画像の特徴を数値の格子として表したデータ)をピラミッド状に組み合わせる構造です。大きさの異なる物体を検出しやすくする効果があります。2017年にFacebook AI Research(FAIR)のLinらが、論文『Feature Pyramid Networks for Object Detection』(CVPR2017)でこの構造を提案しました。
CNNは層を進むにつれて空間解像度が下がる一方、意味的な特徴(画像に何が写っているかを表す情報)が強くなる性質を持ちます。浅い層は高解像度で物体の位置情報に強い一方で意味情報が弱く、深い層は意味情報に強い一方で低解像度になり、小さな物体の細かい情報が失われやすくなります。
FPNはこの両方を、bottom-up経路・トップダウン経路・横方向の結合という3つの仕組みによって融合します。bottom-up経路は、CNNが入力画像を処理する際の通常の流れで、層を進むごとに解像度が下がり意味情報が強くなります。
トップダウン経路は、深い層で得た特徴を浅い層側へ伝えていく処理の流れです。横方向の結合(lateral connection)は、同じ解像度のbottom-up経路側の特徴マップをつなぐ仕組みです。この3つの仕組みにより、どの階層でも意味的にも位置的にも強い特徴マップを使えるようになります。
従来の物体検出には、大きく2つの方法がありました。ひとつは、CNNの最終層、すなわち最も意味情報が強い層の特徴マップだけを使って検出する方法です。もうひとつは、入力画像そのものを複数の解像度にリサイズして毎回CNNに通す画像ピラミッド(入力画像を複数の解像度にリサイズして並べる従来の多スケール検出手法)です。
前者は小さな物体の検出精度が落ちやすく、後者は解像度の数だけCNNの計算をやり直すため、計算コストとメモリ消費が大きくなります。FPNは、CNNが順伝播の過程でもともと生成する複数解像度の特徴マップを再利用し、追加のトップダウン経路と横方向の結合だけでピラミッド表現を作ることで、検出精度と計算効率を両立する構造として提案されました。
2. 試験対策ポイント
まず整理したいのは、FPNを構成する3つの要素です。ひとつ目は、CNNの通常の順伝播にあたるbottom-up経路(層を進むごとに解像度が下がり、意味情報が強くなる流れ)です。
ふたつ目は、深い層の特徴をアップサンプリング(解像度の低い特徴マップを引き伸ばして大きくする処理)しながら浅い層側へ伝えるトップダウン経路です。みっつ目は、同じ解像度のbottom-up経路側の特徴マップを1×1畳み込み(チャネル数をそろえるために使われる小さな畳み込み処理)でそろえてから足し合わせる横方向の結合です。この3つの要素によって、FPNの構造は成り立っています。
小さな物体の検出精度が上がる理由は、横方向の結合によって位置情報に強い浅い層の特徴マップに、深い層由来の強い意味情報が統合されるためです。単独では意味情報が弱く見逃されやすかった小さな物体も、意味的に強化された高解像度の特徴マップの上であれば検出できるようになります。
FPNはFaster R-CNNやMask R-CNNのバックボーン(物体検出モデルの土台となる特徴抽出部分のネットワーク)に組み込まれる代表的な構造です。ピラミッドの各階層に対してRPN(Region Proposal Network。画像の中から物体が写っていそうな候補領域を提案する仕組み)がアンカー(検出の基準となる複数サイズの仮想的な枠)を生成し、物体のスケールに応じて適した階層で候補領域を検出する仕組みとあわせて見ておきたい点です。
2017年にLinらが提案した際の背景として、従来の物体検出器では計算コストの高さから画像ピラミッドが避けられてきた経緯も試験対策の論点です。
3. 関連概念との比較・相違点
画像ピラミッドとの最大の違いは、多スケール表現をどこで作るかという点にあります。画像ピラミッドは入力画像そのものを複数の解像度にリサイズし、その都度CNNへ入力し直す古典的な手法です。一方でFPNは、CNNが1回の順伝播でもともと生成する階層的な特徴マップを再利用し、追加のトップダウン経路と横方向の結合だけでピラミッド表現を作ります。
SSD(Single Shot MultiBox Detector。各層の特徴マップをそのまま独立に検出へ使う物体検出モデル)が採用するマルチスケール特徴との違いは、各層の特徴マップを層間で混ぜずに独立のまま検出へ使うか、トップダウン経路と横方向の結合で全階層に意味情報を融合してから使うかという点です。FPNは、浅い層が意味情報の弱いまま検出に使われるというSSDの弱点を、全階層に意味情報を行き渡らせる構造で補っています。
3つの方式を軸ごとに並べると、違いが整理できます。
| 手法 | 多スケール表現の作り方 | 計算コスト・弱点 |
|---|---|---|
| 画像ピラミッド | 入力画像を複数の解像度にリサイズし、その都度CNNへ入力し直す | 解像度の数だけ計算をやり直すため、計算コストとメモリ消費が大きい |
| SSDのマルチスケール特徴 | 各層の特徴マップを層間で混ぜずに独立のまま検出に使う | 浅い層は意味情報が弱いままで、小さな物体の検出に不利 |
| FPN | 1回の順伝播で生成される特徴マップを、トップダウン経路と横方向の結合で融合する | 全階層に意味情報が行き渡り、画像ピラミッドより抑えた計算コストで済む |
多スケール表現をどこで作るか、そして意味情報を全階層へ行き渡らせるかどうかが、3つの方式を分ける軸になります。
4. ビジネス・実務での活用シナリオ
自動運転の分野では、遠方に写る小さな歩行者や道路標識と、近距離に大きく写る車両が同じ1枚の画像に混在します。FPNの多階層特徴を使えば、遠くの小さな対象と近くの大きな対象の双方について検出精度を底上げできるため、走行中の周辺認識で見落としを減らす効果が期待できます。
小売・在庫管理の現場でも、FPNは活用されています。棚卸しカメラの画像には、手前に大きく写る商品と奥に小さく写る商品が混在します。FPNを組み込んだ検出モデルを使うことで、遠近差のある商品を同時に認識でき、人手による確認作業を補う仕組みとして機能します。
衛星画像や空撮画像の解析では、広域の1枚の画像の中に建物や車両など大きさの異なる物体が多数含まれます。FPNは1回のCNN処理で多スケール検出を行えるため、画像ピラミッドのように解像度ごとに処理を繰り返すコストを避けながら、広範囲の物体を一括して検出できます。
5. 要点まとめ
- FPNはCNNの浅い層(高解像度・位置情報に強い)と深い層(低解像度・意味情報に強い)を、トップダウン経路と横方向の結合で融合し、全階層で意味的にも位置的にも強い特徴マップを使えるようにする構造です。
- 入力画像を何段階もリサイズしてCNNへ入力する画像ピラミッドに比べ、CNN内部の階層的な特徴マップを再利用するため、計算コストとメモリ消費を抑えながら多スケール検出を実現します。
- Faster R-CNNやMask R-CNNのバックボーンに広く組み込まれ、ピラミッドの各階層に対してRPNがアンカーを生成することで、物体のスケールに応じた検出を可能にします。
6. 確認問題
問1FPNは、CNNの浅い層が持つ高解像度で位置情報に強い特徴と、深い層が持つ低解像度で意味情報に強い特徴を、トップダウン経路と横方向の結合によって融合する構造である。
解答・解説をみる
○ 正しい
FPNの核心は、bottom-up経路で得られる浅い層と深い層の特徴を統合する点にあります。トップダウン経路と横方向の結合(lateral connection)によって、すべての階層で意味的にも位置的にも強い特徴マップを作ります。
問2FPNは、入力画像そのものを複数の解像度にリサイズしてCNNへ繰り返し入力する画像ピラミッドの手法である。
解答・解説をみる
× 誤り
入力画像を複数解像度にリサイズしてCNNに繰り返し通すのは、従来の画像ピラミッドの手法です。正しくは、FPNはCNNが順伝播の過程でもともと生成する階層的な特徴マップ(bottom-up経路)を再利用し、トップダウン経路と横方向の結合だけでピラミッド表現を作るため、画像ピラミッドより計算コストとメモリ消費を抑えられます。
問3FPNはFaster R-CNNやMask R-CNNのバックボーンに組み込まれ、ピラミッドの各階層に対してRPNがアンカーを生成し、物体のスケールに応じた検出に利用される。
解答・解説をみる
○ 正しい
FPNは物体検出モデルのバックボーンとして広く採用されています。Faster R-CNNやMask R-CNNでは、ピラミッドの各階層に対してRPNがアンカーを生成し、物体のスケールに応じて適した階層で候補領域を検出する仕組みと組み合わされます。

