CNN的各种知识点(四): 非极大值抑制(Non-Maximum Suppression, NMS)

ops/2025/2/5 22:42:02/

非极大值抑制(Non-Maximum Suppression, NMS)

      • 1. 非极大值抑制(Non-Maximum Suppression, NMS)
        • 概念:
        • 算法步骤:
        • 具体例子:
        • PyTorch实现:
      • 总结:

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

概念:

非极大值抑制是目标检测中用于消除冗余检测框的后处理算法。当多个检测框重叠检测到同一物体时,NMS通过保留置信度最高的框,抑制与其高度重叠的其他框来获得最终结果。

算法步骤:
  1. 将所有检测框按置信度降序排序
  2. 选取最高置信度的框加入最终结果集
  3. 计算该框与剩余所有框的IoU(交并比)
  4. 删除IoU超过阈值的框
  5. 重复步骤2-4直到所有框处理完毕
具体例子:

假设检测到3个框:

  • Box1: (x1,y1,x2,y2)=(10,10,50,50), score=0.9
  • Box2: (15,15,55,55), score=0.8
  • Box3: (100,100,150,150), score=0.7

设置IoU阈值=0.5:

  1. 选择Box1(最高分0.9)
  2. 计算Box1与Box2的IoU≈0.62 > 0.5,删除Box2
  3. 计算Box1与Box3的IoU=0,保留Box3
    最终保留Box1和Box3
PyTorch实现:
import torch
from torchvision.ops import nms# 输入格式:boxes格式为(x1,y1,x2,y2)
boxes = torch.tensor([[10,10,50,50],[15,15,55,55],[100,100,150,150]], dtype=torch.float32)scores = torch.tensor([0.9, 0.8, 0.7])# 执行NMS
keep_idx = nms(boxes=boxes, scores=scores, iou_threshold=0.5)print("保留的索引:", keep_idx)  # 输出 tensor([0, 2])

总结:

NMS是目标检测中关键的后处理步骤。实际应用中需要注意:

  1. NMS的IoU阈值需要根据具体任务调整

http://www.ppmy.cn/ops/155989.html

相关文章

Linux环境下的Java项目部署技巧:Nginx 详解

Nginx 的启动 Nginx 启动会生成 2 个进程:主进程与守护进程 主进程:常用于提供反向代理服务。特点:占内存大守护进程:防止主进程以外关闭。特点:占内存小 Nginx 启动需要占用 80 端口: 当 Ngnix 启动失败时&#xff0…

联想拯救者R720笔记本外接显示屏方法,显示屏是2K屏27英寸

现在某品牌的13/14代(CPU是13或14开头)CPU缩肛有设计质量问题、CPU容易氧化易损坏易蓝屏等问题,现在大家买笔记本或台式电脑请不要考虑这两代CPU,或考虑AMD的CPU。 晚上23点10分前下单,第二天上午显示屏送到&#xff…

Dest1ny攻防实战:SpringBoot 脱敏属性***明文获取

今天是dest1ny攻防实战! 脱敏springboot敏感数据!! 大家多多支持,多多点赞,多多关注!! 谢谢大家,下面我们来看今天的内容! 1.前言 SpringBoot敏感信息泄露&#xff0…

【棋弈云端】网页五子棋项目测试报告

目录 一、项目背景1.1 项目简介1.2 应用技术 二、项目功能2.1 用户管理功能2.2 游戏对战功能 三、测试报告3.1 功能测试3.1.1注册功能测试3.1.2 登录功能测试3.1.3 匹配和落子测试 3.2 界面测试3.3 性能测试3.4 自动化测试3.4.1 创建驱动对象3.4.2 自动化检测注册功能3.4.3 自动…

如何构建ObjC语言编译环境?构建无比简洁的clang编译ObjC环境?Windows搭建Swift语言编译环境?

如何构建ObjC语言编译环境? 除了在线ObjC编译器,本地环境Windows/Mac/Linux均可以搭建ObjC编译环境。 Mac自然不用多说,ObjC是亲儿子。(WSL Ubuntu 22.04) Ubuntu可以安装gobjc/gnustep和gnustep-devel构建编译环境。 sudo apt-get install gobjc gnus…

PostCss

什么是 PostCss 如果把 CSS 单独拎出来看,光是样式本身,就有很多事情要处理。 既然有这么多事情要处理,何不把这些事情集中到一起统一处理呢? PostCss 就是基于这样的理念出现的。 PostCss 类似于一个编译器,可以将…

[C语言日寄] 源码、补码、反码介绍

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…

支持selenium的chrome driver更新到132.0.6834.110

最近chrome释放新版本:132.0.6834.110 如果运行selenium自动化测试出现以下问题,是需要升级chromedriver才可以解决的。 selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only s…