NMS_非极大值抑制(转)
NMS(non maximum suppression),中文名非极大值抑制,在很多计算机视觉任务中都有广泛应用,如:边缘检测、目标检测等。
这里主要以人脸检测中的应用为例,来说明NMS,并给出Matlab示例程序。
人脸检测的一些概念
(1) 绝大部分人脸检测器的核心是分类器,即给定一个尺寸固定图片,分类器判断是或者不是人脸;
(2)将分类器进化为检测器的关键是:在原始图像上从多个尺度产生窗口,并resize到固定尺寸,然后送给分类器做判断。最常用的方法是滑动窗口。
以下图为例,由于滑动窗口,同一个人可能有好几个框(每一个框都带有一个分类器得分)
而我们的目标是一个人只保留一个最优的框:
于是我们就要用到非极大值抑制,来抑制那些冗余的框: 抑制的过程是一个迭代-遍历-消除的过程。
(1)将所有框的得分降序排列,选中最高分及其对应的框:
(2)遍历其余的框,如果和当前最高分框的重叠面积(IOU)大于一定阈值,我们就将框删除。
(3)从未处理的框中继续选一个得分最高的,重复上述过程。
下面给出MATLAB下的快速NMS代码,并带有详细的注释:
1 %% NMS:non maximum suppression 2 function pick = nms(boxes,threshold,type) 3 % boxes: m x 5,表示有m个框,5列分别是[x1 y1 x2 y2 score] 4 % threshold: IOU阈值 5 % type:IOU阈值的定义类型 6 7 % 输入为空,则直接返回 8 if isempty(boxes) 9 pick = []; 10 return; 11 end 12 13 % 依次取出左上角和右下角坐标以及分类器得分(置信度) 14 x1 = boxes(:,1); 15 y1 = boxes(:,2); 16 x2 = boxes(:,3); 17 y2 = boxes(:,4); 18 s = boxes(:,5); 19 20 % 计算每一个框的面积 21 area = (x2-x1+1) .* (y2-y1+1); 22 23 %将得分升序排列 24 [vals, I] = sort(s); 25 26 %初始化 27 pick = s*0; 28 counter = 1; 29 30 % 循环直至所有框处理完成 31 while ~isempty(I) 32 last = length(I); %当前剩余框的数量 33 i = I(last);%选中最后一个,即得分最高的框 34 pick(counter) = i; 35 counter = counter + 1; 36 37 %计算相交面积 38 xx1 = max(x1(i), x1(I(1:last-1))); 39 yy1 = max(y1(i), y1(I(1:last-1))); 40 xx2 = min(x2(i), x2(I(1:last-1))); 41 yy2 = min(y2(i), y2(I(1:last-1))); 42 w = max(0.0, xx2-xx1+1); 43 h = max(0.0, yy2-yy1+1); 44 inter = w.*h; 45 46 %不同定义下的IOU 47 if strcmp(type,'Min') 48 %重叠面积与最小框面积的比值 49 o = inter ./ min(area(i),area(I(1:last-1))); 50 else 51 %交集/并集 52 o = inter ./ (area(i) + area(I(1:last-1)) - inter); 53 end 54 55 %保留所有重叠面积小于阈值的框,留作下次处理 56 I = I(find(o<=threshold)); 57 end 58 pick = pick(1:(counter-1)); 59 end
转载于:https://www.cnblogs.com/byteHuang/p/7732837.html
NMS_非极大值抑制(转)相关推荐
- Non-Maximum Suppression,NMS非极大值抑制
Non-Maximum Suppression,NMS非极大值抑制 概述 非极大值抑制(Non-Maximum Suppression,NMS),顾名思义就是抑制不是极大值的元素,可以理解为局部最大搜 ...
- 【目标检测系列】非极大值抑制(NMS)的各类变体汇总
关注上方"深度学习技术前沿",选择"星标公众号", 技术干货,第一时间送达! [导读]前面已经先后为大家详细介绍过了目标检测领域的基础知识:[目标检测基础积累] ...
- 非极大值抑制_非极大值抑制(Non-Maximum Suppression)
文章作者:Tyan 博客:noahsnail.com | CSDN | 简书 1. 什么是非极大值抑制 非极大值抑制,简称为NMS算法,英文为Non-Maximum Suppression.其思想是搜 ...
- 3.7 非极大值抑制-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
←上一篇 ↓↑ 下一篇→ 3.6 交并比 回到目录 3.8 Anchor Boxes 非极大值抑制 (Non-max Suppression) 到目前为止你们学到的对象检测中的一个问题是,你的算法可能 ...
- array python 交集_NMS原理(非极大值抑制)+python实现
1.先解释什么叫IoU(intersection-over-union).IoU表示(A∩B)/(A∪B) 即交并比. 非极大值抑制:图一 --> 图二 ,剔除同一个目标上的重叠建议框,最终一个 ...
- sklearn逻辑回归 极大似然 损失_收藏!攻克目标检测难点秘籍二,非极大值抑制与回归损失优化之路...
点击上方"AI算法修炼营",选择加星标或"置顶" 标题以下,全是干货 前面的话 在前面的秘籍一中,我们主要关注了模型加速之轻量化网络,对目标检测模型的实时性难点 ...
- 非极大值抑制(Non-maximum suppression)在物体检测领域的应用
转载自:http://blog.csdn.net/pb09013037/article/details/45477591 一.Nms主要目的 在物体检测非极大值抑制应用十分广泛,主要目的是为了消除多余 ...
- NMS 非极大值抑制
非极大值抑制(non maximum suppression,NMS),顾名思义就是抑制不是极大值的元素,搜索局部的极大值. 定位一个车辆时,算法可能会找出一堆候选框,为了从中找出最佳候选框,非极大值 ...
- yunyang tensorflow-yolov3 NMS:non maximum suppression 非极大值抑制方法
文章目录 NMS: non maximum suppression 非极大值抑制的背景 非极大值抑制的步骤 NMS: non maximum suppression 非极大值抑制的背景 生成器对一张图 ...
最新文章
- 美国多个城市禁止、我国却蓬勃发展的人脸识别是什么样子?
- jvm--动态对象年龄判定
- Flink从入门到精通100篇(十一)-Java SPI 机制在 Flink SQL 中的应用
- tp的echo输出字符串后换行
- 精讲Java NIO
- 为什么map对象不能使用stl中的sort函数
- Java:在Runnable中处理RuntimeException
- PyTorch模型部署:pth转onnx跨框架部署详解+代码
- hadoop hdfs空间满后重新启动不了
- bzoj:3224: Tyvj 1728 普通平衡树
- SQLyog客户端 导入sql文件乱码的解决方法
- 使用 JavaScript File API 实现文件上传
- Json API接口数据生成
- NUAAccst计算机网络第四章网络层复习
- 技术员 Ghost Win 10(x86/x64)装机版/纯净版 201808
- 国产手持式频谱分析仪中性价比最高
- 关于CSS居中显示的总结
- F - Ubiquitous Religions
- chrome主页被修改(Google Chrome主页被hao123劫持解决办法)
- 生物群落数据分析最常用的统计方法:回归和混合效应模型、多元统计分析技术及结构方程等数量分析方法
热门文章
- mysql 数据库合并命令_mysql命令整合
- vue使用高德地图画电子围栏_Vue.js 中使用高德地图定位及渲染地图
- 西电计算机达标测试挂科保研,西电竞赛保研
- showmount -e (CVE-1999-0554) NFS漏洞解决方案
- swish 好还是relu好_筒灯暗装好还是明装好?
- wx_login.php,wx.login 获取 用户的openid
- python有必要看数据结构_盘点 Python 10 大常用数据结构(上篇)
- 斜挎包长度到哪里合适_电视背景墙的位置在哪里比较合适?进来你都知道了
- Java集合——概述
- Spring Cloud 一:注册中心