MPDIoU: A Loss for Efficient and Accurate Bounding BoxRegression--论文学习笔记

news2024/11/15 4:36:52

超越GIoU/DIoU/CIoU/EIoU MPDIoU让YOLOv7和YOLACT双双涨点

目标检测上的指标对比: 

论文地址: [2307.07662] MPDIoU: A Loss for Efficient and Accurate Bounding Box Regression (arxiv.org)

摘要

边界框回归(Bounding Box Regression,BBR)在目标检测和实例分割中被广泛应用,是定位目标的重要步骤。然而,大多数现有的边界框回归损失函数在预测框与实际标注框具有相同的宽高比但宽度和高度值完全不同的情况下无法进行优化。为了解决上述问题,作者充分探索了水平矩形的几何特征,提出了一种基于最小点距离的边界框相似度比较度量——MPDIoU,其中包含了现有损失函数中考虑的所有相关因素,例如重叠或非重叠面积、中心点距离以及宽度和高度的偏差,同时简化了计算过程。在此基础上,作者提出了一种基于MPDIoU的边界框回归损失函数,称为L_{MPDIoU}。实验结果表明,将MPDIoU损失函数应用于最先进的实例分割(如YOLACT)和目标检测(如YOLOv7)模型,在PASCAL VOC、MS COCO和IIIT5k数据集上优于现有的损失函数。

Introduction

        目标检测和实例分割是计算机视觉中两个重要的问题,在过去几年中吸引了大量研究人员的兴趣。大多数最先进的目标检测器(例如YOLO系列,Mask R-CNN,Dynamic R-CNN和DETR)依赖于边界框回归(BBR)模块来确定目标的位置。基于这种模式,设计良好的损失函数对于BBR的成功非常重要。到目前为止,大多数现有的BBR损失函数可分为两类:1、基于l_{n}数的损失函数;2、基于交并比(IoU)的损失函数。

        然而,现有的大多数BBR损失函数在不同预测结果下具有相同的值,这降低了边界框回归的收敛速度和准确性。因此,考虑到现有BBR损失函数的优缺点,并受到水平矩形的几何特征启发,作者尝试设计一种基于最小点距离的新型损失函数L_{MPDIoU},用MPDIoU作为新的度量标准,比较边界框回归过程中预测边界框与实际标注边界框之间的相似性。作者还提供了一个简单易实现的解决方案,用于计算两个轴对齐矩形之间的MPDIoU,使其可以作为评估指标纳入最先进的目标检测和实例分割算法中,并在一些主流的目标检测、场景文本识别和实例分割数据集(如PASCAL VOC,MS COCO,IIIT5k和MTHv2)上进行测试,以验证作者提出的MPDIoU的性能。

本文的贡献总结如下:

  1. 作者考虑了现有IoU-based损失和l_{n}-norm损失的优缺点,并提出了一种基于最小点距离的IoU损失,即L_{MPDIoU},来解决现有损失函数的问题,并获得更快的收敛速度和更准确的回归结果。

  2. 作者在目标检测、字符级场景文本识别和实例分割任务上进行了广泛的实验。出色的实验结果验证了提出的MPDIoU损失的优越性。详细的消融研究展示了不同损失函数和参数值设置的效果。

相关工作就是介绍了之前的几种IoU(GIoU/DIoU/CIoU/EIoU),这里就跳过了,感兴趣的话可以看这里:IoU Loss综述,对几种IoU做了总结

Intersection over Union with Minimum Points Distance

        在分析了IoU系列损失函数的优势和劣势之后,开始思考如何提高边界框回归的准确性和效率。通常情况下,使用左上角和右下角点的坐标来定义一个唯一的矩形。受到边界框几何特性的启发,作者设计了一种新颖的基于交并比的度量标准,名为MPDIoU,直接最小化预测边界框与实际标注边界框之间的左上角和右下角点距离。

MPDIoU的计算过程总结在算法1中:

通过使用MPDIoU作为新的损失度量,作者期望能够改善边界框回归的训练效果,提高收敛速度和回归精度。

