Paper Reading: Relation Networks for Object Detection

Relation Networks for Object Detection笔记

 写在前面:关于这篇论文的背景知识,请参考我前面的两篇随笔(《关于目标检测》和《关于注意力机制》)

 

摘要:

   所有最先进的物体检测系统仍然依赖于单独识别物体实例, 在学习过程中并没有利用它们的关系。背景)

   这个工作提出了一个目标关系模块。它通过它们的外观特征和几何图形之间的交互来同时处理一组物体,从而对它们之间的关系进行建模。它是轻量级的和就地(in-place)这里的relation module是in-place的,也就是说,比如在instance recognition里面,输入的是300个object proposal的特征,经过relation module之后,输出的还是300个对应object proposal的特征,只不过这些特征都融合了其他object proposal的信息。原文:https://blog.csdn.net/yaoqi_isee/article/details/78696954?utm_source=copy 

)。它不需要额外的监督,并且很容易嵌入到现有的网络中。该方法对改进现代目标检测领域中的目标识别和去重步骤有较好的效果。验证了基于 CNN 的检测中物体关系建模的有效性。它产生了第一个完全端到端的物体探测器。

 

1.Introduction

           最先进的物体探测方法大多遵循基于区域的范式,因为它是在R-CNN的开创性工作中建立起来的。给定一个稀疏的候选区域集,分别对每个提案执行物体分类和边界框回归。然后应用启发式的和手工加工后的步骤, 非极大值抑制(NMS),以消除重复检测。

          视觉社区多年来一直认为,上下文信息或物体之间的关系有助于物体识别。大多数此类工作在深度学习盛行之前。在深度学习时代,为检测学习探索物体的关系没有取得重大进展。大多数方法仍然侧重于分开识别物体。一个原因是物体和物体之间的关系很难建模。这些物体以不同的类别、不同的尺寸,位于图像的任意位置,其数量可能因不同图像而异。现代基于CNN的方法大多具有简单的规则网络结构。目前还不清楚如何解决现有方法中的上述不规范问题。(研究背景,存在的问题)

         我们的方法是由自然语言处理领域的注意力模块的成功所激发的. 注意力模块可以通过聚合来自一组元素(如源句中的所有词)的信息(或特征)来影响单个元素(如机器翻译中的目标句中的一个词)。聚合权重是自动学习的,由任务目标驱动.注意力模块可以对元素之间的依赖进行建模,而不会对它们的位置和特征分布做出过多的假设。(研究背景:本文方法参照)

 

         在这项工作中,我们第一次提出了一个用于物体检测的适应性注意力模块。它建立在基本的注意力模块之上。一个明显的区别是,原始元素是物体而不是单词。这些物体具有2D空间排列和尺度/长宽比的变化。它们的位置或一般意义上的几何特征,比起一维句子中的单词位置起着更复杂和更重要的作用。因此,所提出的模块将最初的注意力权重扩展到两个部分:原始权重和一个新的几何权重。后者建模物体之间的空间关系,只考虑它们之间的相对几何关系,使模块转换不变,这是物体识别的理想属性。新的几何权重在我们的实验中证明很重要。(研究背景:本文方法思路)

 

           这个模块被称为物体关系模块。它具有与注意力模块相同的优点。它需要可变数量的输入,并行运行(而不是顺序关系建模),是完全可微分的,并且是就地(输入和输出之间没有维度变化)。因此,它可以灵活地用作任何架构中的基本构建块。(研究背景:本文方法思路)

 

          具体而言,它应用于多种最先进的目标检测体系结构并显示出一致的改进。如图1所示,它用于改进实例识别步骤并学习重复删除步骤详见第4.1)。对于实例识别,关系模块可以对所有物体进行联合推理并提高识别的准确性(见第4.2)。对于重复删除,传统的NMS方法被轻量级的关系网络4.3)所取代和改进,从而产生了第一个端到端的物体检测器(第4.4节),这是我们所知的。(研究背景:本文方法思路)

          对象关系模块是通用的,不限于物体检测。它可以在视觉任务中找到更广泛的应用,例如实例分割,行为识别,对象关系检测,字幕,VQAvisual question answering,视觉问题回答)等.

 

