非极大值抑制(Non-max suppression)
来源:Coursera吴恩达深度学习课程
目前为止的目标检测中可能出现的问题是你的算法可能对同一个对象做出多次检测。非极大值抑制(non-max suppression)这个方法可以确保你的算法对每个对象只检测一次,我们讲一个例子。
假设你需要在这张图片里检测行人和汽车,你可能会在上面放个19×19网格,理论上这辆车只有一个中点,所以它应该只被分配到一个格子里,左边的车子也只有一个中点,所以理论上应该只有一个格子做出有车的预测。
但是当你实际在运行算法时,会出现上图的情况,可能好几个格子会认为有车。
当你在361个格子上都运行一次图像检测和定位算法,最后可能会对同一个对象做出多次检测,所以非极大值抑制做的就是清理这些检测结果。这样一辆车只检测一次,而不是每辆车都触发多次检测。具体做法如下图:
首先看概率最大的那个,这个例子(右边车辆)中p_c是0.9,然后就说这是最可靠的检测(most confident detection),所以我们就用高亮标记,表明这里找到了一辆车。这么做之后,非极大值抑制就会逐一审视剩下的矩形,所有和这个最大的边框有很高交并比(Intersection over union),高度重叠的其他边界框,那么这些输出就会被抑制。所以这两个矩形(p_c分别是0.6和0.7),和淡蓝色矩形重叠程度很高,所以会被抑制,变暗,表示它们被抑制了。
接下来,逐一审视剩下的矩形,找出概率最高,p_c最高的一个,在这种情况下是0.8,如上图,我们就认为这里检测出一辆车(左边车辆),然后非极大值抑制算法就会去掉其他loU值很高的矩形。所以现在每个矩形都会被高亮显示(highlighted)或者变暗(darkens),如果你直接抛弃变暗的矩形,那就剩下高亮显示的那些,这就是最后得到的两个预测结果。
所以这就是非极大值抑制(non-max suppression),非最大值意味着你只输出概率最大的分类结果,但抑制很接近,但不是最大的其他预测结果,所以这方法叫做非极大值抑制。
下面来看看算法的细节。假设这里只做汽车检测。
现在要实现非极大值抑制,你可以做的:
①第一件事是,去掉所有p_c小于某个阈值的边界框,这里假设是0.6,所以只是抛弃所有低概率(low probability)的边界框。
②接下来使用非极大值抑制,while循环的第一步你就一直选择概率p_c最高的边界框,取一个边界框,让它高亮显示,这样做出有一辆车的预测。
③while循环的第二步是上一步变暗的那些边界框以及和高亮标记的边界重叠面积很高的那些边界框抛弃掉。
到目前为止,Andrew只介绍了算法检测单个对象(a single object)的情况,如果你尝试同时检测三个对象,比如说行人、汽车、摩托,那么输出向量就会有三个额外的分量(three additional components)。事实证明,正确的做法是独立进行三次非极大值抑制,对每个输出类别都做一次。
这就是非极大值抑制,如果你能实现我们说过的目标检测算法,你其实可以得到相当不错的结果。
说明:记录学习笔记,如果错误欢迎指正!转载请联系我。
非极大值抑制(Non-max suppression)相关推荐
- 非极大值抑制(Non-Maximum Suppression,NMS)(转)
概述 非极大值抑制(Non-Maximum Suppression,NMS),顾名思义就是抑制不是极大值的元素,可以理解为局部最大搜索.这个局部代表的是一个邻域,邻域有两个参数可变,一是邻域的维数,二 ...
- 深度学习之非极大值抑制(Non-maximum suppression,NMS)
非极大值抑制(Non-maximum suppression,NMS)是一种去除非极大值的算法,常用于计算机视觉中的边缘检测.物体识别等. 算法流程 给出一张图片和上面许多物体检测的候选框(即每个框可 ...
- 非极大值抑制(Non-maximum suppression)在物体检测领域的应用
转载自:http://blog.csdn.net/pb09013037/article/details/45477591 一.Nms主要目的 在物体检测非极大值抑制应用十分广泛,主要目的是为了消除多余 ...
- 非极大值抑制(non-maximum suppression)的理解与实现
非极大抑制(Non-Maximum Suppression) Non-Maximum Suppression for Object Detection in Python RCNN 和微软提出的 SP ...
- 非极大值抑制(non-maximum suppression)的理解
最近在学习RCNN时看到了非极大值抑制,一开始有点不明白,在网上学习了之后记录一下. 非极大值抑制就是一个寻找局部最大值的过程. 在进行目标检测时一般会采取窗口滑动的方式,在图像上生成很多的候选框,然 ...
- Non-Maximum Suppression,NMS非极大值抑制
Non-Maximum Suppression,NMS非极大值抑制 概述 非极大值抑制(Non-Maximum Suppression,NMS),顾名思义就是抑制不是极大值的元素,可以理解为局部最大搜 ...
- 下拉多选择框 实现方式_非极大值抑制Non-Maximum Suppression(NMS)一文搞定理论+多平台实现...
这是独立于薰风读论文的投稿,作为目标检测模型的拓展阅读,目的是帮助读者详细了解一些模型细节的实现. 薰风说 Non-Maximum Suppression的翻译是非"极大值"抑制, ...
- 风机桨叶故障诊断(七) 滑动窗与非极大值抑制NMS
风机桨叶故障诊断(七)滑动窗与非极大值一直NMS 到目前为止,我已经利用自编码神经网络提取特征后训练得到了BP神经网络(参见:点击打开链接),且在测试样本集上表现不错.下面我们就要应用到实际中来检验算 ...
- 锚框、交并比和非极大值抑制(tf2.0源码解析)
锚框.交并比和非极大值抑制(tf2.0源码解析) 文章目录 锚框.交并比和非极大值抑制(tf2.0源码解析) 一.锚框生成 1.锚框的宽高 2.锚框的个数 3.注意点(★★★) 4.tf2.0代码 二 ...
- 锚框的实现-非极大值抑制预测边界框
大家好,我是阿林.由于各种原因,阿林的组会告吹了.所以阿林的锚框的最后一期非极大值抑制预测边界框提前发布. 我们来回顾一下前两期的内容,并和第三期做一个总结吧. 第一期 我们通过提取出整张图的高宽,利 ...
最新文章
- 二十二、redis持久化之AOF
- 网站哪些细节做不好会导致网站的跳出率过高?
- 事务的隔离级别演示-避免脏读,演示不可重复读发生
- oracle调度不见了,Oracle作业job 没有自动调度起来
- c语言灯塔案例求塔低数,C++:有一个8层灯塔,每层所点灯数都等于该层上一层的两倍,一共有765盏灯,求塔底的灯数...
- 南大用“推荐算法”分宿舍666,新生配好舍友美滋滋
- html script 放置位置,script标签应该放在HTML哪里,总结分享
- 神奇的applycall
- java 日志技术_java 日志技术汇总(log4j , Commons-logging,.....)
- php curl exec ch,PHP curl_exec函数的用法实例详解
- matlab单层感知器画线,MATLAB神经网络学习(1):单层感知器
- 知识整理2019清北学堂提高储备D1
- 如何成功发布一个MSMQ的Windows服务
- 国家计算机房机柜接地图集,中国铁塔机房及室外机柜标准图集.pdf
- 软考软件设计师下午真题-面向对象的程序设计与实现-装饰设计模式(2012年上半年试题六))Java代码讲解
- (窗口隐藏工具 3.40)自动隐藏指定的应用窗口及托盘图标
- UE4中的Spline用法
- html使用阿里图标库(iconfont)制作字体图标
- 使用Postfix和Dovecot部署邮件系统
- 电动汽车有序充电调度优化
热门文章
- 襟翼是什么?——浅述飞控襟翼系统
- 基于python flask的网上商城源码 mysql数据库
- 通信原理及matlab仿真实验指导书,通信原理实验指导书——2015.pdf
- js常用分割取字符串的方法
- 计算机类603高数,拟录取ING ,谈谈603高等数学
- R语言学习笔记之数据清洗与整理(三)
- js 页面跳转并传参
- esxi 环境 西数硬盘测试软件,西数硬盘原厂检测工具(Western Digital Data LifeGuard Diagnostics)...
- 老杨推荐|初级到高级网工学习渠道最全汇总(建议收藏)
- python自动抓取局域网文件_python使用tcp实现局域网内文件传输