Feature Pyramid Networks などの Feature Aggregation (特徴集約)

1. はじめに

Feature Aggregation (特徴集約)とは,画像のlocal 特徴やmid-level特徴を集約し,新たな特徴(ベクトル)を生成することである.この記事ではDeep Learning登場後に考案されたFeature Pyramid Networks に代表される,各解像度のCNN特徴をスキップ接続を用いながら効率的に集約する「画像認識CNN向けのFeature Aggregation手法」についてまとめる.とりわけ,画像認識のなかでも効率的な複数スケール物体検出向けに,近年Feature Pyramid Networks系のFeature Aggregation手法が発展している.

1.1 記事の構成

ピラミッド特徴の効率的な複数スケール特徴集約手法である「Feature Pyramid Networks(FPN)」を、CNN(Convolutional Neural Networks)世代の特徴集約における基礎手法として,最初に紹介する(2節).その後、FPNを改良した特徴集約手法を紹介したのち(3節),現在(2021年5月)Backboneネットワークの代表格ともなってきている特徴集約ネットワークの「Deep Layer Aggregation(2018)」(4節)を最後に紹介する.

1.2 ビジョン分野における Feature Aggregation の簡単な歴史

CNN登場直前の一世代前の画像認識では,Bag of Features (BoFs) やFisher Vectorなどの「画像全体のLocal 局所特徴を,統計的に単一の画像Global特徴ベクトルにまとめる技術」が特徴集約の代表格であった.しかし,CNN流行以降の近年では,セマンティックセグメンテーションなど各画素ごとに豊富かつ細かな周辺コンテキスト特徴を知っておかないと,画素単位の出力が正確にならないため,CNN序盤のshallowな層の局所特徴のみならず,中間層の特徴も,畳み込みの中で消失しないまま出力層まで伝えて集約する必要性が高まってきた.とりわけ、物体検出器、セマンティックセグメーション、人物姿勢推定(キーポイント点の識別や回帰),Mask R-CNNの物体領域マスク推定などのタスクがDeep Learning後に新規登場してきた中で,本稿で述べるFeature Pyramidベースの特徴集約テクニックが考案されることに繋がっていった.

のちに2節でも述べるように、「多重解像度的にImage Pyramidを生成し、その各解像度画像で個別に解像度別の画像特徴量を計算する」方法は、古くから画像認識・画像処理で行われてきた技術である(ステレオマッチングやオプティカルフローに、DPM (Deformable Part Models)でのImage PyramidからのマルチスケールHOG特徴量など).したがって,Feature Pyramidの発想自体は新しくなく,むしろコンピュータビジョンでは伝統的に用いられてきた技術である.その画像ピラミッドや特徴ピラミッドの(学習可能な)現代版が,Feature Pyramid Networkであると言える.

古典的なFeature ベクトルピラミッドは,各スケール特徴の重み付けは,SVMやBoostingを学習するなかで線形的な重みとして学習する単純なものであったのに対して,自由なネットワーク構造や重み付け層を使用できるCNNでは,スキップ接続や,スケール特徴間のFusion やAttentionなどの重みを導入することで,より複雑なスケール特徴間の結合・統合が可能である.しかし,多スケール処理化する際に,DenseNetのごとく余りに各スケール特徴間を全結合すると,処理の効率も悪くなり,また本来の目的であるlow-level特徴やmid-level特徴が出力層までうまく生き残りづらい問題が出てしまう.そこで,次項のFPN[1]が,ちょうどよい処理効率かつ特徴集約の手法として登場し,スタンダードな手法となった.

2. Feature Pyramid Networks

Feature Pyramid Networks [1] (FPN) は,前段のボトムアップなCNNの後段に,deepな層とshallowな層をトップダウンに接続し,各スケール階層同士をスキップ接続でつないだ,砂時計型の特徴集約向けのCNNバックボーンを拡張する構造である.FAIRの物体検出が得意なチームから提案されたこともあり,物体検出向けの標準的手法として定着した.

以下の図1のがFPNを示したものである:

図1 Feature Pyramid Networks

図1のように、FPNの序盤では,標準的なバックボーンCNN(VGGやResNetなど)を用いてBottom-upに特徴マップの解像度を減らしていく (図1 左、Backbone Network),そして後半では、前半で対応する同じ解像度層をスキップ接続を行なって,加算した特徴マップを作りつつ,up convolutionを行いTop-downに元画像の解像度に特徴マップを戻していく(図1 中央、Feature Pyramid Network).(※この中間部を、BackboneとHeadの間にあるので「Neck」と一般的に呼ぶことが多い)。そして、物体検出などの出力では、後半の各解像度で個別に出力用のHeadを設けて、特徴解像度別に出力を行う(図1 右、Predict).以上が,FPNのネットワーク構造である.

