對象檢測網絡中的NMS算法實現詳解

NMS定義

在一個典型的對象檢測管道中,網絡會在中間層輸出很多候選框-BB(bounding box)。在這個階段輸出的BB大多數都會關聯同一個檢測對象,這個時候需要一個方法來合併這些BB成爲一個對象檢測框,除了FP之外。Non-maximum-suppression(NMS)通過空間距離結合並交比(IOU)完成聚類劃分,對每個cluster只保留得分最高的BB,這種方法中文也被稱着-非最大抑制。
對象檢測網絡中的NMS算法實現詳解

算法實現

NMS有兩種最常見的代碼實現方法

  • 貪心算法Greedy
  • 最優解算法Optimal
    兩種方法實現的僞代碼如下:
    Greedy
    對象檢測網絡中的NMS算法實現詳解
    Optimal
    對象檢測網絡中的NMS算法實現詳解

兩種算法提供了不同的解決思路:對象檢測網絡中的NMS算法實現詳解

NMS超參數

兩個重要的參數是score閾值與overlap閾值,任何低於score閾值的BB將會被拒絕,當兩個BB的IOU大於給定的overlap閾值時候,兩個檢測框將會被聚類分割爲同一個對象檢測框。Overlap閾值需要平衡精度與抑制效果:

  • 當overlap閾值越大、proposals boxes被壓制的就越少,結果就是導致大量的FP(False Positives),進一步導致檢測精度下降與丟失(原因在於對象與背景圖像之間不平衡比率,導致FP增加數目遠高於TP)
  • 當overlap閾值很小的時候,導致proposals boxes被壓制的很厲害,導致recall大幅下降。

提升:

使用soft-NMS,在soft-NMS中score被乘以負向IOU,圖示如下:對象檢測網絡中的NMS算法實現詳解

下圖是基於soft-NMS實現了對部分重疊對象的成功檢測:
對象檢測網絡中的NMS算法實現詳解

本文轉自

https://medium.com/@yusuken/object-detction-1-nms-ed00d16fdcf9

由gloomyfish翻譯,轉載請註明出處!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章