Yolo算法检测之NMS(非极大值抑制)原理详解

news2024/9/25 15:21:48

刚开始学习算法的时候,nms非极大值一直学不明白,今天终于搞明白了,大致总结一下。

首先我们简单看一下NMS使用的这个背景

按照yolo目标检测算法的初步思想来说,把图片分成19*19网格之后,理论上这个19*19个网格里面包含汽车一部分的都会检测到汽车的存在,那么带来的问题就是,很多个网格都能检测到汽车如下图所示,显然这并不是我们想要的效果,我们只想一个网格里检测到车(一辆车),图像上两辆车应该是两个网格。

因为我们在检测的时候,可能对一个目标做重复多次检测,这个时候NMS的使用,就是为了删除那些无用的目标检测框,留下一个最佳的目标检测框。

 下面我们介绍NMS的工作思想:

        如上图所示,每个边框都有他的概率,我们选出概率最高的边框进行高亮显示,然后NMS对剩下的矩形进行逐一扫描对比,所有跟这个高亮边框有很高的的交并比,高度重叠的其他预测框都会被抑制。比如右边那个车辆,我们得到0.9的高亮框,因为0.6和0.7的两个高亮框跟0.9的这个IOU最高,因此我们要一直0.6和0.7的这两个高亮框使其变暗。左边汽车的处理方法同。然后经过NMS的处理,我们可以得到如下图所示的效果,即每个车辆身上只有一个预测框。

这就达到了非极大值抑制的效果,所谓非极大值抑制,即只输出概率最大的分类结果。

下面我们来具体分析一下NMS这个有意思的算法:

    一开始,我们需要设定一个阈值为Pc,例如Pc=0.6,我们删除掉所有概率小于0.6的目标边界框,然后对剩下的进行的NMS处理。如上诉。高亮概率最大的进行显示,其他的进行删除。往复如此,一直这样进行循环,直到只剩下一个边界框为止。

     在Yolo程序里面是构造了一个while进行循环不停的处理的,直到只剩下一个边界框,即跳出while。

总结:

      当然上述只是针对一种目标进行检测时候所进行的非极大值抑制,多个目标,假如你是三个目标进行非极大值抑制的时候,你就需要进行三次独立的非极大值抑制,然后作用于输出结果即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/56565.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaWeb(二)

下面的知识主要就是Servlet,JSP,EL这个顺序去总结,把基础打扎实 Servlet 首先咱们肯定一直听说Servlet,经常说servlet容器,但是具体Servlet是个啥呢。咱们今天就去深入探讨一下。 咱们看一下菜鸟权威教程的解释 Java…

高通平台稳定性分析-CFI failure

一、查看 dmesg_TZ.txt中的错误: Kernel panic - not syncing: CFI failure (target: 0xffffff804323a848) Call trace: dump_backtrace.cfi_jt+0x0/0x8 dump_stack_lvl+0x94/0xe0 panic+0x1a0/0x468 cfi_module_add+0x0/0x24 find_check_fn+0x0/0x258 cam_subdev_ioct…

Kanzi:项目实例:智能灯光SmartControl界面设计

概述: 智能灯光是指:在满足一定条件下,自动显示一些 智能开关(如:自动远光灯开关,延时下电开关,智能熄火开关,智能顶灯开关)。 他们点亮的共同点是 1:标定…

[附源码]JAVA毕业设计红河旅游信息服务系统(系统+LW)

[附源码]JAVA毕业设计红河旅游信息服务系统(系统LW) 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目…

[附源码]计算机毕业设计springboot项目管理系统的专家评审模块

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【MySQL Router】使用 systemd 管理 MySQL Router

使用 systemd 管理 MySQL Router 文章目录使用 systemd 管理 MySQL Router排错过程升级操作系统内核未修改相关文件的属主,直接用 mysqlrouter 重新引导配置操作系统 limit 相关参数用户及其权限问题结语在之前的文章 【 InnoDB Cluster 】安装部署 MySQL Router 中…

Elasticsearch_第2章_ elasticsearch_进阶

Elasticsearch_第2章_ elasticsearch_进阶 文章目录Elasticsearch_第2章_ elasticsearch_进阶0.学习目标1.数据聚合1.1.聚合的种类1.2.DSL实现聚合1.2.1.Bucket聚合语法1.2.2.聚合结果排序1.2.3.限定聚合范围1.2.4.Metric聚合语法1.2.5.小结1.3.RestAPI实现聚合1.3.1.API语法1.…

Conv2Former

又发现了一个说比Transformer好的,通过充分利用卷积探索一种更高效的编码空域特征的方式:通过组合ConvNet与ViT的设计理念,本文利用卷积调制操作对自注意力进行了简化,进而构建了一种新的ConvNet架构Conv2Former超简Transformer风格ConvNet&a…

