Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector Note
先发一篇Note,因为Thinking要写的内容太多,代码和之前的有些内容还没深入学(需要元学习和经典目标识别框架的基础),所以可能要延时更新
默默奉劝一句,这篇论文意义不大,更多的是直接应用(其实就是一个数据集比较有亮点)
对于神经网络类的论文,我想从以下几个方面在把握住:
- 问题的提出,该领域历史上都做了哪些努力,有哪些不足之处,作者提出了什么方法,想要解决哪个问题。
- 神经网络的结构和激活函数
- 神经网络的代价函数解读
- 在上面这些过程中的一些我认为的或者作者认为的难点
- 网络的训练与测试
问题的提出:
因为传统的目标检测需要大量的label data进行训练,为了消除label data的大量labor,作者想解决few-shot detection问题。目前对于少样本分类有不少取得很好效果的研究,少样本目标检测也有一些研究,但是需要微调,因此不能直接用于应用新的类别。few-shot的主要挑战再与localization,因为检测的bb很容易丢掉没见过的目标,甚至出现在背景下的错误检测。
作者的目标:
作者提出一种模型,能够在few-shot训练集下,无需调优和再训练就能用于检测新型目标。
作者采用的方法:
我们的工作受到match network的启发。我们提出了一个通用的few-shot目标检测网络,该网络基于 Faster R-CNN framework框架学习图像对之间的匹配度量,该框架配备了我们新的attention RPN 和使用我们的 contrastive training策略训练的多关系检测器。
背景知识:
1、match network网络的原理?
2、RPN网络原理
3、什么是query set 和 test set?
N-way k-shot指N个类别,每个类别K个样本。
N-way k-shot 中的 N 和 k 是由 Testing data决定的,与 Training data 无关
4、fore-ground和back-ground的区别
前景是你感兴趣的对象。背景却不是
5、meta learning综述学习
6、Faster RCNN
https://zhuanlan.zhihu.com/p/70759706
论文精华/核心:
- attention RPN网络用于few-shot数据集
- Multi-Relation Detector
问题:
1、文中提出了无需重训练和调优,那如何添入新类呢?
2、文中提出的模型,对于近似类(细腻度方向)的分类和检测的效果如何?
3、文中所谓的无需调优和再训练的优势是怎么来的?
4、根据文中的框架,第一个shared network是Faster RCNN,这里有疑惑,具体是取哪些网络,更多的detail需要看代码才能直到,文中太省略了(废话一大堆,有用的没多少)。
3 FSOD A Highly-Diverse Few-Shot Object Detection Dataset
数据结构
从有监督的大型数据集中中构建自己的数据集。不能直接用的原因看文中。这里构建数据集合并了细类,移除了不合适的图像(box和标签有问题)。通过与现有训练类别距离最大的类别来拆分数据集为训练集和测试集,比例为8:2。
数据分析
类别高度多样化
4 Our Methodology
4.1 Problem Definition
任务是在查询中找到属于支持类别的所有目标对象,并用紧密的边界框标记它们。
4.2. Deep Attentioned Few-Shot Detection
weight shared network是指包含了RPN和detector的Faster R-CNN,通过这个框架来训练支持图特征和查询图特征之间的匹配关系。
4.2.1 Attention-Based Region Proposal Network
RPN的优势:在少样本目标检测中,RPN能够生成relevant box,从而利于后面的检测任务。具体来说,RPN不仅能识别目标和非目标还能过滤掉不属于支持集类中的负目标。
RPN缺点:如果没有支持图像的信息,RPN会在高分数的潜在目标中变得活跃,这会导致,后续的分类任务中,需要检测大量的不相关目标。
为了解决这个问题,我们提出了Attention-Based RPN(图5)。
Q:
1、attention RPN作用是什么?
attention RPN网络计算了query和support的特征相似性,这个相似性能够用来生成proposal。
2、attention RPN相比较RPN来说,优势在哪?
根据原文的意思,RPN需要支持图像的信息,而attention RPN只需要支持信息。所以这两个是否有不同还需要继续研究。
后文进行实验补充,attention表现更好
3、attention RPN中生成G的过程具体是怎么样的,如何理解公式G
固定h,w,c,通过i,j上遍历来生成G,h+i-1<=H, w+j-1<=W,又因为 i,j<=S,则0<=h<H+1-S, 0<=w<W+1-S。G是整个x与 x相同大小的、左上角为i,j的Y框(s*s)求点乘和
根据原文的意思,通过深度的方向(对所有深度进行相同操作),把当作kernel在query feature map Y中进行滑动操作。kernel是通过在支持特征映射上求平均值生成的。当s=1时,效果最好。体现了全局特征可以为对象分类提供良好的对象先验。
4.2.2 Multi-Relation Detector
RPN网络后面要通过一个detector来进行出列,为了重新评分proposal和类识别,提出了新的多关系检测器,用于有效地测量来自查询的建议盒和支持对象之间的相似性。
检测器包括三个注意模块,分别是全局关系头,用于学习用于全局匹配的深度嵌入;局部相关头,用于学习 support和query proposal之间的像素方向和深度方向的互相关;patch关系头,用于学习用于patch匹配的深度非线性度量。三个匹配模块可以相互补充,产生更高的性能。
通过loss 与[25]中网络联合训练 attention RPN
Q:为什么要引入关系头?有什么好处?
为什么:为了对前面RPN生成的输出进行处理,能够使检测器具有很强的辨别能力来区分不同的类别,提出了一种新的多关系检测器来有效地测量来自query的proposal box 和support 对象之间的相似性。
好处:文中做了一个实验,局部头表现得最好,最差得是batch头,当将任意两个结合得时候,比任意一个要好,当将所有三个关系头结合起来,达到了最好的表现。所以加入关系头,对于处理query的proposal box 和support 对象之间的相似性是很常用的思路。
4.3. Two-way Contrastive Training Strategy
Q:
1、为什么要提出这个训练策略?有什么好处?
通常是使用pair(s_c, q_c)来进行训练,但是为了能够识别不同种类的目标,引入a novel 2-way contrastive training strategy。
通过实验可以看出 2-way5-shot表现比1-way要好很多,表示加入negative类能提升表现,而5-way表现却差了,作者认为在训练过程中只需要一个negative类即可。