2.Related Works相关工作

 

 Object relation in post-processing(后处理中的对象关系)

 

       大多数早期的工作都将对象关系作为处理后的步骤。通过考虑物体关系对检测到的物体进行重新打分(re-score)。例如,联合出现,表示两个对象类在同一个图像中可能存在的可能性,DPM使用它来改进对象的得分。随后的方法尝试了更复杂的关系模型,并考虑了额外的位置和大小。我们推荐读者阅读[18],以获得更详细的信息。这些方法在深度学习的时代取得了稳健的成功,但在深层的网络中却没有效果。一个可能的原因是,深层卷积网络通过大感受野隐含地结合了上下文信息。

 

Sequential relation modeling (顺序关系建模)

 

最近的一些作品使用顺序推理(LSTM,长短时记忆和空间记忆网络SMN)对对象关系进行了建模。在检测过程中,早期检测到的对象用于帮助寻找下一个对象。这种方法的训练通常都是很复杂的。更重要的是,它们没有证明改进了最先进的物体探测方法,这些方法是简单的前馈网络。相反,我们的方法对多个对象是并行的。它自然适合并改进现代的对象探测器。

 

Human centered scenarios(以人类为中心的场景)

 

相当多的作品关注于人类与物体之间的关系。它们通常需要额外的关系注释,比如人类行为。与此相反,我们的方法一般用于对象-对象关系,不需要额外的监督。

 

Duplicate removal(去重)

 

尽管使用深度学习的对象检测有了很大的进展,但是这个任务最有效的方法仍然是贪婪和手工制作的非最大抑制(NMS)和它的软版本。这个任务自然需要关系建模。例如,NMS使用边界框和分数之间的简单关系。

 

最近,GossipNet试图通过整体处理一组对象来学习重复删除,从而分享我们的类似精神。然而,它的网络是专门为任务而设计的并且非常复杂(深度>80)。它的准确性堪比NMS,但计算成本要求很高。尽管它原则上允许端到端学习,但没有显示实验证据。

 

与此相反,我们的关系模块简单、通用,适用于作为应用程序进行重复删除。我们的网络用于重复删除要简单得多,有小的计算开销,并且超过了SoftNMS。更重要的是,我们首次展示了一个端到端的物体检测学习是可行和有效的。

 

Attention modules in NLP and physical system modelingNLP和物理系统建模中的注意力模块)

 

注意力模块最近已经成功地应用于NLP领域和物理系统建模中。注意力模块可以很好地捕获这些问题的长期依赖关系。在NLP中,最近有一种趋势是通过注意力模型来取代重复的神经网络,支持并行化的方法和更有效的学习。

 

       我们的方法是受这些工作的启发。我们将注意力建模扩展到对象检测的重要问题上。对于视觉对象关系的建模,它们的位置,或者一般意义上的几何特征,扮演着一个复杂而重要的角色。因此,提出的模块引入了一个新的几何权重来捕获对象之间的空间关系。新的几何权重是平移不变的,对于视觉模型这是一个很重要的性质。

 

