CNNの特徴集約(Feature Aggregation): Feature Pyramid Networks (FPN) など.

1. Feature Aggregation の概要

Feature Aggregation (特徴集約)とは,画像の局所特徴やmid-level特徴を集約して結合し,新たな多解像度特徴ベクトルを生成して使用する,画像認識における工夫である.

この記事では,Deep Learning登場後に考案されたFeature Pyramid Networks (FPN) に代表される,マルチスケールCNN特徴をスキップ接続で効率的に集約する画像認識CNNの特徴集約手法を中心にまとめる.

近年Feature Pyramid Networks系の特徴集約手法は,とりわけ効率的な複数スケール物体検出向けに,当初は発展していた.その後は派生型として,砂時計型のEncoder-Decoder CNNを用いるタスク全般でも,FPN形のマルチスケール特徴かつスキップ接続を用いた特徴集約が,標準的に使われるようになってきている.

1.1 記事の構成

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

  • 2節 ビジョン分野における Feature Aggregation の簡単な歴史
  • 3節 Feature Pyramid Networks
  • 4節 Feature Pyramid Networks の改良手法 (PANet , Efficient Det)
  • 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 ビジョン分野における Feature Aggregation の簡単な歴史

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

よってCNN登場後の,物体検出,セマンティックセグメーション,人物姿勢推定(キーポイント推定),Mask R-CNNでの物体領域マスク推定などにおいて,本稿で述べるFeature Pyramidベースの特徴集約テクニックが考案され使用されることに繋がっていった.

ディープラーニング以前から使われていた「特徴ピラミッドから特徴集約」のCNNによる(学習可能な)現代版が,Feature Pyramid Networkである.Feature Pyramid Networkのように「画像or特徴ピラミッドの各解像度特徴を1つのベクトルに集約して,SVMなどの予測器の特徴ベクトルとして用いる」というは,古くから画像認識・画像処理で行われてきた発想である.例えば,ステレオマッチングやオプティカルフロー,DPM (Deformable Part Models)におけるマルチスケールHOG特徴量などは,その代表例である.したがって,特徴ピラミッドの発想自体は新しくなく,むしろコンピュータビジョンでは伝統的に用いられてきた技術だと言える.

古典的な特徴ベクトルピラミッドは,各スケール特徴間の重み付けは,SVMやBoostingを学習するなかで線形的な重みとして学習していた.それ対してCNNでは,スキップ接続や,スケール特徴間のFusionに,アテンション機構などの重みを導入することで,より複雑なスケール特徴間の結合・統合が可能となる.しかし,複数スケール処理化する際,(DenseNetのように) 各スケール特徴間を全て網羅的に全部結合してしまうと,処理の効率も悪くなる.またCNNの場合は,本来予測に使用したい(序盤の隠れ層で得られる)low-level特徴やmid-level特徴が,出力層までうまく生き残りづらい問題も出てくる.そこで,次項のFPN [1] が,ちょうど良い処理効率のマルチスケール特徴集約手法として登場し,CNN界隈では標準的に使用されるようになっていった.

3. Feature Pyramid Networks

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

以下の図1は,FPNを用いたCNNバックボーンの拡張の様子を示したものである:

Feature Pyramid Network
図1 Feature Pyramid Networks

図1のように,序盤ではまず,バックボーンCNN(VGGNetやResNetなど)を用いて,Bottom-up的に特徴マップの解像度を減らしていく (図1左,Backbone Network).

後半では,Feature Pyramid Networkを用いて,前半バックボーンで対応する同じ解像度の層からスキップ接続したのち加算した特徴マップを作りつつ,up convolutionでTop-down的に元画像の空間解像度に特徴マップを戻していく ( ※ このFPNを挿入する中間部を,BackboneとHeadの間にあるので「Neck」と呼ぶことが多い).

物体検出などの出力では,後半の各解像度で個別に出力用のHeadを設けて特徴解像度別の出力を行う(図1 右側,「予測」).

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

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

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

FPNの論文 [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の提案」であるともみなせる(ただし,U-Netはスキップ後はチャンネル方向の後ろ側に結合していく設計であるが,FPNではスキップ接続後は特徴マップ同士を加算して統合する点も,設計は異なる).

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

それに対してFPNの場合は,マルチスケール物体検出が目的の研究である.FPNは,そのネットワーク構造こそU-Netとほぼ同じとはいえ,Faster R-CNNのバックボーンとしてFPNを使用することにより,(2017当時としては)高速な5fpsでのGPU物体検出を実現したというのが [1] の新規性であった.また[1]は,その後にone-stage物体検出器でも,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よりも更に特徴集約パスの多様性・多解像度性が増えた推測が可能となった.

SSD では,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

  • [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: 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

外部参照リンク

関連記事