NMS定義
在一個典型的對象檢測管道中,網絡會在中間層輸出很多候選框-BB(bounding box)。在這個階段輸出的BB大多數都會關聯同一個檢測對象,這個時候需要一個方法來合併這些BB成爲一個對象檢測框,除了FP之外。Non-maximum-suppression(NMS)通過空間距離結合並交比(IOU)完成聚類劃分,對每個cluster只保留得分最高的BB,這種方法中文也被稱着-非最大抑制。
算法實現
NMS有兩種最常見的代碼實現方法
- 貪心算法Greedy
- 最優解算法Optimal
兩種方法實現的僞代碼如下:
Greedy
Optimal
兩種算法提供了不同的解決思路:
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,圖示如下:
下圖是基於soft-NMS實現了對部分重疊對象的成功檢測:
本文轉自
https://medium.com/@yusuken/object-detction-1-nms-ed00d16fdcf9
由gloomyfish翻譯,轉載請註明出處!