返回

NMS技术述略:理念、改良与活用实例

人工智能

NMS的起源与本质:精简化目标检测

NMS技术最早作为目标检测中的一种关键后处理算法而被提出,其宗旨在于从海量的检测候选框中,挑选出最终的最优结果,以提高检测的精度与速度。NMS基于一个简单而有效的假设:在同一张图片中,一个目标只会被检测出一组边界框,且其中必然存在一个与真实框最为匹配的候选框。因此,NMS通过抑制那些冗余的、非最优的边界框,以确保最终输出中仅有准确的目标检测结果。

NMS的传统形式:贪婪算法的应用

最初的NMS算法遵循贪婪策略,其运作过程大致如下:

  1. 初始化: 从所有检测候选框中,选择置信度最高的边界框作为种子框。
  2. 迭代抑制: 以种子框为中心,计算与之重叠程度较高的其他候选框。
  3. 非极大值筛选: 在重叠候选框中,保留置信度最高的那个,其余全部剔除。
  4. 重复步骤2和3: 直到所有候选框都被处理完毕。

这个过程本质上是一个逐层递进的贪婪搜索,它简单易懂,却难以保证找到最优解。

NMS的瓶颈:贪婪的代价

传统NMS算法的局限性在于,它只考虑了当前候选框与种子框之间的重叠程度,而忽略了候选框与其他候选框之间的交互关系。这会导致以下问题:

  • 误检: 当多个目标彼此紧密相邻时,NMS可能会将它们视为同一个目标,从而导致误检。
  • 漏检: 当目标的形状不规则或存在遮挡时,NMS可能会抑制掉正确的结果,从而导致漏检。
  • 不稳定: NMS算法的输出结果对候选框的排序顺序敏感,这使得算法的稳定性较差。

NMS的改进与升华:优化思路与方法百花齐放

为了解决传统NMS算法的局限性,研究人员提出了多种优化思路和改进方法,包括:

  • 软NMS: 相较于传统NMS的硬阈值抑制,软NMS采用平滑的衰减函数对候选框的置信度进行调整,从而避免了过度抑制的情况。
  • 加权NMS: 在NMS的决策过程中,为每个候选框赋予不同的权重,以反映其重要性或置信度。
  • NMS后处理: 在NMS算法结束后,对输出结果进行进一步的处理,例如聚类或分组,以提高算法的鲁棒性。

值得一提的是,随着深度学习的发展,一些新的目标检测算法已经不再使用传统的NMS算法,而是采用更先进的NMS替代方案,例如:

  • 后处理NMS: 这种NMS算法将目标检测任务划分为两个阶段:第一阶段生成候选框,第二阶段对候选框进行分类和回归,然后通过后处理步骤去除冗余的候选框。
  • 无需NMS的目标检测算法: 一些先进的目标检测算法,例如YOLOv3和CenterNet,能够直接输出最终的目标检测结果,而无需使用NMS进行后处理。

NMS的应用:目标检测之外的广阔天地

除了在目标检测领域,NMS技术还被广泛应用于其他计算机视觉任务中,例如:

  • 人体姿态估计: NMS可以用于抑制人体姿态估计中冗余的关节点检测结果,从而提高估计的准确性。
  • 语义分割: NMS可以用于抑制语义分割中冗余的像素分类结果,从而提高分割的精度和速度。
  • 实例分割: NMS可以用于抑制实例分割中冗余的目标检测结果,从而提高分割的质量和效率。

结语:NMS的演进与展望

NMS技术自诞生以来,经历了从贪婪算法到优化方法、再到深度学习替代方案的演变历程。随着计算机视觉领域的发展,NMS技术也将在更多领域和任务中发挥重要作用。对于想要深入学习NMS技术的研究人员和工程师来说,掌握其原理、优化策略和应用场景至关重要。