广义交并比-GIOU(回归检测的一种指标和Loss)

注释

  • 本系列《论文翻译》仅代表个人观点
  • 目的提高英文阅读能力
  • 错误之处较多,欢迎读者修正,在此感谢

1. 摘要

  目标检测的评价指标最常使用的是交并比进行度量。然而在优化(经常使用距离参数对边界框进行回归)和最大化(最大化这个度量参数)之间存在一些缺陷(这里指代价函数和优化目标之间存在不对等情况,具体看后文就会明白)。度量的最优目标就是其本身。在轴对称的情况下,IOU可以直接当做回归损失。然而,在不想交的情况下,IOU是不能当做度量值的。在本文中,我将通过介绍一种新的度量(GIOU)和LOSS计算方法来解决IOU的缺点。通过把GIOU融合进当前最先进的网络之中(数据集使用当前最流行的基准PASCAL VOC、COCO等),对比GIU和IOU,展示出GIOU一致的优于IOU的表现。

2. 介绍

  框回归是2D、3D计算机视觉任务中最重要的组成部分之一。任务包括:目标定位、多目标检测、目标跟踪、依靠高精度的框回归实例级分割。 使用深度神经网络去提高应用的性能,占主导地位的方法是提出一个更好的基础架构或者更好的策略来提取更精确的特征。然而一个很好的提高方法被忽视,使用损失的度量方法IOU去代替回归损失(L1--LOSS、L2--LOSS)。

  IOU又被称为Jaccard索引,常用来作为两个任意形状目标相似性对比。IOU对目标的形状属性进行编码,长宽高位置等,然后对他们的区域计算一个标准的度量。由IOU的计算属性,具有尺度不变性。由于这个良好的属性,所以被广泛的应用在分割和目标检测中进行性能评价。

  然而,IOU没有表现出很好的相关性,对于 \(l_n-norms\) 等损失最小化(2D、3D中两个框参数化)和提高他们IOU值。例如:在图1(a)中,假设LOSS采用\(l_2-norm\)进行表示,则每个LOSS的大小相同。相同的论述可以推广到其他的loss(图b和图c)。直观上,一个好的目标局部最优不一定是IOU局部最优。和IOU相反,\(l_n-norm\) 是不具有尺度不变性的。为了这个目的,一些具有透视变换的区域(同一水平),那么他们计算出的LOSS就不相同。此外,一些不同的参数化类型表述之间可能缺少标准化。比如使用中心点和大小表示的\((x,y,w,h)\),随着更多参数(旋转、或者增加一个维度表示)的合并,复杂度也会增加。为了解决上述的问题,一些优秀的检测器提出了的概念,来做一个初始化的假设。又定义一个非线性的参数来对尺度进行补偿。即使做了这些手动改变,也不无弥补优化器和IOU之间的差别。注释:这是表达的意思是我们进行训练最小化的东西A,评价的指标B,A和B之间没有统一(标准化)。例如,最小二乘法,我们最小化和评价的指标都是一个(平均垂直到线的距离最小)。而在目标检测的时候我们使用的是L1-LOSS,而评价的时候使用IOU。作者给出的图一发现这两个不统一。Anchor的出现是为了简化目标得表示方式,尺度参数的出现(SSD里面是编解码)是为了解决多尺度问题

  在这篇文章中,我们发现一种与流行方法不同的可计算IOU,在两个轴对齐的情况下,可以直接得到解,并且此方式可以反向传播。也可以使用优化器进行优化得到最优值。在2D、3D的目标检测中可以非常好的使用IOU进行计算。这样IOU既可以当做优化函数,也可以作为度量函数。然而,IOU同时作为度量和LOSS存在一个重要问题:如果两个框不想交,那么就无法衡量两个框的距离,同时值为0,当计算梯度的时候就无法使用优化器进行传播。

  在这篇文章中,我们通过扩充IOU的概念(范围)去解决不想交的情况。我们确保具有以下性质:(a)和IOU的定义一样,对边界进行编码。(b)保持尺度不变性。(c)在相交的情况和LOSS有很强的相关性。我们介绍的方法称为GIOU,作为解决两个任意形状的几何相关性。我们也提供了一种计算GIOU的分析方案,在两个轴对齐的情况下,让它称为计算LOSS的一种途径。在当前最先进的检测网络合并入GIOU,可以达到比之前都有提升的结果。。。(后面都是和摘要相同)。

  这篇文章最主要的贡献总结如下(都是废话):

  • GIOU用于对比两个任意形状的框
  • 提供计算方案
  • 在网络进行了实验

