NMS(非极大值抑制)
来源:互联网 发布:淘宝大学新手开店 编辑:程序博客网 时间:2024/05/12 06:37
NMS(非极大值抑制)
- 作用
- MATLAB实现
1、作用
在物体检测非极大值抑制应用十分广泛,主要目的是为了消除多余的框,找到最佳的物体检测的位置。在物体检测过程中,图片中的同一个物体,可能识别出来多个选框。这时需要使用非极大值抑制进行选优,去掉重复的框。
如下图所示是它的直观表达:
如上图所示,一共有5个识别为人的框,每一个框有一个置信率。 现在需要消除多余的:
1、首先按置信率排序: 0.98, 0.83, 0.0.81, 0.75, 0.67
2、取最大0.98的框为一个物体框
3、剩余4个框中,去掉与0.98框重叠率大于0.6(可以另行设置),则保留0.81, 0.67两个框
4、重复上面的步骤,直到没有框了,0.81为一个框
5、选出来的为: 0.98, 0.81
两个矩形框重叠率的计算方法:
如上图所示,矩形的左上角坐标为x1, y1, 右下角坐标为x2, y2,两个矩形的面积分别为A, B。
1、取两个矩形左上角坐标的最大值x1_max, y1_max
2、取两个矩形右下角坐标的最小值x2_min, y2_min
3、重叠区域的宽w为max(0, x2_min - x1_max),高h为max(0, y2_min - y1_max)
4、所以重叠率为:
w×hA+B−w×h
2、MATLAB实现
%% NMS:non maximum suppressionfunction pick = nms(boxes,threshold,type)% boxes: m x 5,表示有m个框,5列分别是[x1 y1 x2 y2 score]% threshold: IOU阈值% type:IOU阈值的定义类型 % 输入为空,则直接返回 if isempty(boxes) pick = []; return; end % 依次取出左上角和右下角坐标以及分类器得分(置信度) x1 = boxes(:,1); y1 = boxes(:,2); x2 = boxes(:,3); y2 = boxes(:,4); s = boxes(:,5); % 计算每一个框的面积 area = (x2-x1+1) .* (y2-y1+1); %将得分升序排列 [vals, I] = sort(s); %初始化 pick = s*0; counter = 1; % 循环直至所有框处理完成 while ~isempty(I) last = length(I); %当前剩余框的数量 i = I(last);%选中最后一个,即得分最高的框 pick(counter) = i; counter = counter + 1; %计算相交面积 xx1 = max(x1(i), x1(I(1:last-1))); yy1 = max(y1(i), y1(I(1:last-1))); xx2 = min(x2(i), x2(I(1:last-1))); yy2 = min(y2(i), y2(I(1:last-1))); w = max(0.0, xx2-xx1+1); h = max(0.0, yy2-yy1+1); inter = w.*h; %不同定义下的IOU if strcmp(type,'Min') %重叠面积与最小框面积的比值 o = inter ./ min(area(i),area(I(1:last-1))); else %交集/并集 o = inter ./ (area(i) + area(I(1:last-1)) - inter); end %保留所有重叠面积小于阈值的框,留作下次处理 I = I(find(o<=threshold)); end pick = pick(1:(counter-1));end
0 0
- 非极大值抑制(NMS)
- 非极大值抑制(NMS)
- NMS(非极大值抑制)
- 非极大值抑制(NMS)
- NMS非极大值抑制
- 非极大值抑制 NMS
- 非极大值抑制NMS
- 非极大值抑制算法 (NMS)
- 非极大值抑制算法 NMS
- NMS——非极大值抑制
- NMS——非极大值抑制
- NMS——非极大值抑制
- 非极大值抑制(Non-maximum suppression, NMS)
- 非极大值抑制(Non-maximum suppression, NMS)
- NMS——非极大值抑制
- NMS——非极大值抑制
- 非极大值抑制——NMS实例
- NMS——非极大值抑制
- glut中定时器的使用
- Android逆向笔记之smali代码分析
- test
- KDD 2011 最佳工业论文中机器学习的实践方法-翻译
- linux进程后台运行方法nohup、setsid、&介绍
- NMS(非极大值抑制)
- tcp通讯_登陆与注册
- JAVA学习之递归基础
- JavaScript 巧用for循环
- javascript如何每秒钟切换一张图片
- 解读 DetermineServicingStackVersion
- 我对 Activity 的理解
- 标准下载网址
- C#委托