1. 原理與目標
-
cv::dnn::NMSBoxes
基于傳統的非極大值抑制(NMS)算法,通過交并比(IoU)篩選重疊框,保留置信度最高的框,抑制冗余檢測。支持變體如 Soft-NMS(通過降低分數而非直接抑制)。
核心邏輯:排序置信度 → 逐輪選擇最高分框 → 抑制與其重疊的框。 -
NMS-free
完全避免使用傳統NMS,通常通過模型設計或替代后處理策略減少冗余預測。例如:-
端到端模型(如 DETR):通過 Transformer 和二分圖匹配直接生成唯一預測。
-
關鍵點檢測(如 CenterNet):基于物體中心點或角點預測,自然減少重疊框。
-
稀疏預測設計:通過損失函數約束輸出稀疏性(如 YOLOv9 的變體)。
-
2. 應用場景
-
cv::dnn::NMSBoxes
-
適用于依賴密集候選框的傳統檢測模型(如 YOLO、Faster R-CNN、SSD)。
-
需要后處理去重的場景,尤其是通用目標檢測任務。
-
-
NMS-free
-
適用于端到端模型或關鍵點檢測框架(如 DETR、CenterNet)。
-
密集物體檢測(如人群計數)或對實時性要求高的場景。
-
3. 性能對比
維度 | cv::dnn::NMSBoxes | NMS-free |
---|---|---|
速度 | 后處理耗時隨框數量增加而上升 | 無NMS步驟,可能更快(依賴模型設計) |
準確性 | 在密集場景下可能抑制有效框(漏檢) | 減少密集漏檢,但對模型訓練要求更高 |
實現復雜度 | 簡單(OpenCV 一行調用) | 復雜(需模型結構設計或替代后處理邏輯) |
泛化性 | 廣泛支持各類檢測模型 | 需特定模型結構配合 |
4. 優缺點
-
cv::dnn::NMSBoxes
-
優點:成熟、易用,與現有框架無縫集成。
-
缺點:依賴人工閾值調優,密集場景性能下降。
-
-
NMS-free
-
優點:避免閾值敏感性問題,適合密集檢測;可能減少計算延遲。
-
缺點:模型設計復雜,訓練數據需求高(如 DETR 需更長訓練周期)。
-
5. 典型代表
-
使用 NMS 的模型:YOLO 系列、Faster R-CNN、RetinaNet。
-
NMS-free 模型:DETR(Transformer)、CenterNet(關鍵點)、YOLOv9-nmsfree 變體。
總結
-
選擇 cv::dnn::NMSBoxes:若使用傳統檢測模型,追求快速實現和成熟方案。
-
選擇 NMS-free:若需端到端部署優化、密集場景檢測,或愿接受更高模型設計復雜度。
兩者并非絕對對立,部分 NMS-free 方法可能結合輕量后處理(如聚類),而傳統模型也可通過改進 NMS(如 Soft-NMS)提升性能。實際選擇需權衡任務需求、硬件條件及開發資源。