3. 相关工作

  目标检测精度测量:IOU作为基础,当IOU大于0.5时候作为计算输入,使用mAP作为衡量基准。

  边界框的表现和LOSS计算:说了一些传统论文的计算方法。。。。

  使用近似IOU或一个替代函数:在语义分割任务中,他们做了一些努力,使用近似或另外的函数替代LOSS的计算。在当前的目标检测中,部分论文已经开始使用IOU作为LOSS的计算,但是在不想交的情况下如何应用还是个未解决的问题。

4. 广义交并比

  IOU用来衡量两个任意形状的相关性:
\[
IOU=\frac{|A\bigcap B|}{A\bigcup B}
\]
  IOU作为2D、3D目标检测评价函数最广泛的使用,主要包括两个优点:

  • IOU表示一个距离,假设\(L_{IOU}=1-IOU\)为一个指标,也就意味着\(L_{IOU}\)满足所有的属性,包括难以辨认的、对称的、不等三角等。
  • IOU具有尺度不变性,这也就意味着,在\(S\)空间中,A和B的关系对于尺度具有不变性。

然而,IOU存在一个主要的缺点:

  • 当\(|A\bigcap B|=0\),\(IOU(A,B)=0\)。在这种情况下,IOU无法反应出两个形状在附近还是非常远。

为了解决这个问题,我们提出一个扩充的IOU来解决这个问题,命名为GIOU。

。。。说了一段计算GLOU的话,就是如下公式:

GIOU具有如下的优点:

  • 和IOU类似
  • 尺度不变
  • GIOU <= IOU
  • 0 =< IOU <= 1

5. GIOU作为目标检测的LOSS

这部分很简单,IOU怎么计算的,GIOU同样计算

  下面放一张原论文的计算图即可:

  LOSS的稳定性分析:当出现一些极端情况的时候,哪个度量方式会使LOSS更稳定?

6. 实验结果

不进行分析,直接看结果即可

7. 个人理解

  本文的思想非常简单,就是说LOSS和评估函数得相等,不然LOSS学到的东西不等于评价结果。主语如果做得论文说的很清楚,这里不再赘述。

关于网上说的几个问题,这里个人回答一波

  1. 为什么 \(、L_1、L_2\) 作为LOSS可以得出不错的结果?

其实回答这个问题很简单,因为\(、L_1、L_2\)的计算在一定情况下是符合优化目标的

试想一下,SSD的框定义那么多,总有一个符合计算模式的(而且是精心设计的框)

如果按照作者说的,把anchor和GroundTrue全部不想交试试?gradient=0怎么计算?

  1. 为什么GIOU的效果不明显,有的反而不好?

不明显?

效果不明显是因为SSD这种框太多了,很多都符合\(、L_1、L_2\)的计算模式了。

可以试试把SSD框降低,同时一张图像中的目标增加

反而不好?

按照理论分析基本不可能

单词汇总

  • metric:度量
  • optimal: 最优
  • plateau: 平面
  • infeasible: 不可行
  • adress: 解决
  • incorporating:合并
  • consistent:一致的
  • instance level segmentation:实例级分割
  • dominate:占统治地位
  • utilizing:利用
  • surrogate:取代、代替
  • arbitrary:任意的
  • appealing:吸引人的(appeal呼吁、吸引)
  • significant:明显的
  • intuitive:直观上
  • to this end:为了这个目的
  • alleviate:减轻
  • compensate:补偿
  • prevailing:流行的
  • maintains:保持
  • remedy:修正
  • crucial:重要的
  • volumes:容器
  • fulfill:满足
  • discern:辨认、识别
  • symmetry:对称
  • vicinity:附近
  • ellipse:椭圆
  • tighter:紧
  • protocol:协议

