搜尋意圖: 如果你在找「非極大值抑制 是什麼」或「非極大值抑制 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。
TL;DR: 非極大值抑制 (NMS) 是一種在物件偵測中用於消除重複框的技術,它會保留置信度最高的框,並抑制與之高度重疊的其他框。
實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。
下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。
你有沒有看過物件偵測模型,明明只是一隻貓,卻框出好幾個重疊框? 你可以把它想成把重複的框整理掉,只留下分數最高、最像真的那一個。 NMS 的工作就是清掉重複偵測,讓結果乾淨,不會一個物件被框十次。 這也讓它很適合先拿到可用答案,再慢慢把精度往上推。
容易混淆
NMS vs IoU NMS:後處理流程,用來刪重複框 IoU:衡量兩個框重疊多少的指標 最關鍵的區別:先看它是在比什麼,再看它怎麼做。
NMS vs Soft-NMS NMS:超過閾值就直接壓掉 Soft-NMS:不是刪除,而是慢慢降分數 最關鍵的區別:先看它是在比什麼,再看它怎麼做。
記住這句就好
重疊太多的框,只留最好的。
實際案例
車輛偵測 模型同時框到同一台車的前半和後半,NMS 會保留最可信的框。
人臉偵測 多人臉場景裡,重疊框很多,NMS 讓畫面不會亂掉。
算法與應用
NMS 通常先依分數排序,再逐一比較 IoU,將高度重疊的框刪掉。 閾值設太高,可能留下太多重複框;設太低,又可能誤刪正確框。 它是物件偵測裡最典型的後處理步驟之一。
中英對照與常見說法
| 說法 | 出現場合 |
|---|---|
| 非極大值抑制 | 台灣正式用語 |
| 非极大值抑制 | 簡體寫法 |
| Non-Maximum Suppression | 英文原名 |
| NMS | 標準縮寫 |
| 非最大抑制 | 少見變體,意思相同 |
演算法本身只有四步
物件偵測模型對同一個目標常常吐出好幾個高度重疊的框。NMS 的工作就是每個目標只留一個。
第一步,把所有候選框依信心分數由高到低排序。
第二步,取出分數最高的框,放進最終結果。
第三步,計算剩下每個框跟它的 IoU(交集面積除以聯集面積),IoU 超過門檻的全部刪掉,因為它們被視為在框同一個目標。
第四步,回到第二步,處理剩下的框,直到沒有框為止。
這個流程要對每個類別分開做,否則一隻狗身上的框會把牠旁邊的貓的框刪掉。
門檻怎麼選,以及兩個典型失敗
IoU 門檻常見設在 0.5 到 0.7 之間。
門檻太低:只要稍微重疊就刪,密集場景(人群、車陣)裡真正相鄰的兩個目標會被誤刪,變成漏檢。
門檻太高:同一個目標留下多個框,重複偵測。
這個兩難是 NMS 的本質限制:它只看框的幾何重疊,不知道底下是不是同一個物體。
Soft-NMS 是常見的改良:不直接刪掉重疊的框,而是按照 IoU 大小把它的分數調低。這樣密集場景裡被壓低的框仍有機會保留,通常能提升幾個百分點的 mAP,而且不需要重新訓練。
其他方向包括 DIoU-NMS(把兩個框中心點的距離也納入判斷)與直接讓模型學會不要輸出重複框的做法。DETR 這類端到端偵測架構用集合預測搭配匈牙利匹配,訓練時就強制一個目標對一個預測,因此完全不需要 NMS,這是它常被強調的特點之一。
情境判斷
Q1(直覺題): 模型對同一隻狗畫了四個框,你想保留最好的那個,該用什麼?
Q2(判斷題): 如果框與框幾乎不重疊,NMS 還會刪很多嗎?
常見問題
NMS 會不會把真實框刪掉?
有可能,所以閾值要調得剛好。
它只用在物件偵測嗎?
主要是,但只要有重疊候選要篩選的任務,都可能借用這個概念。
Soft-NMS 比較好嗎?
常常更平滑,但速度和實作會稍微複雜。