手撕NMS,numpy实现目标检测的常用模块NMS

目标检测领域的一个重要组件,NMS,非极大值抑制,用于在检测领域剔除同一目标的多重框标注,图示效果如下:
在这里插入图片描述
NMS过后
在这里插入图片描述
图片为网络上查找的,侵删。
首先,来了解一下NMS,NMS非极大值抑制,即一个目标有多个框的时候,我们进行筛选,选取最好的框,筛选掉那些重复标注的框。那么它是怎么筛选的呢?
首先,一个目标在检测过程中,往往会有许多的预测框出现,这些框的score不同,坐标位置也不同。NMS首先会选取分数最大的框作为基准,然后以此框为基准计算剩下的所有的框与其的IOU,IOU可以参考我的上一篇博客
https://blog.csdn.net/qq_43088746/article/details/97422361
然后关键的部分来了,我们对IOU进行筛选,若IOU大于我们所设定的阈值,则我们认为,此框与基准框检测的为同一目标,为重复检测,我们就将其抑制,若IOU低于我们设定的阈值,我们就进行下一步的循环,取出经过第一轮所筛选后的框,仍然取出剩下的框的分数最高的box,作为新的基准框,对剩下的框再次计算IOU,仍然遵循上述的IOU大于则抑制,小于等于则进入下一轮循环,直至框的数量为0.
这样说可能仍然有些难以理解。
我们举个例子会更好理解。假设我们预测人脸出现了七个框:
分数分别为[0.9,0.8,0.7,0.6,0.5,0.4,0.3]
首先我们取出分数为0.9的框,作为基准框,剩余的六个框依次与其进行IOU计算
计算的IOU假设为[0.7,0.8,0.6,0.4,0.6,0.2]
假设我们设定的IOU阈值thresh为0.5,

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值