Soft-NMS——解決目標遮擋問題 (目標檢測)(one/two-stage)(深度學習)(ICCV 2017)

論文:《 Improving Object DetectionWith One Line of Code 》

論文下載:https://arxiv.org/abs/1704.04503

論文代碼:https://github.com/bharatsingh430/soft-nms


算法解讀:

NMS(Non maximum suppression)是在object detection算法中必備的後處理步驟,目的是用來去除重複框,也就是降低誤檢(false positives)。NMS算法的大致過程可以看原文這段話:First, it sorts all detection boxes on the basis of their scores. The detection box M with the maximum score is selected and all other detection boxes with a significant overlap (using a pre-defined threshold) with M are suppressed. This process is recursively applied on the remaining boxes.

Figure1

那麼傳統的NMS算法存在什麼問題呢?可以看Figure1。在Fiugre1中,檢測算法本來應該輸出兩個框,但是傳統的NMS算法可能會把score較低的綠框過濾掉(如果綠框和紅框的IOU大於設定的閾值就會被過濾掉),導致只檢測出一個object(一個馬),顯然這樣object的recall就比較低了。 
可以看出NMS算法是略顯粗暴(hard),因爲NMS直接將和得分最大的box的IOU大於某個閾值的box的得分置零,那麼有沒有soft一點的方法呢?這就是本文提出Soft NMS。那麼Soft-NMS算法到底是什麼樣呢?簡單講就是:An algorithm which decays the detection scores of all other objects as a continuous function of their overlap with M. 換句話說就是用稍低一點的分數來代替原有的分數,而不是直接置零。另外由於Soft NMS可以很方便地引入到object detection算法中,不需要重新訓練原有的模型,因此這是該算法的一大優點。

Figure2

Figure2是Soft NMS算法的僞代碼。首先是關於三個輸入B、S、Nt,在FIgure2中已經介紹很清楚了。D集合用來放最終的box,在boxes集合B非空的前提下,搜索score集合S中數值最大的數,假設其下標爲m,那麼bm(也是M)就是對應的box。然後將M和D集合合併,並從B集合中去除M。再循環集合B中的每個box,這個時候就有差別了,如果是傳統的NMS操作,那麼當B中的box bi和M的IOU值大於閾值Nt,那麼就從B和S中去除該box;如果是Soft NMS,則對於B中的box bi也是先計算其和M的IOU,然後該IOU值作爲函數f()的輸入,最後和box bi的score si相乘作爲最後該box bi的score。


接下來得重點就是確定函數f()。 
首先NMS算法可以用下面的式子表示: 

式1


爲了改變NMS這種hard threshold做法,並遵循iou越大,得分越低的原則(iou越大,越有可能是false positive),自然而然想到可以用下面這個公式來表示Soft NMS: 

式2


但是上面這個公式是不連續的,這樣會導致box集合中的score出現斷層,因此就有了下面這個Soft NMS式子(也是大部分實驗中採用的式子): 
 

式3


這個式子滿足了:A continuous penalty function should have no penalty when there is no overlap and very high penalty at a high overlap.

 

實驗結果: 

Table1

Table1是在MS-COCO數據集上的結果對比。表中的G表示上面連續的Soft NMS公式,L表示上面不連續的Soft NMS公式,從實驗對比可以看出二者之間的差別並不大。對於G類型的Soft NMS,參數a取0.5,對於L類型的Soft NMS,參數Nt取0.3(感覺這個參數取的有點偏低)。 

Table2


Table2是在VOC 2007數據集上的結果對比。 

Table3


Table3是一個很不錯的對比圖。左邊一半是NMS,右邊一半是Soft NMS。在NMS部分,相同Ot條件下(Ot較小的情況下),基本上Nt值越大,其AP值越小,這主要是因爲有越多的重複框沒有過濾掉。 
 

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