RepMet: Representative-based metric learning for classification and few-shot object detection

参考   RepMet: Representative-based metric learning for classification on - 云+社区 - 腾讯云

简介

距离度量学习(DML)已成功地应用于目标分类,无论是在训练数据丰富的标准体系中,还是在每个类别仅用几个例子表示的few-shot场景中。在本文中,我们提出了一种新的DML方法,在一个端到端训练过程中,同时学习主干网络参数、嵌入空间以及该空间中每个训练类别的多模态分布。对于基于各种标准细粒度数据集的基于DML的目标分类,我们的方法优于最先进的方法。此外,我们将提出的DML架构作为分类头合并到一个标准的目标检测模型中,证明了我们的方法在处理few-shot目标检测问题上的有效性。与强基线相比,当只有少数训练示例可用时,我们在ImageNet-LOC数据集上获得了最佳结果。我们还为该领域提供了一个新的基于ImageNet数据集的场景benchmark,用于few-shot检测任务。

1、简介

由于深度神经网络(DNNs)在图像分类和检测方面取得了巨大的成功,现在被广泛接受为几乎所有计算机视觉应用的“特征提取器的选择”,主要是因为它们能够从数据中学习到良好的特征。众所周知,从零开始训练一个常规的DNN模型需要大量的训练数据。然而,在许多实际应用中,每个类可能只给出几个训练样本来学习分类器。这就是所谓的“few shot学习”。

最近的研究已经取得了重大进展,在使用DNNs的few shot学习。对于特定领域的任务,如人脸识别和一般类别的分类,已经证明了这一点。然而,很少有工作研究少镜头目标检测的问题,其中识别一个类别的实例的任务,以几个例子为代表,是复杂的存在的图像背景和需要准确定位的目标。最近,有几篇有趣的论文对zero shot目标检测案例和few-shot转移学习场景进行了初步研究。

在本文中,我们提出了一种新的距离度量学习方法(DML),并证明了它在few shot目标检测和目标分类方面的有效性。我们用具有多个模态的混合模型表示每个类,并将这些模态的中心作为类的表示向量。与以往的方法不同,我们在单一的端到端训练过程中,同时学习了训练类别的嵌入空间、主干网络参数和代表性向量。

对于few shot目标检测,我们基于现代方法,该方法依赖于区域建议网络(RPN)来生成感兴趣的区域,并使用分类器“head”将这些RoI分类为目标类别之一或背景区域。为了通过几个训练示例学习一个健壮的检测器(单次检测示例见图1),我们建议使用我们提出的DML方法,用一个子网替换分类器头部,该子网学习为每个ROI计算类后验。这个子网的输入是由ROIs汇集的特征向量,通过将其嵌入向量与每个类别的一组代表进行比较,计算给定ROI的类后验。检测任务需要解决“开放集识别问题”,即将ROI分为结构化前景类别和非结构化背景类别。在这种情况下,联合端到端培训非常重要,因为对DML单独培训的背景ROI进行采样非常低效(第5节)。

在few-shot检出实验中,我们引入了新的检测类别。这是通过使用从为这些类别提供的少量训练示例(k个用于k-shot检测的示例)的前景RoI中计算的嵌入向量来替换所学习的代表(对应于旧类别)来实现的。我们还研究了微调我们提出的模型的效果和baseline的few-shot学习。与基线和以前的工作相比,关于few-shot检测任务(5.2节)的报告显示了有希望的结果,强调了联合优化主干和DML嵌入的有效性。图2概略地说明了我们的few-shot检测方法。

                    

我们还通过与magent loss和其他先进的基于DML的方法进行比较,说明了我们的方法在基于一般DML分类中的应用。我们提出的端到端方法不是[25]中使用的嵌入和聚类交替训练,而是训练一个能够学习DML嵌入和代表(混合分布模式)的单一(单片)网络体系结构。有效地将集群引入到端到端网络训练中。使用这种方法,我们能够改进[22,25,42]中对各种细粒度分类数据集的最新分类结果(第5.1节)。

