什么是soft matting方法_NMS、 soft-nms、softer-nms
NMS檢測框合并策略
一.NMS
1.NMS算法過程
NMS主要就是通過迭代的形式,不斷的以最大得分的框去與其他框做IoU操作,并過濾那些IoU較大(即交集較大)的框。
①根據候選框的類別分類概率做排序,假如有4個 BBox ,其置信度A>B>C>D。
②先標記最大概率矩形框A是算法要保留的BBox;
③從最大概率矩形框A開始,分別判斷ABC與D的重疊度IOU(兩框的交并比)是否大于某個設定的閾值(0.5),假設D與A的重疊度超過閾值,那么就舍棄D;
④從剩下的矩形框BC中,選擇概率最大的B,標記為保留,然后判斷C與B的重疊度,扔掉重疊度超過設定閾值的矩形框;
⑤一直重復進行,標記完所有要保留下來的矩形框。
two stage算法,通常在選出BBox有BBox位置(x,y,h,w)和是否是目標的概率,沒有具體類別的概率。因為程序是生成BBox,再將選擇的BBox的feature map做rescale (一般用ROI pooling),然后再用分類器分類。NMS一般只能在CPU計算,這也是two stage相對耗時的原因。
但如果是one stage做法,BBox有位置信息(x,y,h,w)、confidence score,以及類別概率,相對于two stage少了后面的rescale和分類程序,所以計算量相對少。
2.NMS缺點
1、NMS算法中的最大問題就是它將相鄰檢測框的分數均強制歸零(即將重疊部分大于重疊閾值Nt的檢測框移除)。在這種情況下,如果一個真實物體在重疊區域出現,則將導致對該物體的檢測失敗并降低了算法的平均檢測率。
2、NMS的閾值也不太容易確定,設置過小會出現誤刪,設置過高又容易增大誤檢。
3、NMS一般只能使用CPU計算,無法使用GPU計算。
3.假設這是一個函數,那么這個函數輸入輸出是什么,中間操作又是怎么做的
輸入是各種bouding box的位置坐標信息B及其對應分數S,以及閾值threshold,操作流程可見下圖。
二.soft-nms
1.算法流程
NMS算法是略顯粗暴,因為NMS直接將刪除所有IoU大于閾值的框。soft-NMS吸取了NMS的教訓,在算法執行過程中不是簡單的對IoU大于閾值的檢測框刪除,而是降低得分。算法流程同NMS相同,但是對原置信度得分使用函數運算,目標是降低置信度得分.
bi為待處理BBox框,B為待處理BBox框集合,si是bi框更新得分,Nt是NMS的閾值,D集合用來放最終的BBox,f是置信度得分的重置函數。 bi和M的IOU越大,bi的得分si就下降的越厲害。
經典的NMS算法將IOU大于閾值的窗口的得分全部置為0,可表述如下:
論文置信度重置函數有兩種形式改進,一種是線性加權的:
一種是高斯加權形式:
具體代碼實現:
可以明顯看到soft-NMS最重要是更新weight變量的值。采用線性加權時,更新為1-ov,高斯加權時引入sigma參數,而原始NMS算法時,直接取0或1。
2.soft-nms優缺點分析
優點:
1、Soft-NMS可以很方便地引入到object detection算法中,不需要重新訓練原有的模型、代碼容易實現,不增加計算量(計算量相比整個object detection算法可忽略)。并且很容易集成到目前所有使用NMS的目標檢測算法。
2、soft-NMS在訓練中采用傳統的NMS方法,僅在推斷代碼中實現soft-NMS。作者應該做過對比試驗,在訓練過程中采用soft-NMS沒有顯著提高。
3、NMS是Soft-NMS特殊形式,當得分重置函數采用二值化函數時,Soft-NMS和NMS是相同的。soft-NMS算法是一種更加通用的非最大抑制算法。
缺點:
soft-NMS也是一種貪心算法,并不能保證找到全局最優的檢測框分數重置。除了以上這兩種分數重置函數,我們也可以考慮開發其他包含更多參數的分數重置函數,比如Gompertz函數等。但是它們在完成分數重置的過程中增加了額外的參數。
三.softer-nms
1.softer-nms算法思想
論文的motivation來自于NMS時用到的score僅僅是分類置信度得分,不能反映Bounding box的定位精準度,既分類置信度和定位置信非正相關的。NMS只能解決分類置信度和定位置信度都很高的,但是對其它三種類型:“分類置信度低-定位置信度低”,“分類置信度高-定位置信度低”,“分類置信度低-定位置信度高“都無法解決。
論文首先假設Bounding box的是高斯分布,ground truth bounding box是狄拉克delta分布(即標準方差為0的高斯分布極限)。KL 散度用來衡量兩個概率分布的非對稱性度量,KL散度越接近0代表兩個概率分布越相似。
論文提出的KL loss,即為最小化Bounding box regression loss,既Bounding box的高斯分布和ground truth的狄拉克delta分布的KL散度。直觀上解釋,KL Loss使得Bounding box預測呈高斯分布,且與ground truth相近。而將包圍框預測的標準差看作置信度。
論文提出的Softer-NMS,基于soft-NMS,對預測標注方差范圍內的候選框加權平均,使得高定位置信度的bounding box具有較高的分類置信度。
2.網絡結構
如所示Softer-NMS網絡結構,與R-CNN不同的是引入absolute value layer(圖中AbsVal),實現標注方差的預測。
如上圖 所示Softer-NMS的實現過程,其實很簡單,預測的四個頂點坐標,分別對IoU>Nt的預測加權平均計算,得到新的4個坐標點。第i個box的x1計算公式如下(j表示所有IoU>Nt的box):
考慮特殊情況,可以認為是預測坐標點之間求平均值。
3.代碼
softerNMS的開源代碼在https://github.com/yihui-he/softerNMS。
在softer-NMS/detectron/core/test.py有Softer-NMS(配置cfg.STD_NMS), Soft-NMS(配置cfg.TEST.SOFT_NMS.ENABLED)以及NMS的實現
在softer-NMS/detectron/utils/py_cpu_nms.py文件有Softer-NMS的具體實現,加權求平均在47-48行代碼實現:
4.優缺點分析
1、個人認為論文提出的KL loss就是曼哈頓距離,但是通過KL散度去證明,讓數學不太好的同學不明覺厲。
2、論文提出的Softer-NMS,本質是對預測的檢測框加權求平均,為什么要這樣,以及為什么讓box高度重疊?個人認為Softer-NMS的理論沒有在應該什么的地方深入。
總結
以上是生活随笔為你收集整理的什么是soft matting方法_NMS、 soft-nms、softer-nms的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021-10-19大数据学习日志——数
- 下一篇: 软技能-代码之外的生存指南 学习笔记