Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector 论文笔记

前言

小样本目标检测,即给定一个新类的支持集(support set),该支持集中只有少量的样本,需要在测试集(test set)中检测出所有属于该新类的前景目标。如下图所示,左上角和右上角分别是两个不同类别的支持集样本,自行车和头盔,在下面的查询集(query set)图像中检测出所有属于自行车和头盔这两个类的目标。
Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector 论文笔记_第1张图片
在目前一些小样本目标检测算法中,bbox可能会漏检一些目标,或者在背景中生成许多错误的检测结果。作者认为这是由于RPN生成的一些优秀的bbox的分数太低了,使得很难检测出属于新类的目标。

本文主要有两方面的贡献:

  • 提出了一种新的小样本目标检测模型,通过精心设计的对比训练策略以及RPN和检测器中加入的attention模块,在一个共享权值的网络中的不同阶段,利用目标间的匹配关系,不需要微调或进一步的适应就能够对新类的目标进行检测。其中,在网络的早期阶段中,attention RPN模块使得proposal的质量显著增强;在后期阶段中,多关系检测器(multi-relation detector)模块能够抑制和过滤在背景中产生的错误的检测结果。
  • 本文还构建了一个拥有1000个类别的标注详细的训练集FSOD,其中每个类别只有少量的样本。本文的模型获得的性能提升有一定程度得益于此训练集。利用该训练集,本文的模型不需要任何微调,就能在其它数据集上获得很好的性能。

FSOD的介绍

目前的一些数据集并不能被直接用于小样本学习的训练,它们有以下几个不足之处:

  • 不同数据集的标签系统是不一致的,一些语义相同的目标在不同的数据集中的标注可能是不同的;
  • 由于不准确和漏标的标签,以及重复的box,使得现有的数据集中出现很多噪声;
  • 训练集和测试集包含的类别是相同的,而在小样本学习中我们希望训练集和测试集拥有不同的类别。

因此,本文构建了一个新的用于小样本目标检测的数据集。构建过程如下:

  1. 首先要总结出一个标签系统。通过将具有相同语义的叶子标签分组,并去掉不属于任何一组的语义,对原始标签树中的叶子标签进行合并;
  2. 然后去掉标签质量不好的图像和box大小不合适的图像,比如一些图像中的box比该图像大小的0.05%还要小,这些图像并不适合作为support样本;
  3. 根据小样本学习的设置,将数据集划分为训练集和测试集,两个数据集中没有重复类别。在构建训练集时,先根据MS COCO数据集中的类别来构建,防止预训练的影响。然后尽量选择与当前训练集差距较大的类别作为测试集,测试集包含200个类。然后将剩下的类别融入训练集中,训练集将总共包含800个类。那么最终该数据集包含1000个类,其中531个类来自ImageNet,469个类来自Open Image。

本文的数据集中大概有66000个图像和182000个bbox,详细的结构分析如下:
Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector 论文笔记_第2张图片
Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector 论文笔记_第3张图片
本文的数据集有以下特征:

  • 类别丰富。数据集包括83个父语义,比如哺乳动物、衣服、武器等,每个语义又可进一步分为1000个叶子类别,标签树如下图所示。
    Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector 论文笔记_第4张图片

  • 具有挑战性的设置。数据集中目标的box的大小和长宽比的变化很大,26.5%的图像至少包含3个目标,并且有大量box的类别并不属于标签系统,即包含大量非目标类别的目标,干扰性很大。


方法实现

给定包含目标特写的support图像 s c s_c sc,和可能包含类别 c c c的query图像 q c q_c qc,小样本检测任务的目标就是在query中找到所有属于类 c c c的目标,并用bbox把它们框起来。如果support set中包含 K K K个类,每个类有 N N N个样本,那么这就是 K K K-way N N N-shot检测。
Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector 论文笔记_第5张图片
本文提出了一种新的attention网络,该网络能够在RPN模块和检测器上学习support set和query set之间通用的匹配关系。上图为网络的整体结构,该网络整体上其实就是一个权值共享的框架,包含两个分支,一个分支用于query set,其它分支用于support set(为方便起见,图中只画了一个support分支)。其中query分支是一个Faster R-CNN网络,包含RPN和检测器。