本文的主要贡献有三个方面。首先,我们提出了一种新的子网结构,用于联合训练嵌入空间和该空间中的混合分布集,每个类别都有一个(多模态)混合。该体系结构对基于DML的目标分类和few-shot目标检测都有较好的改善作用。其次,提出了一种基于DML分类器头的目标检测器的设计方法,该方法能够识别新的类别,并将其转化为一种few-shot检测器。据我们所知,这是前所未有的。这可能是因为检测器训练批次通常被限制在每个GPU一个图像,不允许在类别内容方面进行批次控制。这种控制是目前任何使用情景训练的few-shot学习者所需要的。这反过来又使得在端到端训练的检测器中使用这些方法具有挑战性。在我们的方法中,代表集充当“内部存储器”,在训练批次之间传递信息。第三,在few-shot分类文献中,评估方法的一种常见做法是通过平均多个少镜头任务实例(称为插曲)的性能来评估。我们为few-shot检测问题提供了这样一种情景基准,建立在具有挑战性的细粒度少镜头检测任务之上。

2、相关工作

距离度量学习:

在计算机视觉任务中使用度量学习有很长的历史(参见[15]的调查)。在越来越多的工作中,基于深度DML的图像分类和检索方法在各种任务上取得了最先进的结果。Rippel等人表明,如果在训练过程中交替使用类别实例的嵌入和聚类,那么在各种具有挑战性的细粒度数据集上,基于DML的分类甚至比非dml方法更先进。在DML中,被学习的度量通常被实现为在一个神经网络生成的嵌入空间中样本之间的L2距离。训练这种嵌入的基本损失函数是三重损失[41],或其最近的概括之一。这些损耗是为了使嵌入空间具有语义意义,即同一类别的物体在L2距离下接近,而不同类别的物体相距较远。这使得DML成为少数镜头视觉识别的自然选择。在DML之后,在测试时间计算一个判别类后验。为此,一种非参数的方法,如k-Nearest-Neighbors (k-NN),通常被用来建模学习的嵌入空间中的类分布,尽管在某些情况下,参数模型也被使用[4]。此外,在[33,41]等许多方法中,固有的假设是类别分布在嵌入空间中是单峰的。相反,我们的方法学习每个类别的多模态混合,同时学习嵌入空间,其中距离计算到这些代表。

Few-shot学习。最近在几张照片分类方面的一项重要工作引入了匹配网络[38],其中训练和测试数据都被组织在“集”中。N-way, M-shot集是由N个类别中的每个类别的M个训练示例集合和一个类别中对象的查询图像表示的少镜头任务的实例。目标是为查询确定正确的类别。在[38]中,算法学习产生特定于情节的专用DML嵌入。在[33]中,每个类都由一个Prototype表示——这是与该类别相对应的批处理元素的质心。最近,使用元学习方法和综合方法在标准的少次分类基准上获得了更引人注目的结果。虽然在少炮点分类方面取得了很大的进展,但这些方法仍然难以应用于少炮点检测。原因是一个检测器训练批通常只包含一张图像,具有高度不平衡的前景与背景的ROI比率(使用OHEM等在某种程度上平衡了)。这对于现有的少数学习者来说是有问题的,他们通常需要在每批中从多个类别中均衡地设置一组示例,并且通常难以应对非结构化噪声(在我们的例子中是背景ROI)。

现有的几项工作中,只有少数几次检测。在Chen等人的最近的一项有趣的工作中,他提出对少数给出的例子使用正则化微调,以便将预先训练好的检测器转移到少数镜头任务中。作者表明,使用他们提出的正则化,微调标准检测器,如FRCNN[30]和SSD[18],可以显著改善在少量镜头训练场景。Dong等人的另一种方法[8]在半监督设置中使用额外的未标记数据。利用经典的高置信度样本选择来丰富训练数据的方法,[8]方法产生的结果可与训练样本数量多的弱监督方法相媲美。与以前的方法不同,我们提出了一种基于dml的方法来检测少量射击的目标,与现有的方法相比,它具有更好的性能。

3、RePMet的结构

我们提出一种子网结构和相应的损失,使我们能够训练一个DML嵌入与多模态混合分布用于计算类后验在产生的嵌入空间。然后这个子网成为一个基于DML的分类器头部,它可以附加在分类器或检测主干的顶部。需要注意的是,我们的DML子网是与生成功能的主干一起训练的。图3描述了所提出的子网的体系结构。

                   

