查看原文
其他

【源头活水】Few-shot object detection论文整理(CVPR2021)

“问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精选论文阅读笔记,开辟“源头活水”专栏,帮助你广泛而深入的阅读科研文献,敬请关注。

来源:知乎—森林海
地址:https://zhuanlan.zhihu.com/p/386917708
最近在看Few-shot目标检测领域的文章,也是第一次接触这个领域,整理了一些CVPR2021的文章和大家分享~文章会持续更新
有错误的话还各位小伙伴请多多指正( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ

Few-shot object detection(FSOD)简介

传统的目标检测有一个base class集合,和base dataset 。包含丰富的数据  ,    表示image,    表示对应的标注,包括在集合中的类别信息和bounding box坐标信息。
而对于Few-shot目标检测(FSOD)任务,除了上述两种集合之外,还有novel class集合和novel dataset  。并且。对于  -shot检测,每个在中的类有只有  个带标注信息的objects。Few-shot检测器先在中进行学习,然后在  很小的情况下快速地在上进行泛化,以此在类别集合为 的测试集上达到良好的性能。
Few-shot检测模型可以分为两类:
1. 基于meta-learning的方法。
2. 基于两阶段+fine-tune的方法,有两个训练阶段,第一个阶段和传统的目标检测器类似,在  上进行训练。第二个阶段在  和  的并集上进行微调,为了防止  中样本数量带来的影响,通常在微调前对  采样一个子集,使得  和  并集中每一类样本的数量更均衡。由于第二个阶段内class数量的增多,往往在检测器的box classification和localization部分插入更多的class-specific参数,基于novel objects来训练它们。

01

Semantic Relation Reasoning for Shot-Stable Few-Shot Object Detection
paper:https://openaccess.thecvf.com/content/CVPR2021/html/Li_Few-Shot_Object_Detection_via_Classification_Refinement_and_Distractor_Retreatment_CVPR_2021_paper.html
code:None

1.1 Motivation

数据稀缺(data scarcity)是FSOD中的难点。检测器的性能受到如下两方面数据数量的影响:
explicit shot:指在novel class中可用的标签目标。
implicit shot:指初始化检测器的backbone时,已经包含在其中的关于novel class的先验知识。
这些数据数量的影响有多大?作者通过图1给出了性能比较:
其中实线的变化反映了explicit shot对性能的影响。虚线则是移除backbone中的implicit shot信息后的性能。可以看到本文的模型(红线)在这两种信息变化后仍然有较好的表现。
作者认为只利用视觉信息是不够的。不管视觉信息是否可用,base class和novel class之间的语义关系信息是不变的。
例如上图,如果有先验知识:“自行车”这个新类和“摩托车”类似,并它能够与“人”互动,可以携带“瓶子”,那么作者认为利用这些先验知识进行学习比仅仅利用几张图片进行学习更有效。本文提出的Semantic Relation Reasoning Few-Shot Detector(SRR-FSD)模型就探索了如何利用这些语义关系。
本文的contribution:
第一个在FSOD里探索语义关系推理的工作。
提出的SRR-FSD模型在novel class数据非常有限时性能也很稳定,即题目所说的shot-stable。
提出了一种新的FSOD设置,即图1虚线对应的在分类数据集中移除novel class,不给backbone隐含的先验知识。我理解是一种更加严苛的条件。在这种设置下模型仍然是shot-stable的。

1.2 Model

模型整体pipeline如上图,基于Faster R-CNN。改进点主要在网络顶层的classification subnet。经过Faster R-CNN提取的视觉特征经过全连接层后,为。在原始的检测器中,这个特征向量和参数矩阵相乘,得到该proposal对应  个类别(包括background类)的概率,整个过程如下式:

为了使用来自语言模态的语义关系信息,先使用将  映射到预先定义的    维的语义空间,目标是把proposal的视觉特征  进行映射后得到的    维的向量和它的类别(比如cat, dog, people...)的word embedding一致。这个word embedding就是上面提到的语义空间,使用表示,直观上理解就是个类别,每个类别的embedding是    维,比如使用Glove词向量    就可以取50,300等,不同的词向量之间计算相似度能够反映两个词之间在语义上的距离,举个例子,比如man和woman这两个词的词向量的相似度就应该比man和dog更近(舔狗另说)。上面的公式现在可以表示为:

其实就是把原来的参数矩阵变成两部分了,  在训练的时候是固定的,它是如何得到的后面讲,模型训练时只学习参数    
上面的过程其实没有引入关系信息,类别和类别之间还没有交互。为了利用起来关系,作者使用了一个知识图(knowledge graph)来建模relationship,使用    来表示,它是    的邻接矩阵,表示类别之间的关联强度。最终公式表示为:

那么    又是如何实现的?本文使用了一种dynamic relation graph方法,见下图:
作者称借鉴了self-attention的思想,原始的    经过三个linear layers    进行转换,我理解是得到了query, key和value对应的向量,经过处理后的    融合了每个embedding的信息。对于初始的word embedding    ,文中提到使用300维的word2Vec词向量,在relation reasoning module里将维度降低为32。

1.3 Experiments

SRR-FSD在VOC和COCO上进行实验。
对于VOC数据集,15个类作为base class,5个类作为novel class,有3种不同的划分方式,结果如下:
对于COCO数据集,使用和VOC数据集有重叠的20个类作为novel class,剩下的60个类作为base class。结果如下:
消融实验在VOC数据集上探究了semantic space projection(SSP),relation reasoning(RR),Decoupled Fine-tuning(DF)的影响:
以及三种不同的word embedding增强方式:


02

Dense Relation Distillation with Context-aware Aggregation for Few-Shot Object Detection
paper: https://openaccess.thecvf.com/content/CVPR2021/html/Hu_Dense_Relation_Distillation_With_Context-Aware_Aggregation_for_Few-Shot_Object_Detection_CVPR_2021_paper.html
code: https://github.com/hzhupku/DCNet

2.1 Motivation

本文提到,FSOD的研究可以分为两类:
基于meta-learning框架为class-specific的预测进行feature reweighting。
两阶段的方法(应该就是指上面那篇文章的做法),只微调网络的最后几层。
但是本文认为它们都面临几点困难:
对support features和query features之间的关系探索得不够充分。其中在support特征上进行全局池化操作来调整query分支较为常见,但是容易丢失详细的局部上下文信息。具体来说,物体的外观变形和遮挡是常见的问题,例如下图:
由于没有足够的判别信息,模型无法学习用来预测class和bbox的关键特征。
尺度变化问题,在few-shot的设置下,具有scale-aware的特征提取器倾向于过拟合,导致模型在base class和novel class上的性能下降。
为了解决第一个困难,本文使用了dense relation distillation module来充分探索support样本集合,直观上来看,query和support物体是否属于同一类是依据它们之间的特征相似度来评判的。当物体外观变形或者有遮挡时,局部的细节特征占主导地位。因此作者采用了密集关系蒸馏机制让query和support特征在像素级别上匹配。
为了解决第二个困难,本文设计了context-aware feature aggregation module来捕捉不同尺度下的关键信息。使用自适应聚合机制,能够为不同尺度的物体保留上下文信息,具体实现是三种不同的池化方案+attention。
文章的contribution:
  • Dense relation distillation module
  • Adaptive context-aware feature aggregation module
  • Extensive experiments

2.2 Model

在    -shot任务下,每个样本的构建过程如下:
采样一组support image-mask pairs,使用表示,其中    对应第    个class中的一张RGB图片,    是相应的二值的mask(类似分割的mask,bbox对应的区域是前景,其他是背景),    是训练集中的类别数。
采样一个query image    ,以及它的类别    。
模型的输入就是一组support pairs加上一个query image,输出是对query image的预测结果。
本文提出的DCNet模型包含两个模块:Dense Relation Distillation (DRD) module 和 Context-aware Feature Aggregation (CFA) module。整体pipeline如下:
Dense Relation Distillation Module
首先使用encoder得到query和support image的value map和key map。key map用来度量query特征和support特征之间的相似度,有助于确定在何处检索相关的support values。value map包含细节信息。具体地,对于query特征,它的key和value为: 。对于support特征,它的key和value为:  和 。    是特征维度,    是target class的数量(也是support样本的数量)。


如图2,在Dense Relation Distillation Module中使用query和support的key map进行pixel-wise的相似度计算,得到    表示第i个query和第j个support之间的相似度。将得到的    和support的value map矩阵内积然后和query的value map拼接。就是红框部分所示的过程。将N个输出结果进行相加得到最终的结果。
作者在这部分最后还进行了解释。之前的方法对support features使用全局池化操作,得到的是class-wise的特征,然后再去和query features进行交互。这样做确实会丢失一些细节的信息。本文使用的做法得到的是pixel-level的,能够保留更多信息。这种蒸馏方法可以视为non-local self-attention机制的扩展,可以视为一种cross attention机制。
Context-aware Feature Aggregation
上面的DRD模块总的来说,目的是为了得到更精细的query feature map。然后把这个特征送给RPN网络,通过ROI Align操作得到proposals以及对应的特征。作者在最后的pooling操作使用了多尺度的特征,即图中对应的    。通过这种方式作者希望保留更全面的特征表示。
那么怎么融合这三种不同尺度的特征呢?可以看下图的图3,GAP表示global average pooling。
Learning Strategy
如上图图4,在meta-training阶段包含大量base class的标注数据,对feature extractor、dense relation distillation module和context-aware feature aggregation module进行联合训练。
在meta fine-tune阶段,在base和novel class上进行训练。在k-shot设置下,novel class和base class都设成只有k个样本。训练过程和meta training相同,但是模型收敛迭代的次数较少。

2.3 Experiment

PASCAL VOC数据集:
COCO数据集:
消融实验:


03

Hallucination Improves Few-Shot Object Detection

paper: https://openaccess.thecvf.com/content/CVPR2021/html/Zhang_Hallucination_Improves_Few-Shot_Object_Detection_CVPR_2021_paper.html

code: https://github.com/pppplin/HallucFsDet


04

Generalized Few-Shot Object Detection Without Forgetting

paper: https://openaccess.thecvf.com/content/CVPR2021/html/Fan_Generalized_Few-Shot_Object_Detection_Without_Forgetting_CVPR_2021_paper.html

code: None


05

UniT: Unified Knowledge Transfer for Any-Shot Object Detection and Segmentation

paper:https://openaccess.thecvf.com/content/CVPR2021/html/Khandelwal_UniT_Unified_Knowledge_Transfer_for_Any-Shot_Object_Detection_and_Segmentation_CVPR_2021_paper.html

code: https://github.com/ubc-vision/UniT

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“源头活水”历史文章


更多源头活水专栏文章,

请点击文章底部“阅读原文”查看



分享、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存