非极大值抑制-DL


非极大值抑制(Non-Maximum Suppression,NMS)是目标检测中用于去除冗余检测框的一种重要算法,以下是关于它的详细介绍:

算法原理

  • 在目标检测任务中,模型会对每个目标生成多个检测框,这些检测框可能有不同的置信度得分,并且会存在大量重叠的情况。NMS的目的就是在这些检测框中筛选出最具代表性的、置信度最高的检测框,同时抑制那些与它重叠度较高的冗余检测框。
  • 算法首先根据检测框的置信度得分进行排序,选择得分最高的检测框作为基准框,然后计算其他检测框与该基准框的交并比(IoU)。如果某个检测框与基准框的IoU大于预先设定的阈值,则认为该检测框是冗余的,将其抑制(即从检测结果中移除)。接着,在剩余的检测框中再次选择得分最高的作为新的基准框,重复上述过程,直到所有检测框都被处理完毕。

具体实现步骤

  1. 输入处理:输入为模型输出的一系列检测框及其对应的置信度得分和类别标签。
  2. 排序:按照置信度得分从高到低对检测框进行排序。
  3. 循环处理:从排序后的第一个检测框开始,依次将其作为基准框,与后面的检测框计算IoU。
  4. 抑制判断:对于每个与基准框计算IoU的检测框,如果IoU大于设定的阈值,则将其标记为抑制状态。
  5. 输出结果:将未被抑制的检测框作为最终的检测结果输出。

在目标检测中的应用

  • 提高检测精度:通过去除大量的冗余检测框,NMS能够显著减少误检和重复检测的情况,使得最终的检测结果更加准确和清晰,提高了目标检测的精度。
  • 加速推理过程:在目标检测模型的推理阶段,减少了需要处理的检测框数量,从而加快了整个推理过程的速度,提高了检测的实时性。

局限性及改进

  • 局限性:传统NMS基于固定的IoU阈值进行抑制,当目标之间存在相互遮挡、紧密排列等复杂情况时,可能会出现误抑制或漏抑制的问题。
  • 改进:为了解决这些问题,一些改进的NMS算法被提出,如Soft-NMS、Adaptive-NMS等。Soft-NMS不是直接将重叠度高的检测框抑制掉,而是根据重叠度对其置信度得分进行衰减,从而在一定程度上保留了可能被误抑制的检测框。Adaptive-NMS则根据目标的密度等情况自适应地调整IoU阈值,在不同的场景下都能取得较好的抑制效果。