非极大值抑制(non maximum suppression,NMS),顾名思义就是抑制不是极大值的元素,搜索局部的极大值。

定位一个车辆时,算法可能会找出一堆候选框,为了从中找出最佳候选框,非极大值抑制的方法是:先假设有6个矩形框,根据分类器的类别分类概率做排序,假设从小到大属于车辆的概率 分别为A、B、C、D、E、F:

  1. 从最大概率矩形框F开始,分别判断A~E与F的重叠度IOU是否大于某个设定的阈值;

  2. 假设B、D与F的重叠度超过阈值,那么就扔掉B、D;并标记第一个矩形框F,是我们保留下来的。

  3. 从剩下的矩形框A、C、E中,选择概率最大的E,然后判断E与A、C的重叠度,重叠度大于一定的阈值,那么就扔掉;并标记E是我们保留下来的第二个矩形框。

就这样一直重复,找到所有被保留下来的矩形框。

计算方法:

def nms(dets, thresh):x1 = dets[:, 0]y1 = dets[:, 1]x2 = dets[:, 2]y2 = dets[:, 3]scores = dets[:, 4]areas = (x2 - x1 + 1) * (y2 - y1 + 1)order = scores.argsort()[::-1]keep = []while order.size > 0:i = order[0]keep.append(i)xx2 = np.minimum(x2[i], x2[order[1:]])xx1 = np.maximum(x1[i], x1[order[1:]])yy2 = np.minimum(y2[i], y2[order[1:]])yy1 = np.maximum(y1[i], y1[order[1:]])w = np.maximum(0.0, xx2 - xx1 + 1)h = np.maximum(0.0, yy2 - yy1 + 1)inter = w * hovr = inter / (areas[i] + areas[order[1:]] - inter)inds = np.where(ovr <= thresh)[0]order = order[inds + 1]return keep

NMS 非极大值抑制相关推荐

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

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

  2. 深度学习自学(三):NMS非极大值抑制总结

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

  3. 目标窗口检测算法-NMS非极大值抑制

    1. NMS(non maximum suppression)的定义和算法步骤 NMS(non maximum suppression),中文名非极大值抑制,在很多计算机视觉任务中都有广泛应用,如:边 ...

  4. 目标检测中的LOU(交并比)和NMS(非极大值抑制)代码实现

    1.LOU, 两个box框的交集比上并集,示意图如下所示: 代码如下所示: #假设box1的维度为[N,4] box2的维度为[M,4] def Lou(box1, box2):N = box1.si ...

  5. 目标检测的Tricks | 【Trick9】nms非极大值抑制处理(包括变体merge-nms、and-nms、soft-nms、diou-nms等介绍)

    如有错误,恳请指出. 用这篇博客记录一下nms,也就是非极大值抑制处理,算是目标检测后处理的一个难点. 在训练阶段是不需要nms处理的,只有在验证或者是测试阶段才需要将预测结果进行非极大值抑制处理,来 ...

  6. yolov3 NMS非极大值抑制

    基本原理:对于Bounding Box的列表B及其对应的置信度S,采用下面的计算方式.选择具有最大score的检测框M,将其从B集合中移除并加入到最终的检测结果D中.通常将B中剩余检测框中与M的IoU ...

  7. 【概念梳理】NMS 非极大值抑制

    写在最前 本文对网上关于 NMS 的解释整理了一下 一.原理 YOLO在最后的一个步骤就是对 SxSx(Bx5+C) 个向量进行非极大值抑制(Non-max suppression),一开始不是太明白 ...

  8. NMS——非极大值抑制

    NMS(non maximum suppression),中文名非极大值抑制,在很多计算机视觉任务中都有广泛应用,如:边缘检测.目标检测等. 这里主要以人脸检测中的应用为例,来说明NMS,并给出Mat ...

  9. R-CNN-减少region proposals的数量:NMS(非极大值抑制)

    在R-CNN算法第一阶段中,selective search会产生2000个region proposals.经过svm打分后,一个物体可能就有多个框.如下图: 但是我们需要一个物体只有一个最优框(相 ...

最新文章

  1. 武安高中计算机学院那个好,河北邯郸最好的5所高中,前两所学霸如云,看看有你的母校没?...
  2. 安卓开发仿微信图片拖拽_使用Android 模仿微信朋友圈图片拖拽返回
  3. HTTP请求报文和HTTP响应报文(转载)
  4. 用JAVA开发网站,需要学哪些呢?
  5. windows系统里懒人的福音,如何实现不按住ctrl实现文件多选
  6. 介绍了如何取成员函数的地址以及调用该地址
  7. Catlike Coding网站文章解析 -- 1.Procedural Grid
  8. Linux进阶之路————组管理与权限管理
  9. 【苹果cms10 Maccmsv10 站群深度定制版 开发日志】 数据渲染模块
  10. c# 扩展方法奇思妙用变态篇一:由 Fibonacci 数列引出 “委托扩展” 及 “递推递归委托”...
  11. 牛客小白月赛9 A签到(乘法逆元)
  12. Android-【报错】java.lang.ClassCastException: .MainActivity cannot be cast to java.lang.Runnable
  13. 禁忌搜索算法学习笔记
  14. ant design pro模板_ant design pro超详细入门教程
  15. 【C++】Visual Studio教程(十一) -解决方案和项目
  16. kdbp是什么文件_DVF文件扩展名 - 什么是.dvf以及如何打开? - ReviverSoft
  17. 全网最全,接口自动化测试怎么做的?精通接口自动化测试详解
  18. 自学Java (day6),面向对象
  19. 最大实体原则_在原则实体中使用特征
  20. 如何将VScode作成便携版,且设置环境与本地电脑相同(包含VScode扩展)

热门文章

  1. 【Java】5.3 成员变量和局部变量
  2. 2021 版 Spring Boot 基础知识复习手册(2w字,建议收藏)
  3. MyBatis动态SQL,写SQL更爽
  4. 能挣钱的,开源 SpringBoot 商城系统,功能超全,超漂亮,真TMD香!
  5. 【struts2+hibernate+spring项目实战】Jfreechart工具使用(ssh项目实战)
  6. 蓝桥杯java第八届第六题--最大公共子串
  7. Android系统主题总结和使用
  8. Oracle中的序列 sequence 用法
  9. [转]opensuse 更新源
  10. P1031 均分纸牌(经典贪心)