FPN(Feature Pyramid Networks)とその発展型

1. FPN (Feature Pyramid Networks) とは [概要]

Feature Pyramid Networks (FPN) は,物体検出向けに,マルチスケールの画像特徴集約を効率的におこなうための,CNNの拡張機構である.セマンティックセグメンテーション向けのU-Netや,インスタンスセグメンテーション向けのSharpMaskで用いられた「砂時計型 Encoder-decoder構造 + スキップ接続」というアイデアと同様のことを,物体検出向けにおこなう仕組みである.FPNにより,序盤や中盤の特徴を,識別層まで伝えることができるようになり,効率的な処理によって,マルチスケール検出を高精度化できるようになった.

この記事では,FPNの提案 [Lin et al., 2017] と,FPNの発展手法の例(Path Aggregation Networkや,EfficinentDetのFPN,Deep Layer Aggregationなど)を紹介する.

FPN の構造
図1 FPN の構造

FPNを追加したCNNは,物体検出セマンティックセグメンテーションのように,画像内での相対的スケール変化へ対応する必要がある画像認識タスクへの頑健性が増す.その理由は,複数画像スケールの特徴を全て含んだ特徴マップを計算できるようになって,「物体検出のマルチスケール性能(とりわけ,小さく写る物体の検出)」を改善できる点にある.なおかつ,マルチスケール特徴計算自体も,画像ピラミッド的に効率的に済ませることができる.

