yolov10如何去掉非极大值抑制(NMS)的?

传统一对多分配机制无法避免的nms

最近发布的yolov10在推理过程中消除了非极大值抑制机制对部署推理延迟的不利影响,我们来看看他是怎么做的吧。

首先说一说非极大值抑制NMS,我们先来看一张图

484720d9ad624befb3491c8ede58d021.png

图中有黄绿蓝三个框,但是只有一只检测主体猫,也就是一个GT(ground truth),这就是一对多的标签分配方式,一个物体对应了多个预测框。很显然我们需要去除其中的两个重叠框。

假设三个框对应的置信度分别为:黄色0.7,蓝色0.8,绿色0.9

nms第一步:根据置信度排序,设置置信度阈值为0.75,则将低于阈值的黄色框删除,剩下两个框

dfdb81bd80794b8bafd533051fe98763.png

完成第一步后,已经将低置信度的框去除了,剩下的继续进行iou重叠筛选

第二步,设置候选框, 算法将剩余所有框中置信度最大的作为候选框(注意,一张图中剩余的框也可能包含不同类的框,本文仅以单个物体为例),图中候选框为绿色

第三步,设置一个iou阈值,然后计算候选框与其他框的iou,得到其他框相对于候选框的iou值,若某个框iou值大于设定的阈值,则大概率这个框跟候选框描述的是同一个物体,我们移除所有大于阈值的框,图中需要移除的是蓝色

9c71dc82e641455da0e5261e0c128748.png

 

第四步,对于多个目标的结果,第三步去除重叠框之后,还剩下其他目标框,我们继续重复选择候选框,去除重叠框的步骤,直到处理完所有候选框(没有其他目标框了),算法结束

以上就是nms的过程,去除低置信度的框--去除重叠框,这个算法最大的问题就是去除重叠框时,容易对真实重叠的物体造成误判。一般这个过程由cpu完成,所以造成推理延迟。

 

YOLOV10的双分配机制

说完了nms,我们来看看yolov10如何避开这个机制吧。

yolov10引入了一种双分配策略。

我们上面提到之前的yolo采用的一对多的分配策略,一个真实标签对应多个预测框,这种方式训练效果好但是无法避免nms机制

实际上还有一种分配策略,一对一分配,一个真实标签对应一个预测框,但是这种分配方式监督信号弱,容易导致收敛慢并且效果差

双分配策略就是在训练的时候构建两个预测头,同时使用两种分配策略进行训练,使用一致匹配度量来降低两个预测头的监督信号差距,使得一对一分配预测头也获得充足的监督信号

在推理的时候仅使用一对一分配预测头来进行推理,这样来避免nms机制,同时效果又比较好

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值