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

超越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.mfbz.cn/a/55226.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

随机森林构造有哪些步骤?随机森林构造案例

在机器学习中&#xff0c;随机森林是一个包含多个决策树的分类器&#xff0c;并且其输出的类别是由个别树输出的类别的众数而定。 随机森林 Bagging 决策树 例如, 如果你训练了5个树, 其中有4个树的结果是True, 1个树的结果是False, 那么最终投票结果就是True随机森林够造过…

【Docker】Docker应用部署之Docekr容器安装Nginx

目录 一、搜索镜像 二、拉取镜像 三、创建容器 四、测试使用 一、搜索镜像 docker search nginx 二、拉取镜像 docker pull nginx # 不加冒号版本号 默认拉取最新版 三、创建容器 首先我们需要在宿主机创建数据卷目录 mkdir nginx # 创建目录 cd nginx # 进入目录 mkd…

JAVA开发工具-maven的安装与配置(最新最详细教程)

引言 Maven项目对象模型(POM)&#xff0c;可以通过一小段描述信息来管理项目的构建&#xff0c;报告和文档的项目管理工具 软件。 Maven 除了以程序构建能力为特色之外&#xff0c;还提供高级项目管理工具。由于 Maven 的缺省构建规则有较 高的可重用性&#xff0c;所以常常用两…

【已解决】标签死活不响应单击事件

大家好&#xff0c;我是执念斩长河。今天在公司写代码的时候突然遇到一个问题&#xff0c;这个问题困扰了我不久&#xff0c;就是html中li标签不能响应我的单击事件。最后在仔细分析下&#xff0c;解决了这个问题。 文章目录 1、问题来源2、问题解决方案3、问题解决效果4、总结…

如何安装、部署、启动Jenkins

一、测试环境 Linux系统 Centos 7 二、安装步骤&#xff1a; 1、安装jdk 我安装的是jdk8&#xff0c;此处就不多说了&#xff0c;自己百度哈&#xff0c;很简单 2、安装jenkins 首先依次执行如下三个命令&#xff1a; 2.1、导入镜像&#xff1a; [rootcentos7 ~]# sudo …

下载JMeter的历史版本——个人推荐5.2.1版本

官网地址&#xff1a;https://archive.apache.org/dist/jmeter/binaries/

记一次centos 磁盘挂载过程

前言 最近买了云服务器磁盘&#xff0c;需要挂载&#xff0c;一下就由大猿来记录这次过程。 挂载过程 查看磁盘挂载情况 查看物理硬盘 lsblkfdisk -l标记分区 fdisk /dev/vdb格式化分区 xfs mkfs.xfs /dev/vdb mkfs.xfs -f /dev/vdbext4 mkfs.ext4 /dev/vdbxfs 和 ex…

基于opencv的几种图像滤波

一、介绍 盒式滤波、均值滤波、高斯滤波、中值滤波、双边滤波、导向滤波。 boxFilter() blur() GaussianBlur() medianBlur() bilateralFilter() 二、代码 #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> …

Kafka系列之:记录一次Kafka Topic分区扩容,但是下游flink消费者没有自动消费新的分区的解决方法

Kafka系列之:记录一次Kafka Topic分区扩容,但是下游flink消费者没有自动消费新的分区的解决方法 一、背景二、解决方法三、实现自动发现新的分区一、背景 生产环境Kafka集群压力大,Topic读写压力大,消费的lag比较大,因此通过扩容Topic的分区,增大Topic的读写性能理论上下…

IDEA开启并配置services窗口

前言&#xff1a; 一般一个spring cloud项目中大大小小存在几个十几个module编写具体的微服务项目。此时&#xff0c;如果要调试测需要依次启动各个项目比较麻烦。 方法一&#xff1a; 默认第一次打开项目的时候&#xff0c;idea会提示是否增加这个选项卡&#xff0c;如果你没…

【ArcGIS Pro二次开发】(55):给多个要素或表批量添加字段

在工作中可能会遇到这样的场景&#xff1a;有多个GDB要素、表格&#xff0c;或者是SHP文件&#xff0c;需要给这个要素或表添加相同的多个字段。 在这种情况下&#xff0c;手动添加就变得很繁琐&#xff0c;于是就做了这个工具。 需求具体如下图&#xff1a; 左图是待处理数据…

【iOS】多线程 锁问题总结

文章目录 前言1. 你理解的多线程优点缺点 2. atomic 和 nonatomic 的区别及其作用3. GCD的队列类型 - 三种队列类型4. GCD的死锁问题5. 多线程之间的区别和联系6. 进程和线程&#xff1f;进程间的通信方式线程间的通信方式 6. iOS的线程安全手段如何保证 前言 iOS 锁和多线程的…

HCIP——BGP基础

BGP 一、BGP基础二、BGP的发展历史三、BGP在企业中的应用四、距离矢量型协议和路径矢量型协议五、BGP的特征六、BGP的对等关系七、BGP的数据包八、BGP的状态机九、BGP的工作过程十、BGP的路由黑洞十一、BGP的环路问题EBGP水平分割IBGP水平分割 十二、BGP的基本配置1、BGP的对等…

【机器学习】Classification using Logistic Regression

Classification using Logistic Regression 1. 分类问题2. 线性回归方法3. 逻辑函数&#xff08;sigmod&#xff09;4.逻辑回归5. 决策边界5.1 数据集5.2 数据绘图5.3 逻辑回归与决策边界的刷新5.4 绘制决策边界 附录 导入所需的库 import numpy as np %matplotlib widget imp…

开源代码分享(9)—面向100%清洁能源的发输电系统扩展规划(附matlab代码)

1.背景介绍 1.1摘要 本文提出了一种新颖的建模框架和基于分解的解决策略&#xff0c;将随机规划&#xff08;SP&#xff09;和鲁棒优化&#xff08;RO&#xff09;相结合&#xff0c;以应对协调中长期电力系统规划中的多重不确定性。从独立系统运营商&#xff08;ISO&#xff…

测试|性能测试相关理论

测试|性能测试相关理论&#xff08;了解&#xff09; 文章目录 测试|性能测试相关理论&#xff08;了解&#xff09;1.什么是性能测试生活中遇到的软件性能问题&#xff1a;性能测试定义&#xff1a;性能测试和功能测试有什么区别&#xff1a;性能好坏的评价指标影响一个软件性…

Redis安装部署(基于windows平台)

redis简介 键值对存储数据库是NoSQL数据库的一种类型&#xff0c;也是最简单的NoSQL数据库。顾名思义&#xff0c;键值对存储数据库中的数据是以键值对的形式来存储的。常见的键值对存储数据库有Redis、Tokyo Cabinet/Tyrant、Voldemort以及Oracle BDB数据库。 Remote Diction…

一起学算法(二维数组篇)

1.概念定义 1.矩阵的定义 矩阵A(nm)的定义时按照长方形排列的复数或实数集合&#xff0c;其中n代表的是行数&#xff0c;m代表的是列数。如下所示&#xff0c;代表的是一个4x3的矩阵 在Java中&#xff0c;我们可以用A[n][m]来代表一个n*m的矩阵&#xff0c;其中A[i][j]代表的是…

2023年的深度学习入门指南(23) - ChatGLM2

2023年的深度学习入门指南(23) - ChatGLM2 在《在你的电脑上运行大模型》这一节&#xff0c;我们曾经介绍过ChatGLM模型&#xff0c;它是当时最好的中文大模型之一。现在&#xff0c;它又更新到了第二代&#xff0c;即ChatGLM2。 当时&#xff0c;我们的技术储备还不足&#…
最新文章