- 深度學習高手筆記(卷2):經典應用
- 劉巖(@大師兄)
- 406字
- 2024-09-05 16:45:33
1.1.5 NMS
NMS一般用于在檢測任務的后處理中過濾多余的檢測框。當我們執行一個檢測任務時,不可避免地會出現大量且重復的檢測框以及它們的分類得分。因為一個目標只有一個檢測框,所以這些檢測結果存在很大的冗余,需要對其進行過濾。常見的對檢測框進行過濾的方案有兩個:一個是提高分類得分的閾值,以減少輸出的檢測框;另一個是根據分類得分和檢測框之間的IoU來過濾,也就是這里要介紹的NMS(見圖1.4)。

圖1.4 NMS示意
NMS的計算有如下幾步:
(1)將所有的檢測框按照分類得分進行分類,根據類別(PASCAL VOC是20類非背景類別)將檢測框分成若干個列表;
(2)在每個列表內部,根據分類得分進行降序排序;
(3)從每個列表中的得分最高的檢測框(即bbox1)開始,計算其他檢測框(即bboxk)與得分最高的檢測框之間的IoU,如果IoU大于閾值,則剔除bboxk,并將bbox1從列表中取出;
(4)從去掉bbox1的列表中再選取得分最高的檢測框,重復步驟(3)的操作,直到該列表中所有檢測框都被篩選完畢。