Python基础之MySql数据库交互

Python基础之MySql数据库交互一、使用MySql进行持久化存储二、安装MySql数据库和Python库PyMySQL三、使用pymysql链接mysql数据库四、创建表五、插入数据六、后记一、使用MySql进行持久化存储 在任何应用中,都需要持久化存储。一般有 3 种基础的存储机制&#xff1…

oepncv c++ 连通组件扫描

1、概念 连通组件指在图像上通过四邻域或八邻域法,连接起来的像素值大于某一阈值的区域(这些像素点被称为前景像素),而小于阈值的区域被称为背景。如下图的4个连通组件。 四邻域、八邻域: 2、常用算法 a)基…

35岁程序员,都到哪儿去了?

在很多人眼里,程序员的薪资就是普通人的天花板。关于程序员35岁被优化这个亘古不变的话题,也有不少人冷嘲热讽:你花10年的时间赚到了我30年、40年都赚不到的钱,有什么好焦虑不满呢?钱还不够用吗? 而那些年纪…

榛子云短信验证平台与springboot集成的短信验证

登录 - 榛子云短信用户系统 (zhenzikj.com) 上面是登录榛子云短信验证平台的入口&#xff0c;此平台的短信大概为3.1分一条短信。 如何与spring boot进行集成呢&#xff0c;我以注册为例来慢慢讲解 1.注册号榛子云账号并充值可发送短信 2.在项目pom.xml导入jar包 <!-- 榛…

HTML+CSS+JS我的班级网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

位运算介绍、图解位运算相关题目【一个数字出现了K次,其他数字出现了M次,M > 1 K < M 找到出现了K次的数】【找到出现奇数次的数】等题目

位运算 常见的位运算 >>、>>>、<<、|、&、^、||、&&、~等 原码、反码、补码 原码 将一个整数转换成二进制形式&#xff0c;就是其原码。例如 6 原码就是……0000 0000 0000 0110 反码 对于正数&#xff0c;它的反码就是其原码&#xff08;…

节省50%带宽,这款媒体处理产品了解下!

视频处理技术想必大家都有所了解&#xff0c;现在每天都会涌现出大量新的视频处理模型&#xff0c;它们有的能够超分、降噪&#xff0c;有的能够做目标检测、跟踪、识别&#xff0c;加上一些前端技术就能实现很多炫酷的功能。但是现在大多数模型都是单任务模型&#xff0c;想要…

【POJ No. 2777】 颜色统计 Count Color

【POJ No. 2777】 颜色统计 Count Color 北大OJ 题目地址 【题意】 有一个长L 厘米的电路板&#xff0c;可以将板均分为L 段&#xff08;1&#xff5e;L &#xff09;&#xff0c;每段长1厘米。现在给电路板上色&#xff0c;每段只有一种颜色。可以在电路板上执行两种操作&am…

Qt扫盲-Assistant 助手使用总结

Qt Assistant助手 使用记录预备一、顶部菜单栏1. 快捷栏2. 文件、前往、帮助3. 查看-工具栏4. 编辑-首选项5. 书签二、侧边菜单栏1. 修改显示功能Bar2. 内容3. 索引4. 书签三、内容主体1. 结构总览 Content2. Properties3. Public Functions4. Reimplemented Public Functions5…

【JUC】并发编程学习笔记(三)

JUC并发编程八、ReentrantReadWriteLock 读写锁8.1、概述8.2、案例8.3、读写锁的降级九、BlockingQueue阻塞队列9.1、阻塞队列概述9.2、阻塞队列分类9.2.1、ArrayBlockingQueue(常用)9.2.2、LinkedBlockingQueue(常用)9.2.3、 DelayQueue9.2.4、 PriorityBlockingQueue9.2.5、 …

混合馈能悬架的设计与仿真(MATLAB)

目 录 摘 要 I Abstract II 第一章 绪论 1 1.1课题研究背景和意义 1 1.2国内外研究现状 2 1.3本文的主要研究内容 4 第二章 混合馈能悬架系统的工作原理 5 2.1混合馈能悬架系统的设计理念 5 2.2馈能系统的原理 6 2.3馈能系统的类型 6 2.4混合馈能悬架系统结构选型 8 2.5本章小结…

技术分享 | 如何确保API 的稳定性与正确性?你只需要这一招

现在&#xff0c;越来越多的 Web 应用转向了RESTful的架构&#xff0c;很多产品和应用暴露给用户的往往就是一组 REST API&#xff0c;这样有一个好处&#xff0c;用户可以根据需要&#xff0c;调用不同的 API&#xff0c;整合出自己的应用出来。从这个角度来讲&#xff0c;Web…