训练是分批组织的,但是为了简单起见,我们将把子网的输入称为由给定图像(或ROI)的主干计算的单个(池化的)特征向量\large X \in R^f。主干的例子有Inception V3或FPN(没有R-CNN)。我们首先使用了一个DML嵌入模块,它由几个具有批标准化(BN)和ReLU非线性的全连通(FC)层组成(我们在实验中使用了2-3个这样的层)。嵌入模块的输出是一个矢量\large E=E(X)\in R^e,其中共同的\large e\ll f。作为一组额外的训练参数,我们持有一组“代表”\large R_{ij}\in R^e。每个向量Rij表示学习判别混合分布在嵌入空间的第j阶模态的中心,对于总N类中的第i类。我们假设每个类的分布中有固定数量的K模(峰),所以1≤j≤K。

在我们的实现中,代表被实现为接收固定标量输入1的大小为的FC层的权值。这一层的输出被重新构造成一个N×K×e张量。在训练过程中,这个简单的构造将梯度流到FC层的权重,并学习代表。对于给定的图像(或检测器情况下的ROI)及其对应的嵌入向量E,我们的网络计算×K距离矩阵,其元素为E到每个代表性的距离。这些距离用于计算给定图像(或ROI)在每个类i的每个模态j中的概率:

                                                     \large p_{ij} \propto exp(-\frac{d^2_{ij}(E)}{2\sigma^2})

在这里,我们假设所有类分布是各向同性的多元高斯函数与方差\large \sigma^2的混合物。在我们目前的实现中,我们没有学习混合系数,将后面的判别类设为:

                                                   \large P(C=i|X)=P(C=i|E)\equiv \mathop{max}_{j=1,...,K} p_{ij}(E)

其中表示第i类,其最大值取其混合的所有模态。这个条件概率是实际类后验的上限。使用这种近似的原因是,对于只有一次的检测,测试时间,代表与嵌入式取代新类的例子,看不见的在训练(更多细节在第五节)。混合系数是与特定的模式,因为模式变化的测试时间,学习混合系数变得非常重要。因此,在上式中使用上界消除了估计混合系数的需要。我们方法的一个有趣的扩展是预测混合系数和模态的协方差作为E或X的函数。

在计算了类后验后验后,我们还为“开放”背景(B)类估计了a(判别)后验后验。在[2]之后,我们没有对背景概率建模,而是使用前景(类)概率,通过其下界估计背景概率:

                                                  \large P(B|X)=P(B|E)=1-\mathop{\arg\min}_{ij}p_{ij}(E)

已经在网络中计算出了\large P(C=i|X)\large P(B|X)。我们使用两个损失之和来训练我们的模型(DML子网+主干)。第一损失是普通交叉熵(CE)标签给图像(ROI)对应于x其他旨在确保至少有α边缘之间的距离E最接近正确的代表类,和E的最亲密的距离代表错误的类:

                                    

 其中\large i^*是当前示例的正确类索引,\large \left | \cdot \right |_+是ReLU函数。图4说明了所提出的DML子网是如何集成到用于基于DML的分类和few-shot检测实验的完整网络体系结构中的。

                

4、实现细节

在本节中,我们列出了我们为基于dml的分类(第4.1节)和few-shot检测(第4.2节)任务所提议的方法的实现的额外细节。

4.1、基于DML的分类

在基于DML的分类实验中,我们使用了InceptionV3骨干网,将提出的DML子网连接到最后一个FC层之前的层。子网的嵌入模块由两个FC层组成,大小分别为2048和1024,第一个层为BN和ReLU,第二个层仅为线性激活。然后对嵌入向量进行L2归一化。所有层都是随机初始化的。在我们所有的DML-based分类实验中,我们设置σ= 0.5和使用K = 3代表每一类。每个训练批次由随机抽取M = 12个类别和D = 4个样本组成。

在基于DML的标准基准分类实验中,没有B类背景,因此我们不需要类混合来处理所有混合的异常点。因此,我们采用更经典的混合模型变量,采用等权模态,将上式中的后验类替换为更柔和的归一化后验类,实验证明更有利于基于DML的分类:

                            \large P(C=i|X)=P(C=i|E)=\frac{\sum^K_{i=1}p_{ij}(E)}{\sum^K_{i=1} \sum^K_{j=1} p_{ij}(E)}

4.2、基于DML的小样本学习检测

对于few-shot检测,我们使用了我们的DML子网,而不是RCNN(分类“头”)在其变形卷积(DCN)变体的FPN骨干上。我们的代码基于原始的基于MXNet的实现。骨干是从零开始预先训练的MS-COCO。我们的DML子网,包括代表,是随机初始化的。整个网络使用OHEM和SoftNMS以端到端的方式进行训练。DML子网中用于one-shot检测的嵌入模块包括宽度为1024的两个FC层(BN和ReLU)和宽度为256的线性激活FC层(L2归一化)。我们使用K = 5代表每个类训练期间,并设置σ= 0.5。每个训练批次由一个随机的训练图像组成。

