为什么用非极大值抑制(NMS)算法

为什么用非极大值抑制(NMS)算法

非极大值抑制应用很多,如在边缘检测、目标检测中均有用到,起初能够理解算法本身逻辑,但是不明白为啥用NMS而不是直接用阈值算法呢?在这以YOLO1网络预测阶段为例进行说明~

首先直给原因因为一个预测框不止预测一个物体而是预测多个物体所以要重复进行这个过程将该框预测物体都预测出来。后面也可以不看哈

其次详细说明原因:YOLO1在预测阶段,输入是4484483的图像,经过卷积层,全连接层最后输出是77(2*5+20)d的张量

1)首先将图像分成77个grid cell,每个grid cell都有2个bounding box(预测框),输出7730,每个预测框有5个参数(x,y,w,h,置信度),然后每个grid cell 是每个类别的条件概率(也就是假设它包含一个物体的前提下,数据集中是20个),所以最后的张量:77*(25+20)=77*30

将多个预测框筛选过滤,非极大值抑制,最后只剩下少数个预测框及分类,具体过程:
a) 对于每个grid cell:前5个值为第1个预测框的位置信息,接着5个为第2个预测框的位置信息,每个预测框都有
一个20个的物体概率,全概率计算是预测框的置信度(p(object))该grid cell 的条件概率(p(oj|condition))
7
7*(25+220),获取到了多个框的图,对于每个bbox而言,都有20个物体的全概率(该预测框的置信度其所在的grid cell 的20物体的条件概率)
b) 过滤是指:每个预测框某类的物体预测概率小于某个概率过滤掉:每个bbox就有一个20维向量的概率;比方说预测狗的概率就有7
72个,小于某个值就置0,
c) 非极大值抑制:IoU大于某个值就被过滤掉对于狗的概率一共7
7*2个,0.5,0.3,0.2,…后面的都跟最大的相比,大于阈值的都被干掉,因为IoU大的话可以认为是与最大概率所对应框在识别一个物体 IoU大于0.5都为0,小于的都留下,后面依次都与第二大的相比,(因为第二大可能是另一狗的IoU)以此类推,最后剩下非0概率的框,这里的IoU是指后面概率与最大概率的框的IoU交并比。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值