总结一下,提出的MPDIoU简化了两个边界框之间的相似性比较,适用于重叠或非重叠的边界框回归。因此,在2D/3D计算机视觉任务中,MPDIoU可以很好地替代交并比作为所有性能指标的度量。在本文中,作者仅关注2D目标检测和实例分割,可以将MPDIoU轻松应用为度量和损失函数。

MPDIoU as Loss for Bounding Box Regression

        在训练阶段,通过最小化以下损失函数,使得模型预测的每个边界框Bprd = [xprd, yprd, wprd, hprd]T趋近于其对应的真实标注边界框Bgt = [xgt, ygt, wgt, hgt]T:

其中Bgt表示真实标注边界框的集合,\Theta表示用于回归的深度模型的参数。典型的损失函数L采用l_{n}范数,例如均方误差(MSE)损失和Smooth-{l_{1}}损失,这些损失函数在目标检测、行人检测、场景文本识别、3D目标检测、姿态估计和实例分割等任务中得到广泛应用。然而,最近的研究表明,基于l_{n}范数的损失函数与评估指标——交并比(IoU)并不一致,因此提出了基于IoU的损失函数。基于前面一节中MPDIoU的定义,作者定义基于MPDIoU的损失函数如下:

因此,现有边界框回归损失函数的所有因素都可以通过4个点的坐标来确定。转换公式如下所示: 

在上述公式中,\left | C \right |表示覆盖Bgt和Bprd的最小外接矩形的面积,\left (x_{c}^{gt},y_{c}^{gt} \right )\left (x_{c}^{prd},y_{c}^{prd} \right )分别表示真实标注边界框和预测边界框的中心点坐标。{w_{gt}}{h_{gt}}表示真实标注边界框的宽度和高度,{w_{prd}}{h_{prd}}表示预测边界框的宽度和高度。

从公式(10)-(12)中可以发现所有现有损失函数中考虑的因素都可以通过左上角点和右下角点的坐标来确定,例如非重叠面积、中心点距离、宽度和高度的偏差,这意味着作者提出的L_{MPDIoU}不仅考虑全面,还简化了计算过程。

根据定理3.1,如果预测边界框和真实标注边界框具有相同的宽高比,那么预测边界框位于真实标注边界框内的L_{MPDIoU}值低于预测边界框位于真实标注边界框外的情况。这一特性保证了边界框回归的准确性,倾向于提供具有较少冗余的预测边界框。

考虑到真实标注边界框Bgt是一个面积大于零的矩形,即Agt > 0。算法2中的条件(1)和算法2中的条件(6)确保了预测面积Aprd和交集面积I为非负值,即Aprd ≥ 0 和 I ≥ 0,对于∀Bprd ∈ R4。

因此,对于任何预测边界框Bprd = (x1prd, y1prd, x2prd, y2prd) ∈ R4,其并集面积U > 0。这确保了交并比的分母在任何预测输出值下都不会为零。此外,对于任何Bprd = (x1prd, y1prd, x2prd, y2prd) ∈ R4的值,其并集面积总是大于等于交集面积,即U ≥ I。因此,L_{MPDIoU}始终有界,即0 ≤ L_{MPDIoU} < 3,对于∀Bprd ∈ R4。

当IoU = 0时:对于MPDIoU损失,作者有L_{MPDIoU} = 1 - MPDIoU = 1 + \frac{d_{1}^{2}}{d^{2}} + \frac{d_{2}^{2}}{d^{2}} -IoU。在Bgt和Bprd不重叠的情况下,即IoU=0,MPDIoU损失可以简化为L_{MPDIoU} = 1 - MPDIoU = 1 + \frac{d_{1}^{2}}{d^{2}} + \frac{d_{2}^{2}}{d^{2}}。在这种情况下,通过最小化L_{MPDIoU},作者实际上是在最小化\frac{d_{1}^{2}}{d^{2}} + \frac{d_{2}^{2}}{d^{2}}。这一项是一个介于0和1之间的归一化度量,即0\leq \frac{d_{1}^{2}}{d^{2}} + \frac{d_{2}^{2}}{d^{2}} < 2