5、结果

我们已经评估了我们提出的DML子网在一系列分类和one-shot检测任务上的实用性。

5.1、基于度量学习的分类

精细分类:

我们在一组细粒度分类数据集上测试了我们的方法,这些数据集广泛应用于最先进的DML分类工作中:Stanford Dogs、Oxford- iiit Pet、Oxford 102 Flowers和ImageNet Attributes。表1中报告的结果表明,我们的方法在除Oxford Flowers外的所有数据集上都优于最先进的DML分类方法。图5显示了训练实例在嵌入空间中随训练迭代的t-SNE图的演变。

                 

                

属性分布:

我们验证了在DML分类训练之后,具有相似属性的图像在嵌入空间中更加接近(即使训练期间没有使用属性注释)。我们使用了与DML相同的实验方案。具体来说,我们在DML中定义的ImageNet属性数据集上训练了我们的DML分类器,该数据集包含90个类的116236张图像。接下来,我们测量了目标属性数据集上的属性分布,该数据集为这90个类的每个类提供了大约25个属性注释。对于这个数据集中的每个图像,对于每个属性,我们计算具有这个属性的邻居在不同邻域基数上的比例。图6(a)显示了我们的方法与[25]和其他方法相比得到的改进结果。

超参数鲁棒性-消融研究:

我们评估了每个类代表的不同值(1≤K≤8),以及嵌入网络的9种不同架构(将密层数在1 ~ 3之间变化,每层使用3种不同宽度)。我们对[25]的实现也进行了相同的健壮性测试。我们已经验证了我们的实现复制了[25]中报告的结果,其代码不可用。

图6(b)和图6(c)表明,与[25]相比,我们的方法对超参数的变化具有更强的鲁棒性。这些图分别描述了每一种方法和每一次训练迭代时,通过改变嵌入网络体系结构得到的分类误差的标准差和每个类的代表数。

5.2、few-shot目标检测

据我们所知,目前唯一可用的few-shot基准是Chen等人在LSTD work中报道的,他提出通过正则化微调来接近few-shot检测。在表2中,我们将我们的方法与LSTD[5]在“Task 1”上的结果进行了比较,后者是他们基于50类few-shot检测场景的ImageNet中最具挑战性的。

         

因为对于他们提出的所有任务,LSTD work的基准测试只包含每个任务的一个插曲(训练/测试图像选择),所以我们创建了一个额外的基准测试来检测few-shot。我们提出的基准测试基于ImageNet-LOC数据。基准测试包含多个随机事件(few-shot检测任务的实例);我们在基准测试中使用了500个随机事件。这种格式借鉴了few-shot分类文献。对于n-shot, m-way few-shot检测任务,每集包含随机选择的每个类的随机n个训练实例,10·m个随机查询图像包含一个或多个属于这些类的实例(因此每个类至少有10个实例)。目标是检测并正确分类这些实例。为了一致性,对于每个,所有n-shot实验都使用相同的500个随机集。请参见图1,以了解一个1-shot、5次拍摄的片段。

在提出的few-shot检测基准上,将该方法与三种baseline进行了比较。对于第一个,称为“baseline- FT”,我们在每个测试集(n-shot, m-way)中仅对(m)个新类别的少数(n·m)可用样本微调一个标准的检测器网络。具体来说,我们微调了FN-DCN检测器的分类器头部的线性决策层,我们使用该检测器作为我们的方法的主干。对于第二个基线,称为“baseline-DML”,我们将没有嵌入模块的DML子网附加到常规(预先训练的)FPN-DCN检测器上,有效地使用FN-DCN的最后两个FC层作为嵌入模块。用于此基线的FPN-DCN检测器是在与我们的方法相同的数据上作为常规的FPN-DCN进行预训练的,因此没有针对基于DML的分类(与我们的完整方法相反)进行优化。对于第三个基线,我们将其表示为‘baseline-DML-external’,我们将DML子网嵌入模块与检测器分开进行离线训练。利用triplet loss对采样的前景和背景RoI进行嵌入训练。在使用原型网络训练嵌入模块时,我们也获得了类似的性能。

