精度论文:【Focaler-IoU: More Focused Intersection over Union Loss】

Focaler-IoU: 更聚焦的交并比损失

Focaler-IoU: More Focused Intersection over Union Loss

  • Focaler-IoU: 更聚焦的交并比损失
  • I. 引言
  • II. 相关工作
  • III. 方法
  • IV. 实验
  • V. 结论

在这里插入图片描述

原文地址:官方论文地址
代码地址:官方代码地址

摘要——边界框回归在目标检测领域中起着至关重要的作用,目标检测的定位精度在很大程度上依赖于边界框回归的损失函数。 现有研究通过利用边界框之间的几何关系来提升回归性能,但忽略了困难样本与易样本分布对边界框回归的影响。在本文中,我们分析了困难样本与易样本分布对回归结果的影响,并提出了Focaler-IoU,该方法通过聚焦不同的回归样本,能够在不同的检测任务中提高检测器的性能。最后,我们在不同检测任务中使用现有的先进检测器和回归方法进行了对比实验,结果表明,采用本文提出的方法可以进一步提升检测性能。代码已开源,地址为:https://github.com/malagoutou/Focaler-IoU。
关键词——目标检测,损失函数,边界框回归

I. 引言

目标检测是计算机视觉的基础任务之一,旨在定位和识别图像中的目标。根据是否生成Anchor(锚框),目标检测方法可以分为基于Anchor的方法和无Anchor的方法。基于Anchor的算法包括Faster R-CNN、YOLO(You Only Look Once)系列、SSD(Single Shot MultiBox Detector)和RetinaNet。无Anchor的检测算法包括CornerNet、CenterNet和FCOS(Fully Convolutional One Stage Object Detection)。在这些检测器中,边界框回归的损失函数作为定位分支的重要组成部分,起着不可替代的作用。

A. 边界框回归损失
随着计算机视觉的发展,目标检测任务受到了越来越多研究者的关注。为了评估各种算法在检测任务中的性能,需要引入一个合适的评估指标。在IoU(Intersection over Union)提出之前,早期的边界框回归问题采用ln范数损失作为评估指标。然而,由于ln范数损失对异常值非常敏感,这导致异常值对损失的影响较大,从而在模型中存在异常值时性能会变得不稳定

为更好地解决上述问题,提出了一种更合适的评估指标:IoU(Intersection over Union)。在基于IoU的评估标准下,大多数目标检测任务的检测精度得到了进一步提升,但IoU损失本身也存在一些缺点。例如,当GT(Ground Truth)框与Anchor框之间没有重叠时,其梯度会消失,无法准确表征两个边界框之间的位置关系。

为弥补这一不足,GIoU提出使用包含GT框和Anchor框的最小外接框来计算损失,从而提升检测性能。在CIoU和DIoU中,为了弥补GIoU收敛速度慢的缺点,CIoU通过进一步考虑GT框与Anchor框之间的宽高比来加速收敛,而DIoU则通过对两个边界框中心点之间的距离进行归一化来加速收敛。EIoU在CIoU的基础上进一步考虑了形状损失,通过最小化GT框和Anchor框宽度与高度的差异来加速收敛,而SIoU进一步考虑了连接两个边界框中心的线的角度,并根据该角度重新定义了距离损失和形状损失,将其作为新的损失项添加到损失函数中。SIoU在当前基于IoU的损失函数中实现了最好的检测效果。

B. Focal Loss
在边界回归过程中,训练样本不平衡问题依然存在。根据是否包含目标类别,训练样本可以分为正样本和负样本。一些传统的解决方法是在训练过程中对困难样本进行采样和重新加权,但这种方法的效果并不显著。

Focal Loss提出,容易识别的负样本占总损失的主要部分,并主导了梯度。通过调整正样本和负样本的权重,Focal Loss提高了模型识别稀有目标类别的能力,使模型更多地关注难以分类的正样本,同时降低相对容易分类的负样本的权重。在Libra R-CNN中,提出了一个简单而有效的平衡学习框架,使用Balanced L1损失在目标层面上将训练样本分为异常值和正常值。异常值被视为困难样本,与正常值相比会产生更大的梯度,这对训练过程有害。因此,Libra R-CNN通过梯度回归促进正常值,并裁剪由异常值产生的过大梯度,以实现更好的分类效果。

