医療系AIエンジニアの技術メモ

ディープラーニング(主に画像系)の技術メモブログです

Deformable Convolutional Networks

スポンサーリンク


f:id:y_kurashina:20190602002659j:plain
Fig1. Deformable Convolution

論文URL

https://arxiv.org/pdf/1703.06211.pdf

2017年6月公開

ポイント

  • deformable convolutionとdeformable RoI poolingを提案
    • 入力特徴マップの値に応じて、演算する画素を動的に変更する
      • 畳み込み層の場合、入力画素位置が変わる
        • Fig1(a)は3x3の通常の畳み込み層を2回行う場合のreceptive fieldの概念図
        • Fig1(b)はdeformable convolutionに変更した場合の概念図。一番上の行の茶色もしくは青の1点の特徴量を計算する際に使用される画素範囲を2行目および3行目の図中の〇で示している。
      • RoI poolingの場合は、poolingするbinの位置が変わる
        • 各binの大きさやbin内の使用画素の配置は変わらない
    • 畳み込みやRoI poolingの際、入力情報に適合して演算範囲が変わることによって、物体の大きさに適した特徴量を抽出できる
      • 通常の畳み込みやRoI poolingでは、物体の大きさに関わらず一定範囲の情報が使用される。
      • semanticな特徴量を抽出できている出力層に近い層の畳み込み層をdeformable convolution層に変更すると効果がある。

deformable convolution

f:id:y_kurashina:20190602005114j:plain
Fig2. 3x3のdeformable convolution

  • Fig2.左上のconvでは、入力特徴量マップの画素毎に畳み込み演算対象画素へのオフセットを計算
    • オフセット量は画素位置のみに依存し、全チャンネル共通
    • 例:3x3の畳み込みであれば、行列方向の2成分×9画素の計18成分のオフセットを計算
  • 得られたオフセットを考慮して畳み込みを行う

<3層の3x3deformation convolutionでの入力画素>

f:id:y_kurashina:20190602012500j:plain
Fig3. 3層の3x3 deformation convolutionでの入力画素

  • 緑の点の特徴量ベクトルを計算するために使用された入力画素が赤い点で示されている。
  • 物体の大きさに即した範囲の画素が使用されている。

deformable RoI pooling

f:id:y_kurashina:20190602010859j:plain
Fig4. 3x3のdeformable RoI pooling

  • Fig4.の全結合層fcでRoI poolingする際の各binのオフセットを計算
    • 論文中には、入力特徴量マップ各画素のscoreマップを考慮するPosition-Sensitive(PS) RoI Poolingへのdeformation適用方法も記載されている。PS RoI Poolingでは全画素のオフセットを計算する必要があるため、上記全結合層が畳み込み層に変更されているが、各binのオフセットを計算していることには変わりない。
  • オフセットを加味した位置のbinでpoolingを行う

<deformable RoI poolingでの3x3のbinの位置>

f:id:y_kurashina:20190602013038j:plain
Fig5. deformable RoI poolingでの3x3のbinの位置

  • 黄枠が入力RoI、赤枠が3x3の各binの位置