Confluence: A Robust Non-IoU Alternative to Non-Maxima Suppression in Object Detection
PDF: https://arxiv.org/pdf/2012.00257.pdf PyTorch: https://github.com/shanglianlm0525/PyTorch-Networks PyTorch: https://github.com/shanglianlm0525/CvPytorch
1 概述
- Confluence作為一種優于NMS的非IoU替代方案
- Confluence不像NMS一樣在邊界框保留和抑制方面依賴于最大置信度得分IoU。Confluence通過使用曼哈頓距離,在一個cluster中選取和其他框都是距離最近的那個框,然後去除那些附近的高重合的框。。
- 在YOLOv3、RetinaNet和Mask R-CNN等檢測器上實驗證明,Confluence比NMS性能更強,更可靠!

2 Confluence
A. Manhattan Distance
曼哈頓距離MD,是兩個點之間垂直和水準距離的總和。是以定義任意兩個邊界框之間的接近程度P為
P值比較小表示高度Confluence的邊界框,而P值比較高表示候選框不是由同一物體産生得到的,它們可能隻是在某種程度上重疊,或者完全不相交。
B. Normalization
上面計算的P隻在邊界框大小相似的情況下适用,對于目标及其對應的邊框将差異較大的時候需要歸一化邊界框坐标縮放到0到1之間。
标準化允許通過使任意兩個大的目标内邊界框與任意兩個小的目标間邊界框的關系相比較來區分目标内邊界框和目标間邊界框。
C. Intra-Cluster Retention and Removal
由于所有坐标對都歸一化在0到1之間,是以對于任何一對相交的邊界框的P值都小于2。假設它們屬于同一簇。一旦識别出簇,通過對P值升序排序,找到簇内最優邊界框。保留第n個位置P值最小的邊界框為最Confluence的邊界框。
一旦選擇了最Confluence的邊界框,所有接近值低于預定義門檻值的簇内邊界框将被移除。遞歸地重複這個過程,直到處理完所有的邊界框。
D. Confidence Score Weighting
Confluence通過綜合考慮置信分數c和與之競争的邊界框的P值來評估給定邊界框b的最優性,即
由于c是一個介于0.05和1之間的值(置信度c低于0.05的所有邊界框都不考慮),人為地增大了高置信度框被選出的機率。反之,低置信框的WP值會更大。
E. pseudo-code
步驟:
- 1、對所有的類别進行周遊。
- 2、得到對應類别的所有的檢測框。
- 3、計算對應類别的所有檢測框的兩兩接近度p,計算的時候使用坐标的歸一化。
- 4、周遊對應類别中的每一個檢測框,對每個檢測框,把p值小于2的歸到一個簇裡面,并計算對應的置信度權重接近度。
- 5、找到一個簇裡面具有最小權重p值(最優)的那個框,找到之後,儲存這個框,并且将其從總的框清單裡删除。
- 6、對于其他的所有的框,其接近度小于預設門檻值的全部去除。
- 7、循環處理所有的框。
- PyTorch代碼: