NMS操作

NMS操作

NMS(Non Maximum Suppression,非极大值抑制)是目前检测算法常用的后处理操作,在目标检测算法中,我们希望每个目标都有一个预测框可以准确地圈出目标的位置并给出预测类别。检测模型的输出预测框之间可能存在重叠,比如图中针对某一个目标可能存在多个可能是车辆的矩形框,此时我们需要判断哪些框有用,哪些框无用

在这里插入图片描述

想定位一辆车,算法找出了一堆方框,我们需要筛出哪些矩形框是没用的。非极大值抑制的方法是先假设有6个矩形框,根据分类器的分类概率排序,从小到大属于车辆的概率分别为A、B、C、D、E、F。
从最大概率矩形框F开始,依次判断A~E与F的重叠度IoU是否大于某个设定的阈值。假设B、D与F的重叠度超过阈值,则抛弃B、D,保留第一个矩形框F。
从剩下的矩形框A、C、E中,选择概率最大的E,然后判断E与A、C的重叠度,重叠度大于一定的阈值,则抛弃A、C,并标记E是我们保留下来的第二个矩形框。
就这样一直重复上述过程,直到找到所有被保留下来的矩形框。
举个例子:
图1
上述5个预测框已经按照类别置信度从大到小进行排序,首先选置信度最高的bbox1,与剩下非0置信度的预测框进行IoU计算,将IoU大于设定阈值(假设阈值为0.5)的预测框置信度设置为0,比如bbox1和bbox2的IoU大于0.5,则将bbox2的类别置信度置为0;bbox1和bbox3的IoU小于0.5,则不对bbox3进行操作;bbox1和bbox4的IoU大于0.5,则将bbox4的类别置信度置为0;bbox1和bbox5的IoU小于0.5,则不对bbox5进行操作。第一轮过滤后可得以下这个表,标记bbox1不再参与后续的NMS计算了。
图2
接下来选择bbox1之外类别置信度最高的预测框,也就是bbox3,计算bbox3与其他剩余的类别置信度非0的预测框的IoU(不包括bbox1)。假设bbox3与bbox5的IoU大于0.5,则将bbox5的类别置信度置为0,这样就得到了最终过滤后的预测框bbox1和bbox3了。
图3

参考:深度学习与目标检测-涂铭

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值