通过利用这个框架来训练query set和support set之间的匹配关系,从而学习同类别之间的通用知识。除此之外,在这个框架的基础上,还引入了一种新的attention RPN模块和多关系检测器模块,以在query中生成精确的检测结果。

1. attention RPN

在小样本目标检测中,RPN可以生成相关的box用于之后的检测任务。在这里我们希望RPN不仅要分辨出是前景还是背景,并且还应该能过滤掉不属于support类别的样本。但是如果不提供任何support信息,那么RPN会生成许多与support类别无关的proposal,并因此加重之后的分类任务。为了解决这个问题,本文提出了attention RPN模块,如下图所示,它可以利用support信息来过滤掉大多数的背景box和不属于support类别的box,从而得到一个小而精的候选proposal集。
Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector 论文笔记_第6张图片
通过attention机制来向RPN中引入support信息,以产生相关的proposal,抑制不相关proposal的产生。具体的做法是,在depth-wise上计算support特征图与query特征图之间的相似性,然后利用这个相似性特征图进行proposal的生成。 在实际计算中,将support特征图定义为 X ∈ t S × S × C X \in t^{S \times S \times C} XtS×S×C,将query特征图定义为 Y ∈ t H × W × C Y \in t^{H \times W \times C} YtH×W×C,那么相似性被计算为:
在这里插入图片描述
X X X其实可以看作是一个核,在query特征图上滑动,以进行depth-wise卷积,如上图所示。在这里核的大小 S = 1 S=1 S=1,它是通过对support特征图取平均得到的。然后通过一个 3 × 3 3 \times 3 3×3的卷积,后跟objectiveness分类层和box回归层,得到attention特征,最后将attention特征送入RPN中以生成proposal,这里采用的是RPN顶层的特征。attention RPN的loss L r p n L_{rpn} Lrpn和Faster R-CNN共同加入到网络的训练中。

2. 多关系检测器

在R-CNN框架中,RPN模块后面通常会跟一个检测器,这个检测器的作用就是对proposal重新评估和调整。在attention RPN之后,我们也希望有一个具有强大判别能力的检测器能够区分出不同的类别。因此,本文提出了一种新的多关系检测器(multi-relation detector),它能够度量query中的proposal box和support中目标的相似性。如下图所示,这个检测器由3个attention模块组成:
Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector 论文笔记_第7张图片
给定大小都为 7 × 7 × C 的 7 \times 7 \times C的 7×7×Csupport特征 f s f_s fs,query特征 f q f_q fq,多关系检测器中每个模块的说明如下,注意最终使用三个head的匹配分数之和作为网络最终的匹配分数。

  • global-relation head,用于学习深层embedding以进行全局匹配。将 f s f_s fs f q f_q fq连结成为 f c f_c fc f c f_c fc的大小为 7 × 7 × 2 C 7 \times 7 \times 2C 7×7×2C,然后对 f c f_c fc进行平均池化变为 1 × 1 × 2 C 1 \times 1 \times 2C 1×1×2C,然后将 f c f_c fc送入一个拥有2个全连接层和一个ReLU层的MLP中,最后通过一个全连接层生成匹配分数;
  • local-correlation head,用于学习query中的proposal和support之间在pixel-wise和depth-wise的关系,也就是对应位置的关系。首先分别将 f s f_s fs f q f_q fq送入一个权值共享的 1 × 1 1 \times 1 1×1卷积层进行处理,然后用attention RPN中计算相似性的等式 G h , w , c G_{h,w,c} Gh,w,c来计算 f s f_s fs f q f_q fq之间的相似性,其中 S = H = W = 7 S=H=W=7 S=H=W=7,最终通过一个全连接层生成匹配分数;
  • patch-relation head,用于学习一个深层非线性度量以进行块匹配。首先将 f s f_s fs f q f_q fq连结成为 f c f_c fc f c f_c fc的大小为 7 × 7 × 2 C 7 \times 7 \times 2C 7×7×2C,然后将 f c f_c fc送入patcn-relation模块中,patcn-relation模块的结构如下表所示。其中所有的卷积层后面都跟有一个ReLU层,所有的卷积层和池化层都要进行零填充,以将特征图的大小从 7 × 7 7 \times 7 7×7 减小为 1 × 1 1 \times 1 1×1,然后用一个全连接层生成匹配分数,另一个全连接层生成bbox预测。