实验

        作者在各种数据集上进行了实验,在VOC 的测试集上的指标如最上的图,比其他的几个IoU都有提升,以及在COCO上的对比实例:

后面还对比了实例分割和OCR场景文本定位的实验结果,L_{MPDIoU}的结果都有提升

ocr:

  

实例分割:

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

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

相关文章

JSP项目国际化词条统计

国际化字条匹配并导出为excel格式 需求 将jsp页面里的key值&#xff0c;就是<spring:message code"gsyezer_Single_crystal"/>里的gsyezer_Single_crystal。和对应的字条对应上&#xff0c;并以excel表格形式输出。 jsp页面key值示例 <label for"&…

Redis 搭建主从集群

文章目录 1. 主从集群架构1.1 准备实例和配置1.2 启动1.3 开启主从关系1.4 测试 2. 主从同步原理2.1 全量同步2.2 增量同步repl_backlog原理 2.3 主从同步优化小结 单节点的 Redis 并发能力有限&#xff0c;要进一步提高 Redis 的并发能力&#xff0c;就需要搭建主从集群&#…

Eureka 学习笔记5:InstanceRegistry

版本 awsVersion ‘1.11.277’ LeaseManager 接口管理实例的租约信息&#xff0c;提供以下功能&#xff1a; 注册实例取消注册实例实例续约剔除过期实例 public interface LeaseManager<T> {/** 注册实例并续约*/void register(T r, int leaseDuration, boolean isRep…

8.1day02苍穹外卖开发

今天完善的功能是新增员工的功能&#xff1b; 新增员工需要添加的数据和员工表中的字段存在差异&#xff0c;用DTO封装传入进来的数据&#xff0c;将DTO实体的数据拷贝给employ类中去&#xff0c;采用的方式是用 BeanUtils.copyProperties(employeeDTO,employee); //前面是数据…

lodop学习

lodop 前提&#xff1a;为满足js调用打印机功能&#xff0c;浏览器自带的打印会弹出一个预览框&#xff0c;实际在应用场景上不需要这个预览弹窗&#xff0c;点击页面打印要直接根据预设好的参数直接打印&#xff0c;这个时候看到了lodop这个插件。 步骤1&#xff1a;官网下载…

一文搞懂Redis架构演化之路

目录 从最简单的开始&#xff1a;单机版 Redis 数据持久化&#xff1a;有备无患 主从复制&#xff1a;多副本 哨兵&#xff1a;故障自动切换 分片集群&#xff1a;横向扩展 总结 这篇文章我想和你聊一聊 Redis 的架构演化之路。 现如今 Redis 变得越来越流行&#xff0c;…

C++ ——stack、queue容器模拟实现及deque容器底层介绍

deque文档 stack文档 deque文档 文章目录 &#x1f345;1. deque容器&#x1f352;deque底层&#x1f352;deque的优势&#x1f352;deque的劣势 &#x1fad0;2. stack模拟实现&#x1f95d;3. queue模拟实现 &#x1f345;1. deque容器 查看文档可发现&#xff0c;栈和队列都…

前中后序迭代统一格式遍历法(最好理解)js版本

说实话,有关二叉树遍历这块,特别是迭代版本,网上好多写的糊里糊涂的,尤其是将三种遍历统一风格的,基本都是看到一头雾水,我想了个比较直观点(自认为) 首先,以下图二叉树为例, 使用迭代法,无论哪种遍历顺序都要首先要开一个栈,同时还需要一个指针cur用于控制当前 接…

Java三大特征之继承【超详细】

文章目录 一、继承概念二、继承的语法三、父类成员访问3.1子类中访问父类的成员变量3.2子类和父类成员变量同名3.3子类中访问父类的成员方法 四、super关键字五、子类构造方法六、super和this七、再谈初始化八、protected 关键字九、继承方式十、final 关键字十一、继承与组合 …

RK DWC3 gadget模块 分析

1. dw3 core代码分析 文件&#xff1a;[drivers/usb/dwc3/core.c] dwc3_probe 函数主要申请dwc3_vendor 参数内存&#xff08;dwc3_vendor的dwc成员即是 struct dwc3结构体参数&#xff09;&#xff0c;对dwc3 通过设备树 以及寄存器信息对 dwc3的成员进行初始化&#xff0c;…

