遠くの小さな歩行者と、目の前の大きなトラック——1枚の画像には大きさのまったく違う物体が同居しています。この「スケールの多様性」に対応するための仕組みがFPN(Feature Pyramid Network)です。ボトムアップとトップダウンという2つの経路の役割が理解の中心になります。
📖 ひと言でいうと
FPN(Feature Pyramid Network)とは、CNNの多層構造を活用して、解像度の異なる複数の特徴マップ(マルチスケールの特徴)を作り、大きさの異なる物体を効果的に検出できるようにする仕組みです。単独のモデルというより、Faster R-CNNなどの検出モデルに組み込まれる「特徴抽出の改良パーツ」と考えると位置づけが分かりやすくなります。
例えるなら、1つの倍率の虫眼鏡だけで地図を見るのではなく、広域図・市街図・詳細図をピラミッドのように重ねて持ち、しかも各図に全体の文脈情報を書き戻しておくイメージです。小さな物体は詳細図で、大きな物体は広域図で、それぞれ最適な縮尺で探せるようになります。
🖼 1枚でわかるFPN
📘 公式テキストの説明
FPN(Feature Pyramid Network)について、画像認識分野では、物体の大きさや位置が多様であるため、異なるスケールの特徴を効果的に捉えることが重要となる。Feature Pyramid Network(FPN)は、この課題に対処するための手法であり、深層畳み込みニューラルネットワーク(CNN)の多層構造を活用して、マルチスケールの特徴マップを生成する。FPNの基本的な構造は、ボトムアップとトップダウンの2つの経路から成り立つ。ボトムアップ経路では、従来のCNNと同様に、入力画像から高次の抽象的な特徴を抽出する。一方、トップダウン経路では、高次の特徴マップをアップサンプリングし、低次の特徴マップと融合することで、解像度が高く、かつセマンティックな情報を豊富に含む特徴マップを生成する。このようにして、異なるスケールの物体を効果的に検出するためのマルチスケールの特徴表現が得られる。FPNは、物体検出モデルであるFaster R-CNNやRetinaNetなどに組み込まれ、その性能向上に寄与している。特に、RetinaNetでは、FPNと新たな損失関数であるFocal Lossを組み合わせることで、高精度な物体検出を実現している。さらに、FPNの発展形として、PANet(Path Aggregation Network)やEfficientDetなどが提案されており、これらはFPNの概念を拡張し、より効率的で高性能な物体検出を目指している。
読み解くカギは「ボトムアップ」と「トップダウン」の役割分担です。ボトムアップは普通のCNNの順方向処理で、層が進むほど解像度は下がる代わりに「何が写っているか」という抽象的な意味情報が濃くなります。トップダウンはその逆向きに、意味の濃い深層の特徴を拡大しながら浅い層の特徴と融合させ、「解像度が高く、意味も濃い」特徴マップを各スケールで作り直す経路です。
🔍 しっかり理解する
なぜスケール問題が起きるのか
通常のCNNでは、最終層に近い特徴マップほど縮小されています。深い層の特徴マップは意味情報が豊富ですが解像度が粗いため、数ピクセルしかない小さな物体の情報はほとんど消えてしまいます。逆に浅い層は解像度が高くて小物体の位置は残っているものの、「それが何か」を判断できるほどの抽象的な特徴はまだ育っていません。つまり「意味は深い層、解像度は浅い層」というトレードオフがあり、1枚の特徴マップだけでは大小の物体を両立して検出できないのです。
2つの経路と横方向の融合
ボトムアップ経路で作られた各段階の特徴マップは捨てずに取っておきます。トップダウン経路では、最も深い特徴マップから順にアップサンプリングして解像度を上げ、対応する段階のボトムアップ側の特徴マップと融合します。これを繰り返すと、どのスケールの特徴マップにも「深層由来の意味情報」が行き渡った特徴のピラミッドが完成します。検出時は、小さな物体は高解像度側、大きな物体は低解像度側と、物体の大きさに合った段で予測すればよいことになります。
検出モデルへの組み込みと発展形
FPNは特徴抽出部分の設計なので、さまざまな検出モデルに組み込めます。Faster R-CNNのバックボーンに組み込めばRPNが各スケールで候補領域を提案できるようになり、小物体の検出精度が向上します。RetinaNetは、FPNに新しい損失関数Focal Lossを組み合わせた一段階検出器で、高精度な物体検出を実現しました。さらにFPNの考え方を拡張したPANet(Path Aggregation Network)やEfficientDetも提案されており、「特徴のピラミッドをどう作り、どう行き来させるか」は物体検出の主要な設計テーマになっています。
💡 具体例で考える
ドローン空撮画像の車両検出
空撮画像では、高度や画角によって同じ「車」でも数ピクセルから数百ピクセルまで大きさが変わります。単一スケールの特徴マップに頼る検出器では、小さく写った車を取りこぼしがちです。FPNを組み込んだ検出器なら、高解像度の段が小さな車を、低解像度の段が大きな車を担当する形で、1つのモデルのままスケールの幅広い変化に対応できます。監視カメラや衛星画像の解析でも同じ構図が成り立ちます。
⚠️ よくある誤解・紛らわしい用語
- 「FPNは単体の物体検出モデル」は不正確 — FPNは特徴抽出の仕組みで、Faster R-CNNやRetinaNetなどの検出モデルに組み込まれて性能向上に寄与するものです。
- 経路の役割の取り違え — 「高次の抽象的な特徴を抽出する」のがボトムアップ経路、「アップサンプリングして低次の特徴と融合する」のがトップダウン経路です。逆にした選択肢に注意しましょう。
- SPP(空間ピラミッドプーリング)との混同 — 名前に「ピラミッド」を含む点で似ていますが、PSPNetなどで使われるピラミッドプーリングは1つの特徴マップを複数サイズでプーリングして文脈を集める仕組みで、複数の層からマルチスケール特徴のピラミッドを構成するFPNとは別物です。
- Focal LossはFPNの一部ではない — Focal LossはRetinaNetで導入された損失関数で、FPNと「組み合わせて」使われています。
📝 試験でのポイント
- 「物体の大きさや位置の多様性(スケール問題)に対処する手法」という目的の記述がFPNを特定する最大の手がかりです。
- ボトムアップ/トップダウンの2経路の役割の正誤判定は最頻出の想定です。「トップダウンでアップサンプリング+融合」を確実に。
- FPNが組み込まれるモデルとしてFaster R-CNN・RetinaNet、発展形としてPANet・EfficientDetの名前が挙げられている点も対応付け問題の材料になります。
- RetinaNet=FPN+Focal Lossという組み合わせも問われやすいポイントです。
📚 まとめ
- FPNは、物体の大きさ・位置の多様性という課題に対処するため、マルチスケールの特徴マップを生成する仕組みです。
- ボトムアップ経路で抽象的な特徴を抽出し、トップダウン経路でアップサンプリングと低次特徴との融合を行います。
- その結果、解像度が高くセマンティックな情報も豊富な特徴マップが各スケールで得られ、大小の物体を効果的に検出できます。
- Faster R-CNNやRetinaNetに組み込まれ、PANetやEfficientDetといった発展形も生まれています。
