• 非极大抑制(Non-Maximum Suppression)
  • Non-Maximum Suppression for Object Detection in Python

RCNN 和微软提出的 SPP_net 等著名的目标检测模型,在算法具体的实施过程中,一般都会用到 non-maximum suppress(非最大值抑制,抑制即忽略, 也即忽略那些(IoU)高于提供的阈值的) 的机制。

引入 non-maximum suppression 的目的在于:根据事先提供的 score 向量,以及 regions(由不同的 bounding boxes,矩形窗口左上和右下点的坐标构成) 的坐标信息,从中筛选出置信度较高的 bounding boxes。

其基本操作流程如下:

  • 首先,计算每一个 bounding box 的面积:

    • (x1, y1) ⇒ 左上点的坐标,(x2, y2) ⇒ 右下点的坐标;
    • (x2-x1+1)x(y2-y1+1)
  • 根据 scores 进行排序(一般从小到大),将 score 最大的bounding box置于队列,接下来计算其余 bounding box 与当前 score 最大的 bounding box 的 IoU,抑制(忽略也即去除)IoU大于设定阈值的 bounding box;
  • 重复以上过程,直至候选 bounding boxes 为空;
function picked = nms(boxes, overlap_thresh)
% boxes[:, 1:4] 存储着 regions 信息,boxes[:, 5] 存储的则是 scores 向量if isempty(boxes)picked = [];return;
endx1 = boxes[:, 1];
y1 = boxes[:, 2];           % (x1, y1) ⇒ bounding boxes 左上点坐标的集合
x2 = boxes[:, 3];
y2 = boxes[:, 4];           % (x2, y2) ⇒ bounding boxes 右下点坐标的集合
s = boxes[:, 5];            % scores 向量areas = (x2-x1+1).*(y2-y1+1);   % 各个 bounding boxes 的面积
[vals, idx] = sort(s);      % 默认从小到大排序while ~isempty(idx)last = length(idx);i = idx(last);picked = [picked, i];xx1 = max(x1(i), x1(1:last-1));yy1 = max(y1(i), y1(1:last-1));xx2 = min(x2(i), x2(1:last-1));yy2 = min(y2(i), y2(1:last-1));h = max(0, yy2-yy1+1);w = max(0, xx2-xx1+1);inter = w .* h;iou = inter ./ (areas(i) + areas(1:last-1)-inter);I = I(iou <= overlap_thresh);
endend

非极大值抑制(non-maximum suppression)的理解与实现相关推荐

  1. 非极大值抑制(Non-Maximum Suppression,NMS)(转)

    概述 非极大值抑制(Non-Maximum Suppression,NMS),顾名思义就是抑制不是极大值的元素,可以理解为局部最大搜索.这个局部代表的是一个邻域,邻域有两个参数可变,一是邻域的维数,二 ...

  2. 深度学习之非极大值抑制(Non-maximum suppression,NMS)

    非极大值抑制(Non-maximum suppression,NMS)是一种去除非极大值的算法,常用于计算机视觉中的边缘检测.物体识别等. 算法流程 给出一张图片和上面许多物体检测的候选框(即每个框可 ...

  3. 非极大值抑制(non-maximum suppression)的理解

    最近在学习RCNN时看到了非极大值抑制,一开始有点不明白,在网上学习了之后记录一下. 非极大值抑制就是一个寻找局部最大值的过程. 在进行目标检测时一般会采取窗口滑动的方式,在图像上生成很多的候选框,然 ...

  4. 非极大值抑制(Non-maximum suppression)在物体检测领域的应用

    转载自:http://blog.csdn.net/pb09013037/article/details/45477591 一.Nms主要目的 在物体检测非极大值抑制应用十分广泛,主要目的是为了消除多余 ...

  5. 【YOLOv3 NMS】YOLOv3中的非极大值抑制

    文章目录 1 NMS问题由来 2 NMS操作流程 2.1 进行NMS前要先有什么 2.2 NMS流程 3 NMS代码解读 4 感谢链接 1 NMS问题由来 利用YOLOv3网络结构提取到out0.ou ...

  6. Non-Maximum Suppression,NMS非极大值抑制

    Non-Maximum Suppression,NMS非极大值抑制 概述 非极大值抑制(Non-Maximum Suppression,NMS),顾名思义就是抑制不是极大值的元素,可以理解为局部最大搜 ...

  7. 下拉多选择框 实现方式_非极大值抑制Non-Maximum Suppression(NMS)一文搞定理论+多平台实现...

    这是独立于薰风读论文的投稿,作为目标检测模型的拓展阅读,目的是帮助读者详细了解一些模型细节的实现. 薰风说 Non-Maximum Suppression的翻译是非"极大值"抑制, ...

  8. 非极大值抑制(nms)算法详解[python]

    一.起源 目标检测在使用了基于深度学习的端到端模型后效果斐然.目前,常用的目标检测算法,无论是One-stage的SSD系列算法.YOLO系列算法还是Two-stage的基于RCNN系列的算法,非极大 ...

  9. 风机桨叶故障诊断(七) 滑动窗与非极大值抑制NMS

    风机桨叶故障诊断(七)滑动窗与非极大值一直NMS 到目前为止,我已经利用自编码神经网络提取特征后训练得到了BP神经网络(参见:点击打开链接),且在测试样本集上表现不错.下面我们就要应用到实际中来检验算 ...

最新文章

  1. 远场语音识别错误率降低30%,百度提基于复数CNN网络的新技术
  2. 世界地板大会姚红鹏的三问
  3. C++:函数参数不确定时用cstdarg(stdarg.h)
  4. 盐城大数据产业园人才公寓_住在永川大数据产业园人才公寓,是一种怎样的体验?...
  5. R语言观察日志(part21)--包的组件之元数据
  6. 【转】2.1.1 购买阿里云服务器(Ubuntu系统)
  7. HDL的综合和c语言的编译区别,C语言与verilog 的区别及相互转化
  8. python中利用opencv对图片进行缩放
  9. k均值的损失函数_K-Means算法的实现
  10. 笨办法学 Linux 8~11
  11. python爬虫接口_python爬虫之百度API调用方法
  12. 《梦断代码》读书笔记——第3、4、5章
  13. 如何重设<input type = “file”>
  14. 谁有 CaliberRM.2005.Enterprise 版 或CaliberRM.2006 注册码?
  15. JanusGraph概述
  16. 人工智能的利弊?好处和危害都有哪些
  17. element-admin/若依主题风格设计
  18. (论文笔记)NeRV: Neural Representations for Videos
  19. PC端微信的文件夹都是些什么
  20. mysql 开源聊天系统_轻量级的开源企业聊天软件 喧喧聊天(界面很不错)

热门文章

  1. 怎么做游戏打击感浅述
  2. WebConfig主要节点配置总结
  3. Vue组件相关的知识
  4. 已超过了锁请求超时时段_分布式锁:效率与正确性的衡权
  5. Navicat加载缓慢
  6. Python 之面向对象 继承
  7. java实现录屏_java录屏截屏: 用java代码实现的录屏和截图截屏,并在springboot上实现...
  8. java 阻塞队列 BQ_阻塞队列 BlockingQueue的使用(二)
  9. python爬虫大作业爬多少数据_爬虫大作业
  10. Python数据结构实战——队列(Queue)