在EIoU中,训练样本被分为高质量样本(anchors)和低质量样本(异常值),并基于L1损失提出了FocalL1损失,以增加高质量样本对训练过程的梯度贡献。同时,将EIoU损失作为一个变量添加到FocalL1损失中,使模型能够更加关注高质量样本,从而进一步提升检测效果。

本文的主要贡献如下:

  • 我们分析了困难样本和易样本分布对边界框回归的影响,并在现有边界框回归方法的基础上,提出了Focaler-IoU,通过线性区间映射来聚焦不同的回归样本。
  • 我们使用先进的一阶段检测器进行了实验,验证了我们的方法可以有效提高检测性能,并弥补现有方法的不足。

II. 相关工作

近年来,随着检测器的发展,边界回归损失得到了快速发展。最初,IoU被提出用于评估边界回归状态,随后在IoU的基础上,陆续提出了新的约束条件,如GIoU、DIoU、CIoU、EIoU和SIoU等。

A. IoU指标
IoU(Intersection over Union)是最流行的目标检测评价标准,其定义如下:
IoU = ∣ B ∩ B g t ∣ ∣ B ∪ B g t ∣ \text{IoU} = \frac{|B \cap B_{gt}|}{|B \cup B_{gt}|} IoU=BBgtBBgt
其中, B B B B g t B_{gt} Bgt 分别表示预测框和GT(Ground Truth)框。

B. GIoU指标
为了解决在边界框回归中,由于GT框和Anchor框之间没有重叠导致IoU损失出现梯度消失的问题,提出了GIoU(广义交并比)。其定义如下:
GIoU = IoU − ∣ C − B ∩ B g t ∣ ∣ C ∣ \text{GIoU} = \text{IoU} - \frac{|C - B \cap B_{gt}|}{|C|} GIoU=IoUCCBBgt
其中, C C C表示包含GT框和Anchor框的最小外接框。

C. DIoU指标
与GIoU相比,DIoU(距离交并比)引入了边界框之间的距离约束,通过在IoU的基础上添加中心点归一化距离损失项,使回归结果更加准确。其定义如下:
DIoU = IoU − ρ 2 ( b , b g t ) c 2 \text{DIoU} = \text{IoU} - \frac{\rho^2(b, b_{gt})}{c^2} DIoU=IoUc2ρ2(b,bgt)
其中, b b b b g t b_{gt} bgt分别表示Anchor框和GT框的中心点, ρ ( ⋅ ) \rho(·) ρ()表示欧几里得距离, c c c b b b b g t b_{gt} bgt之间最小外接框的对角线距离。
CIoU进一步通过在DIoU的基础上添加新的形状损失项,考虑了GT框和Anchor框之间的形状相似性,以减少Anchor框和GT框之间的长宽比差异。其定义如下:
CIoU = IoU − ρ 2 ( b , b g t ) c 2 − α v \text{CIoU} = \text{IoU} - \frac{\rho^2(b, b_{gt})}{c^2} - \alpha v CIoU=IoUc2ρ2(b,bgt)αv
其中,
α = v ( 1 − IoU ) + v \alpha = v \left( 1 - \text{IoU} \right) + v α=v(1IoU)+v
v = 4 π 2 ( arctan ⁡ w g t h g t − arctan ⁡ w h ) 2 v = \frac{4}{\pi^2} \left( \arctan \frac{w_{gt}}{h_{gt}} - \arctan \frac{w}{h} \right)^2 v=π24(arctanhgtwgtarctanhw)2
其中, w g t w_{gt} wgt h g t h_{gt} hgt 分别表示GT框的宽度和高度, w w w h h h 分别表示Anchor框的宽度和高度。
D. EIoU度量
EIoU在CIoU的基础上重新定义了形状损失,并通过直接减少GT框和Anchor框之间的长宽差异来进一步提高检测精度。其定义如下:
EIoU = IoU − ρ 2 ( b , b g t ) c 2 − ρ 2 ( w , w g t ) ( w c ) 2 − ρ 2 ( h , h g t ) ( h c ) 2 \text{EIoU} = \text{IoU} - \frac{\rho^2(b, b_{gt})}{c^2} - \frac{\rho^2(w, w_{gt})}{(w_c)^2} - \frac{\rho^2(h, h_{gt})}{(h_c)^2} EIoU=IoUc2ρ2(b,bgt)(wc)2ρ2(w,wgt)(hc)2ρ2(h,hgt)
其中,( w_c ) 和 ( h_c ) 是覆盖GT框和Anchor框的最小外接框的宽度和高度。

