详解目标检测NMS算法发展历程(收藏版)

如题所述


AI领域的探索者们,让我们一起深入理解目标检测中的关键步骤——NMS算法,它如何确保每个对象只被检测一次。想象一下,就像一个精明的筛选者,NMS在众多候选中找出最优秀的选择。


NMS:清理检测的艺术


当执行目标检测任务时,算法可能会对同一目标产生多次检测。NMS(Non-Maximum Suppression)的作用就像一个筛选机制,确保每个检测结果只保留一个最高得分的框。直观地说,就是找到每个类别中最优的框,避免重复。


NMS算法流程详解

NMS的基本流程是这样的:首先,根据置信度选择一个BBox;接着,对于其他BBox,如果它们与选定的BBox重叠度(IoU)过高,这些BBox就会被抑制,不会进入最终结果。这个过程不断重复,直到所有的BBox都被处理,留下的是每个类别中最优的检测框。


虽然NMS的理论描述可能复杂,但实际实现起来相对简单。我们通过一个例子来理解:有两只狗,如何确保只留下两个BBox。NMS会通过比较BBox的置信度和IoU,逐步淘汰那些重叠度较大的框。


评估与优化

NMS的执行效果很大程度上取决于IoU阈值的选择。阈值过高可能导致漏检,因为一些相似的框可能会被误判为冗余;阈值过低则可能增加误报。因此,NMS是一个需要细心调校的环节。


随着研究的深入,出现了如soft-NMS、Weighted-NMS等改进版本。soft-NMS通过分数惩罚机制处理IoU大的框,减轻了遮挡带来的漏检;Weighted-NMS则考虑了分类置信度和IoU的综合影响,提升了精度和召回率。


进一步的创新

例如,IOU-Guided NMS引入了预测框与真实框IOU的预测分支,以解决分类置信度与定位准确度不匹配的问题。而Softer-NMS结合了Weighted-NMS和soft-NMS的优点,通过预测定位方差来优化定位精度。


未来趋势与挑战

尽管NMS在不断优化,但nms-free的方法正在逐渐成为主流。这要求我们继续探索新的策略,考虑框的形状、位置、环境因素以及更全面的评价指标,如DIOU,以达到更精准的检测。



参考资料:

1. Tommy Huang, "物件侦测 Non-Maximum Suppression (NMS) | by Tommy Huang | Medium"

2. "https://mp.weixin.qq.com/s/jLnde0Xms-99g4z16OE9VQ"

3. "Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression"

4. "Soft-NMS -- Improving Object Detection With One Line of Code"

5. "Inception Single Shot MultiBox Detector for object detection"

6. "Acquisition of Localization Confidence for Accurate Object Detection"

7. "Softer-NMS: Rethinking Bounding Box Regression for Accurate Object Detection."

8. "Adaptive NMS: Refining Pedestrian Detection in a Crowd"

9. "Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression"


如果你对NMS算法的发展、优化或应用有更多疑问,欢迎加入讨论!

温馨提示:答案为网友推荐,仅供参考
相似回答