自己做的ppt,找个地方存下,万一有人看呢。



少样本目标检测的问题是这样的,给予包含目标特写的辅助图片以及可能包含目标的查询图片,任务是找出查询图片中所有辅助图片对应的类别目标,并且标记其准确的位置。这里与普通目标检测任务的不同就在于训练集每一类的样本数很少,并且用来测试的目标类别是不出现在训练集中的。
这篇论文主要贡献有两个:一是提出了一个通用的少样本目标检测算法,设计的网络通过对比训练策略以及RPN和检测器中加入的attention模块来提取目标间的匹配关系,不需要微调就可以进行靠谱的新目标检测;二是腾讯还自己做了一个包含1000个种类的少样本训练集FSOD,这是为数不多的在目标检测领域的少样本数据集。

该数据集以ImageNet和Open Images dataset V4为基础,作者团队首先将这两个数据集中语义相同的类别合成为一类,然后去除质量差的和占图片比例小于0.05%的边界框,训练集包含800类、测试集包含200类。在分割测试集和训练集时,作者尽量让这些种类的差距够大。该数据集总共有大约六万六千张图片,十八万个边界框。跟COCO的十二万图片、88万边界框比算是比较少了。从下面这个表里也可以看到,这个数据集的边界框的大小和宽高比也是分布的比较广泛,可以作为一个基准数据集。

整个算法的框架是以Faster-RCNN为主进行改造的,首先,辅助图片和询问图片都通过一个权值共享网络,然后经过一个attention-RPN来提取边界框,随后对于生成的边界框会进行一个多关系的匹配,验证得到的边界框是否符合辅助集的要求。辅助集中有几类图片support分支就有几个。每一类如果有多个辅助图片那么就让他们依次通过共享网络然后取其平均值作为后面attention-RPN的辅助特征。

因为这个RPN不仅要过滤掉背景框还要过滤掉那些不属于辅助集中包含的类的框,所以作者想通过辅助集中图片生成的特征来使RPN更专注于生成特定种类的框。整个的流程就是图中展示的那样,X是辅助集中所有种类生成的特征图,然后经过均值池化得到1*1*C的向量,Y是询问图片生成的特征,然后做一个深度卷积也变成通道为C的特征图,随后将1*1*C的向量当作一组卷积核在下面的特征图上做卷积运算。随后将生成的特征图G送入RPN网络的回归层和分类层。论文中说这里的loss函数采用的就是faster-RCNN中的loss。

一般的RCNN框架后面会跟着一个检测器进一步对建议框进行评估打分,作者设计了三种关系检测器,最后用三者最后分数之和作为最终的匹配分数。第一种检测器提取的是全局的关系判断匹配值,第二种可以看做像素与像素之间的一个匹配,第三种是一对多的像素匹配。论文中还对这三者做了消融实验,从表中可以看出,当三者都使用的时候准确率是最高的,所以这三者对提高性能都有作用。

下面详细介绍一下这三个检测头。全局的检测头首先将输入的两个特征拼接起来,然后将拼接后的特征平均池化成1*1大小,接着使用两层带有RELU激活的全连接层进行处理,最后通过一个全连接层得出匹配分数。局部检测头首先用共享权重的1*1*C的卷积核分别对输入的两个特征进行处理,然后将辅助特征作为卷积核在询问图片的特征图上做卷积,最后跟一层全连接生成分数。模块检测头开始也是将两个特征拼接,然后通过右下角表中的这个卷积模块,随后是两个并列的全连接层,一个生成匹配分数,另一个是边界框的预测。

为了使模型不仅拥有区分前景和背景的能力,作者还设计了对比训练策略使模型能够区分不同的类别。该策略的具体方法就是首先选择一个辅助集中与询问图片不同的类中的一个图片,作为负的辅助样例,就像右边这个图中一样,羊作为一个负的辅助样例,然后作者进行了四种配对,分别是正辅助样例和前景的建议框、正辅助样例和背景建议框、负辅助样例和前景的建议框、负辅助样例和背景的建议框。由于实际情况中负样本较多,作者将后两种合并,然后将三者比例定位1:2:1。这里训练时的损失函数分为两部分,一部分是二值交叉熵,一部分是fast-rcnn中的边界框损失函数。

论文中使用的优化器是SGD,权重衰减参数(防止过拟合,惩罚权值最大的项)为0.0001、动量项(加速收敛)参数为0.9。对于前56000次迭代,学习率 为0.002,后面的4000次为0.0002。该网络使用在ImageNet和COCO数据集上预训练过的ResNet50作为骨干网,为了避免过拟合,作者冻结了网络的前三个残差块的权重。询问图片的大小是1000*600,辅助集的图片是先将目标特写从图片中抠出,然后用0填充或者直接resize成320*320的图片。

首先作者在ImageNet目标检测测试集上与较好的方法做了比较,在都使用COCO训练集的情况下,在测试集上微调之后,作者的方法达到最好水平。然后作者用只在FSOD数据集上训练,不进行微调的情况下直接应用到测试集上,也取得了很好的成绩,我们可以看到当作者使用自己制作的数据集之后在AP75的准确率提升很大,说明这个新提出的数据集对少样本目标检测有很大贡献。
然后作者在COCO数据集和另外两个网络进行了比较。

为了证明这个网络和数据集在实际应用中的效果,作者找了一个企鹅的数据集,并从中挑选了5个特写的企鹅,然后去识别,可以看出效果还是不错的。
FSOD之所以会有这么多的种类是因为作者认为更多种类比更多图片有利于少样本检测。由此,作者做了个实验,在其他条件相同的情况下,只改变训练的种类和训练图片的数量,来观察最后的测试结果,从这个表中我们可以看出虽然COCO的训练集数量是最多的,但是他的表现却最差。

我觉得这篇论文最有用的地方就是他抓住种类多这个点构建的少样本数据集。这可能会成为后面做少样本目标检测的一个标准数据集。论文中的网络结构看起来更像是一个匹配算法,我们可以把辅助集看做是模板,这里就出现一个问题,这个模板是根据什么规则选取,可不可以随机找几个样本就能把目标识别出来,作者并没有给出详细解释。由于每一类辅助集都有自己的RPN,再加上对比训练策略,导致模型的结构比较复杂,在多关系检测中需要进行三种匹配,这样计算量也上来了,论文也没有展示出来模型的推理速度。
还有一点,据说COCO数据集里图片的复杂度比较高,而构成FSOD的数据集不知道复杂度上能不能比得上,如果在在FSOD上训练、在COCO上测试能达到很好的效果那就说明这个数据集很管用。
以上只是我的一些理解,也不一定对,欢迎大家一起交流交流。
论文地址:https://arxiv.org/abs/1908.01998
来源:oschina
链接:https://my.oschina.net/u/4262172/blog/4496748