E. SIoU度量
在前期研究的基础上,SIoU进一步考虑了边界框之间角度对边界框回归的影响,其目标是通过减小Anchor框和GT框之间的角度(即水平或垂直方向)来加速收敛过程。其定义如下:
SIoU = IoU − Δ + Ω 2 \text{SIoU} = \text{IoU} - \frac{\Delta + \Omega}{2} SIoU=IoU2Δ+Ω
其中,
Λ = sin ⁡ ( 2 sin ⁡ − 1 ( min ⁡ ( ∣ x g t c − x c ∣ , ∣ y g t c − y c ∣ ) ) ) \Lambda = \sin \left( 2 \sin^{-1} \left( \min \left( |x_{gt}^c - x_c|, |y_{gt}^c - y_c| \right) \right) \right) Λ=sin(2sin1(min(xgtcxc,ygtcyc)))
( ( x g t c − x c ) 2 + ( y g t c − y c ) 2 + ϵ ) \left( (x_{gt}^c - x_c)^2 + (y_{gt}^c - y_c)^2 + \epsilon \right) ((xgtcxc)2+(ygtcyc)2+ϵ)
Δ = ∑ t = w , h ( 1 − e − γ ρ t ) , γ = 2 − Λ \Delta = \sum_{t=w,h} \left( 1 - e^{-\gamma \rho_t} \right), \quad \gamma = 2 - \Lambda Δ=t=w,h(1eγρt),γ=2Λ
ρ x = ( x c − x g t c w c ) 2 , ρ y = ( y c − y g t c h c ) 2 \rho_x = \left( \frac{x_c - x_{gt}^c}{w_c} \right)^2, \quad \rho_y = \left( \frac{y_c - y_{gt}^c}{h_c} \right)^2 ρx=(wcxcxgtc)2,ρy=(hcycygtc)2
Ω = ∑ t = w , h ( 1 − e − ω t ) θ , θ = 4 \Omega = \sum_{t=w,h} \left( 1 - e^{-\omega_t} \right) \theta, \quad \theta = 4 Ω=t=w,h(1eωt)θ,θ=4
ω w = ∣ w − w g t ∣ max ⁡ ( w , w g t ) , ω h = ∣ h − h g t ∣ max ⁡ ( h , h g t ) \omega_w = \frac{|w - w_{gt}|}{\max(w, w_{gt})}, \quad \omega_h = \frac{|h - h_{gt}|}{\max(h, h_{gt})} ωw=max(w,wgt)wwgt,ωh=max(h,hgt)hhgt

III. 方法

A. 分析
在各种目标检测任务中,样本不平衡问题普遍存在,可以根据物体检测的难易程度将样本分为“困难样本”和“简单样本”。从目标尺度分析的角度来看,一般的检测目标可以视为简单样本,而极小的目标由于定位困难,可以视为困难样本。对于以简单样本为主的检测任务,在边框回归过程中专注于简单样本有助于提高检测性能。相反,对于困难样本比例较高的检测任务,需要专注于困难样本的边框回归。

B. Focaler-IoU
为了能够专注于不同的回归样本,并改进检测任务,我们使用线性区间映射方法来重构IoU损失,从而改善边界回归。其重构公式如下:

