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

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

Towards Accurate One-Stage Object Detection with AP-Loss

スポンサーリンク


f:id:y_kurashina:20190724000930p:plain
Fig1. AP Lossの概念図

論文URL

http://openaccess.thecvf.com/content_CVPR_2019/papers/Chen_Towards_Accurate_One-Stage_Object_Detection_With_AP-Loss_CVPR_2019_paper.pdf
2019年のCVPRで公開

ポイント

  • 1stage detectorでは、オブジェクトと背景のボックス数の極端なアンバランスを如何に克服するかが問題となる。このアンバランスに対処する新たな損失関数AP Lossを提案
  • 物体検出の典型的な評価指標であるAverage Precision (AP) をベースに損失関数を設計
    • APは微分不可能かつ非凸関数のため、APそのものを損失関数にはできない
    • 各ボックスに対し計算される各クラスの推論確率をmini batch単位で順位付けし、全正解オブジェクトの順位が背景より高くなるようモデルを学習する
      • 正解オブジェクトの順位が背景より高いか低いかと言う分類問題として定式化することにより、順位が間違っているボックスの特徴量ベクトルの修正量をperceptronと同様の手法で計算でき、その結果、モデル全体のパラメータをbackpropagationで更新できる
  • RetinaNet500でCOCO test-devセットを評価した結果、Focal LossをAP Lossに変更することでAPが3%改善

AP Loss \mathcal{L} _ {AP}

  • \mathcal{L} _ {AP} = 1 - AP = 1 - \frac{1}{|\mathcal{P}|} \sum _ {i \in \mathcal{P}} \frac{rank ^ + (i)}{rank(i)}\qquad (1)
    • \mathcal{P} : 正解オブジェクトを含むボックス番号の集合
    • rank ^ + : 正解オブジェクト内での確率順位
    • rank : 全ボックス内での確率順位
  • Heavisideの階段関数H(x)を用いて(1)式を変形
    • \mathcal{L} _ {AP} = 1 - \frac{1}{|\mathcal{P}|} \sum _ {i \in \mathcal{P}} \frac{1 + \sum _ {j \in \mathcal{P} , j \neq i} H(x _ {ij})}{1+ \sum _ {j \in \mathcal{P} , j \neq i} H(x _ {ij}) + \sum _ {j \in \mathcal{N}} H(x _ {ij})}\qquad (2)
      • \mathcal{N} : 背景ボックス番号の集合
      • x _ {ij} : i番ボックスとj番ボックスのクラス推論スコアの差
      • 正解オブジェクトより順位の高い背景の数(= \sum _ {j \in \mathcal{N}} H(x _ {ij})>0)が増えた場合だけでなく、正解オブジェクト内での順位が低い(\sum _ {j \in \mathcal{P} , j \neq i} H(x _ {ij})が小さい)場合もAP Lossは大きくなる
        • 推論確率が低い正解オブジェクトに対するパラメータ更新量が大きくなる
  • 補足
    • 論文中では(2)式をさらに変形している
    • Heavisideの階段関数を以下の式に変形し、0前後の階段関数のギャップを緩めることで学習が安定し、性能も改善
      • f(x) = \left\{
\begin{array}{}
0, \qquad\qquad\qquad x \lt -\delta \\
\frac{x}{2\delta} + 0.5, \qquad -\delta \le x \le \delta \\
1, \qquad\qquad\qquad \delta \lt x
\end{array}
\right.
    • APをinterpolated APとなるよう補正

性能評価

f:id:y_kurashina:20190725011621p:plain


スポンサーリンク