首页 > 资讯 > > 正文

非极大值抑制(NMS)算法详解_环球今热点

来源:博客园 2023-05-25 15:32:41


(资料图)

NMS(non maximum suppression)即非极大值抑制,广泛应用于传统的特征提取和深度学习的目标检测算法中。NMS原理是通过筛选出局部极大值得到最优解。在2维边缘提取中体现在提取边缘轮廓后将一些梯度方向变化率较小的点筛选掉,避免造成干扰。在三维关键点检测中也起到重要作用,筛选掉特征中非局部极值。在目标检测方面,无论是One-stage的SSD系列算法、YOLO系列算法还是Two-stage的基于RCNN系列的算法,非极大值抑制都是其中必不可少的一个组件,可以将较小分数的输出框过滤掉,同样,在三维基于点云的目标检测模型中亦有使用。

在现有的基于anchor的目标检测算法中,都会产生数量巨大的候选矩形框,这些矩形框有很多是指向同一目标,因此就存在大量冗余的候选矩形框。非极大值抑制算法的目的正在于此,它可以消除多余的框,找到最佳的物体检测位置。

IoU(Intersection over Union) :定位精度评价公式。相当于两个区域交叉的部分除以两个区域的并集部分得出的结果。IoU各个取值时的情况展示,一般来说,这个 Score > 0.5 就可以被认为一个不错的结果了。

IOU计算:

如何计算IoU(交并比)

选取两个矩形框左顶角的横,纵坐标的最大值,x21,y21;选取两个矩形框右下边角的横纵坐标的最小值,x12,y12;

交集面积计算:\[{Area(A \cap B)} = |x12 - x21| * |y12 - y21|\]并集面积计算:\[{Area(A \cup B)} = |x11 - x12| * |y11 - y12| + |x21 - x22| * |y21 - y22| - {Area(A \cap B)}\]计算IOU公式\[IoU = \frac {Area(A \cap B)} {Area(A \cup B)}\]算法流程如下:将所有框的得分排序,选中最高分及其对应的框遍历其余的框,如果和当前最高分框的重叠面积(IOU)大于一定阈值(常用的值为0.5左右),我们就将框删除。(为什么要删除,是因为超过设定阈值,认为两个框的里面的物体属于同一个类别,比如都属于狗这个类别。我们只需要留下一个类别的可能性框图即可。)从未处理的框中继续选一个得分最高的,重复上述过程。代码如下:
#!/usr/bin/env python3# -*- coding: utf-8 -*-"""NMS function(Non-Maximum Suppression,  抑制不是极大值的元素)        psedocode:            1. choose the highest score element  a_1  in set B, add a_1 to the keep set C            2. compute the IOU between the chosen element(such as a_1) and others elements in set B            3. only keep the nums  at set B whose IOU value is less than thresholds (can be set as >=0.5), delete the nums similiar                to a_1(the higher IOU it is , the more interseciton between a_1 and it will have)            4. choose the highest score value a_2 left at set B  and add a_2 to set C            5. repeat the 2-4 until  there is nothing in set B, while set C is the NMS value set"""import numpy as np# boxes表示人脸框的xywh4点坐标+相关置信度boxes = np.array([[100, 100, 210, 210, 0.72],                  [250, 250, 420, 420, 0.8],                  [220, 220, 320, 330, 0.92],                  [230, 240, 325, 330, 0.81],                  [220, 230, 315, 340, 0.9]])def py_cpu_nms(dets, thresh):    # dets:(m,5)  thresh:scaler    x1 = dets[:, 0]  # [100. 250. 220. 230. 220.]    y1 = dets[:, 1]  # [100. 250. 220. 240. 230.]    x2 = dets[:, 2]  # [210. 420. 320. 325. 315.]    y2 = dets[:, 3]  # [210. 420. 330. 330. 340.]    areas = (y2 - y1 + 1) * (x2 - x1 + 1)    scores = dets[:, 4]  # [0 1 3 4 2]    keep = []    # index表示按照scores从高到底的相关box的序列号    index = scores.argsort()[::-1]  # [2 4 3 1 0]    while index.size > 0:        print("sorted index of boxes according to scores", index)        # 选择得分最高的score直接加入keep列表中        i = index[0]        keep.append(i)        # 计算score最高的box和其他box分别的相关交集坐标        x11 = np.maximum(x1[i], x1[index[1:]])  # [220. 230. 250. 220.]  最高的被提走了,所以要从1开始取后 4位        y11 = np.maximum(y1[i], y1[index[1:]])  # [230. 240. 250. 220.]        x22 = np.minimum(x2[i], x2[index[1:]])  # [315. 320. 320. 210.]        y22 = np.minimum(y2[i], y2[index[1:]])  # [330. 330. 330. 210.]        print("x1 values by original order:", x1)        print("x1 value by scores:", x1[index[:]])  #  [220. 220. 230. 250. 100.]        print("x11 value means  replacing the less value compared" \              " with the value by the largest score :", x11)        # 计算交集面积        w = np.maximum(0, x22 - x11 + 1)  # the weights of overlap        h = np.maximum(0, y22 - y11 + 1)  # the height of overlap        overlaps = w * h        # 计算相关IOU值(交集面积/并集面积,表示边框重合程度,越大表示越相似,越该删除)        # 重叠面积 /(面积1+面积2-重叠面积)        ious = overlaps / (areas[i] + areas[index[1:]] - overlaps)        # 只保留iou小于阈值的索引号,重复上步        idx = np.where(ious <= thresh)[0]        # 因为第一步index[0]已经被划走,所以需要原来的索引号需要多加一        index = index[idx + 1]    return keepimport matplotlib.pyplot as pltdef plot_bbox(ax, dets, c="b", title_name="title"):    x1 = dets[:, 0]    y1 = dets[:, 1]    x2 = dets[:, 2]    y2 = dets[:, 3]    ax.plot([x1, x2], [y1, y1], c)    ax.plot([x1, x1], [y1, y2], c)    ax.plot([x1, x2], [y2, y2], c)    ax.plot([x2, x2], [y1, y2], c)    ax.set_title(title_name)if __name__ == "__main__":    # 1.创建画板fig    fig = plt.figure(figsize=(12, 6))    # 参数解释,前两个参数 1,2 表示创建了一个一行两列的框 第三个参数表示当前所在的框    ax1 = fig.add_subplot(1, 2, 1)    ax2 = fig.add_subplot(1, 2, 2)    plot_bbox(ax1, boxes, "k", title_name="before nms")  # before nms    keep = py_cpu_nms(boxes, thresh=0.7)    plot_bbox(ax2, boxes[keep], "r", title_name="after nms")  # after nms    plt.show()