IoU focaler = { 0 , IoU < d IoU − d u − d , d ≪ IoU ≪ u 1 , IoU > u \text{IoU}_{\text{focaler}} = \begin{cases} 0, & \text{IoU} < d \\ \frac{\text{IoU} - d}{u - d}, & d \ll \text{IoU} \ll u \\ 1, & \text{IoU} > u \end{cases} IoUfocaler= 0,udIoUd,1,IoU<ddIoUuIoU>u

其中, IoU focaler \text{IoU}_{\text{focaler}} IoUfocaler 是重构后的 Focaler-IoU, d , u ∈ [ 0 , 1 ] d, u \in [0, 1] d,u[0,1]。通过调整 d d d u u u 的值,可以使 IoU focaler \text{IoU}_{\text{focaler}} IoUfocaler 专注于不同的回归样本。其损失定义为:

L Focaler-IoU = 1 − IoU focaler L_{\text{Focaler-IoU}} = 1 - \text{IoU}_{\text{focaler}} LFocaler-IoU=1IoUfocaler
将Focaler-IoU损失应用于现有的基于IoU的边框回归损失函数,得出以下损失函数:

L Focaler-GIoU = L GIoU + IoU − IoU focaler L_{\text{Focaler-GIoU}} = L_{\text{GIoU}} + \text{IoU} - \text{IoU}_{\text{focaler}} \quad \text{} LFocaler-GIoU=LGIoU+IoUIoUfocaler

L Focaler-DIoU = L DIoU + IoU − IoU focaler L_{\text{Focaler-DIoU}} = L_{\text{DIoU}} + \text{IoU} - \text{IoU}_{\text{focaler}} \quad \text{} LFocaler-DIoU=LDIoU+IoUIoUfocaler

L Focaler-CIoU = L CIoU + IoU − IoU focaler L_{\text{Focaler-CIoU}} = L_{\text{CIoU}} + \text{IoU} - \text{IoU}_{\text{focaler}} \quad \text{} LFocaler-CIoU=LCIoU+IoUIoUfocaler

L Focaler-EIoU = L EIoU + IoU − IoU focaler L_{\text{Focaler-EIoU}} = L_{\text{EIoU}} + \text{IoU} - \text{IoU}_{\text{focaler}} \quad \text{} LFocaler-EIoU=LEIoU+IoUIoUfocaler

L Focaler-SIoU = L SIoU + IoU − IoU focaler L_{\text{Focaler-SIoU}} = L_{\text{SIoU}} + \text{IoU} - \text{IoU}_{\text{focaler}} \quad \text{} LFocaler-SIoU=LSIoU+IoUIoUfocaler

IV. 实验

A. PASCAL VOC 上的 YOLOv8
PASCAL VOC 数据集是目标检测领域最受欢迎的数据集之一,在本文中我们使用 VOC 2007 和 VOC 2012 的训练集和验证集,共计 16551 张图片,测试集选用 VOC 2007,共 4952 张图片。在本实验中,我们选择了最新的单阶段检测器 YOLOv8s 和 YOLOv7-tiny 进行 VOC 数据集上的对比实验,SIoU 被选为实验中的对比方法。实验结果如表 I 所示。

表 I:SIoU 和 Focaler-SIoU 在 YOLOv8 上的性能对比
在这里插入图片描述

B. YOLOv5 上的 AI-TOD 实验
AI-TOD 是一个遥感图像数据集,与一般数据集不同的是,它包含大量小型目标,且目标的平均尺寸仅为 12.8 像素。在此实验中,选择 YOLOv5s 作为检测器,比较方法为 SIoU。实验结果如表 II 所示:

表 II:SIoU 和 Focaler-SIoU 在 YOLOv5 上的性能
在这里插入图片描述

V. 结论

本文分析了难易样本分布对目标检测的影响。当难样本占主导时,需要重点关注难样本,以提高检测性能。而当简单样本的比例较大时,情况则相反。接下来,我们提出了Focaler-IoU方法,通过线性区间映射重构原始的IoU损失,以实现聚焦于难易样本的目标。最后,通过对比实验证明,所提出的方法能够有效地提升检测性能。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

交直流混合微电网多台互联变换器并联

在交直流混合微电网中&#xff0c;多台互联变换器的并联操作是为了实现功率按比例分担。这样的系统通常涉及直流-直流&#xff08;DC-DC&#xff09;、直流-交流&#xff08;DC-AC&#xff09;以及交流-直流&#xff08;AC-DC&#xff09;变换器的组合。通过适当的控制策略&…

PyTorch使用教程(2)-torch包

1、简介 torch包是PyTorch框架最外层的包&#xff0c;主要是包含了张量的创建和基本操作、随机数生成器、序列化、局部梯度操作的上下文管理器等等&#xff0c;内容很多。我们基础学习的时候&#xff0c;只有关注张量的创建、序列化&#xff0c;随机数、张量的数学数学计算等常…

Matplotlib基础

概述 1、什么是Matplotlib 是专门用于开发2D图表(包括3D图表)以渐进、交互式方式实现数据可视化 2、为什么要学习Matplotlib 可视化是在整个数据挖掘的关键辅助工具&#xff0c;可以清晰的理解数据&#xff0c;从而调整我们的分析方法。 能将数据进行可视化,更直观的呈现使数据…

警惕IDEA 2024版重大Bug问题:LomBok失效、Gradle冲突、Spring Boot启动错误

一直以来我认为工具类的软件是越新越好&#xff0c;因为工具代表着一定的先进性&#xff1b;但是IDEA 2024好好的给我上了一课&#xff0c;比如lombok 不起作用、比如Spring Boot 3.4.x 启动报错、再比如MyBatis log plus冲突、再比如Gradle插件冲突. 一、Lombok 失效问题 请不…

EI Scopus双检索 | 2025年第四届信息与通信工程国际会议(JCICE 2025)

会议简介 Brief Introduction 2025年第四届信息与通信工程国际会议(JCICE 2025) 会议时间&#xff1a;2025年7月25日-27日 召开地点&#xff1a;中国哈尔滨 大会官网&#xff1a;www.jcice.org 由黑龙江大学和成都信息工程大学主办&#xff0c;江苏科技大学协办的2025年第四届信…

JavaWeb 前端基础 html + CSS 快速入门 | 018

今日推荐语 指望别人的救赎&#xff0c;势必走向毁灭——波伏娃 日期 学习内容 打卡编号2025年01月17日JavaWeb 前端基础 html CSS018 前言 哈喽&#xff0c;我是菜鸟阿康。 今天 正式进入JavaWeb 的学习&#xff0c;简单学习 html CSS 这2各前端基础部分&am…

Flask学习入门笔记

Flask学习入门笔记 前言1. 安装Flask2. 创建一个简单的Flask应用3. 路由与视图函数3.1 基本路由3.2 动态路由3.3 HTTP方法 4. 请求与响应4.1 获取请求数据4.2 返回响应 5. 模板渲染5.1 基本模板渲染5.2 模板继承 6. 静态文件6.1 静态文件的目录结构6.2 在模板中引用静态文件6.2…

菜品管理(day03)

公共字段自动填充 问题分析 业务表中的公共字段&#xff1a; 而针对于这些字段&#xff0c;我们的赋值方式为&#xff1a; 在新增数据时, 将createTime、updateTime 设置为当前时间, createUser、updateUser设置为当前登录用户ID。 在更新数据时, 将updateTime 设置为当前时间…

Python股票量化交易分析-开发属于自己的指标

需求&#xff1a;股票的量化交易指标很多&#xff0c;我想做一个自己的量化交易图表&#xff1a; 展示每天交易量和股价振幅的关系图进一步的话想知道单位金额对股价振幅的影响&#xff0c;最终实现大概估计需要多少买入成交量能拉升多少股价&#xff09; &#xff0c; 目前未…

python爬虫爬取淘宝商品比价||淘宝商品详情API接口

最近在学习北京理工大学的爬虫课程&#xff0c;其中一个实例是讲如何爬取淘宝商品信息&#xff0c;现整理如下&#xff1a; 功能描述&#xff1a;获取淘宝搜索页面的信息&#xff0c;提取其中的商品名称和价格 探讨&#xff1a;淘宝的搜索接口 翻页的处理 技术路线:requests…

OpenCV相机标定与3D重建(60)用于立体校正的函数stereoRectify()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 为已校准的立体相机的每个头计算校正变换。 cv::stereoRectify 是 OpenCV 中用于立体校正的函数&#xff0c;它基于已知的相机参数和相对位置&am…

1.17组会汇报

STRUC-BENCH: Are Large Language Models Good at Generating Complex Structured Tabular Data? STRUC-BENCH&#xff1a;大型语言模型擅长生成复杂的结构化表格数据吗&#xff1f;23年arXiv.org 1概括 这篇论文旨在评估大型语言模型&#xff08;LLMs&#xff09;在生成结构…

【机器学习实战入门】使用 Pandas 和 OpenCV 进行颜色检测

Python 颜色检测项目 今天的项目将非常有趣和令人兴奋。我们将与颜色打交道&#xff0c;并在项目过程中学习许多概念。颜色检测对于识别物体来说是必要的&#xff0c;它也被用作各种图像编辑和绘图应用的工具。 什么是颜色检测&#xff1f; 颜色检测是检测任何颜色名称的过程…

【k8s面试题2025】3、练气中期

体内灵气的量和纯度在逐渐增加。 文章目录 在 Kubernetes 中自定义 Service端口报错常用控制器Kubernetes 中拉伸收缩副本失效设置节点容忍异常时间Deployment 控制器的升级和回滚日志收集资源监控监控 Docker将 Master 节点设置为可调度 在 Kubernetes 中自定义 Service端口报…

数智化转型 | 星环科技Defensor 助力某银行数据分类分级

在数据驱动的金融时代&#xff0c;数据安全和隐私保护的重要性日益凸显。某银行作为数字化转型的先行者&#xff0c;面临着一项艰巨的任务&#xff1a;如何高效、准确地对分布在多个业务系统、业务库与数仓数湖中的约80万个字段进行数据分类和分级。该银行借助星环科技数据安全…

mac配置 iTerm2 使用lrzsz与服务器传输文件

mac配置 1. 安装支持rz和sz命令的lrzsz brew install lrzsz2. 下载iterm2-send-zmodem.sh和iterm2-recv-zmodem.sh两个脚本 # 克隆仓库 git clone https://github.com/aikuyun/iterm2-zmodem ~/iterm2-zmodem# 进入到仓库目录 cd ~/iterm2-zmodem# 设置脚本文件可执行权限 c…

redis 分布式重入锁

文章目录 前言一、分布式重入锁1、单机重入锁2、redis重入锁 二、redisson实现重入锁1、 添加依赖2、 配置 Redisson 客户端3、 使用 Redisson 实现重入锁4、 验证5、运行项目 三、redisson分布式锁分析1、获取锁对象2、 加锁3、订阅4、锁续期5、释放锁6、流程图 前言 通过前篇…

【git】如何删除本地分支和远程分支?

1.如何在 Git 中删除本地分支 本地分支是您本地机器上的分支&#xff0c;不会影响任何远程分支。 &#xff08;1&#xff09;在 Git 中删除本地分支 git branch -d local_branch_name git branch 是在本地删除分支的命令。-d是一个标志&#xff0c;是命令的一个选项&#x…

关于 Cursor 的一些学习记录

文章目录 1. 写在最前面2. Prompt Design2.1 Priompt v0.1&#xff1a;提示设计库的首次尝试2.2 注意事项 3. 了解 Cursor 的 AI 功能3.1 问题3.2 答案 4. cursor 免费功能体验5. 写在最后面6. 参考资料 1. 写在最前面 本文整理了一些学习 Cursor 过程中读到的或者发现的感兴趣…

使用python+pytest+requests完成自动化接口测试(包括html报告的生成和日志记录以及层级的封装(包括调用Json文件))

一、API的选择 我们进行接口测试需要API文档和系统&#xff0c;我们选择JSONPlaceholder免费API&#xff0c;因为它是一个非常适合进行接口测试、API 测试和学习的工具。它免费、易于使用、无需认证&#xff0c;能够快速帮助开发者模拟常见的接口操作&#xff08;增、删、改、…