画像に応じたCNNの受容野学習(Deformable Convolutional Networks)
Deformable Convolutional Networks
ICCV oral paper 2017 [J. Dai+, 2017]
ざっくり
- CNNの受容野(畳み込みをする範囲)を画像ごとに変更するDeformable Convolutional Networksを提案
- 従来のCNNにおける,(k x k)近傍の固定された受容野に対して,より洗練された畳み込みが可能に
緑が注目点で,赤が畳み込みの対象
Introduction
視覚の認識タスクにおいて、物体のスケールやポーズ、視点、歪み対してロバストな認識をすることは重要である。 従来手法では、データとCNNの制約からロバスト性に問題があった。
データの問題
大きく2つの方法によってロバストな推定器の実現が試みられていたが、問題が存在する。
- データの多様性をaugmentationなどによって増やす。モデルのサイズを大きくする。
- 欠点: データが大規模になる、モデルが巨大になる。
- 変形に対して不変な特徴量やアルゴリズム、例えばSIFTやmax-poolingなどを用いる
- 欠点: hand-craftedである
CNNの問題
CNNの畳み込み演算やPooling演算は固定された位置に対する処理であるため、幾何的な変形に対し強く影響を受けてしまう。 (from: https://jifengdai.org/slides/Deformable_Convolutional_Networks_Oral.pdf)
同じ層の受容野(入力の範囲)の形と大きさが同じ。これは物体の意味論的な認識タスクではおかしい。 事前にBounding boxを用意するR-CNNの手法も適切ではない。
提案
普通の畳込みに学習可能な2Dオフセットを導入
RoI Poolingのビン位置に学習可能なオフセットを導入
関連手法
関連手法に Active Convolutional Network というものも存在する [Y. Jeon+, CVPR'17]。 これは 層ごとに固定のConvolutionのoffset を学習するというもの。 層ごとにConvolutionの受容野が異なっていることがわかる。
Deformable Convolutional Network
Active Convolutional Networkに対し、Deformable Convolutional Netoworkは、全画像で一貫したoffsetではなく、 offsetを出力するConvolution Layer を導入、画素に応じたオフセットを推定する。
実際の結果が次図、緑点が注目点なのだが、それぞれに対して全然違うoffsetが算出されている。
そして、物体のスケールをよく捉えており、認識に必要な情報を効率よく捉えていることがわかる。