3.Object Relation Module目标关系模块

        我们首先回顾一个基本的注意力模块,叫做“(Scaled Dot-Product Attention)缩放点积注意力”。输入由查询和维度键dk组成,和维度的值dv.在查询和所有键之间执行点积,以获得它们的相似性。应用softmax函数来获得值上的权重。给定一个查询q,所有键(打包成矩阵K)和值(打包成V),输出值是加权平均除以输入值,

       

    我们现在描述目标关系计算。让一个目标包含它的几何特征fG外观特征fA.在这个工作中,fG仅仅是一个4维的目标边界框(4D-bounding box),fA(典型的1024维)取决于任务(第4.24.3节)

    给定N个目标的输入集(比如RPN输出的300个object proposal)关于第n个对象的整个目标集的关系特征fR(n)被计算为(对于第n个object,它收集得到的relation feature(关系特征)可以表示为):

    

 

         其中m=1:N,相当于就是其他所有的object的特征,通过一个矩阵变化之后的加权平均。这个矩阵是学习得到的。下面具体讲不同object之间的权重是怎么得到的。

 

    输出是来自其他目标的外观特征的加权总和,由WV线性变换(对应式1中的值V)。关系权重wmn表示来自其他目标的影响。它被计算为:

                

             分母是对分子的归一化。第m个object对第n个object产生影响的权重是由appearance和geometry共同决定的。

               

                外观权重被计算为点积,和式(1)中的类似:

                  

                表示分别将下标为m和下标为n的object映射到低维空间(实际操作是降维了),然后通过向量的内积来衡量两个object外观特征的相似性。分母表示降维之后的维度(典型的64维)。

                WKWQ都是矩阵,类似在Eq1)中KQ扮演的角色。他们将fAm和fAn的原始特征投射到子空间中,以测量它们的匹配程度。投影后的特征维度是dk

 

                几何权重被计算为:

                 

                有两个步骤。

                其中ξG函数用来将第m个object和第n个object之间的几何特征映射到高维空间(典型的64维),方法是首先计算m和n之间的相对位姿, 

               首先,这两个物体的几何特征被嵌入到一个高维的表示中,使用进行表示。为了使它对平移和缩放变换保持不变性,使用一个4维的相对几何特征,即:   (上述得到的相对位姿就是平移和尺度不变的了)

       这个4维特征被嵌入到一个高维的表示中通过【56】中的方法,它计算不同波长的余弦和正弦函数。嵌入后的特征维度是dg

     其次,嵌入的特征被WG转换成一个标量,并在0处被修剪,作为一个ReLU的非线性。零微调操作只限制了某些几何关系对象之间的关系。(然后将4维的相对位姿映射到64维的向量,和WG做内积之后,通过relu,relu的存在表明特征的融合只对具有特征几何结构的object之间进行。

     在注意力权重Eq3)中,几何权重Eq5)的使用使我们的方法与基本的注意力模型Eq1)不同。为了验证Eq(5)的有效性,我们还尝试了另外两个更简单的变体。第一个叫做”none’。它没有使用几何权重Eq(5).Eq(3)中,是一个常数1.0第二种叫做unary(一元)。它遵循了最近的方法。具体地说,fG被嵌入到一个高维(和f A一样)空间中,以同样的方式,并添加到fA中以形成新的外观特征。注意力的权重以none的方法被计算。我们的几何权重的有效性在表1a)和第2.5中得到验证。

 

           一个对象关系模块聚合在总的Nr关系特征中,并通过加法增强输入对象的外观特征,(上面的fR(n)fR(n)表示第n个object收集到的一种relation feature,实际上,在作者的论文里,一个object会收集Nr种(典型的16种)relation feature,然后将这Nr种feature concatenate连接在一起,和原本第n个object的feature相加,得到增强之后的特征。如下式:

  Concat.)用于聚合多个关系特征。为了匹配通道维度,每个的输出通道被设置为输入特征的维度的。(对于目标检测,原来是用第n个object proposal的特征fAn输入classifier,现在是用融合了relation feature的特征输出classifier。为了保证concate之后的relation feature能够和原来的fAn维度一致,矩阵WV对fAm起到了降维的作用。https://blog.csdn.net/yaoqi_isee/article/details/78696954?utm_source=copy )

 在算法1中总结了对象关系模块Eq(6)。使用基本运算符很容易实现,如图2所示。

 

下图表示上面的操作过程 :

 

Eq2)中的每个关系函数都由四个矩阵(WKWQWGWV)参数化,总共4Nr

个。让df表示输入特征fA的维数.参数的数量是:

根据算法1,计算复杂度是:

         典型的参数值为一般来说,Ndf的规模通常是几百。当应用到现代对象检测器时,总的计算开销很低。

        关系模块具有相同的输入和输出维度,因此可以被看作是在任何网络体系结构中使用的基本构件。它是完全可微的,因此可以通过反向传播轻松优化。下面是现代目标探测系统的应用。

4.Relation Networks For Object Detection (关系网络用于目标检测)

 4.1 Review of Object Detection Pipeline(目标检测管道回顾)(求问pipeline翻译成什么比较好?感觉“管道”怪怪的)

这项工作遵循基于区域的对象检测范例。这个范例是在开创性的工作R--CNN中建立的,包括大多数现代目标探测器。在所有以前的工作中都使用了一个四步的管道,如下所总结。

第一步生成全图特征。从输入图像中,一个深层的卷积主干网络提取出全分辨率卷积特征usually 16× smaller than input image resolution通常比输入图像分辨率要小16×)。骨干网络在ImageNet分类任务中预训练并且在检测训练中进行微调。

第二步生成局部特征。从卷积特征和一组稀疏的候选区域中,一个RoI池化层提取了每个候选区域的固定分辨率的局部特征(如7*7)。

第三步执行实例识别。从每个提案的区域局部特征来看,一个head网络可以预测提案属于某些对象类别的的概率,并通过回归来完善提案的边界框。该网络通常是浅层的,随机初始化,并在检测训练期间与骨干网络联合训练的。