参考文献:https://blog.csdn.net/weixin_42237113/article/details/105743296https://blog.csdn.net/lz867422770/article/details/100019587

x
推荐阅读

非极大值抑制(NMS)算法详解_环球今热点

2023-05-25 15:32:41

世界最新:斗罗262集预告,双神之战打了两集,海神唐三身死道消

2023-05-25 14:40:54

拼多多虚假发货违规订单号在哪里查_拼多多虚假发货在哪里查询虚假发货的单号|天天观察

2023-05-25 13:19:15

全球今日报丨涉及办证、驾考、交管等服务!河南公安机关推出2023年爱民实践服务十项举措

2023-05-25 12:36:47

世界播报:给父母选择安卓手机还是苹果手机?

2023-05-25 11:59:08

文旅要闻丨第八届海峡儿童阅读论坛暨第九届海峡两岸青少年快乐读书会在福州启幕

2023-05-25 11:05:30

基金分红:金信民兴债券基金5月30日分红 即时

2023-05-25 10:43:22

朗读古诗技巧有哪些 5.诗词朗诵的技巧怎样提高|全球速递

2023-05-25 09:51:30

环球微资讯!3199元起!英伟达RTX 4060 Ti 8G显卡开卖:公版秒光

2023-05-25 09:10:33

天天观焦点:每次开机都要用360断网急救箱_断网急救箱

2023-05-25 08:32:44
相关新闻

非极大值抑制(NMS)算法详解_环球今热点

2023-05-25 15:32:41

世界最新:斗罗262集预告,双神之战打了两集,海神唐三身死道消

2023-05-25 14:40:54

拼多多虚假发货违规订单号在哪里查_拼多多虚假发货在哪里查询虚假发货的单号|天天观察

2023-05-25 13:19:15

全球今日报丨涉及办证、驾考、交管等服务!河南公安机关推出2023年爱民实践服务十项举措

2023-05-25 12:36:47

世界播报:给父母选择安卓手机还是苹果手机?

2023-05-25 11:59:08

文旅要闻丨第八届海峡儿童阅读论坛暨第九届海峡两岸青少年快乐读书会在福州启幕

2023-05-25 11:05:30

基金分红:金信民兴债券基金5月30日分红 即时

2023-05-25 10:43:22

朗读古诗技巧有哪些 5.诗词朗诵的技巧怎样提高|全球速递

2023-05-25 09:51:30

环球微资讯!3199元起!英伟达RTX 4060 Ti 8G显卡开卖:公版秒光

2023-05-25 09:10:33

天天观焦点:每次开机都要用360断网急救箱_断网急救箱

2023-05-25 08:32:44

今日要闻!詹姆斯今夏不可能退役?美媒列出五大理由 高管吐槽他在转移话题

2023-05-25 08:12:56

全球短讯!看头版•省内党报新闻摘要

2023-05-25 07:14:12

