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

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

Soft-NMS -- Improving Object Detection With One Line of Code

スポンサーリンク


f:id:y_kurashina:20191123220111p:plain
Fig1. 物体検出におけるNMSの問題事例

論文URL

https://arxiv.org/pdf/1704.04503.pdf
2017年8月公開

ポイント

  • Faster-RCNNやYolo等の多くの物体検出モデルでは、物体候補領域が重複した場合、NMS(Non Maximum Suppression)によりスコアの最も高い領域のみ残し、それ以外の領域を削除している。
    • NMSにより、物体候補領域に挙がってしまった背景領域を効率的に削除できる
    • Fig1のように、本当に複数の物体(馬)が重なっている場合は、NMSによりスコアの低い領域(後ろの馬)が削除されてしまう。
  • NMSの問題を改善するSoft-NMSを提案
    • NMSの様にスコアの低い重複領域を削除するのではなく、重複領域のスコアを小さくする。
    • スコアを小さくした後でも、物体検出閾値よりスコアが大きければ、その領域は物体領域として残ることになり、Fig1のように物体が重なっている状況に対応できるようになる。

Soft-NMS

  • 重複領域のスコアの減少方法として、線形関数とガウス関数を提案
    • 変数定義
      • \mathcal{M} : 最大スコアの物体候補領域
      • b _ i : i番目物体候補領域
      • s _ i : i番目物体候補領域のスコア
    • 線形関数
      • s _ i = s _ i (1 - iou(\mathcal{M} , b _ i)) , iou(\mathcal{M} , b _ i) \ge N _ t
        • N _ t : 論文では0.3
    • ガウス関数
      • s _ i = s _ i e ^ {-\frac{iou(\mathcal{M}, b _ i) ^ 2}{\sigma}}
        • \sigma : 論文では0.5 (Ablation studyを除く)
      • ガウス関数の方が線形関数よりわずかに性能が良い
    • \mathcal{M}を各Soft-NMSの処理ごとに取り除き、全ての物体候補領域を\mathcal{M}として逐次Soft-NMS処理を行う。

スポンサーリンク