你有沒有看過物件偵測模型,明明只是一隻貓,卻框出好幾個重疊框? 你可以把它想成把重複的框整理掉,只留下分數最高、最像真的那一個。 NMS 的工作就是清掉重複偵測,讓結果乾淨,不會一個物件被框十次。 這也讓它很適合先拿到可用答案,再慢慢把精度往上推。
容易混淆
NMS vs IoU NMS:後處理流程,用來刪重複框 IoU:衡量兩個框重疊多少的指標 最關鍵的區別:先看它是在比什麼,再看它怎麼做。
NMS vs Soft-NMS NMS:超過閾值就直接壓掉 Soft-NMS:不是刪除,而是慢慢降分數 最關鍵的區別:先看它是在比什麼,再看它怎麼做。
記住這句就好
重疊太多的框,只留最好的。
實際案例
車輛偵測 模型同時框到同一台車的前半和後半,NMS 會保留最可信的框。
人臉偵測 多人臉場景裡,重疊框很多,NMS 讓畫面不會亂掉。
算法與應用
NMS 通常先依分數排序,再逐一比較 IoU,將高度重疊的框刪掉。 閾值設太高,可能留下太多重複框;設太低,又可能誤刪正確框。 它是物件偵測裡最典型的後處理步驟之一。
情境判斷
Q1(直覺題): 模型對同一隻狗畫了四個框,你想保留最好的那個,該用什麼?
非極大值抑制。
Q2(判斷題): 如果框與框幾乎不重疊,NMS 還會刪很多嗎?
不會,因為它主要針對重疊很高的候選框。
常見問題
NMS 會不會把真實框刪掉?
有可能,所以閾值要調得剛好。
它只用在物件偵測嗎?
主要是,但只要有重疊候選要篩選的任務,都可能借用這個概念。
Soft-NMS 比較好嗎?
常常更平滑,但速度和實作會稍微複雜。