《论文翻译》 GIOU的更多相关文章

  1. [原创]Faster R-CNN论文翻译

    Faster R-CNN论文翻译   Faster R-CNN是互怼完了的好基友一起合作出来的巅峰之作,本文翻译的比例比较小,主要因为本paper是前述paper的一个简单改进,方法清晰,想法自然.什 ...

  2. R-CNN论文翻译

    R-CNN论文翻译 Rich feature hierarchies for accurate object detection and semantic segmentation 用于精确物体定位和 ...

  3. SSD: Single Shot MultiBoxDetector英文论文翻译

    SSD英文论文翻译 SSD: Single Shot MultiBoxDetector 2017.12.08    摘要:我们提出了一种使用单个深层神经网络检测图像中对象的方法.我们的方法,名为SSD ...

  4. R-FCN论文翻译

    R-FCN论文翻译 R-FCN: Object Detection viaRegion-based Fully Convolutional Networks 2018.2.6   论文地址:R-FCN ...

  5. 深度学习论文翻译解析(四):Faster R-CNN: Down the rabbit hole of modern object detection

    论文标题:Faster R-CNN: Down the rabbit hole of modern object detection 论文作者:Zhi Tian , Weilin Huang, Ton ...

  6. 深度学习论文翻译解析(三):Detecting Text in Natural Image with Connectionist Text Proposal Network

    论文标题:Detecting Text in Natural Image with Connectionist Text Proposal Network 论文作者:Zhi Tian , Weilin ...

  7. 深度学习论文翻译解析(二):An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition

    论文标题:An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application ...

  8. 深度学习论文翻译解析(一):YOLOv3: An Incremental Improvement

    论文标题: YOLOv3: An Incremental Improvement 论文作者: Joseph Redmon Ali Farhadi YOLO官网:YOLO: Real-Time Obje ...

  9. 【转】分布式一致性算法:Raft 算法(Raft 论文翻译)

    编者按:这篇文章来自简书的一个位博主Jeffbond,读了好几遍,翻译的质量比较高,原文链接:分布式一致性算法:Raft 算法(Raft 论文翻译),版权一切归原译者. 同时,第6部分的集群成员变更读 ...

随机推荐

  1. Spring Bean的作用域以及lookup-method标签的使用

    Spring Framework支持五种作用域,如下图所示: singleton:表示一个容器中只会存在一个bean实例,无论在多少个其他bean里面依赖singleton bean,整个容器都只会存 ...

  2. 在论坛中出现的比较难的sql问题:20(触发器专题2)

    原文:在论坛中出现的比较难的sql问题:20(触发器专题2) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有必要记录下 ...

  3. RabbitMQ的应用场景

    进入正题. 一.异步处理 场景:发送手机验证码,邮件 传统古老处理方式如下图 这个流程,全部在主线程完成,注册->入库->发送邮件->发送短信,由于都在主线程,所以要等待每一步完成才 ...

  4. Java之协程(quasar)

    一.前面我们简单的说了一下,Python中的协程原理.这里补充Java的协程实现过程.有需要可以查看python之协程. 二.Java协程,其实做Java这么久我也没有怎么听过Java协程的东西,但是 ...

  5. C#避免WinForm窗体假死

    WinForm窗体在使用过程中如果因为程序等待时间太久而导致窗体本身假死无法控制,会严重影响用户的体验,这种情况大多是UI线程被耗时长的代码操作占用所致,可以新开一个线程用来完成耗时长的操作,然后再将 ...

  6. VBA分别使用MSXML的DOM属性和XPATH进行网页爬虫

    本文要重点介绍的是VBA中的XmlHttp对象(MSXML2.XMLHTTP或MSXML.XMLHTTP),它可以向http服务器发送请求并使用微软XML文档对象模型Microsoft XML Doc ...

  7. springboot系列(十)springboot整合shiro实现登录认证

    关于shiro的概念和知识本篇不做详细介绍,但是shiro的概念还是需要做做功课的要不无法理解它的运作原理就无法理解使用shiro: 本篇主要讲解如何使用shiro实现登录认证,下篇讲解使用shiro ...

  8. 他爬取了B站所有番剧信息,发现了这些……

    本文来自「楼+ 之数据分析与挖掘实战 」第 4 期学员 -- Yueyec 的作业.他爬取了B站上所有的番剧信息,发现了很多有趣的数据- 关键信息:最高播放量 / 最强up主 / 用户追番数据 / 云 ...

  9. C++——多维数组动态开辟与释放

    前言 在讨论多维数组动态开辟与释放之前,先说说什么是二维数组静态开辟与释放. 形如这种就是静态开辟内存,事先画好了内存大小 #include<iostream> using namespa ...

  10. 使用DateTimeFormatter替换线程不安全的SimpleDateFormat

    原文:https://blog.csdn.net/baofeidyz/article/details/81307478 如何让SimpleDateFormat保持安全运行? 方案一 每次都去new这种 ...