Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Feature Pyramid Network (FPN)

特徴ピラミッドネットワーク(FPN)は、深い層の意味的特徴と、細かな高解像度の特徴を統合し、検出器が大小さまざまな物体を検出できるようにします。

特徴ピラミッドネットワーク (FPN) は、バックボーンの複数解像度の特徴マップをピラミッド状に変換するネックアーキテクチャです。各レベルは強い意味情報を持ち、物体サイズの範囲に対応します。Facebook AI ResearchがFeature Pyramid Networks for Object Detection(CVPR 2017)で発表したFPNは、標準的な畳み込みニューラルネットワーク (CNN)にトップダウン経路とラテラル接続を追加します。これにより、深い層が捉えた物体の特徴を保ちながら、高解像度レベルで小さな物体を検出できます。FPNおよびその派生方式は、現代の多くの物体検出アーキテクチャやインスタンスセグメンテーションモデルで、バックボーンと検出ヘッドの間に配置されています。

検出器にマルチスケール特徴が必要な理由#

CNNバックボーンは深くなるにつれてダウンサンプリングするため、最終特徴マップは意味情報が豊富な一方で解像度が粗くなります。ストライド32では、20ピクセルの物体はグリッドの1セルにも満たない範囲にしか収まりません。初期の特徴マップは細かな空間情報を保ち、主にエッジやテクスチャに反応します。FPN以前の検出器には、それぞれ欠点のある3つの選択肢がありました。複数スケールの画像ピラミッドでネットワークを実行する方法は精度が高いものの、処理速度が数倍遅くなります。元祖Faster R-CNNのように最終マップだけから予測する方法は高速ですが、小さな物体の検出性能が低くなります。SSDのように複数のバックボーン段階から予測する方法は、低レベル特徴の弱さを避けるためネットワークの高い段階から開始し、その結果、小さな物体に必要な高解像度マップを利用できません。FPNは1回のforward passで画像ピラミッドと同等のマルチスケール対応を実現し、FPNを備えたFaster R-CNNは、GPU上で毎秒5フレームの速度を保ちながら、COCO検出における単一モデルの最先端記録を更新しました。

FPNの仕組み#

FPNは3つのステップでピラミッドを構築します。

  1. ボトムアップ経路: バックボーンの通常のforward passです。FPNは、ResNetではストライド4、8、16、32に対応するC2からC5と呼ばれる各段階の最終特徴マップを使用します。
  2. トップダウン経路: 最も粗いレベルから始めて、各マップを最近傍補間で2倍にアップサンプリングし、高レベルの意味情報をより細かなレベルへ伝えます。
  3. ラテラル接続: 1×1畳み込みで各バックボーンマップを共通の幅である256チャネルに変換し、その結果を1つ上のレベルからアップサンプリングしたマップに要素ごとに加算します。さらに3×3畳み込みで合計を平滑化し、アップサンプリングによるアーティファクトを低減します。出力のP2からP5はすべて256チャネルなので、重みを共有する1つの予測ヘッドを各レベルで実行できます。

Torchvisionには、バックボーンマップを順序付き辞書として受け取る、すぐに使えるFeaturePyramidNetworkモジュールが含まれています。

from collections import OrderedDict

import torch
from torchvision.ops import FeaturePyramidNetwork

# ストライド8、16、32での640x640画像に対するバックボーン出力 (ResNet-50のチャネル数)
features = OrderedDict(
    c3=torch.randn(1, 512, 80, 80),
    c4=torch.randn(1, 1024, 40, 40),
    c5=torch.randn(1, 2048, 20, 20),
)

# ラテラル1x1畳み込みとトップダウン経路により、すべてのレベルのチャネル数が256になります
fpn = FeaturePyramidNetwork(in_channels_list=[512, 1024, 2048], out_channels=256)
pyramid = fpn(features)

for name, level in pyramid.items():
    print(name, tuple(level.shape))

c3 (1, 256, 80, 80)、c4 (1, 256, 40, 40)、c5 (1, 256, 20, 20)が出力されます。各レベルは空間サイズを保ち、3つすべてのチャネル幅が共通になります。これにより、1つのヘッドであらゆるスケールに対応できます。

用途#

  • 航空写真・衛星画像: 衛星画像解析やドローン映像では、車両、人、建物がわずか数ピクセルにしかならないことが多いため、検出器はピラミッドのストライド4およびストライド8のレベルに依存します。
  • インスタンスセグメンテーション: Detectron2で利用できるMask R-CNNは、ボックスとマスクを予測する前に、各領域のサイズに基づいてピラミッドのレベルを割り当てます。
  • パノプティックセグメンテーション: Panoptic FPNは同じピラミッドにセマンティックセグメンテーション用のブランチを追加し、数えられる物体に加えて、道路や空などの領域にもラベルを付けます。
  • 自動運転車: 1つのカメラフレームには、画像の半分を占める近くのトラックと、わずか数ピクセルの高さしかない遠くの歩行者や信号機が同時に映ります。

FPNとPANet、BiFPNなどのネックの比較#

FPNのトップダウン経路を起点に、レベル間の情報の流れを変えるネック方式が数多く生まれました。

  • PANet: FPNのトップダウン経路の後にボトムアップ経路を追加し、位置が正確な細かな特徴から最上位レベルまでの経路を短縮します。PANetはCOCO 2017インスタンスセグメンテーションチャレンジで1位を獲得しました。
  • BiFPN: EfficientDetのネックでは、トップダウンとボトムアップの融合を複数回繰り返し、入力が1つしかないノードを取り除き、融合する各入力の重みを学習します。
  • NAS-FPN: ニューラルアーキテクチャ探索で見つけたピラミッド構成を複数回重ねる方式です。
  • U-Net: スキップ接続を介して粗い特徴と細かな特徴を統合し、フル解像度で一度だけ予測します。そのため、マルチスケール検出よりもピクセル単位のセグメンテーションに適しています。

YOLO26は、連結によって各レベルを融合するFPNとPANを組み合わせたネックを使用します。2段階のアップサンプリングでストライド32のコンテキストをストライド8のレベルまで伝え、2つのストライド付き畳み込みで細部を上位へ戻し、ヘッドはストライド8、16、32のP3、P4、P5から予測します。yolo26-p2.yamlバリアントは、非常に小さな物体向けにストライド4のP2レベルをピラミッドに追加します。その結果、YOLO26nの融合前の計算量は6.1から9.5 GFLOPsに増加します。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう