Few-Shot Object Detection: A Comprehensive Survey

论文地址
这篇文章few shot在目标领域的最新发展概述。根据这些模型的训练方案和架构布局对不同方法进行分类。对于每种方法,本文描述了实现方式以及改进新类别性能的概念。
key words:Object Detection, Few-Shot Learning, Survey,
Meta Learning, Transfer Learning

1. 小样本目标检测背景

目标检测实际应用的难题
过去十年中,深度学习在目标检测方面取得了巨大进展,但需要大量训练数据,难以应用于涉及新物体的现实场景。图像注释昂贵且繁琐,某些情况下甚至无法获取足够的图像数据。相比之下,人类尤其是儿童可以从极少的示例中学习新概念并识别新物体。因此,在这个方向上一个有前景的研究领域是少样本目标检测(FSOD)。

小样本目标检测
第一步在丰富的数据集上进行预训练。第二步使用少量已标注的实例来检测新物体(新物体指不存在于第一步的数据集中的物体)。这种方法减轻了目标检测领域注释大量数据的人工成本。如下图所示:
在这里插入图片描述

2. 小样本目标检测定义

仅使用少量已标注的实例检测新的物体。
训练数据集
总体的训练数据集分成了两部分,预训练数据集少量标注数据集
D = D b a s e ∪ D n o v e l D = D_{base} \cup D_{novel} D=DbaseDnovel
两个数据集之间的类是不重叠的。
C b a s e ∩ C n o v e l = ∅ C_{base} \cap C_{novel} = \varnothing CbaseCnovel=
数据集中的每张图片都由一个包含图像标签信息的tuple组成。
( I i , y ^ o 1 , . . . , y ^ o M ) ∈ D (I_i, \hat y_{o_1},...,\hat y_{o_M}) \in D (Ii,y^o1,...,y^oM)D
每张图像中可能包含了M个需要检测的对象
I i = { o 1 , . . , o M } I_i = \{o_1,..,o_M\} Ii={o1,..,oM}
每个被检测对象都有对应的标签 c o i {c_o}_i coi是对象所属的分类 b o i {b_o}_i boi边界框
y ^ o i = { c o i , b o i } \hat y _{o_i} = \{c_{o_i}, b_{o_i}\} y^oi={coi,boi}
边界框包含了坐标信息 ( x o i , y o i ) (x_{o_i},y_{o_i}) (xoi,yoi),和物体的宽 w o i w_{o_i} woi h o i h_{o_i} hoi信息。
b o i = { x o i , y o i , w o i , h o i } b_{o_i} =\{ x_{o_i},y_{o_i},w_{o_i},h_{o_i}\} boi={xoi,yoi,woi,hoi}

D b a s e D_{base} Dbase有相当多的 C b a s e C_{base} Cbase(物体分类),每个 C b a s e C_{base} Cbase的样本数量非常的多。
D n o v e l D_{novel} Dnovel中,每个 C n o v e l C_{novel} Cnovel中的样本数量非常少。

few-shot object detection 通常被称为N-way K-shot”
N N N表示分类个数, K K K表示样本数量,最困难的情况是 K = 1 K=1 K=1时,为1-shot object detection。

仅在 D n o v e l D_{novel} Dnovel上训练目标检测器很快会因为训练数据太少导致过拟合,且泛化能力差。而只使用 D b a s e D_{base} Dbase训练会使检测器只能识别 C b a s e C_{base} Cbase,无法检测新的类别。因此提出了少样本目标检测方法:
M i n i t ⟶ D b a s e M b a s e ⟶ D f i n e t u n e M f i n a l M_{init} \stackrel{D_{base}}{\longrightarrow} M_{base} \stackrel{D_{finetune}}{\longrightarrow}M_{final} MinitDbaseMbaseDfinetuneMfinal
首先使用预训练过的骨干模型 M i n i t M_{init} Minit D b a s e D_{base} Dbase进行预训练,形成基础模型 M b a s e M_{base} Mbase,然后在包含了新类别的 C n o v e l C_{novel} Cnovel的数据 D f i n e t u n e D_{finetune} Dfinetune上对 M b a s e M_{base} Mbase进行微调,得到最终的模型 M f i n a l M_{final} Mfinal

3. 训练limited Data相关研究工作

介绍一些侧重于有限数据训练领域,并讨论与FSOD的区别和相似处。

A. 有限数据学习的相关概念

少样本学习和分类:

在应用于目标检测前,少样本学习是应用于分类任务的。分类任务不需要定位,所以更简单。

半监督学习Semi-Supervised Learning:

与few shot learning 类似,都是只有很少的已标记的训练数据。不同的是,半监督学习会提供大量的额外的未标记的数据。因此,当有额外的未标记的可用数据时,可以使用半监督学习方法改进few shot学习。

增量学习Incremental Learning:

当模型在新数据上训练时,典型的深度学习方法会出现灾难性遗忘(Catastrophic Forgetting),即忘记先前已学习过的数据,旧任务的性能下降,甚至完全丧失对旧任务的学习。解决方案就是增量学习,能够让模型在学习新任务时保留旧任务的知识。一些FSOD的方法也融合了增量学习。

B. Object Detection

通用目标检测

通用目标检测是定位和分类检测器所训练的物体实例的联合任务。感兴趣的区域通过边界框的坐标来定位,并被分类为预定义的一组类别。所有不属于训练类别的其他物体类别都被视为背景,并且检测器经过训练以抑制对这些其他类别的检测。通常需要每个类别大量已注释的物体实例,并且无法应用在few-shot中。

Cross-Domain 目标检测

跨领域目标检测是一种任务,首先在具有充分标记数据的领域中训练一个目标检测器,然后将该检测器适应到另一个领域,而另一个领域的数据相对有限,例如从合成数据到真实数据的转移是一个典型的情况。与few-shot不同的是,cross-domain目标检测中,不同领域之间的物体类别是相同的。即相同的物体类别在不同领域中都是存在的,只是数据的特性和分布可能不同。这个任务的目标是让一个在一个领域中训练好的检测器适应另一个领域,以便能够在新领域中正确地检测相同的物体类别。

Zero-Shot 目标检测

零样本检测是一种特殊的目标检测任务,其中已标记的物体实例数量极少,甚至为零(K=0)。在零样本检测中,通常使用语义词嵌入(semantic word embeddings),其中不同物体类别的语义相似性在嵌入空间中会表现为相似的特征。这意味着如果两个物体类别在语义上相似,它们在嵌入空间中的特征表示也会相似。这对于检测可以轻松标记的日常物体有效,但在提供特定标签困难或需要区分非常相似的物体时可能会出现问题

Weakly Supervised目标检测

弱监督目标检测是一种目标检测任务,它减轻了标注数据的要求。在弱监督目标检测中,训练数据仅包含图像级别的标签,这些标签指示了图像中是否存在特定的物体类别,而没有提供有关物体在图像中的具体位置的信息。这些图像级别的标签相对容易获得,通常可以通过关键词搜索或其他自动化方法来生成。弱监督目标检测的挑战在于,在训练过程中缺乏有关物体位置的信息,因此模型需要学习如何在图像中检测出所有物体实例。虽然弱监督目标检测减轻了标注数据的负担,但仍然需要大量的图像来训练模型,因为需要模型能够处理多种场景和物体类别。

用于FSOD的技术

Transfer Learning

迁移学习,重复使用在一个base dataset上预训练好的神经网络权重或模型。然后将这些权重或模型应用于新的领域,但是数据量是有限的。这个过程的目标是提高在新领域的泛化能力。在迁移学习中,通常会涉及到在目标领域中出现的新类别,这与少样本学习和目标检测相似。然而,与少样本学习不同的是,目标领域中新类别的物体实例数量不一定很少,可能有更多的数据可用。

Metric Learning

度量学习,通过学习一种特殊的embedding,使相似内容的输入数据在embedding空间中具有较小的距离,而不相似的输入数据在embedding空间中具有较大的距离。这个方法目标是在embedding空间中有效的表示数据,以便在相似性和差异性方面进行考量
通常使用三元损失或其扩充来学习特征,有助于确定同类别数据在embedding空间中更接近,不同类别的在空间中更远。这种特征学习对不同任务都有很好的泛化,包括了FSOD。

Meta Learning

元学习,使模型学习如何学习,以便在面对新任务有更好的泛化能力。few-shot学习中,元学习的目标是使模型具有学习新类别的能力,即使在训练过程中没有具体固定的类别标签。

4. 少样本目标检测方法的分类

本文将FSOD的方法分为了元学习方法和迁移学习方法。进一步将元学习方法分为单支和双支架构。
在这里插入图片描述

双支架构: 是一个神经网络结构,由两个主要部分组成:查询网络分支和支持网络分支。这两个分支分别处理两个不同的输入,即查询图像和支持图像。查询图像通常是要进行目标检测的图像,而支持图像则是用来提供额外信息或知识的图像。这种双支架构允许网络分别处理这两种不同的输入,以更好地适应少样本目标检测任务。
单支方法: 指的是神经网络的结构,通常类似于通用目标检测器的架构。但在训练新类别时,这些方法会采取一些措施,例如减少可学习参数的数量或利用度量学习(metric learning)来改进模型的性能。度量学习是一种机器学习技术,旨在学习如何度量输入数据之间的相似性或距离,以便更好地区分不同类别的物体。这种方法可以帮助模型更好地适应新类别的目标检测任务,特别是在少样本情况下。

FSOD 发展:
下图列出了这篇综述中涵盖的所有方法,少样本目标检测是一个相当年轻但正在兴起的研究领域,因为大多数方法仅在过去三年内发表。大多数方法使用了迁移学习或双支元学习。
在这里插入图片描述

5. 双支元学习

许多FSOD方法利用meta-learning来学习如何对新的类别进行泛化。A中描述meta-learning的一般训练方案,B中描述了双支元学习方法使用的查询分支和支持分支。

A. 训练阶段

元学习的训练过程包括多个阶段。首先,模型Minit在基础数据集 D b a s e D_{base} Dbase上进行训练,得到 M b a s e M_{base} Mbase。通常,采用一种称为"episodic training"的训练策略,其中每个"episode"都模拟了N-way-K-shot的设置。这里的N表示要识别的类别数,K表示每个类别的训练示例数量。
如果模型需要检测基础类别和新类别,那么它将在一个平衡的数据集 D f i n e t u n e ⊂ D D_{finetune} \subset D DfinetuneD上进行训练,每个类别有K个训练示例,无论是基础类别还是新类别。若只需要检测新类别,则在 D f i n e t u n e = D n o v e l D_{finetune} =D_{novel} Dfinetune=Dnovel上训练。

M i n i t → e = 1... E D m e t a e ⊂ D b a s e M b a s e → D f i n e t u n e M f i n a l M_{init}\xrightarrow[e=1...E]{D^e_{meta}\subset D_{base}} M_{base} \xrightarrow{D_{finetune}} M_{final} MinitDmetaeDbase e=1...EMbaseDfinetune Mfinal
一些方法不对新类别进行微调,直接将 M b a s e M_{base} Mbase应用于新类别,这种被称为meta testing。

B. 一般的实现方法

双支架构包括了一个查询分支 Q Q Q 和一个支持分支 S S S,如下图所示。
图3
模型中查询分支 Q Q Q 的输入是一张图片 I Q I^Q IQ,然后识别和定位图像中的物体;支持分支 S S S 接收支持数据集 D S = { ( I i S , y ^ o j } i = 1 K ⋅ N D^S = \{(I^S_i,\hat y_{o_j}\}^{K·N}_{i=1} DS={(IiS,y^oj}i=1KN,其中共有N个分类,每个分类有K个支持图片(样本),以及每个图片中指定的物体类别 o j o_j oj 和标签 y ^ o j \hat y_{o_j} y^oj

有三种方式可以表示表示指定的物体:

  1. 所有训练的示例已经通过groundtruth边界框裁剪为指定的物体。
  2. 呈现全尺寸图像和一个额外的二进制掩码,指示物体位置。
  3. 使用全尺寸图像,并使用RoI Align提取指定物体的特征区域。

这三种选项呈现的图像被称为支持图像 I S I^S IS,特定类别 c c c 的支持图形表示为 I S , c I^{S,c} IS,c

支持分支 S S S 提取支持图像 I S I^S IS 的相关特征 f S f^S fS。然后 f S f^S fS 与查询分支 Q Q Q 的特征 f Q f^Q fQ进行聚合,表示为 A ( f Q , f S ) A (f^Q,f^S) A(fQ,fS),引导检测器在查询图像 I Q I^Q IQ 中检测属于特定类别 c c c I S , c I^{S,c} IS,c的物体实例。

以下解释仅针对元学习中FSOD的最基本和广泛使用的结构。具体的方法可能会有所不同,如下图所示。
在这里插入图片描述
许多方法都基于Faster R-CNN与ResNet骨干网络构建。通常会选择Siamese backbone(连体骨干),即 Q Q Q S S S 共享它们的权重。 Q Q Q 的骨干特征 f Q , B f^{Q,B} fQ,B 进一步由RPN生成候选区域,然后将不同大小的RoIs映射到具有固定大小的特征图上,生成query RoIs查询区域,用 R R R 表示。

在支持分支 S S S 中,来自骨干网络的支持特征 f S , B f^{S,B} fS,B 会通过全局平均池化进行汇总,生成代表性的支持向量 f S f^S fS,每一个类别都有一个。如果 K > 1 K > 1 K>1,对于每个类别 c c c ,将计算其支持向量的均值,从而得到一个代表该类别的支持向量 f S , c f^{S,c} fS,c,然后用于指导RoI头部识别这些类别的对象。因此,query RoIs R R R 和支持向量 f S f^{S} fS 被汇总在一起,如图3所示,最简单的方法是通过channel-wise通道间的乘法汇总, A m u l t ( f Q , f S ) = f Q ⊙ f S A_{mult}(f^Q, f^S)=f^Q\odot f^S Amult(fQ,fS)=fQfS ⊙ \odot 表示Hadamard积,是一种二进制运算,接受两个维度相同的矩阵并对它们之间的元素逐个相乘。

汇总之后,对于 N N N 个类别中的每一个类,都有单独的RoIs R A , c R^{A,c} RA,c,它们的特征经过特殊处理用于识别相应类别 c c c 的对象,然后将RoIs R A , c R^{A,c} RA,c送到共享的RoI头部,用于边界框回归和二元分类。由于已经包含了类别的特定信息,多类别分类可以被替换为二元分类,仅输出RoIs R A , c R^{A,c} RA,c 是否包含特定类别 c c c 的对象的信息。为了确保每个RoI只对应一个类,可以在之后应用一个softmax层。

所有类别的RoI头部是共享权重的,因此RoI头部必须能够跨类别进行泛化,这种机制下,可以不对新类别进行微调,仅通过meta-testing检测新类别对象,不需要进一步的训练。在模型的推断(测试)阶段,可以事先计算少数来 D n o v e l D_{novel} Dnovel(包含新颖物体类别的数据集)的图像的支持特征 f S f^S fS,这些特征可以用于检测所有 N N N 个新颖类别的物体实例。因此,在推断阶段,不再需要支持分支 S S S,因为支持特征已经被计算并存储,可以在需要时直接使用,而无需重新处理支持图像。这有助于加速推断过程,提高模型的效率。

C. 聚合的变种

不同的双支架元学习方法在查询特征 f Q f^Q fQ和支持特征 f S f^S fS之间的聚合方式上存在最大的差异。

(1) RPN之前的聚合:

在传统的双支架元学习中,通常是将查询区域(RoI)的特征与支持向量(fS)进行聚合,以帮助检测特定的物体。然而,这种方法要求区域提议网络(RPN)能够为每个相关的物体输出至少一个RoI。如果RPN仅在基本类别上训练,并且新颖类别与基本类别差异很大,那么RPN可能无法生成适用于新颖类别的RoI,从而导致识别失败。

为了解决这个问题,有一种称为“AttentionRPN”的方法, A f e a t A^{feat} Afeat。它在RPN之前有效地聚合了查询和支持特征。具体来说,它首先对支持特征进行平均池化,然后使用深度交叉相关性将它们与查询特征进行聚合。这样一来,增强后的特征用于生成更适用于支持图像所属类别的RoI提议,从而提高了检测的召回率,即更好地找回了物体。

Zhang等人提出的方法构建在之前提到的一种特征聚合方法的基础上。与平均池化不同,他们使用了二阶池化和幂归一化。这种池化方法不仅仅是将特征相加或平均,而是更像是一种检测器,用于捕获特征之间的共现情况。这可以帮助减轻由于对象的不同外观(颜色、视角、纹理等)引起的特征变化。此外,他们还引入了核化协方差矩阵和再生核希尔伯特空间核,以捕获更复杂的非线性关系。这些方法允许模型更好地匹配不同位置、方向或视角下的相似对象。

此外,许多其他方法也采用了AttentionRPN的思想,如图4所示。然而,一些方法使用了不同的聚合操作,我们将在以下部分讨论。

要点:当使用Faster R-CNN作为检测器时,将在区域提议网络之前进行聚合会导致更好的区域提议,从而减少漏检。

(2) 聚合操作:

大多数简单的方法就是通道间相乘:
A m u l t ( f Q , f S ) = f Q ⊙ f S A_{mult}(f^Q, f^S)=f^Q\odot f^S Amult(fQ,fS)=fQfS
此外,最新技术中也尝试了不同的特征聚合操作。在AttentionRPN和GenDet中,支持特征与查询特征进行了卷积/相关运算,Li等人(OSWF) 使用了 f Q f^Q fQ f S f^S fS的每个元素之间的余弦相似性,类似于公 A m u l t A_{mult} Amult,但有一个额外的缩放因子。

Michaelis等人 (OSIS) 和 (CGG) 在每个位置计算了 l 1 \mathscr{l}^1 l1距离,并将得到的相似性特征与查询特征连接。Xiao等人(FsDetView) 使用了更复杂的聚合操作,将通道乘法( A m u l t A_{mult} Amult相似)与减法和查询特征本身相结合:
A ( f Q , f S ) = [ f Q ⊙ f S , f Q − f S , f Q ] A(f^Q,f^S)=[f^Q\odot f^S,f^Q-f^S,f^Q] A(fQ,fS)=[fQfS,fQfS,fQ]
[ ⋅ , ⋅ ] [·,·] [⋅,⋅]表示通道连接。

Meta Faster R-CNN 基于此聚合进行了进一步改进,使用以下公式进行聚合:
A = [ Φ M u l t ( f Q ⊙ f S ) , Φ S u b ( f Q − f S ) , Φ C a t [ f Q , f S ] ] A = \left[\Phi_{Mult}(f^Q\odot f^S),\Phi_{Sub}(f^Q- f^S),\Phi_{Cat}[f^Q,f^S]\right] A=[ΦMult(fQfS),ΦSub(fQfS),ΦCat[fQ,fS]]
其中, Φ M u l t , Φ S u b , Φ C a t \Phi_{Mult},\Phi_{Sub},\Phi_{Cat} ΦMult,ΦSub,ΦCat分别表示具有三个卷积和ReLU层的小型卷积网络。

Zhang等人(SQMG) 决定通过动态卷积增强支持特征fS来增强查询特征fQ。fS被馈送到一个内核生成器中,用于生成卷积的权重。然后,生成的权重与fQ进行卷积。

要点:仅仅使用支持特征fS和查询特征fQ之间的简单通道乘法无法充分利用它们包含的信息。

(3) 保留空间信息的聚合:

与通过平均池化来聚合支持特征不同,有些方法提议利用空间信息,因为在目标检测任务中,对象是由边界框定位的,而边界框的不同部分可能包含不同的信息。与此不同,使用平均池化会将这些不相关的特征混合在一起,甚至在全局平均池化的情况下,会完全丢失空间信息,见图5(a)。因此,这些方法试图更好地利用支持特征中的信息,以提高对象检测性能。
在这里插入图片描述
Li等人(OSWF)首先将支持特征池化到与查询RoI R R R 相同的空间维度,然后将这些池化特征与查询RoI R R R 连接起来,最后使用1x1卷积来比较具有结构感知的局部特征。

然而,Chen等人认为,由于查询图像 I Q I^Q IQ和支持图像 I S I^S IS中的对象通常不以相同的方式对齐,所以查询特征 f Q f^Q fQ和支持特征 f S f^S fS的卷积不太适合,如图5b所示。因此,他们设计了一种基于注意力的聚合方法,后文将对此进行描述。

要点:为了充分利用支持图像的有价值的空间信息,其特征不应仅仅进行平均池化以进行聚合。

(4) 注意力机制聚合:

最近,注意机制已经在许多视觉任务中显著提高了性能,支持和查询特征的聚合也受益于整合注意机制。这些注意机制包括传统的、非局部的以及类似于变换器中的多头注意力。

Chen等人(DAnA)旨在整合查询图像 I Q I^Q IQ和支持图像 I S I^S IS之间的空间相关性,同时考虑到这些图像通常不对齐(见图5b)。因此,首先使用双感知注意力突出显示支持特征 f S f^S fS上的相应类别的相关语义特征并抑制背景信息。然后,使用基于注意力的聚合方法来整合空间相关性。Meta Faster R-CNN [54]也解决了这种空间不对齐问题。使用两个注意模块,首先将支持和RoI特征在空间上对齐,然后突出显示前景区域。

Wang等人(IFC)首先在平均池化和最大池化的查询特征上使用自注意模块,以分别挖掘本地语义和详细纹理信息。随后,借助基于可学习的软阈值操作器的新特征聚合机制,可以缩小冗余信息,同时增强新类别和基类别的特征敏感性和稳定性。

Huang等人(ARRM)旨在通过设计一个基于注意力的亲和力关系推理模块来实现支持和查询特征的更好互动。该模块由几个不同特征的卷积和矩阵乘法组成。通过使用额外的全局平均池化分支,还可以整合支持特征的全局语义上下文。使用这种基于注意力的聚合模块,可以减少错误分类。

Hsieh等人(CoAE)提出了一种协同注意方法,以使查询特征 f Q f^Q fQ注意支持特征 f S f^S fS,反之亦然。因此,利用了两个相互非局部操作,它们从 f Q f^Q fQ f S f^S fS同时接收输入。这有助于RPN计算更好地定位来自支持图像 I S , c I^{S,c} IS,c的类别 c c c的对象的区域提议。此外,Hsieh等人(CoAE)提出了一个随后的squeeze-and-co-excitation方法,扩展了SENet的squeeze-and-excitation,以突出显示相关的特征通道,以检测相关的提议和最终的目标对象。类似的协同关注方法也被Hu等人(DCNet)采用。

通过AIT,Chen等人进一步推动了CoAE的想法。他们使用了多头共同注意力来聚合区域提议网络之前的查询和支持特征,而不是使用单个非局部块。让V、K和Q分别表示Transformer-based注意力中的值、键和查询。类似于CoAE中的共同注意力,查询特征来自另一个分支:
F Q = a t t n ( V Q , K Q , Q S ) , F S = a t t n ( V S , K S , Q Q ) F^Q = attn(V^Q,K^Q,Q^S), F^S = attn(V^S,K^S,Q^Q) FQ=attn(VQ,KQ,QS),FS=attn(VS,KS,QQ)
其中,上标Q和S表示特征来自查询分支或支持分支。得到的特征 F Q F^Q FQ编码了查询图像 I Q I^Q IQ和支持图像 I S I^S IS的相关视觉特征,有助于RPN预测与 I S I^S IS相关的RoIs。根据Chen等人,与CoAE 中的非局部注意力块相比,这种方法提高了准确性。在RPN之后,AIT使用了一个基于Transformer的编码器-解码器架构,将RoIs R R R 转化为强调与给定的支持图像相对应的视觉特征。

Meta-DETR [59] 和APSP [49] 也使用了类似于上述公式中的 F S F^S FS的聚合。然而,Meta-DETR 和APSP 首先增强了查询或支持特征,我们将在接下来的部分进行描述。

要点:支持图像的空间信息以及与查询图像的关系最好通过基于Transformer的注意力机制来整合。

(5) 多级别聚合

到目前为止,支持和查询特征仅在骨干网络中的特征提取之后进行了聚合。然而,Han等人(FCT) 认为,查询和支持分支之间的多级特征交互可以更好地对齐特征。因此,他们提出了一种基于改进的金字塔视觉Transformer PVTv2的全新Fully Cross-Transformer模型。FCT模型包括骨干网络中的三个查询和支持之间的交互阶段,以及检测头中的一个附加交互阶段。最后,类似于AttentionRPN 的成对匹配输出最终的检测结果。
要点:低、中和高级特征的聚合可以提高性能。

(6) 多个支持图像的聚合:

在通常的方法中,要融合类别c的所有支持图像,需要计算它们特征的均值:
{ I i S , c } i = 1 K : f S , c = 1 K ∑ i = 1 K f i S , c \{I^{S,c}_i\}^K_{i=1}:f^{S,c}=\frac{1}{K}\sum\limits_{i=1}^Kf^{S,c}_i {IiS,c}i=1K:fS,c=K1i=1KfiS,c
然而,并不是所有支持图像都对该类别提供相同数量的信息。有些支持图像可能包含不同视角、部分物体或其他类别物体的遮挡,因此它们的特征可能不同。如下图所示:
在这里插入图片描述
因此,一种更好的方法是使用加权平均,其中每个支持图像的权重根据其与其他支持图像的相似性来确定。这可以确保包含更多信息的支持图像在聚合中具有更大的权重,而包含较少信息的支持图像具有较小的权重。

例如,在GenDet中,权重wi通过比较单独检测器和均值检测器之间的相似性来计算,并在训练期间学习:
{ I i S , c } i = 1 K : f S , c = 1 K ∑ i = 1 K w i ⋅ f i S , c \{I^{S,c}_i\}^K_{i=1}:f^{S,c}=\frac{1}{K}\sum\limits_{i=1}^Kw_i·f^{S,c}_i {IiS,c}i=1K:fS,c=K1i=1KwifiS,c

在CAReD中,权重 w i w_i wi是通过支持特征与同一类别的所有其他支持特征 { f i S , c } j = 1 K \{f^{S,c}_i\}^K_{j=1} {fiS,c}j=1K之间的相关性的softmax确定。

在DAnA、SQMG和APSP中,支持特征和查询特征之间的相关性用于计算权重,并进行加权平均。

总之,这些方法充分考虑了支持图像之间的差异,以确保在聚合时充分利用了它们的信息。这有助于提高模型对不同支持图像的适应能力和性能。

D.纳入类别之间的关系

这一部分讨论了如何在双分支元学习方法中引入不同类别之间的关系,以提高模型性能。许多双分支元学习方法通常只关注单个类别的检测,而不考虑多个类别之间的关系。然而,对于那些与基础类别相似的新类别,考虑它们之间的关系可能有助于正确分类对象(例如,摩托车更类似于自行车而不是飞机)。

为了引入类别之间的关系,一些方法还利用了语言特征。在这些方法中,支持向量在聚合之前通过一个知识传递模块进行处理,该模块利用了不同类别之间的语义相关性。知识传递模块通常是通过图卷积网络实现的,其中输入是一个图,每个节点表示一个类别,边上的值表示语言类别名称之间的相似性。

Han等人(QA-FewDet)使用了图卷积,但不依赖于语言类别名称。他们构建了一个异构图,用于增强支持向量fS的多类别关系,以更好地建模它们之间的关系,并将来自相似类别的特征纳入考虑。他们的异构图还用于对齐支持和查询特征,以减小它们之间的差异。

另一种方法是由Zhang等人(Meta-DETR)提出的,他们通过转换支持特征来引入不同类别之间的关系。他们引入了一个相关性聚合模块,能够同时聚合多个支持类别以捕捉它们之间的互类关系。首先,通过利用注意力模块,将查询特征与多个支持特征同时匹配。然后,任务编码有助于区分这些支持类别。

总之,引入不同类别之间的关系有助于更好地表示和分类数据稀疏的新类别,从而提高模型的性能和泛化能力。

E. 增强支持特征辨别能力

本节讨论了如何增强支持特征的辨别能力,以便更好地分类对象。在聚合之后,每个RoI R R R都有 N N N个特定于类别的RoI R A , c R^{A,c} RA,c,这些RoI将独立进行分类。如果不同类别的支持特征太相似,这种独立分类可能会导致歧义。因此,一些方法使用额外的元损失来强制支持特征尽可能多样化。通常情况下支持特征被分类,并应用简单的交叉熵损失。这鼓励支持向量属于相应对象所属的类别。更高级的方法利用度量学习技术来增强辨别能力。

GenDet和Meta-DETR使用基于余弦相似性的损失来获得更具辨别性的支持向量。首先,支持向量被归一化。然后,计算每对支持向量 ( f S , c i , f S , c j ) (f^{S,c_i},f^{S,c_j}) (fS,ci,fS,cj)之间的余弦相似性,得到相似性矩阵A。通过 l 1 l^1 l1损失,将相似性矩阵A限制为接近单位矩阵 I N I_N IN。这有助于最小化不同支持向量之间的相似性,最大化每个支持向量的辨别能力。

Wang等人(IFC)、Kobayashi(SPCD)和Huang等人(ARRM)也使用余弦损失,但在ARRM中添加了额外的边际以进一步增加辨别性和减少误分类。

MM-FSOD使用Pearson距离来聚合 f S f^S fS f Q f^Q fQ。与余弦相似性相比,Pearson距离首先对每个维度进行均值归一化,从而减小了内部类间方差。因此,无需设计特殊的距离损失函数,可以使用简单的交叉熵损失。

Li等人(CME)提出了一种用于min-max-margin的对抗训练过程:除了增加边缘的损失之外,还通过扰乱新类别的特征来降低支持向量的辨别能力,从而减小边缘。具体来说,通过将梯度反向传播到输入支持图像,以对抗方式擦除最具辨别性的像素。这种方法可以准确地检测更多的对象而减少误报。

许多元学习方法侧重于将查询图像中的对象与支持图像中的相同类别c的对象区分开来,而不是区分不同的类别。因此,AttentionRPN 提出了一个多关系检测器和双向对比训练策略。多关系检测器可以测量支持特征fS和查询RoIs R之间的全局、局部和基于块的关系,以衡量它们的相似性。双向对比训练策略通过使用来自不在查询图像的对象类别n的负支持图像来实现。这有助于训练模型区分不同的类别。

背景提案的数量远远多于前景提案,这会妨碍距离度量学习。为了解决前景-背景不平衡的问题,使用了一种称为"焦点损失"(focal loss)的损失函数,它减小了容易分类的背景提案的权重,将重点放在难以分类的负例上。CoAE 使用了一种基于边缘的损失来改善区域提议网络中感兴趣区域(RoIs)的排名。那些与支持图像中的对象相似度高的RoIs应该排在前面,因为只有前128个RoIs将进一步处理。因此,作者设计了一种基于边缘的度量标准来预测所有感兴趣区域的相似性。Chen等人(AIT)采用了这种基于边缘的排名损失。

其次,每个情节(episode)只呈现N个类别。这可能会导致提取的特征的辨别能力较低,因为只有采样的类别被区分。因此,GenDet 方法在训练期间使用了一个额外的参考检测器,需要对所有基础类别进行区分。特定基础类别的索引在所有情节中保持不变。通过额外的损失,两个检测器被限制输出相似的结果,从而引导骨干网络提取更具辨别性的特征。

要点:为了增强辨别能力并区分多个类别,可以使用来自度量学习的概念,如相似性度量以及对比训练。

F. 提高代表能力

在这部分中,Kobayashi (SPCD)强调了在基础训练期间,所有其他非基础类别都被视为负类别。这会导致表示能力不足,难以识别新的类别。因此,他们引入了一个额外的自监督模块:使用选择性搜索,提取了与基础类别不同的矩形区域,并以自监督方式教授网络在应用强大的数据增强之前和之后检测相同的区域。这有助于提高网络的表示能力,使其能够更好地识别新的类别。

G. 无建议探测器

在这一部分,许多方法是在两阶段检测器Faster R-CNN的基础上构建的。然而,这些方法需要处理可能不准确的区域提议以及在区域提议网络之前或之后,或两者都要聚合支持特征和查询特征的决策。当使用无提议检测器时,支持特征和查询特征可以在特征提取之后,在分类和边界框回归之前进行简单的聚合。

有些方法利用简单的一阶段检测器,例如MetaYOLO和CME中的YOLOv2,或DAnA 中的RetinaNet。其他方法则基于无锚点检测器,例如ONCE中的CenterNet,以及Li等人的OSWF和GenDet中的FCOS 。Meta-DETR中使用了基于Transformer的检测器Deformable DETR。Meta-DETR在共享的骨干之后聚合支持特征和查询特征。随后,一个与类别无关的Transformer架构用于预测对象。

要点:虽然大多数方法是基于Faster R-CNN构建的,但无提议检测器更容易实现。特别是基于Transformer的架构,如Meta-DETR ,已经超越了其他方法。

H. 保留在基础分类的表现

为了更好地检测基本类别并防止灾难性遗忘,Han等人的Meta Faster R-CNN 在原始的Faster R-CNN 架构之后使用了一个额外的分支。由于Meta Faster R-CNN已经在区域提议网络之前聚合了查询特征和支持特征,因此这两个分支之间仅共享了骨干的权重。在基本类别的元训练之后,骨干的权重被固定,用于基本类别分支的RPN和RoI头部进行训练。最后,另一个分支通过元微调或元测试来适应或简单地应用于新颖的类别,由于第一个分支保持不变,因此基本类别的性能不会因为元微调而下降。

对于增量学习方法ONCE和Sylph,已经学习的类别的权重也保持不变。Sylph不使用基于softmax的分类器,而是使用了几个独立的基于二元sigmoid的分类器(每个类别一个),使得各个类别不相互影响。对于每个新颖的类别c,支持分支顶部的一个超网络生成其分类器的权重。因此,不需要进行元微调。

I. 增加新类别的差异

TIP(Transferred Instance Properties)通过数据增强技术,如高斯噪声或cutout,扩展了新颖类别的有限训练示例。然而,简单地添加数据增强会影响检测性能。因此,Li等人的TIP使用了额外的转换引导一致性损失,通过 l 2 l^2 l2范数实现,该损失限制了由原始图像和转换图像生成的支持向量和彼此接近。这导致即使对于不同的支持图像,支持向量也更加相似和具有代表性,从而提高了新颖类别的检测性能。此外,在训练期间,查询分支Q还接收经过转换和未经转换的图像。经过转换的查询图像IQ的特征被馈送到区域提议网络,以预测感兴趣区域(RoIs)。然后,这些RoIs通过RoI Align从原始的非转换查询图像的特征中裁剪出来。这迫使检测器预测与用于查询图像的转换无关的一致RoIs。

J. 纳入背景信息

通常情况下,通过应用RoI池化或RoI对齐,区域提议被池化到特定的正方形大小,例如7×7。然而,在训练过程中,这可能会导致信息丢失,这个问题在有大量训练数据的情况下可以通过解决。但是,在只有少量训练样本的情况下,信息丢失可能会导致误导性的检测结果。因此,DCNet 使用了三种不同的分辨率并进行并行池化。类似于PSPNet 中用于语义分割的金字塔池化模块,这有助于提取上下文信息,较大的分辨率有助于关注局部细节,而较小的分辨率有助于捕捉整体信息。与金字塔池化模块不同的是,这些分支使用基于注意力的求和进行融合。

Han等人发现查询RoIs R可能会存在噪声,并且可能不包含完整的对象。因此,他们构建了一个异构图,使用了图卷积层。提议节点之间的成对边同时考虑了不同RoIs的局部和全局上下文,以提高分类和边界框回归的性能。

K. 与类别无关的边框回归

尽管二元分类和边界框回归的参数对于所有类别都是共享的,但大多数方法仍然会独立计算每个特定类别的RoI的参数。与之相反,GenDet、MM-FSOD、SQMG和 Sylph将边界框计算共享在不同的类别之间。这是因为不同的类别在视觉外观上可能有所不同,但边界框数值的回归具有共同的特征。此外,这也节省了计算开销。

最佳性能的双分支元学习方法摘要:

在下面,本文总结了在FSOD基准数据集上表现最佳的一些双分支元学习方法,以突出它们的关键概念。

Meta-DETR 是第一个建立在基于Transformer的检测器DETR之上的方法。它不依赖于精确的区域提议,因此避免了为新颖类别调整这些提议的挑战。此外,在其基于注意力的聚合模块中,还考虑了不同类别之间的相关性,从而降低了误分类。通过基于余弦相似性的额外损失,学习到的特征更具区分性,从而增强了泛化能力。

FCT也使用了一个Transformer,但与DETR不同,它简单地用改进的金字塔视觉Transformer PVTv2替换了Faster R-CNN的ResNet主干。此外,支持和查询特征在多个级别上进行了聚合,以更好地对齐这些特征。此外,多关系检测器计算了支持和查询特征之间的相似性,以输出最终的检测结果。

IFC(Interactive Feature Correction)不是基于Transformer构建的,而是利用交互式自注意力模块来捕获稀缺的新颖类别的区分特征。此外,还引入了一种新颖的特征聚合机制,旨在减少冗余信息,同时增强新颖和基本类别的特征灵敏度和稳定性。最后,引入了正交余弦损失以增强前景的区分能力。

SQMG 是少数无需微调的方法之一。在SQMG中,支持和查询特征都通过相互引导进行增强。首先,这有助于生成更具类别意识的区域建议。其次,还考虑了多个支持图像的个体相关性。此外,SQMG专注于使用不同的训练技巧进行正确的分类:为了减轻相似类别之间的混淆,采用了具有自适应边距的双向对比训练策略。为了解决许多背景提议与少数前景提议之间的不平衡问题,还引入了额外的焦点损失。最后,边界框回归在不同类别之间共享,以便集中在分类上。

总结起来,双分支元学习方法在少样本目标检测中得到广泛应用,可以快速适应新的类别,甚至可以在没有微调的情况下应用这些类别,这对实际应用非常有价值。然而,它们需要复杂的分集式训练方案。然而,通过使用基于注意力的聚合和引入度量学习技术,双分支元学习方法在该领域取得了最先进的成果,我们将在第九部分中讨论这些成果。

6. 单支元学习

单分支元学习方法是指在少样本目标检测中使用一种不同的方法,与传统的双分支方法不同。在这些方法中,没有明确的查询(query)和支持(support)分支,整体架构更类似于通用目标检测器(如Faster R-CNN)。虽然没有一种通用的方法,所有这些方法都共同采用了元学习的分集式训练方式,这是元学习的典型方式。在图7中,展示了对单分支元学习方法的分类,这些方法采用了不同的技巧和策略来解决少样本目标检测的挑战。这些策略包括可学习的学习率、度量学习、减少可学习参数、平衡损失等。每种方法都有其独特的特点,用于提高模型在少样本目标检测任务中的性能。在这里插入图片描述

A. Metric Learning

与双分支元学习类似,度量学习在单分支方法中也起着关键作用。

在少样本目标检测的最早方法之一RepMet 中,将FSOD任务定义为距离度量学习问题。对于定位,RepMet 简单地使用Faster R-CNN 中的感兴趣区域(RoIs)R。这些RoIs的嵌入特征向量与每个类别的多个学习代表进行比较,以确定RoI的类别。为了学习适当的特征嵌入,还使用了额外的嵌入损失,该损失强制要求嵌入向量与正确类别最接近的代表的距离和与错误类别最接近的代表的距离之间存在最小间隔。

RepMet 使用了一个类别的正区域提案,但丢弃了它的负区域提案。然而,为了学习嵌入空间,尤其是困难的负区域提案对于度量学习非常重要。因此,NP-RepMet 也学习了负嵌入特征向量f每个类别的负代表向量。代表的嵌入空间是通过使用三元损失来学习的。

PNPDet 使用余弦相似度进行目标类别的距离度量学习,以更好地推广到新的类别。余弦相似度计算输入图像特征与每个类别的学习原型之间的相似性。

要点:度量学习有助于创建更具辨别性的特征,以更好地区分不同的类别。

B. 减少可学习参数

由于新类别的少样本训练可能不足以训练深度神经网络,因此一些方法会减少少样本微调的可学习参数数量。在将MetaDet在基础数据集上训练之后,会冻结与类别无关的权重(即Faster R-CNN的骨干和RPN),并应用一个情节性训练方案来首先学习如何预测基础类别的特定于类别的权重,然后是新类别的权重。对于推断,元模型可以被分离,检测器看起来就像标准的Faster R-CNN。

Li等人 (MetaRetinaNet)通过在基础数据集上训练后冻结所有骨干层来减少可学习参数的数量,并学习初始化为1的系数向量v。这些可学习的系数向量v与卷积权重w相乘,导致修改后的卷积操作:
f o u t = f i n ⊗ ( w ⊙ v ) ⊕ b f_{out} =f_{in}\otimes(w \odot v)\oplus b fout=fin(wv)b
Zhang等人(PNPDet)在新颖数据集上训练后冻结整个网络。在少样本微调中,引入了一个第二个小型子网络,用于学习分类新类别。将新类别和基础类别分开有助于防止基础类别性能下降。

要点:在数据稀缺的新颖数据集上训练时,应减少可学习参数的数量。

C. 可学习学习率

Fu等人设计了他们的Meta-SSD,使模型的参数可以快速调整 - 仅需一个参数更新即可适应新类别Cnovel。原始的SSD检测器的所有参数都获得额外的可学习学习率。在元学习期间,这些学习率是由元学习器从当前任务的分布中单独学习的,从而既不会过拟合也不会欠拟合。

D. 平衡损失函数

Li等人强调,在元学习中,每个情节中会抽样不同类别的不同训练示例,并且它们会表现出不同的性能。这种性能不平衡会影响稳定性,并使模型难以适应新类别。因此,在他们的MetaRetinaNet中引入了一种平衡损失,它限制检测器在不同情节中达到类似的性能。

对于单支元学习方法的总结:
单支元学习方法在少样本目标检测中研究较少。因此,更高级的双支方法或迁移学习方法能够超越此处介绍的方法。

7. 迁移学习

8. 元学习和迁移学习的比较

9.实验结果

10.现在发展

11. 结论

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值