3. 一种新的2-way对比训练策略

通常小样本学习的训练策略是构建样本对儿 ( q c , s c ) (q_c,s_c) (qc,sc),然后匹配属于相同类别的目标。但是在本文中,作者认为不仅要匹配属于同一类别的目标,还应该能区分不同类别的目标。因此,本文提出了一种新的2-way对比训练策略。
Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector 论文笔记_第8张图片
上图说明了不同的匹配结果,一般来说相匹配的都是positive support和query的前景proposal。在2-way对比训练策略中,随机选择一个query图像 q c q_c qc,support图像 s c s_c sc s n s_n sn q c q_c qc s c s_c sc具有相同的类别 c c c,而 s n s_n sn的类别是 n n n,和另外两个都不一样,然后将它们组成一个三元组 ( q c , s c , s n ) (q_c,s_c,s_n) (qc,sc,sn),其中 c ≠ n c \neq n c=n,并且在query图像中只有 c c c类目标被标记为前景,其它的都是背景。

在训练时,模型不仅要学习匹配属于同一类的目标 ( q c , s c ) (q_c,s_c) (qc,sc),还要区分不同类的目标 ( q c , s n ) (q_c,s_n) (qc,sn)。由于背景proposal的数量过多,甚至会主导训练过程,因此要控制3种不同的matching pair之间的比例平衡:

  • ( p f , s p ) (p_f,s_p) (pf,sp):前景proposal和positive support;
  • ( p b , s p ) (p_b,s_p) (pb,sp):背景proposal和positive support;
  • ( p , s n ) (p,s_n) (p,sn):proposal(包括前景和背景)和negative support;

控制 ( p f , s p ) (p_f,s_p) (pf,sp) ( p b , s p ) (p_b,s_p) (pb,sp) ( p , s n ) (p,s_n) (p,sn)的比例为1:2:1,具体来说就是,根据匹配分数分别选择所有 N N N ( p f , s p ) (p_f,s_p) (pf,sp)、前 2 N 2N 2N ( p b , s p ) (p_b,s_p) (pb,sp)和前 N N N ( p , s n ) (p,s_n) (p,sn),然后计算matching loss。在训练时,每个proposal的损失为多任务损失 L = L m a t c h i n g + L b o x L=L_{matching}+L_{box} L=Lmatching+Lbox,其中 L b o x L_{box} Lbox和Fast R-CNN中的一样, L m a t c h i n g L_{matching} Lmatching是二值交叉熵损失。
Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector 论文笔记_第9张图片
本文还对比了1-way,2-way和5-way的训练策略,可以看到2-way的效果最好,而5-way的效果甚至不如2-way,作者认为这是因为在训练时只需一个negative support就足够区分不同的类。除此之外,实验还表明attention RPN比常规RPN能生成更好的proposal,并且有助于最终的检测结果。


结论

本文提出了一种新的小样本目标检测网络,有三个创新点,分别是attention RPN,多关系检测器和对比训练策略。并且本文还构建了一个专门用于小样本目标检测的数据集FSOD,包含1000个类别,标注的质量很高。本文提出的模型在FSOD上进行训练,之后不需要微调和重新训练就能检测出属于新类的目标。

你可能感兴趣的:(目标检测,小样本学习,计算机视觉)