Sleep like a pillow

Deep Learning関係の話。

論文読み Bridging the Gap Between Anchor-based and Anchor-free Detection via Adaptive (ATSS: Adaptive Training Sample Selection)

論文リンク

arxiv.org

実装リンク

github.com

どんなもの?

  • CVPR 2020。
  • 物体検出におけるアンカーベースとアンカーフリーの本質的な違いは、学習サンプルのpositive/negativeを選択方法の違いにあることを示した。
    • アンカーベースのRetinaNetとアンカーフリーのFCOSで、RetinaNetにFCOSで使われている汎用的な工夫を導入するとともに、学習サンプルの選択方法を同じにすることで、性能が一致した。
  • さらに、物体の統計的特徴に応じて学習サンプルのpositive/negativeを自動的に選択するAdaptive Training Sample Selection (ATSS)という学習方法を提案。
  • MS COCOにおいて、既存の物体検出手法にATSSを導入することでAP 50.7%を達成。

技術のキモ

Difference Analysis of Anchor-based and Anchor-free Detection

  • 物体検出におけるアンカーベースとアンカーフリーの本質的な違いを調査。
  • アンカーベースのRetinaNetとアンカーフリーのFCOSを比較。
  • 両者の条件を揃えるために以下を変更。
    • RetinaNetのアンカーを正方形に限定 (1:3, 3:1の長方形のアンカーを使わない)→RetinaNet (#A=1)と表記。
    • FCOSはRetinaNetよりも新しい手法なので、FCOSで使われている以下の汎用的な工夫をRetinaNetに導入。
      • GroupNorm: バッチサイズが小さいときの性能がBatchNormよりも良い正規化層。
      • GIoULoss: IoUをlossとして使えるように一般化したもの。
      • In GT Box: positiveサンプルをGTのBBox内に限定。
      • Centerness: BBoxの中心点からの距離を推定するブランチを追加。
      • Scaler: FPNの各スケールの特徴マップからの回帰値に学習可能なスカラー値を掛け合わせる。
  • しかし、まだギャップがある(FCOS: 37.8%、RetinaNet: 37.0%)。
  • その理由はpositiveサンプルの各スケールの特徴マップへの割り当て方法にあることを発見。
    • RetinaNetでは、positiveサンプルを各特徴マップのスケール関係なく、とにかくIoUが最も高いアンカーに割り当てるのに対して、FCOSでは各特徴マップのスケールに合わせて、割り当てるpositiveサンプルの大きさを制限する。
  • RetinaNetの割り当て方法をFCOSと同じ方法にすることで精度がほぼ一致した。

Adaptive Training Sample Selection

  • アンカーのpositive/negativeを選択するための閾値を自動で算出する方法。
  • まず各スケールについて、GTのBBoxの中心座標とアンカーの中心座標のL2距離が近い上位k個のアンカーを選択する。
  • 次に選択されたアンカーとGTのBBoxのIoUの平均mgと標準偏差vgを算出する。
  • GTのBBoxとのIoUが、閾値tg = mg + vg以上のアンカーをpositiveとし、それ以外をnegativeとする。

有効性の検証

  • RetinaNet(#A=1)とFCOSのそれぞれにATSSを導入することで精度が向上した。