最后一步执行去重操作。由于每个对象只能被检测一次,所以应该删除同一对象上的重复探测。这通常是作为一种启发式的后处理步骤实现的,称为非极大值抑制(NMS。尽管NMS在实践中运行良好,但它是手动设计的,并且是次优的。它禁止端到端的学习用于对象检测。

在此工作中,在最后两个步骤中使用了提出的目标关系模块。我们展示了它增强了实例识别(第4.2节),并学习了去重(sec-4.3)。这两个步骤都可以很容易地进行训练,无论是独立的还是联合的(第4.4节)。联合训练进一步提高了准确性,并催生了第一个端到端的通用的目标检测系统。

对不同架构的实现

为了验证我们方法的有效性和普适性,我们试验了最先进的骨干网络的不同组合,以及性能最好的检测体系结构,包括faster RCNN、特征金字塔网络(FPN)和可变形的卷积网络(DCN)。候选区域网络(RPN)用来生成候选区域。

 Faster RCNN . It is directly built on backbone networks such as ResNet . Following [44], RPN is applied on the conv4 feature maps. Following [11],the instance recognition head network is applied on a new 256-d 1 × 1 convolution layer added after conv5,for dimension reduction. Note that the stride in conv5 is changed from 2 to 1, as common practice [29].

Faster RCNN。它直接建立在像ResNet这样的骨干网络上。按照[44]RPN应用于conv4卷积特征图。按照[11],实例识别head网络应用于一个新的256-d 1 ×1的卷积层,在conv5之后,用于降维。请注意,在conv5上的步幅从2变成了1,这是常见的做法。

FPN [37]. Compared to Faster RCNN, it modifies the backbone network by adding top-down and lateral connections to build a feature pyramid that facilitates end-to-end learning across different scales. RPN and head networks are applied on features of all scales in the pyramid. We follow the training details in [37].

FPN [37]. Faster RCNN相比,它通过添加自顶向下和横向连接来修改主干网络,以构建一个特征金字塔,从而促进跨不同尺度的端到端学习。RPNhead网络应用于金字塔中所有尺度的特征。我们依照[37]中的训练细节。

DCN [11]. Compared to Faster RCNN, it modifies the backbone network by replacing the last few convolution layers in conv5 by deformable convolution layers.It also replace the standard RoI pooling by deformable RoI pooling. We follow the training details in [11].

 

DCN [11]. Faster RCNN相比,它通过可变形的卷积层替换了在conv5中最后几个卷积层,从而改变了主干网络。它还通过可变形的RoI池化层替换标准的RoI池化层。我们依照[11]的训练细节。

尽管存在差异,但在上述的结构中,一个共性是它们都采用相同的head网络结构,也就是说,RoI池化的局部特征将经历两个全连接层(2 fc),以生成最终特征用于提案分类和边界框回归。下面,我们展示了关系模块可以使用2 fc head 来增强实例识别步骤。

4.2 Relation for Instance Recognition(关系用于实例识别)

 (原本的RCNN系列的目标检测流程如下所示,从ROI pooling得到的特征经过两个fc之后,进行分类和坐标回归。 

考虑到对第n个候选的ROI池化的特征,采用了1024维度的两个全连接层。然后通过线性层执行实例分类和边界框回归。这个过程被总结如下:

目标关系模块(第3部分,算法1)可以改变所有候选的1024-d特征,而不改变特征维度。因此,它可以在Eq9)的fc层之后使用任意次数。这种增强的2 fc+RMRM是关系模块)头部如图3a)所示,并总结为:

 

Eq.10)中,r1r2表示一个关系模块重复了多少次。注意,关系模块也需要所有候选的“边界框”作为输入。这个符号在这里被忽略了。

添加关系模块可以有效地提高实例识别的准确性。这是通过在实验中进行的全面消融研究(第5.1节)进行验证的。

 

4.3 Relation for Instance Recognition(关系用于去重)

     作者把duplicate removal归结成一个二分类问题,即对于每一个gt box(ground truth box),只有一个detected box是被分成correct,其他的都是分成duplicate重复的。作者的duplicate removal network(去重)是接在分类器classifier的输出后面。该模块的输入包括候选目标object proposal的score vector(分数向量,属于各个类别的概率), bbox(边界框),以及proposal候选的特征(典型的1024维)。

    如上图3(b)所示,对于某一个候选目标的某一个类别,假设属于这个类别的概率为scoren,首先经过一个rank embed模块,即拿出其他候选目标属于该类别的分数,进行排序,得到第n个候选目标在排序中的下标(rank)。然后将rank值映射到128维向量,同时将该候选的1024维特征也映射到128维,将两种128维的特征相加之后作为新的外观特征。然后和边界框即几何特征作为关系模块的输入,得到新的128维的输出,和Ws做内积之后通过sigmoid得到分数s1。然后分数s0和分数s1相乘得到最终分数,再进行一个“二分类”:保留/不保留。

