前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >对象检测网络中的NMS算法详解

对象检测网络中的NMS算法详解

作者头像
OpenCV学堂
发布2019-04-29 16:23:34
1.2K0
发布2019-04-29 16:23:34
举报

微信公众号:OpenCV学堂 关注获取更多计算机视觉与深度学习知识 觉得文章有用,请戳底部【好看】支持

01

NMS定义

在一个典型的对象检测管道中,网络会在中间层输出很多候选框proposals(Bounding Box-BB)。在这个阶段输出的BB大多数都会关联同一个检测对象,这个时候需要一个方法来合并这些BB成为一个对象检测框,除了FP之外。Non-maximum-suppression(NMS)通过空间距离结合并交比(IOU)完成聚类划分,对每个cluster只保留得分最高的BB,这种方法中文也被称着-非最大抑制。

02

算法实现

NMS有两种最常见的代码实现方法

- 贪心算法Greedy

- 最优解算法Optimal

两种方法实现的伪代码如下:

Greedy

Optimal

两种算法提供了不同的解决思路:

03

NMS超参数

两个重要的参数是score阈值与overlap阈值,任何低于score阈值的BB将会被拒绝,当两个BB的IOU大于给定的overlap阈值时候,两个检测框将会被聚类分割为同一个对象检测框。Overlap阈值需要平衡精度与抑制效果:

当overlap阈值越大、proposals boxes被压制的就越少,结果就是导致大量的FP(False Positives),进一步导致检测精度下降与丢失(原因在于对象与背景图像之间不平衡比率,导致FP增加数目远高于TP)

当overlap阈值越大、proposals boxes被压制的就越少,结果就是导致大量的FP(False Positives),进一步导致检测精度下降与丢失(原因在于对象与背景图像之间不平衡比率,导致FP增加数目远高于TP)

当overlap阈值越大、proposals boxes被压制的就越少,结果就是导致大量的FP(False Positives),进一步导致检测精度下降与丢失(原因在于对象与背景图像之间不平衡比率,导致FP增加数目远高于TP)

当overlap阈值很小的时候,导致proposals boxes被压制的很厉害,导致recall大幅下降。

当overlap阈值很小的时候,导致proposals boxes被压制的很厉害,导致recall大幅下降。

当overlap阈值很小的时候,导致proposals boxes被压制的很厉害,导致recall大幅下降。

提升:

使用soft-NMS,在soft-NMS中score被乘以负向IOU,图示如下:

下图是基于soft-NMS实现了对部分重叠对象的成功检测:

代码语言:javascript
复制
学易而好难行易而力难耻易而知难
推荐阅读
2018年原创技术文章汇总
OpenCV调用Faster-RCNN对象检测网络
使用OpenVINO ToolKit 实时推断
Selective Search算法与演示
tensorflow模型导出与OpenCV DNN中使用
关注【OpenCV学堂】长按或者扫码二维码即可关注本文为OpenCV学堂编译,未经授权,禁止转载!
✄----------------------------------------原文地址:https://medium.com/@yusuken/object-detction-1-nms-ed00d16fdcf9
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenCV学堂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档