一方,より一般的な概念である 特徴集約(Feature Aggregationとは,画像の局所低レベル特徴や中間レベル特徴を「集約」して結合し,新たな「多解像度特徴ベクトル」を生成して使用するような,「複数スケール対応の画像認識における工夫」のことをさす.

FPNを用いたマルチスケール・複数パスを用いた特徴集約手法は,効率的な複数スケール物体検出向けに提案された.その後は,その派生型が発展し,マルチスケール特徴が必要な他のタスクでも,FPNがよく使われるようになっていった.

1.1 記事の構成

2節以降は,以下の構成で紹介する:

  • 2節 ビジョン分野における特徴集約の歴史(Deep Learning以前の従来手法とも比較)
  • 3節 Feature Pyramid Networks
  • 4節 Feature Pyramid Networks の改良手法 (PANet , EfficientDetなど)
  • 5節 Deep Layer Aggregation

まずディープラーニング以前のFeature Aggregation について復習する(2節).次に,ピラミッド特徴の効率的な複数スケール特徴集約手法である「Feature Pyramid Networks(FPN)」を,CNN(Convolutional Neural Networks) 世代の特徴集約における基礎手法として,最初に紹介する(3節).その後,FPNの改良手法を紹介したのち(4節),現在(2021年5月) 画像認識向けCNNバックボーンの代表格の1つともなっている,特徴集約バックボーンの「Deep Layer Aggregation(2018)」(5節) を紹介する.

2. ビジョン分野における特徴集約の歴史(Deep Learning以前の従来手法)

2.1 物体画像のクラス識別

CNN登場直前の一世代前の画像認識では,Bag of Features (BoFs) や Fisher Vector などの「画像全体のLocal 局所特徴を,単一のグローバル特徴ベクトルに集約する技術」が,特徴集約の代表格であった.しかし,CNN流行以降の近年では,例えばセマンティックセグメンテーションなどでは,各画素ごとに豊富かつ細かな周辺コンテキスト特徴を知っておかないと,画素単位の出力が正確に推定できない.また,CNN序盤層の局所的な低レベル特徴のみならず,中間層の中レベル特徴も,畳み込みの中で消失せずに,出力層まで伝えて集約する必要性が高まっていた.

2.2 セグメンテーション分野で先行していた技術が,FPNの登場で物体検出でも一般化.

そんななか,先にセグメンテーション分野で,2015年ごろに セマンティックセグメンテーション向けのU-Netや,インスタンスセグメンテーション向けのSharpMaskが登場し,セグメンテーションタスク向けにCNNの特徴集約が発展し始めた.

本稿で述べるFPNによる特徴集約技術は,その後の人物姿勢推定のバックボーンや,Mask R-CNNでの物体領域マスク推定などにも,同じくマルチスケール対応の目的で使用されていく.

ディープラーニング以前も行われていた「特徴ピラミッドからの特徴集約(3.2.1節)」を,CNNによる(学習可能な)現代版とも言えるものがFPNである.

そもそも,画像ピラミッド自体は,もっと前の,古い時代からコンピュータビジョン・画像処理で使用されてきた仕組みである.例えば,ステレオマッチングやオプティカルフローでも使われたいた.また,単一物体検出器での,マルチスケール画像からそれぞれ計算したマルチスケール特徴の使用(3.2.1節)なども,その代表例である.したがって,特徴ピラミッドの発想自体は新しくなく,むしろコンピュータビジョンでは伝統的に用いられてきた技術であり,実際,それが得意で経験豊富なDollar氏らのチームによって,FPNが提案される.

2.3 FPN の登場で,マルチスケール特徴のCNN学習が効率的に

古典的な画像特徴ベクトルピラミッドでは,予測モデルのSVMやBoostingで,各スケール特徴の線形重み付け係数を学習していた.それ対してCNNでは,スキップ接続や,スケール特徴間のFusionを導入していることから,「より複雑なスケール特徴間の結合・統合」が可能となる(3節).また,ディープニューラルネットワークなので,アテンション機構や,マルチタスク推定のヘッドなど,更に別の仕組みを自由に追加できるメリットもある.

もしDenseNetのように,ブロック内で全ての特徴マップを結合してしまうバックボーンだと,CNNバックボーン中で複数スケール化計算も行うと,マルチスケール特徴の計算効率が悪い.またFPN登場までのCNNでも,本来予測に使用したい「序盤の隠れそうで得られる低レベル画像特徴」や,「中盤の層で得られる中間レベル画像特徴」が,出力層までうまく生き残らず,終盤の層では高レベルの抽象度の高い特徴しか残らない.

そんな中,効率的な複数スケール特徴集約を,CNNの後ろに拡張部品として置いて学習できる「FPN」が提案された.これにより,CNN物体検出だけでなく,他のマルチスケール特徴が欲しいタスク全般でも,頻繁にFPNがマルチスケール特徴学習(というよりTop-downな後処理を追加しての集約)として,使用されるようになっていく.

3. Feature Pyramid Networks ( FPN )

FPN の構造(詳細版)
図2 FPN の構造(詳細版)

Feature Pyramid Networks [Lin et al., 2017] (FPN) は,マルチスケール性能を向上させる拡張機構である(図1).特徴マップを1/2にしていくCNNバックボーンのあとに,特徴マップを2倍に戻していく逆CNNバックボーンを直列接続し,2つのCNNの同一スケール間の特徴マップ同士を,ラテラル接続でつなぐ.この(U-Netと似たような)中央に「空間サイズが小さなボトルネック」が存在するEncoder-Decoder構成が,物体検出向け画像特徴の,効率的な複数スケール化を実現してくれる.

3.1 FPN のネットワーク構造

図2は,図1よりも少し詳細化して描いたFPNのネットワーク構成図である.FPNは,以下の3つのサブネットワーク構成されており,この構成により,物体検出用のCNNバックボーンを,U-NetやSharpMaskと同じような「Encoder-Decoder + ラテラル接続」の構造へ拡張している:

  1. FPNの前半CNNエンコーダ(図2-左):CNNバックボーンを用いて,ボトムアップ処理により,特徴マップの解像度を1/2ずつに減らしてエンコードしていき,特徴マップのピラミッドを作成する.
  2. FPNの後半CNN(図2-中央):,CNNバックボーンの逆構成のデコーダにより,up convolution層を用いて,元画像の空間解像度まで特徴マップの空間サイズを拡大してデコードしていく.
    • デコードの際に,前半バックボーンで対応する同じ解像度の層から,ラテラル接続をもちいて,エンコーダ側序盤の特徴マップを(ボトルネック層を経ずに)直接渡す.
    • ラテラル接続では,1 x 1 畳み込みを行った特徴マップを,デコーダの特徴マップに加算する(図1-真ん中の拡大部分.この,FPNで追加されるCNNデコーダ部分を「ネック(首)」と呼ぶことがある.
  3. 出力の畳み込み層(図2-右):デコーダの各解像度特徴マップに,解像度ごとの出力予測層(ヘッド)を設ける.これにより,特徴解像度別に,検出結果の予測を行う.

出力層の各ヘッドも畳み込み層にするので,FPNは全体としてFCN (Fully Convolutional Networks, 完全畳み込みネットワーク)の構成となっている.

この構成により,FPNが出力予測する3の物体検出層が,高レベル特徴だけでなく,中レベル特徴や小レベル特徴も使えるようになる.そのおかげで,中サイズや小サイズの物体の未検出を減らすことができる

また,多様な経路で各レベルの特徴を変換+結合させるので「大中小以外の中間的なスケールの物体の特徴」の学習も,このネットワーク構成で効率的に行うことができる(※ ラテラル接続無しに,デコーダの3レベルの特徴マップからそれぞれ出力予測するだけだと,それらの狭間にあるスケールの特徴が,正解バウンディンボックスからうまく学習できない).

以上が,FPNによるCNNネットワーク構造の拡張である.

物体検出が得意な,Facebookリサーチの有名チームからFPNは提案されたこともあり,すぐに物体検出向けの標準的手法として定着した.また,同チームのMask R-CNNの研究においても,「FPNを追加したResNetバックボーン」による実験が行われ,FPNのインスタンスセグメンテーションへの有用性も示された.これにより,FPN構造と,それに類似したU-Net的な構造が,セマンティックセグメンテーションと物体検出のどちらのタスクにも有効なマルチスケール特徴を,うまく集約できることを示したとも言える.

3.2 既存のピラミッド方式の画像特徴集約手法との比較

3.2.1 CNN以前の,画像ピラミッド特徴による物体検出との比較

CNN登場以前の物体検出において,マルチスケール対応をしたい場合は,以下の「密なピラミッドでの検出」が標準的な処理手順であった:

  • 単純な画像ピラミッドのように1/2ずつの画像の縮小ではなく,もう少し密なN個の(8~10程度)のスケールで,入力画像を細かくスケーリングする.
  • N個のスケール画像を入力として,それぞれ同一サイズの「単一窓サイズ(典型的には128×64ピクセル)歩行者検出器」を,密にスライディングウィンドウで2クラス識別する.

しかしスライディングウィンドウの際に,当時主に使用されていたHOG特徴 [Dalal and Triggs, 2005] は,当時のCPUではNスケール画像でそれぞれ計算すると計算コストが高かった.従って実用的な,高速物体検出手法を実現するのにHOGは向いていなかった.

その後,複数チャンネル画像からBoostingで特徴を選択することができる Integral Channel Features (ICF) [Dollar et al., 2009] が提案され,歩行者検出の主役がICFとなる時代に突入した.更に,同じ著者らは,前述の「密な画像ピラミッドでの検出」よりも効率計算ができる,マルチスケール対応手法として FPDW (Fast Pedestrian Detection in the West) [Dollar et al., 2010] を提案した.FPDWでは,モデルサイズをM個,入力画像ピラミッドを3層にし,それらのM × 3の組み合わせにより,ICFを用いたマルチスケール歩行者検出を高速化した.また,ICFのうち,各スケールでのエッジ計算を,基本スケールからの近似計算に差し替えることを提案した.

以上のように,単一物体検出では「複数スケールの各画像上でスライディングウィンドウする必要があるので,2クラス識別回数をいかに少なく済ませられるか」が焦点であった.ゆえに,特徴集約をして,マルチスケールの特徴を含ませることは.この時期の焦点ではなかった(「歩行者クラス」という,単一クラスの変化のみを相手していたからだとも言える).

一方で,HOG特徴は,マルチスケールで計算してそれらを結合する発想は当時多かった.例えば,私も博士論文の研究で用いたように,3レベルのHOG特徴マップから,物体候補窓内でHOGベクトルを抽出し,それら3つを結合したベクトルを,物体識別などに使うことがあった.私の場合は,人物検出窓内の3レベルHOG結合ベクトルを,人物姿勢推定の目的で用いた.具体的には,上半身の方向推定や,関節位置を回帰するためのマルチスケール特徴としてRandom Forestの入力に用いた.

3.2.2 従来のCNN向け特徴集約手法との比較

FPNの論文中 [Lin et al., 2017] でも論じられているように,物体検出器のSSD [2]は,FPN論文より先に提案されていたFPNである.また,FPN [Lin et al., 2017] のネットワーク構造は,U-Net [Ronneberger et al., 2015] に似ていて,なおかつインスパイアされている.ただし,U-Netはスキップ後はチャンネル方向の後ろ側に結合して集約する設計であるが,FPNではラテラル接続後は,(1×1畳み込みののち)特徴マップ同士を 加算で集約する点で異なる.

U-Netなどのセマンティックセグメンテーション手法では,序盤の層の出力の「まだあまり畳み込まれていない段階の序盤のlow-level特徴を,いかに出力層まで生き残らせるか」が,画素単位の推定結果を出力する上で大切である.したがって,それら初期のセマンティックセグメンテーションでは,「スキップ接続で序盤の特徴を終盤の層までスルーして加工せず持ち運ぶ」という戦略がよく採用されていた.

それに対して,FPNは「マルチスケール物体検出」が目的の技術である.FPNは,そのネットワーク構造こそU-Netとほぼ同じとはいえ,Faster R-CNNのバックボーンとしてFPNを使用することにより,(2017当時としては)高速な5 fpsでのGPU物体検出を実現した点が,FPNの新規性であった.またFPNは,その後に1ステージ型物体検出器において,FPNが盛んに用いられるきっかけとなった.

その後,インスタンスセグメンテーションや Panoptic Segmentationタスクなども登場し,物体検出とセマンティックセグメンテーションの2タスクを,同一のバックボーンでマルチタスク学習することが増えていくが,FPN [1] (2017年)の時点では,まだその2タスクは分離して,個別に研究が取り組まれていた時代であった.

4. FPNの 改良手法

PAN (Path Aggregation Network) [4]では,インスタンスセグメンテーション目的で,bottom-up やtop-downの各スケール特徴を,より様々な経路(Path)を通じて集約するPath Aggregation手法である.[4]は,FPNを単純に1段拡張する形で提案されたものであり,FPNの後段に,bottom-upのサブネットワークをもう一段配置し,同じく各解像度同士をスキップ接続する(要するに,2段構成のFPNを3段構成に増やした).これにより,FPNよりも更に特徴集約パスの多様性・多解像度性が増えた推測が可能となった.

EfficientDet [5] では,物体検出向けにPAN [4]を更に改善するネットワーク構造として「PANのようなbottom-up/top-downのペアをN回繰り返し,同スケールのtop-down同士をスキップ接続する」形式の「繰り返しNeck構造」を採用した(weighted) Bi-FPN (Bidirectional Feature Pyramid Network)が提案された.更に[5]では,スケールごとに特徴マップが重み付けされた後にそれらの加算を行う重み付けフュージョン(weighted fusion)の仕組みも提案された.これにより,双方向のスケール間特徴フュージョンが効率的に実現され,スケーラブルでなおかつ効率的な特徴抽出構造が実現された.性能的には,同時期のState-of-the artであったYolo v3 や RetinaNetより30分の1程度少ないパラメータで,同等の精度をCOCOデータセットで達成し,大幅にモデルのスケーラビリティが向上したと言える.

5. Deep Layer Aggregation

Deep Layer Aggregation (DLA) [6] は,木構造を複数シーケンス接続し,各木の上位ノード間にもスキップ構造を採用することで,多重解像度的なDense Networkを実現したネットワーク構造である.DLAは特徴集約手法であると同時に,CNNバックボーン構造でもある.したがって,2〜4節のように,バックボーンCNNで畳み込んだ特徴を別途後段のNeckモジュールで集約する「拡張機構」とは異なる.

元論文 [6] のFigure 1でも比較されているとおり,Deep Layer Aggregationは (1) DenseNetのような密なスキップ接続と (2) Feature Pyramid Networksによる多重解像度的なCNN特徴の集約,の2つのちょうど中間くらいのネットワーク構造を狙った手法である.言い換えると,「DenseNetまでは密ではなく,Feature Pyramidよりは解像度の繰り返しを(階層化により)増やした,木構造的なFeature Aggregation バックボーン」である.

木構造でスケール変化を分岐させて行う分,効率的に少ないパラメータ・層数でスケール変化を捉えることができる.従って,vanilla FPNと比べるてもスケーラビリティの面でも優秀である上に,PAN [4] やbi-FPN [5] のように接続数がむやみに増えていくことがない面でもDLAは効率性が高いといえる.

ちなみにDeep Layer Aggregation (2018) の論文ではCOCO object detectionでの実験が行われておらず,前述のEfficientDet (2020) の論文 [5] 中では,DLAとの比較の言及は無く,比較実験も実施されていない.

6. まとめ

この記事では,多重解像度特徴の効率的かつ網羅的な集約が必要な画像認識タスク向けの,Feature Aggregationネットワーク構造手法について紹介した.その典型的手法として,Feature Pyramid Networksと,Deep Layer Aggregationについて簡単にだけ紹介した.

ちなみに,近年(2018-2021あたり)の物体検出器は,このままFPN依存の路線で発展させようとしても,FPSを高速化する限界も見えはじめていた.そんな中,脱FPNを行い更なる高速化を実現するアプローチの1つとして,dilated convolutionをFPNの代わりに用いる高速化アプローチ (YOLOF [7] CVPR2021など)も登場してきている.よって「FPNを用いるのが,物体検出では標準的」という近年の主傾向が,今後変わる可能性も出てきていることを最後に付け加えておきたい(2021年5月現在).

References

  • [Dalal and Triggs, 2005] N. Dalal, B. Triggs. Histograms of oriented gradients for human detection, In CVPR, 2005.
  • [Dollar et al., 2009] Dollar, P., Tu, Z., Perona, P., Belongie, S.: Integral channel features. In BMVC, 2009.
  • [Dollar et al., 2010] Dollár, P., Belongie, S, and Perona, P.: The fastest pedestrian detector in the west. In BMVC, 2010. 
  • [Lin et al., 2017] Tsung-Yi Lin, Piotr Dollar, Ross Girshick, Kaiming He, Bharath Hariharan, and Serge Belongie. Feature pyramid networks for object detection. In CVPR, 2017
  • [2] Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, and Alexander C Berg. SSD: Single shot multibox detector. In ECCV, 2016.
  • [Ronnebergeret al.,2015] O. Ronneberger, P. Fischer, and T. Brox. U-Net: Convolutional networks for biomedical image segmentation. MICCAI, 2015
  • [4] Shu Liu, Lu Qi, Haifang Qin, Jianping Shi, and Jiaya Jia. Path aggregation network for instance segmentation. CVPR, 2018.
  • [5] Mingxing Tan, Ruoming Pang, and Quoc V Le. EfficientDet: Scalable and efficient object detection. CVPR, 2020.
  • [6] Fisher Yu, Dequan Wang, Evan Shelhamer, Trevor Darrell. Deep layer aggregation. CVPR, 2018.
  • [7] Qiang Chenm, Yingming Wang, Tong Yang, Xiangyu Zhang, Jian Cheng, and Jian Sun. You Only Look One-level Feature. CVPR 2021

外部参照リンク

関連記事

SNSでシェアやブックマークを行う