--------------------- 
作者:yj_isee
来源:CSDN
原文:https://blog.csdn.net/yaoqi_isee/article/details/78696954?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!

去重的任务自然需要利用对象之间的关系。启发式NMS方法就是一个简单的例子:得分最高的对象将会删除它附近的具有较低分数(得分关系)的对象(几何关系)。尽管它很简单,但是在NMS中,贪婪的本性和手工选择的参数使它成为一个明显的次优选择。下面我们展示了所提出的关系模块可以学习以一种简单的方式删除副本,但更有效。

去重是一个两个类的分类问题。对于每一个地面真相对象,只有一个被检测到的对象被归类为正确的。其他匹配的则被归类为重复。

这个分类是通过网络执行的,如图3b)所示。输入是一组被检测到的对象(来自实例识别的输出,Eq.9)或(10))。每个对象都有其最终的1024-d特征、分类分数S0和边界框。网络输出每个对象的二进制分类概率,

 

1是正确的,0是副本)。两个分数的乘法是最终的分类分数。因此,一个好的检测应该有两个大的分数。

这个网络有三个步骤。首先,1024-d特征和分类分数被融合以产生外观特征。第二,关系模块转换所有对象的外观特征。最后,每个对象的转换特征通过一个线性分类器(3b中的Ws)sigmoid来输出概率属于[0, 1]

关系模块是网络的核心。它支持有效的端到端学习,使用来自多个来源的信息(边界框、原始外观特征和分类分数)的。此外,分类分数的使用也很重要。

Rank feature我们发现将分数转换成一个等级是最有效的,而不是使用它的值。具体来说,输入N个对象按其分数的降序排序。每个对象都有相应的等级,属于[1,N]。然后将标量排序嵌入到更高维度的128-d特征中,使用与第3节中嵌入的几何特征相同的方法。它的等级特征和原始的1024-d外观特征都被转换为128-d,并作为关系模块的输入添加。

Which object is correct? 给定许多检测到的对象,目前还不清楚哪一个应该与地面真值对象匹配作为正确的那个。最明显的选择是遵循帕斯卡VOCCOCO数据集的评价标准。

也就是说,给定一个预定义的检测框和地面真值箱之间的IoU的阈值η,所有带有IoU>=η的检测框都首先与相同的地面事实相匹配。得分最高的检测箱是正确的,其他的是重复的。

因此,当学习和评估使用相同的阈值时,这样的选择标准效果最好.例如,在学习中使用 生成最好的矩阵,而不是

这在表4中得到了验证。

这一观察结果表明,在NMS中缺失的方法有一个独特的好处:重复删除步骤可以根据需要进行自适应学习,而不是使用预先设定的参数。例如,当需要高定位精度时,应该使用一个大的阈值

COCO评估标准的激励(0.95),我们的最佳实践是同时使用多个阈值,即具体地说,图3b)的分类器Ws被改变为输出多个概率,对应于不同的IoU阈值和正确的探测,从而导致多重二进制分类损失。在不同的情况下,训练是很平衡的。在推理过程中,多重概率只是简单地平均作为一个输出。

Training 在最后的分数上使用二进制交叉熵损失(两个分数相乘,参见图3b))。在所有对象类别上的所有检测框上的损失是平均的。一个单一的网络被训练用于所有对象的类别。

注意,重复的分类问题是极其不平衡的。大多数探测是重复的。正确检测的比例通常是小于0.01.然而,我们发现简单的交叉熵损失是很有效的。这是由于最终分数S0S1的乘法行为。因为大多数的探测都有非常小的s0(大多<0.01),因此产生小的s0s1。它们的损失值(对于不正确的对象)和反向传播的梯度的大小。也非常小,对优化的影响不大。直观地说,训练集中在一些具有大的s0的真正的重复检测上。这与最近的焦点损失工作具有相似的精神,在这种情况下,大多数无关紧要的损失项在优化过程中会降低权重,并扮演次要角色。

