論文読み TOOD: Task-aligned One-stage Object Detection
論文リンク
実装リンク
どんなもの?
- CVPR 2021。
- 物体検出では、分類と位置推定の2つのサブタスクを学習するが、2つのタスクに最適なアンカーが空間的にずれていることがある。
- 例えば、下図の上段のようにATSSでは、ダイニングテーブルの分類スコアが最大のアンカー(上段中央)と、IoUが最大のアンカー(上段右)の位置が大きくずれている。
- その問題に対応するために、2つのタスクの最適アンカーを明示的に近づけるための、TOOD (Task-aligned One-stage Object Detection)を提案。
- T-Head (Task-aligned Head): タスク固有の特徴と、2つのタスクに相互に作用する特徴をバランス良く学習するヘッド。
- TAL (Task Alignment Learning): サンプル割り当てとロスを工夫した学習方法。
- TOODによって、下図の下段のように、分類スコアが最大のアンカーと、IoUが最大のアンカーが一致する。
- MS COCOにおいて、既存の物体検出手法にTOODを導入することでAP 51.1%を達成。
- 後発の物体検出手法でも採用されている。
技術のキモ
Task-aligned Head (T-Head)
- 上図の(a)が既存の物体検出手法のヘッドで、(b)がTOODで採用されているT-Head。(c)は(b)のTAPの詳細。
- (a)既存の物体検出手法のヘッドは、分類と位置推定のヘッドが完全に分かれていると、2つのタスクに相互に作用する特徴を学習できない。そのため、(b)T-Headは最終層まで2つのタスクのヘッドを共通化し、そこから(c)TAPによって各タスクに必要な特徴を抽出するという構造になっている。
TAP
- TAPの構造を詳しく見ていく。
- ①の構造で、まずヘッドの複数(論文では6)の特徴マップをチャネル方向でconcatし、Squeeze&Excitationのようなチャネル方向のattentionによって、2つのタスクに相互に作用する特徴($X^{task}_{1 \sim N}$)を抽出する。それにconvとreluをかけて、分類用のマップ(P)と位置推定用のマップ(B)を得る。
- ②の構造で、2つのタスクの最適アンカーを明示的に近づける。ヘッドの複数の特徴マップをチャネル方向でconcatし、convとreluとsigmoidをかけて分類用のアラインメントマップ(M)と位置推定用のアラインメントマップ(O)を得る。次に、図中のAの部分で、分類用のマップについてはPとMを要素ごとに掛け合わせて平方根をとる。位置推定用のマップについては、Oをオフセットと考えて、Bの各ピクセル位置にオフセットを足したサブピクセル位置の値を、バイリニアサンプリングする(実装ではdeform_convを利用している)。
Task Alignment Learning (TAL)
- TALは学習時のアンカーの選択方法の工夫であるTask-aligned Sample Assignmentと、ロスの工夫であるTask-aligned Lossから構成されている。
Task-aligned Sample Assignment
- 各アンカーの分類スコア(s)とGTのbboxとのIoU(u)から、以下の指標(t)を定義する。
- αとβはハイパーパラメータで、論文ではそれぞれ1.0と6を採用している。
- 学習時はtの値が上位m個のアンカーをpositiveサンプルとして選択し、それ以外のアンカーをnegativeサンプルとして選択する。
Task-aligned Loss (分類)
- GTのbboxとのIoUが大きいアンカーの分類スコアを明示的に増加させ、逆にIoUが小さいアンカー(=tが小さい)の分類スコアは減少させるために、BCEロスを計算する際の二値ラベルをpositiveなアンカーに関しては、1からtに置き換える。
- そのままtに置き換えると、値が小さすぎたりするため、tの最大値が各GT bboxに紐づくアンカー内で最大のIoU(u)に等しくなるように正規化したt^を使用する。
- さらにFocal Lossとも組み合わせた以下のロスを使用する。
Task-aligned Loss (位置推定)
- IoUが小さいアンカーは学習に悪影響を及ぼすことが多いため、GIoUロス(https://uiiurz1.hatenablog.com/entry/2019/04/30/091305)をt^で重みづけした以下のロスを使用する。
- 全体のロスは分類ロスと位置推定ロスを単純に足し合わせたものを使用する。
学習初期はATSSを使用
- 論文には(多分)記載されてないが、著者実装を見ると学習初期(4epochまで)はATSS(ロスも含めて)を使用している。
- おそらく、学習初期はすべてのアンカーのtが低くて学習が安定しないため。
有効性の検証
- TOODは既存の物体検出手法よりも高い精度を示している。
- T-HeadとTALはそれぞれ単体でも精度向上の効果があるが、組み合わせて使うことでさらに効果的になる。
- 定性評価。T-HeadとTALを使うことで、分類と位置推定の最適アンカーの位置(それぞれ赤と緑)が近づいている。
- tを計算する際のハイパーパラメータα、βのablation study。そこまでセンシティブではない。