世界新资讯:别克商务车报价,avenir别克商务车报价

2023-05-25 06:23:02

通讯!办房贷需要注意哪些事项 这4点要注意了具体情况详细内容介绍

2023-05-25 05:24:31

Google Pixel 智能手机的历史——更新于 2023 年 5 月-精彩看点

2023-05-25 04:15:14

当前最新:PTA期货每日行情表--郑州商品交易所(5.24)

2023-05-25 03:51:31

定海交通志

2023-05-25 02:55:31

今日武林外传妙笔生花在哪里(武林外传的妙笔生花怎么得) 每日讯息

2023-05-25 01:25:45

世界观热点:有胃病的人喝什么茶最养胃_喝什么茶最养胃

2023-05-25 00:26:03

全球观察:身毒丸_身毒

2023-05-24 23:06:13

16G内存+ColorOS超算平台 Reno10系列持久流畅-世界热点评

2023-05-24 21:56:53

长虹美菱(000521.SZ)副总裁黄大年拟减持不超8.91万股 当前观点

2023-05-24 21:24:19

无人的海边_关于无人的海边介绍

2023-05-24 20:28:24

内蒙古:技能人才总量达374万

2023-05-24 19:50:05

安全出口指示灯滴滴响怎么关(安全出口指示灯滴滴响)

2023-05-24 18:54:24

【环球时快讯】了解科学家故事,航天小学学子点亮精神火炬

2023-05-24 18:21:03

医学人文巡讲|王文涛:一场与高原“虫癌”的战斗

2023-05-24 17:37:09

我市“蔡洪坊”杯第三届中老年篮球联赛开幕 每日快播

2023-05-24 16:59:20

艾柯医疗流血上市、研发费低于同行 低价入股之问

2023-05-24 16:18:01

午评:沪指下探回升跌0.5% 两市半日成交突破5000亿

2023-05-24 15:56:17

【SAI2笔刷咱不求人 】6000+笔刷合集满足你所有需求!!!-最新消息

2023-05-24 14:50:06

侯管配?管中闵:我没有意愿参与任何选举-世界今日报

2023-05-24 13:58:45

【当前独家】韩国检方将于今日决定是否批捕刘亚仁

2023-05-24 13:24:08

每日讯息!虽然整体状态有所下滑,但是湖人真核依然是油箱满满?

2023-05-24 12:19:01

大S半年3次告汪小菲,与具俊晔在一起幸福吗?网友一语惊醒梦中人 天天百事通

2023-05-24 11:23:26

世界今亮点!杭州4批次集中供地总成交138亿元

2023-05-24 10:50:26

视焦点讯!猪肉价格为何持续低迷

2023-05-24 10:01:13

“最美退役军人”钱俊锋:紧急救援“多面手”|通讯

2023-05-24 09:24:37

当前热门:微软深夜再放大招:Windows接入ChatGPT,Bing也能用插件

2023-05-24 08:31:34

当前关注:海南保亭做优热带特色高效农业

2023-05-24 07:59:51

《元龙2》第8集播出,尽显上头黑马实力,这才叫真正的反派-天天实时

2023-05-24 06:51:18

办信用卡被骗钱可以找回来吗

2023-05-24 05:56:02

李白的古诗300首大全二年级_李白的古诗300首|天天观察

2023-05-24 04:12:28

噬骨铁针怎么获得(噬骨铁针哪出)

2023-05-24 02:39:01

新华视点 | 世界聚焦东方,中国高质量发展进行时

2023-05-24 01:31:10

多台特警巡逻车进入金鸡山区域具体详细内容是什么

2023-05-24 00:12:29

上海展览中心(集团)有限公司原党委副书记、总裁孙小明被决定逮捕|天天观天下

2023-05-23 23:44:08

观赛指南|你zhí道长春有啥景点儿不?|每日热闻

2023-05-23 22:53:40

约老师先溜了!没进过总决赛的MVP只剩下:恩比德、罗斯和纳什

2023-05-23 22:06:46

全球快报:黑七末日!詹姆斯40+10+9难救主,掘金4-0横扫湖人杀进总决赛!

2023-05-23 21:12:49

遇“鉴”云南,用美学阐释“有一种叫云南的生活” 热点在线

2023-05-23 20:19:52

每日快讯!城市生命线保障安全运行

2023-05-23 19:36:35

起叫价7500万!安庆东部新城这块地即将拍卖!位置在…

2023-05-23 18:27:33

银企携手促共赢,深化合作谋发展——江苏银行北京分行参与“2023中关村创新创业健步走活动”

2023-05-23 18:11:10

太平乐享百万医疗靠谱吗?怎么投保?

2023-05-23 17:33:45

每日速读!福建省第二人民医院体检中心电话_福建省第二人民医院

2023-05-23 16:38:39