Inference(推理)同样的重复删除网络独立地应用于所有对象类别。乍一看,当对象类(80对于COCO数据集)和探测的数量(N=300)很高时,运行时的复杂性可能会很高。然而,在实践中,大多数探测到的“原始得分s0在大多数对象类中几乎为0”。例如,在实验中的表4里,只有12.0%的类的检测分数>0.01,在这些类中只有6.8%的检测结果>0.01。在移除这些无关紧要的类和探测之后,最终的识别精度不会受到影响。在剩余的检测中运行重复删除网络是可行的,在泰坦X GPU上大约需要2 ms。注意,NMSSoftNMS方法是连续的,在CPU上大约需要5 ms。还要注意的是,最近学习的NMS工作使用了一个非常深入和复杂的网络(深度达80),这比我们的效率低得多。

 

4.4 End-to-End Object Detection(端到端的目标检测)

 

重复删除网络在第4.3节中单独训练。然而,没有任何东西可以阻止端到端的训练。正如图3b)中的红色箭头所示,向后传播的梯度可以传递到最初的1024-d特征和分类分数,这些特征可以进一步传播到头部和主干网络中。

 

我们的端到端训练简单地将第4.2节中的局部提案损失、实例识别损失和第4.3节中的重复分类损失合并在一起,并以相同的权重。对于实例识别,可以使用head Eq9)或增强head Eq10)。

 

端到端训练显然是可行的,但它有效吗?乍一看,有两个问题。

 

首先,实例识别步骤和重复删除步骤的目标似乎是矛盾的。前者期望所有与同一地面真相对象相匹配的物体都有很高的分数。后者只希望其中一个能做到。在我们的实验中,我们发现端到端训练的效果很好,而且对于两个网络来说都是一样快的,与第4.24.3节单独训练时相比。我们相信,这种表面上的冲突是和解的,再一次通过在最后的得分s0s1中的乘法行为,使这两个目标相互补充而不是相互冲突。实例识别步骤只需要产生高分数s0,以获得良好的探测(无论是否重复)。重复删除步骤只需要为副本生成低分数s1。只要两个分数中的一个是正确的,大多数非对象或重复检测是正确的。

 

其次,重复删除步骤中的二进制分类的真值依赖于实例识别步骤的输出,以及在端到端训练过程中发生的变化。然而,在实验中,我们没有观察到这种不稳定性造成的不良影响。虽然还没有理论上的证据,但我们的猜测是,重复的删除网络相对容易进行训练,而不稳定的标签可以作为一种正则化的手段。

 

正如实验中验证的那样(第5.3节),端到端训练提高了识别的准确性。

 

5实验

所有的实验都是在有80个目标类别的COCO检测数据集上进行的。一个由80 k的训练图像和一个35 k的验证图像组成的联合用于训练。大多数消融实验在5 k未使用的验证图像(表示为minival)的子集中报告了检测到的精度,是常见的做法。表5还报告了系统级比较的测试开发的精度。

数据集描述:COCO数据集:

COCO数据集是微软团队获取的一个可以用来图像recognition+segmentation+captioning 数据集。

该数据集主要解决3个问题:目标检测,目标之间的上下文关系,目标的2维上的精确定位。(https://www.cnblogs.com/geekvc/p/6657369.html)

COCO的 全称是Common Objects in COntext,是微软团队提供的一个可以用来进行图像识别的数据集。MS COCO数据集中的图像分为训练、验证和测试集。COCO通过在Flickr上搜索80个对象类别和各种场景类型来收集图像,其使用了亚马逊的Mechanical Turk(AMT)。(https://blog.csdn.net/gqixf/article/details/79280224)

对于骨干网络,我们使用的是Res net 50Res net 101。除非另有说明,使用了Res.net 50

对于Faster RCNN[ 44]DCN [11],我们的训练主要是依照[11]。对于FPN[37],我们的培训主要是依照[37]。详情见附录。

5.1 关系用于实例识别

在本节中,对于所有实验,使用Io U阈值0.6NMS用于去重。

Relation module improves instance recognition(关系模块改进了实例识别)

1比较了在Eq9)上的基线2 f c head,和提出的2 f c+RM head Eq10)中,在不同的参数下。

 

我们首先注意到,与文献相比,我们的基线实现达到了合理的准确性(29.6 mAP)(例如,使用Res -Net-50报告了28.0[11]报告了29.4,使用Res Net- 101)。

