目标检测论文阅读:Relation Networks for Object Detection

Relation Networks for Object Detection

论文链接:https://arxiv.org/abs/1711.11575
代码链接:暂无,尚不清楚是否会公开
这个是CVPR 2018的文章,虽然并没有什么巧妙的设计,但是思路很有趣,那就是引入了object的关联信息,在神经网络中对object的relations进行建模。主要贡献点有两条:
1. 提出了一种relation module,可以在以往常见的物体特征中融合进物体之间的关联性信息,同时不改变特征的维数,能很好地嵌进目前各种检测框架,提高性能
2. 在1的基础上,提出了一种特别的代替NMS的去重模块,可以避免NMS需要手动设置参数的问题

1. Background

假设现在有一个显示屏幕,问这是电脑显示屏还是电视屏幕,该怎么判断?如果单纯把屏幕取出来,确实很难回答这个问题,但是如果结合周围的东西,就很好解决了……比如,放在客厅环境、旁边有茶几的是电视,而旁边有键盘和鼠标的是电脑显示屏;又或者,宽度有沙发那么大的是电视,而只比一般座椅稍大一点的是电脑屏……
总之,周边其他物体的信息很可能对某个物体的分类定位有着帮助作用,这个作用在目前的使用RoI的网络中是体现不出来的,因为在第二阶段往往就把感兴趣的区域取出来单独进行分类定位了。这篇文章作者就考虑改良这个情况,来引入关联性信息。
放一个直观的例子,蓝色代表检测到的物体,橙色框和数值代表对该次检测有帮助的关联信息。
这里写图片描述
实际上以往也有人尝试过类似的工作,但是由于关联性涉及到对其它物体特征和位置的假设等原因,一直不是个容易的问题,本文作者从google在NLP(https://arxiv.org/abs/1706.03762)方面的一篇论文中的Attention模块得到启发,设计了本文的这种思路。

2. Object Relation Module

这个模块的特点就是联合所有object的信息来提升每个object recognition的准确性。它的模块示意图如下图所示:
这里写图片描述
解释下,这里的 fnA f A n 代表第n个物体的apperance特征,其实就是物体自身的大小、颜色、形状这些外观上的特征,而 fnG f G n 对应的是是第n个物体的geometry特征,代表物体的位置和大小(bounding box)。这里有多个relation模块(数量为 Nr N r ),可以类比神经网络中我们每层都会有很多不同的通道,以便于学习不同种类的特征……每个relaiton模块都用所有object的两个特征做输入,得到不同的relaiton特征后再concat,并和物体原来的特征信息融合,作为物体的最终特征……
那么右面的图怎么理解呢?看下面的公式:
这里写图片描述
fR(n) f R ( n ) 是第n个relation模块的输出,它是由各个所有物体的apperance特征经过 WV W V 的维数变化后,又赋予不同的权重叠加得到的……也许看到这里有人疑惑,不是说geometry特征也是输入吗,怎么没看到?其实位置特征是体现在权重里的,第m个物体对于当前第n个物体的权重 ωmn ω m n 的求法如下:
这里写图片描述
公式分母是个归一化的项,重点看分子, ωmn ω m n 主要是由两者决定的,那就是第m个物体对于当前第n个物体在geometry上的权重 ωmnG ω G m n 和在apperance上的权重 ωmnA ω A m n ,它们各自的求法如下:
这里写图片描述
这里写图片描述
这里的 WK/WQWG W K / W Q 包 括 下 面 的 W G 都起到类似的变化维数的效果,dot代表点乘, dk d k 是点乘后的维数;比较值得在意的是这里的 εG ε G ,这里是通过另一篇论文(Attention Is All You Need)中提到的方法将低维数据映射到了高维,映射后的维数为 dg d g
作者选取了 dk=dg=64Nr=16 d k = d g = 64 , N r = 16 。总结一下这个模块的求法:

  • 分别根据两个特征计算它们各自的权重
  • 由两个特征的权重获得总权重
  • 按照第m个物体对当前物体的总权重,加权求出各个relation模块
  • concat所有relation模块,与原来的特征叠加,最终输出通道数不变的新特征
    在这个过程中,要留意通道数,比如16个relation模块输出concat可以和 fnA f A n 叠加,那么它们每个的通道应该就是 fnA f A n 的通道数(记作 df d f )的16分之一。
    这个模块直接应用在第二阶段,得到和原来相同的Output(score和bbox),应用是直接在fc层之后,即从原来的:
    这里写图片描述
    改变为:
    这里写图片描述
    r1,2 r 1 , 2 代表重复次数,也可以用图来表示:
    这里写图片描述

3. Duplicate removal

作者的另一个贡献就是提出了这种可以代替NMS的消除重复框的方法。框架如下:
这里写图片描述
要先说明的是,作者把duplicate removal当成一个二分类问题,对于每个ground truth,只有一个detected object被归为correct类,而其余的都是duplicate
这个模块的输入是instance recognition模块的output,也就是一系列的detected objects,它们每个都有1024-d的特征,分类分数 s0 s 0 还有bbox。而输出则是 s0s1 s 0 ∗ s 1 得到的最终分类分数。
那么 s1 s 1 是怎么算的呢?首先,对于detected objects作者按照它们的scores对它们进行排名,然后将scores转化为rank,据作者说这样更加有效,随后rank信息会按照类似 εG ε G 的求法映射到高a和sigmoid函数,得到 s1 s 1
如何判断哪个detected object是correct,而哪些是duplicate?在这里,作者设置了一个阈值 η η ,凡是IoU超过该阈值的样本都会被选择;接着,在选择的样本中,IoU值最大的为correct,其余为duplicate。当对定位要求比较高的时候,可以设置较高的 η η ,相应的被选择的样本就会发生变化, s1 s 1 也会发生变化,直接影响最终的分数。
作者认为这样做的好处如下:

  1. output的时候,NMS需要一个预设置的参数;而duplicate removal模块是自适应学习参数的。
  2. 通过设置不同的 η η ,可以将模块变成多个二分类问题,并取其中最高的值作为输出,作者经过试验,证明这种方式较单一阈值的方式更可靠。
  3. 作者发现阈值的设置和最后的指标有某种联系。例如mAP0.5在 η η 为0.5时的效果最好,mAP0.75的t同理,而mAP使用多个 η η 效果最好。
  4. 最后,就是 η η 的含义问题。之前也发过邮件和作者沟通,对方的回复是, η η 本质上代表的是分类和定位问题的权重,它的值设置得越高,说明网络越看重定位的准确性。

这里作者也提出了问题:

  1. 只有一个样本被划分为correct,会不会导致严重的正负样本不均衡?
    答案是否定,网络工作的很好,这是为什么呢?因为作者实际运行发现,大多数的object的 s0 s 0 得分很低,因此 s0s1 s 0 和 s 1 就很小,从而导致 L=log(1s0s1) L = − l o g ( 1 − s 0 s 1 ) 和梯度 Ls1 ∂ L ∂ s 1 都会比较小。
  2. 设计的两个模块功能是否矛盾?因为instance recognition要尽可能多地识别出high scores的物体,而duplicate removal的目标是只选择一个正样本。作者认为这个矛盾是由 s0s1 s 0 和 s 1 来解决的,instance recognition输出的高 s0 s 0 可以通过较低的 s1 s 1 来调节。
  3. duplicate removal是一个可以学习的模块,和NMS不同,在end2end训练中,instance recognition输出的变化会直接影响到该模块,是否会产生不稳定性?答案也是否定的,实际上,作者发现end2end的训练方式更好,作者认为这是由于不稳定的label某种程度上起到了平均正则化的作用。

不过比较遗憾的是,个人对这个模块还是有一定困惑的。主要作者对于该模块是不是class specific的,就我个人而言,无论是对score排序获取rank还是后面的二分类问题,看上去感觉更像是class specific的,也就是每个类别都有一条分支;但是作者好像没有详细谈这个问题,也许是我看漏了,希望了解的同学不吝指教。

4. Experiment

这部分就不详细介绍了,作者主要使用了ResNet 50和101,用两个fc层作为baseline进行了很多对比实验。
包括:

  • geometric feature特征的使用
  • Nr N r 的数量
  • relation modules的重复次数
  • 效果的提升是源于relation module还是只是因为多加了几个层
  • NMS和SoftNMS
  • end2end和分阶段训练哪个更好
  • 等等……

最终的实验结果:
这里写图片描述

5. Summary

本文主要是在detection当中引入了relation的信息,我个人觉得算是个很不错的切入点,而且motivation是源自NLP的,某种方面也说明了知识宽度的重要性。但是一个比较可惜的点就是,relation module更像是拍脑袋思考了一个方法然后直接去实验验证了,对于relation到底学到了什么,能不能更好地理解这个信息,作者认为这还是个有待解决的问题。期待在relation问题上能看到更多有趣的思路吧。

### 回答1: "Learning to Compare: Relation Network for Few-Shot Learning" 是一篇关于Few-Shot Learning(小样本学习)的论文,提出了一种称为“关系网络”的新型神经网络架构。 该网络旨在解决小样本学习中的问题,该问题通常会导致在只有极少量的训练样本的情况下,模型的泛化性能下降。关系网络使用一个子网络来提取图像特征,并通过计算这些特征之间的关系来对它们进行分类。 关系网络的特点是它在执行分类任务时能够捕捉物体之间的关系和上下文信息,因此在少量样本的情况下,它的性能比其他方法更好。该网络已经被广泛应用于小样本学习领域,并在多项实验中获得了优秀的表现。 ### 回答2: 本文主要介绍了一种基于关系网络的few-shot学习方法——Relation Network(RN)。Few-shot学习是一种类别识别的任务,旨在从非常少量(通常是几个)的样本中学习新的类别。RN为此提供了一种强大的框架,可以在few-shot学习中能够有效地捕捉物体之间的关系,从而实现精确的类别识别。 RN在模型设计中引入了两个重要的组件:特征提取器和关系网络。特征提取器通常是卷积神经网络(CNN),它可以提取出每个样本的特征表示。关系网络的作用是计算出每对样本之间的关系,将这些关系汇总到一起,最终出现样本之间的相对关系。在计算样本之间的关系时,RN采用的是一种全连接神经网络,它对每一对样本的特征进行融合,然后输出一个特定类别的置信度。 值得注意的是,RN的关系网络不仅可以使用在few-shot学习中,也可以应用于全局分类问题。此外,RN采用了一些有效的技巧来加速测试阶段的推理速度,比如使用浅层矩阵乘法以减少计算量,和简单的欧氏距离作为度量衡量。 总而言之,RN是一种强大的学习方法,特别是在few-shot学习方面,可以实现更好的判别性能和更准确的类别识别。不过,同时也存在一些限制,比如需要更多的数据集来训练样本的特征提取器,以及容易出现过拟合问题。因此,RN还需要进行更深入的研究和优化,以实现更大范围的应用和实际效果。 ### 回答3: 学习比较:关系网络是一种少样本学习的方法,旨在解决少样本学习问题中的挑战。传统的机器学习方法需要大量数据来训练模型。而在现在许多领域,例如医疗诊断和工业生产,只有很少的数据可用于训练模型。在这种情况下,少样本学习就变得非常重要。学习比较:关系网络是少样本学习的一种新方法,它通过学习对象之间的关系来捕捉它们之间的相似性和差异性。 学习比较:关系网络包含两个部分:特征提取器和关系网络。特征提取器将输入图像转换为对应的向量表示,而关系网络则对这些向量进行比较,从而推断它们之间的关系。关系网络可以用来处理各种不同的问题,例如分类、回归和生成等。 学习比较:关系网络的优点是,它可以利用少量的数据来学习,并且可以在不同的任务之间共享知识。这使它成为处理少样本学习问题时的一个有力工具。在实际应用中,学习比较:关系网络已经被广泛应用于图像分类、目标检测和语音识别等领域,并产生了许多显著的结果。未来,随着越来越多的研究者开始使用这种方法,我们可以期待看到更多的成功案例,并进一步将学习比较:关系网络应用到更广泛的领域,以帮助人们解决难题并改善生活质量。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值