今日视点:中泰证券引入阿里云瑶池数据库:完成核心业务系统自主创新,实现业务微秒级响应

2023-05-23 15:54:01

这三个细节戳穿美日拉小圈子的私心 焦点报道

2023-05-23 14:51:17

意甲最新积分榜:那不勒斯榜首,尤文被扣10分掉出前四,罗马第六

2023-05-23 14:13:22

披头士经典歌曲heyjude现场_披头士经典歌曲

2023-05-23 13:31:39

【环球热闻】春晖智控:以公司燃气控制产品为例,智能主要体现在数据采集、安全预警及远程控制等

2023-05-23 12:36:47

国安2023赛程时间表最新日程版(超详细)

2023-05-23 12:10:42

清徐这趟临时公交专线运营时间有变_快播

2023-05-23 11:16:22

23国开02(增16)中标利率为2.3578%_环球速讯

2023-05-23 10:24:03

科技共创 赋能健康——日常健康促进技术与应用中心在京成立 今日热讯

2023-05-23 09:58:20

【世界报资讯】萤火虫动态桌面下载(萤火虫动态桌面)

2023-05-23 09:32:14

当前快报:2023湖南湘潭市湘潭县第一中学招聘教师笔试成绩公示

2023-05-23 09:01:39

【快播报】磕一点云襄收获的知己情!《云襄传》没安排结拜环节,实在遗憾!

2023-05-23 08:21:04

最新资讯:踢欧冠咯!纽卡0-0莱斯特锁定前四 阿尔米隆吉马良斯中柱

2023-05-23 07:10:07

如何制作气泡面板_女朋友过生日送什么礼物异地恋比较好-环球最新

2023-05-23 06:22:29

武汉市科技局2007年度政府信息公开工作报告

2023-05-23 05:03:58

【原耽双男主小说推荐】2021年1月海棠废文po文文包 每日动态

2023-05-23 02:57:07

信托和公募基金的区别_信托和基金的区别

2023-05-23 00:04:28

6月1日扬州供电公司检修公告涉及这些区域

2023-05-22 22:19:03

全球新消息丨2023唐山汽车消费券活动时间 唐山汽车优惠

2023-05-22 21:38:28

天天热资讯!男子就8年间多次猥亵幼女登报道歉详细内容

2023-05-22 20:44:47

找智能客服像对牛弹琴?人工客服为何难接通_环球头条

2023-05-22 20:11:01

快播:goongle翻译 googol翻译

2023-05-22 19:03:02

哈铁“发现最美铁路”网宣活动启动

2023-05-22 18:41:22

警惕!“玛娃”或成17级超强台风! 要闻

2023-05-22 17:48:17

《心灵杀手2》配音演员称游戏将在10月发售

2023-05-22 17:17:44

天天消息!印度移动支付巨头PhonePe获泛大西洋投资额外1亿美元融资,估值达120亿美元

2023-05-22 16:46:54

辽宁3消息:郭艾伦任新职,2连冠功臣离队,杨鸣携三将空降捞金 每日热门

2023-05-22 16:31:25

每日速讯:阿里组织大变革,半年走了3个VP

2023-05-22 15:50:48

警告政府违约信誉全毁,美财长耶伦强调6月1日为债限硬死线

2023-05-22 15:10:25

探路者衣服怎么样 探路者t恤怎么样

2023-05-22 14:28:31

全球热讯:足金现在多少一克(2023年5月22日)

2023-05-22 13:48:36

热门看点:氨能应用蓄势待发

2023-05-22 12:51:08

特别的爱给特别的你——特教学校探访记_焦点快播

2023-05-22 12:23:58

视点!中国建筑公布2023年前4月经营情况,地产业务迅速回升

2023-05-22 11:52:00

当前资讯!中国放松国外海产品的卫生管制要求

2023-05-22 11:11:02

久石让在武道馆迅雷下载_久石让在武道馆

2023-05-22 11:03:35

环球微头条丨跨越次元限制 共赴十年之约 国产动画《遮天》线下观影会在泰山脚下举行

2023-05-22 10:44:26

当前要闻:UiPath:人工智能驱动的自动化提高了近 60% 员工的工作满意度

2023-05-22 10:18:44

5月22日盘前停复牌汇总

2023-05-22 09:40:30

今日快看!电脑操作基础知识培训 电脑操作基础知识

2023-05-22 09:05:24

世界观天下!孚能科技董秘回复: 公司客户涵盖海内外知名整车企业,并已积极推进潜在客户的合作

2023-05-22 08:36:05

焦点热议:什么槟榔最好吃(哪种的槟榔好吃)

2023-05-22 07:51:20

安全一封家书100字 安全家书100字左右

2023-05-22 06:41:11

圆的直径符号在电脑上怎么输入出来_圆的直径符号在电脑上怎么输入 环球热文

2023-05-22 05:01:43