FPNにおける同スケール同士をつなぐスキップ接続を,図1のような図で眺めると横方向の層間接続であることから「ラテラル接続(lateral connection)」と呼ぶことも多い,

2.1 既存の Feature Aggregation 手法との比較

[1]の論文中でも論じられているように,物体検出器のSSD[2]も,[1]より先に提案されたFeature Pyramid使用の仕組みである。また、FPNはU-Net[3]にも似ていて(かつインスパイアされて)おり,「Hourglass型の対称構造を用いて、同解像度の対称位置にある層同士で,bottom-up層 => top-down層 でスキップ接続(ラテラル接続)でつなぐネットワーク構造」であるという点で共通点している.U-NetなどのHour-glass型ネットワークによる単純なEncoder-Decoder では,一旦中間のbottleneck部分までbottom-upな畳み込み (+ Pooling)が続いたのち,今度はその抽象度の高く解像度も下がった特徴量を逆にUp convolutionで元画像の解像度(もとい幅と高さ)の特徴マップまで広げてtop-downな処理を行う対象構造をなしている.それに対してFPNでは,各解像度でラテラル接続が設置されていることで,(U-Net[3]のように)Encode-Decodeする際に通るとおりみちの多様性が生まれ,少数の畳み込み回数でも,豊富な解像度の特徴マップを学習して表現できるようになっている.

また,出力の数についても,古典的なHour-glass型Encoder-DecoderとFPNでは異なる.U-Net[3]では最終層でのみ出力の推定を行う.それに対し,FPNでは後半の各解像度の特徴マップそれぞれにおいて,個別にHeadを用意して出力を実行する(図1- 右).逆に言うとその出力方法以外においては,U-NETとFPNの両者はかなり類似しており,ほぼ同様のネットワーク構造である.言い換えると,FPN[1]はU-Netの出力を(SSD[3]のような)解像度別の出力に変えただけで,それをFeature Pyramid Networkと名づけ直した論文だとも言える (※ ちなみにU-Netはスキップ後はチャンネル同士は混ぜずにconcatで後ろのチャネルに結合していくが,FPNではスキップ接続後は特徴マップ同士を加算して統合する点でも,両者は異なる).

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

関連記事:セマンティックセグメンテーション「2.FCNとスキップ接続」

それに対してFPNの場合は,マルチスケール物体検出が目的の研究である.FPNはネットワーク構造こそU-Netとほぼ同じとはいえ,Faster-RCNNのバックボーンとしてFPNを使用することにより,(2017当時としては)高速な5fpsでのGPU物体検出を実現したというのが[1]の新規性のポイントである.また,FPNの登場により,その後は,one-stage物体検出器でもバックボーンネットワークにFPNが盛んに用いられるきっかけとなった.

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

3. FPNの 改良手法

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

関連記事:画像のインスタンスセグメンテーション [Mask R-CNNなど]

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

4. Deep Layer Aggregation (DLA)

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

元論文のFigure 1でも比較されているとおりであるが、Deep Layer Aggregationは、(1)DenseNetなどの密なスキップコネクションと、(2)Feature Pyramid Networksによる多重解像度的なCNN特徴の集約、の2つの中間を取ることを狙った手法である.DenseNetまでは密ではなく,Feature Pyramidよりは解像度の繰り返しを(階層化により)増やした,木構造Feature Aggregationである.木構造でスケール変化を行う分,効率的に少ないパラメータ・層数でスケール変化を捉えることができるので,vanilla FPNと比べるとscalabilityの面でも優秀であるし,PANやbi-FPNのように接続数がむやみに増えていかない面でも効率が良いといえる.

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

5. まとめ

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

ちなみに,昨今(2018-2021)の物体検出器は、このままFPN依存で続けてもFPSを高速化する限界が見え初めていた状況である.そんな中,脱FPNを行い更なる高速化を実現するアプローチの1つとして,dilated convolutionをFPNの代わりに用いる高速化アプローチ(YOLOF[7] CVPR2021など)も登場してきており,「FPNを用いるのが物体検出ネットワークでは標準的」というここ数年の傾向が今後変わる可能性も出てきていることを最後に付け加えておきたい(2021.5月現在).

関連記事:物体検出

References

  • [1] Tsung-Yi Lin,Piotr Dolla ́r,Ross Girshick,Kaiming He, Bharath Hariharan, and Serge Belongie. Feature pyramid networks for object detection. 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. ECCV, 2016.
  • [3] O. Ronneberger, P. Fischer, and T. Brox. U-Net: Convolu- tional 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

外部リンク