深度学习基础—交并比与非极大值抑制

1.交并比


(1)定义

交并比是用来衡量目标检测算法的表现的函数。定义如下:

用预测框和真实框的面积的交集除以预测框和真实框的面积的并集,得到的结果本次算法预测的交并比。研究函数可以发现,交并比的范围为[0,1](1说明预测框与真实框重叠,0说明完全不重合),其值越大,说明算法表现越优(定位准)。

(2)阈值

关于上图,预测框是网络给出的紫框,真实框是红框,那目标检测算法给出结果是优还是劣?通过计算交并比,只能得到一个数字说明重合的程度,因此可以给出阈值,如果超过这个阈值,就认为算法表现好,如果小于这个阈值,就认为算法表现差。一般初始阈值设为0.5,如果希望严格一点,就可以设置为超过0.5的值,比如0.6、0.7等等。loU越高,边界框越精确。

2.非极大值抑制


假设我们需要在下面图片里检测汽车,将图片划分为19×19网格,理论上车只有一个中点,所以它应该只被分配到一个格子里。实际上,可能1、2、3、4、5、6编号的格子都认为自己的区域有车,出现了多个定位,而图片中只有两辆车,应该只有两个定位,因此可以使用非极大值抑制算法,将汽车分类概率最高的格子保留,同一辆汽车的其他低分类概率的格子的定位删除。这也是非极大值抑制要做的事情。

非极大值抑制需要用到交并比LOU,因此假设交并比阈值为0.5,而分类概率阈值设为0.6(低于0.6的不认为是汽车分类),非极大值抑制算法步骤:

Step1:删除分类概率pc小于等于0.6的定位边框。

Step2:选择当前剩余边框中pc最大的概率值作为算法的输出,即分类概率。

Step3:计算和Step2中选择的最大概率值边框重叠的边框的交并比,并删除交并比大于等于0.5的定位边框(因为这些边框和最大概率的边框重叠的太多,很有可能表示同一个对象的定位)。

Step4:重复循环Step2-Step3,直到不再剩余要被删除的边框。

以上图为例,首先去除小于0.6的边框后剩余的边框均用蓝色表示,选择最大的概率的边框0.9,高亮该边框,计算与该边框重叠的边框0.6和0.7,发现交并比均大于0.5,因此需要删去,这里选择较暗的蓝色表示抑制。

接着还存在没有被删去的边框,即左边黑色轿车附近,选择概率最大的0.8,抑制交并比大于0.5的概率0.7表示的边框,即上图所示的结果。于是最终检测出两个汽车对象,即高亮框的范围。

非极大值意味着只输出概率最大的分类结果,但抑制很接近而不是最大的其他预测结果,所以这方法叫做非极大值抑制。

注意:如果同时检测多个对象,比如说行人、汽车、摩托,那么输出向量就会有三个额外的分量(c1、c2和c3)。正确的做法是独立进行三次非极大值抑制,对每个输出类别都做一次,因此实际上计算的边框的概率应该是pc乘c1、c2或c3。

相关推荐
飞哥数智坊8 小时前
分享被迫变直播:AI·Spring养虾记就这样上线了
人工智能
Mr_Lucifer12 小时前
「一句话」生成”小红书“式金句海报(CodeFlicker + quote-poster-generator)
人工智能·aigc·visual studio code
冬奇Lab12 小时前
OpenClaw 深度解析(五):模型与提供商系统
人工智能·开源·源码阅读
冬奇Lab12 小时前
一天一个开源项目(第42篇):OpenFang - 用 Rust 构建的 Agent 操作系统,16 层安全与 7 个自主 Hands
人工智能·rust·开源
IT_陈寒12 小时前
SpringBoot性能飙升200%?这5个隐藏配置你必须知道!
前端·人工智能·后端
yiyu071612 小时前
3分钟搞懂深度学习AI:反向传播:链式法则的归责游戏
人工智能·深度学习
机器之心13 小时前
OpenClaw绝配!GPT-5.4问世,AI能力开始大一统,就是太贵
人工智能·openai
机器之心13 小时前
海外华人15人团队打造,统一理解与生成的图像模型,超越Nano banana登顶图像编辑
人工智能·openai
用户5527960260513 小时前
在老版本 HPC 系统上运行 Antigravity(反重力)
人工智能