对比研究是在三个关键参数上进行的。(Table1主要做了3个验证:1、验证引入位置特征(geometric feature)的有效性(a);2、验证关系特征数量的影响(b);3、验证relation module在两个全连接层中的数量的影响(c)。 

Usage of geometric feature(几何特征的使用).正如在第3部分中所分析的,我们在Eq5)中的几何特征的使用与两个简单的实现相比较。结果表明,我们的方法是最好的,尽管这三种方法都超过了基线。

 

为了验证relation module里面几何特征的重要性,作者设计了两个对比实验
1)none表示直接设置几何特征的权重是1,记为 none
2)unary表示直接将相对位姿映射到appearance feature一样的维度,然后和appearance feature相加作为新的appearance feature。
---------------------
作者:yj_isee
来源:CSDN
原文:https://blog.csdn.net/yaoqi_isee/article/details/78696954?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!

 

Number of relations Nr(关系的数量Nr使用更多的关系可以稳定地提高准确性。Nr=16的情况下,这种改进达到了饱和,达到了+2.3mAP的增益。

Number of modules.(模块的数量)使用更多的关系模块可以稳定地提高精确度,达到+3.2mAP的增益。因为这也增加了参数和计算的复杂性,默认情况下,使用r1=1r2=1

 

Does the improvement come from more parameters or depths?改进来自于更多的参数还是深度?

2通过在宽度或深度上增强基线2 fc heada),这样它的复杂性就可以与添加关系模块的复杂度相媲美,来回答这个问题。

更宽的2fc head1432-db)只会带来很小的改进(+0.1 mAP)。一个更深层的3 fc headc)会使准确性下降(-0.6mAP),这可能是由于训练的难度。为了使训练更容易,使用了res模块(d)(块中的每一个剩余分支都有31024-d fc层,它们具有类似于对象关系模块的复杂性。剩余块被插入到与我们的对象关系模块相同的位置。),但是只有适度的改进被观察到(+0.3 m AP)。当使用全局上下文(e,在分类之前,2048-d全局平均池化特征与第二个1024-d实例特征连接在一起)时,没有观察到改进。相比之下,我们的方法(f)显著提高了准确性(+2.3mAP)。

我们还考虑了另一个基线,它将原始的池化特征与来自一个2* 更大的Ro Ig)的特征连接起来,性能从29.6提升到30.4mAP,表明了一种更好的利用上下文线索的方法。另外,我们把这个新头和关系模块结合起来,就是,使用 替代2fc。我们得到了32.5mAP,比设置(f)(31.9mAP)好了0.6。这表明使用较大的窗口上下文和关系模块大多是互补的。

当使用更多的剩余块,并且头部网络变得更深(i)时,准确性不再增加。然而,当使用更多的关系模块(j)时,准确度会不断提高。

比较表明,该关系模块是有效的,其影响超越了网络容量的增加。

 

Complexity(复杂性)

在每个关系模块中,df=1024,dk=64,dg=64.Nr=16,一个模块大概有大约300万个参数和12亿个FLOPs( 每秒浮点计算(loating point operations per second)),从公式Eq7)和(8.与表5所示的整个探测网络的复杂性相比,计算开销相对较小(对于faster RCNN或者DCN大概少2%,对于FPN大概少8%

 

5.2 Relation for Duplicate Removal(关系用于去重)

本节中的所有实验都使用了表1faster RCNN基线2 f c head 的检测对象(在NMS之后的第一行,29.6 m AP),用于在第4.3节中对我们的方法进行培训和推断。

在我们的方法中,设置关系模块参数

使用更大的值不再提高准确性。重复删除网络有33万个参数和大约3亿次FLOPs。这一开销很小,在模型大小和计算上都是1%,与一个具有ResNet-50faster RCNN基线网络相比较。

3调查了不同输入特征对关系模块的影响(图3b表3验证了去重网络所使用的特征是否有效。可以看出 rank 特征和 bbox 特征起了很重要的作用。)。使用

=0.5,我们的方法将mAP提升到30.3。当不使用排列特征时,m AP会下降到26.6。当类得分s0以类似的方式替换等级(分数被嵌入到128-d)时,m AP下降到28.3。当1024-d的外观特征没有被使用时,map略微下降到29.9。这些结果表明,等级特征对于最终的准确性是至关重要的。

当不使用几何特征时,m AP下降到28.1。当第3节和表1a)中提到的unary方法使用时,m AP下降到28.2。这些结果验证了我们使用几何权重Eq5)的有效性。

Comparison to NMS(和NMS的比较)