所有baseline都预先在与模型相同的训练集上训练,并在相同的集合或随机集上测试。为了训练模型,我们使用了ImageNet-LOC(主要是动物和鸟类)的前100个类别。为了进行测试,我们使用了所有剩余的214种ImageNet-LOC动物和鸟类物种类别(在训练中看不到),以确保训练和测试类别属于同一个概念域。我们的模型和所有DML-baselines类别的集合在每一集里被发现被重置为他们新的替换的R代表DML子网的嵌入向量计算RoI相应的训练目标集。这些RoI是在RPN返回的每张图像2K个RoI中,通过训练目标包围框检查哪个RoI通过了IoU≥0.7的要求而选择的。在我们的方法中,嵌入和主干被联合优化,以使用基于代表性的类后验。与baseline相比,这提供了一个优势,如表3中报告的性能比较所示。

表3(在它看不见类的部分)中报告了对我们的方法和一组不可见类的baseline的评估。对5路检测任务(500个这样的任务)计算平均平均精度(mAP),单位为%。通过联合收集和评估(计算精度和召回度的得分阈值)在所有500个测试集中检测到的全部包围框集合,每个包围框包含50张查询图像,计算出地图。

此外,对于每一种测试方法(我们的方法和基线),我们重复实验,同时仅在情节训练图像上微调网络的最后一层(对于我们的模型和使用DML的基线,对最后一层嵌入层和代表进行微调)。表3还报告了微调后的结果。图7显示了single-shot检测测试结果的示例。

从‘baseline-DML-external’相对较低的性能可以看出,如引言所述,与DML分类器联合训练嵌入空间对性能至关重要。从我们的仔细检查,减少的mAP'’baseline-DML-external"主要是由于假正性率显着高于其他方法。虽然外部嵌入是在与我们的方法和其他基线相同的训练图像上进行训练的,但是在作为检测器进行端到端训练时,对我们方法正在处理的可能的背景RoI的整个集合进行采样是不可行的。因此,我们不得不对每张图像进行200RoI的采样,这降低了baseline对背景的拒绝能力。

为了测试学习嵌入到与它共同学习的特定代表之间的相互依赖性,我们对在训练期间看到的一组类重复基于情景的测试(仅使用不用于训练的验证图像)。这个评估的结果也在seen classes部分的表3中报告。我们重复了两次可视类测试:一次使用每集的训练目标的代表(与未看到的类相同),一次使用最初训练的代表(因为它们对应于所看到的类集)。由于在训练期间,我们对每类学习K = 5个代表,所以我们在5-shot列中报告第二次测试的结果。我们可以看到(i)经过训练的代表比嵌入随机的类例子表现得更好,再次强调了联合训练的好处;(ii)的性能从训练代表随机类成员并不大(∼7分),暗示了嵌入是健壮的代表和可能的变化表现良好在新看不见的类别(如我们在上面的few-shot实验验证了)。

在中使用Recall@100作为性能度量(Recall%,在每个测试图像中提取100个top检测值)。我们还在我们的1 shot测试中实现了这个度量,在我们的整个500个测试集中,计算出Recall@100和Recall@10分别达到了88.2%和65.9%。这表明我们的方法在单个图像的基础上工作得很好,并说明了在计算AP时同时考虑所有测试图像中的所有框的重要性,正如我们在baseline测试中所做的那样。

为了检查是否修改引入取代RCNN分类器与我们的DML网络阻碍了检测性能的类,我们测试的检测性能模型和vanilla FPN-DCN模型(使用原来的代码)的验证集100年第一Imagenet-LOC训练类别和Pascal VOC。如表4所示,我们的检测器在Pascal VOC上略低于原始的FPN-DCN模型,但在第100个Imagenet-LOC(更细粒度的)类别上比较好。

                                     

6、总结和结论

在这项工作中,我们提出了一种新的DML方法,与其他基于DML的方法相比,在目标分类方面取得了最先进的性能。利用这种方法,我们设计了一种最早的few-shot方法,与目前最先进的few-shot方法进行了比较。我们还提出了一个基于Imagenet-LOC数据集的少镜头目标检测基准,希望能够鼓励研究人员进一步研究这一至今几乎未涉及的问题。未来的工作方向包括预测混合系数和协方差类混合物学习在我们的DML子网作为一个函数的输入。我们还打算使用示例合成方法来动态自动生成新样本,从而丰富了估计代表的集合。

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wanderer001

ROIAlign原理

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值