cloudstack平台host加入后,显示CPU speed为0GHz

一、环境说明 操作系统&#xff1a;openEuler 22.03CPU&#xff1a;Kunpeng-920&#xff0c;arm v8cloudstack&#xff1a;4.18libvirtd&#xff1a;6.2.0 二、问题描述 cloudstack平台初始化完成后&#xff0c;第一次加入host&#xff0c;系统虚拟机一直无法正常创建&#…

瑞吉外卖项目----(2)缓存优化

1 缓存优化 1.0 问题说明 1.1 环境搭建 将项目推送到远程仓库里&#xff0c;教程在git 提交远程仓库前建议取消代码检查 创建新的分支v1.0&#xff08;用于实现缓存优化&#xff09;并推送到远程仓库 1.1.1 maven坐标 导入spring-data-redis的maven坐标&#xff1a; &l…

PyTorch代码实战入门

人这辈子千万不要马虎两件事 一是找对爱人、二是选对事业 因为太阳升起时要投身事业 太阳落山时要与爱人相拥 一、准备数据集 蚂蚁蜜蜂数据集 蚂蚁蜜蜂的图片&#xff0c;文件名就是数据的label 二、使用Dataset加载数据 打开pycharm&#xff0c;选择Anaconda创建的pytorch环…

FTP Server

简介 FTP&#xff1a;File Transfer Protocol 文件传输协议&#xff1b;它工作在 OSI 模型的第七层&#xff0c; TCP 模型的第四层&#xff0c; 即应用层&#xff0c; 使用 TCP 传输而不是 UDP&#xff0c; 客户在和服务器建立连接前要经过一个“三次握手”的过程&#xff0c;…

捷码低代码|FreeContainer 自由布局组件详解

背景知识&#xff1a; 1、布局组件&#xff1a; 布局组件是一种用于在用户界面中安排和组织其他组件的组件。它们提供了一种简单的方法来控制和管理页面上组件的位置、大小和层次结构。布局组件可以是容器&#xff0c;可以包含其他组件&#xff0c;并确定它们在界面上的显示方式…

【MyBatis】 框架原理

目录 10.3【MyBatis】 框架原理 10.3.1 【MyBatis】 整体架构 10.3.2 【MyBatis】 运行原理 10.4 【MyBatis】 核心组件的生命周期 10.4.1 SqlSessionFactoryBuilder 10.4.2 SqlSessionFactory 10.4.3 SqlSession 10.4.4 Mapper Instances 与 Hibernate 框架相比&#…

深入理解MVVM架构模式

MVVM原理 MVVM是一种用于构建用户界面的软件架构模式&#xff0c;它的名称代表着三个组成部分&#xff1a;Model&#xff08;模型&#xff09;、View&#xff08;视图&#xff09;和ViewModel&#xff08;视图模型&#xff09;。MVVM的主要目标是将应用程序的UI与其底层数据模…

SERDES关键技术

目录 一、SERDES介绍 二、SERDES关键技术 2.1 多重相位技术 2.2 线路编解码技术 2.2.1 8B/10B编解码 2.2.2 控制字符&#xff08;Control Characters&#xff09; 2.2.3 Comma检测 2.2.4 扰码&#xff08;Scrambling&#xff09; 2.2.5 4B/5B与64B/66B编解码技术 2.3 包传…

Halcon学习之一维测量实战之测量矩形(一)

一、采集图像 (1)测量充电器 测量充电器的引脚,然后每次旋转充电器,让测量矩形都跟着它转,这就是定位+测量, (2)测量钥匙 (3)测量瓶盖 我们后面还会涉及到拟合的问

牛客网Verilog刷题——VL53

牛客网Verilog刷题——VL53 题目答案 题目 设计一个单端口RAM&#xff0c;它有&#xff1a; 写接口&#xff0c;读接口&#xff0c;地址接口&#xff0c;时钟接口和复位&#xff1b;存储宽度是4位&#xff0c;深度128。注意rst为低电平复位。模块的接口示意图如下。 输入输出描…