4比较了我们的方法与NMS方法及其更好的变种SoftNMS ,这也是一种最先进的去重方法。

请注意,这三种方法都有一个单独的参数扮演类似的角色,可以控制局部化的准确性:NMSIo U阈值NtSoftNMS 中的规范化参数

,以及我们的地面真值标签标准参数

。在不同的定位指标下,改变这些参数来改变准确性。然而,除了反复试验之外,如何为NMS方法设置最佳参数还不清楚。

我们的方法很容易解释,因为参数直接指定了对定位精度的要求。它在以下情况表现最好:对于mAP50=0.5,对于mAP75=0.75,当 属于[0.5,0.9]对于mAP.

我们最后的m AP精度比NMSSoftNMS要好,建立了新的最先进的技术。在接下来的端到端实验中,使用

5.3. End-to-End Object Detection(端到端的目标检测)

4中的最后一行比较了端到端学习和对实例识别和去重的单独训练。端到端学习提高了+0.5mAP的精确度。

最后,我们在一些更强的骨干网络上研究了我们的方法,如ResNet- 101和更好的探测架构,也就是在表5中,FPNDCN。使用具有Res Net- 101faster RCNN,在表1中使用2fc+RM head替换2 fc head(默认参数),我们的方法在COCO minival上改进了2.50mAP。进一步使用带有端到端训练的去重网络,精度进一步提高了0.5mAP。对COCO test-dev的改进是相似的。在更强的基线上,例如DCN FPN ,我们在精度上也有了稳健的改进,包括进一步增强网络和带有端到端训练的去重。还要注意的是,我们对基线网络的实现比原始工作的准确性更高(38.1 vs 33.1,37.2vs36.2)。

 6Conclusions

综合消融实验表明,关系模块已经学习了对象之间的信息,在执行学习在单个物体上时这些信息是丢失的。尽管如此,我们还不清楚在关系模块中学到了什么,特别是当多个模块被堆起来的时候。

为了理解,我们研究了(唯一的)关系模块在在表1c)中的

Head。图4显示了一些具有较高关系权重的代表性示例。左边的例子表明,在相同的地面真相(自行车)上重叠的几个物体对中心物体有贡献。右边的例子表明,这个人对手套做出了贡献。虽然这些例子是直观的,但我们对关系模块如何工作的理解是初步的,并且留作以后的工作。

 

 

 

 

 

 

 

 

 

 

 

 

 

来自知乎:

作者:larox
链接:https://www.zhihu.com/question/263428989/answer/277505257
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

如作者所述,最近几年大家用深度学习来做检测时,很少有显式利用物体之间关系的,而这种关系对于识别还蛮重要

所以,作者提出了对每个proposal的特征进行扩展的方式:用其他所有proposal的特征来加权表示,而这个权重,就是当前proposal和其他proposal的某种相关性度量(包括视觉和几何位置两方面)

这个加权表示,会作为一个残差,与目标proposal本身的特征相结合。就像开头举例的对键盘和显示器的描述,需要再加上对鼠标本身的描述,从而得到一个更强大的描述

 

对于目标进行特征扩展的想法,在很多应用上都可以看到,比如

1、通过自我变换来扩展特征

比如将测试图片做增强(rotate、crop等),然后利用扩展出来的多个样本来做最终分类

2、用相关样本组合来加强原样本

比如做检索时做query expand,将第一次检索rank靠前的样本,作为query的扩展样本,进行特征融合后做二次检索

3、对单个样本的子区域,采用其他相关区域的特征作为扩展

比如图片处理中的Non-local Means,采用同张图片的相似区域来对当前区域去噪

以及受此启发,刚发布不久的Non-local Neural Networks,采用其他区域的特征加权,作为当前区域特征的组成部分,从而从全局获得信息

以及本问题中的Relation Networks,让每个proposal都能用上其他proposal的特征

(https://blog.csdn.net/tommorrow12/article/details/80755443)

1、分别根据两个特征计算它们各自的权重

2、由两个特征的权重获得总权重

3、按照第m个物体对当前物体的总权重,加权求出各个relation模块

4、concat所有relation模块,与原来的特征叠加,最终输出通道数不变的新特征

 

数值上相加,不是维度相加,所以输出的维度不变,可以进行下一阶段的全连接。

Concat就是聚合各个,表示第n个relation模块的输出。

 

posted @ 2018-10-14 20:14  谁动了我的奶盖  阅读(1676)  评论(1编辑  收藏  举报