FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding个人理解

FSOD论文系列02

文章来源

Existing works on few-shot object detection can be categorized into two paradigms: transfer learning and meta-learning. Transfer-learning-based methods include LSTD (Chen et al. 2018), TFA (Wang et al. 2020), MPSR (Wu et al. 2020), and FSCE (Sun et al. 2021), where novel concepts are learned via fine-tuning.

meta-DETR文中的相关文章显示小样本学习分成迁移学习和元学习两个主流方向,FSCE是迁移学习方向的最近一篇代表作。

原文思路

1. 简介
CNN等搭建的深度学习特征检测器需要大量数据训练参数,而当这样的检测器遇到小样本问题就容易出现过拟合的问题。而小样本目标检测的问题要远比小样本图像分类的问题大很多。早期的FSOD使用元学习方法,通过support类和novel类的匹配完成少样本学习。两阶段微调方法(TFA)逐渐展示优势,baseline TFA都是冻结在base上训练好的参数,再在novel data上进行bbox大小、位置的微调,这样基本操作也能使得效果优于之前的meta方法。本文主要解决的是基于微调的方法的弱点——novel类别误分类问题。
很多人会觉得小样本目标检测的难点是定位(将novel类别识别成背景像素),但实际实验结果表明,常用的小样本识别框架 Faster R-CNN+RPN就能够将novel类别精确定位出来,而主要的错误是分类错误。我们基于PASCAL VOC数据集和Faster R-CNN特征提取器的结果进行成对样本的cosine相似度比较,相似的类别之间的cosine相似度值能达到0.39,对比目标和背景的相似度平均也不过0.21。(所以比起区分背景和目标,区分resemble的类别更难)我们在baseline的TFA算法结果进行人工纠正误分类,nAP值能上升20点。
在数据量很小的情况下做分类,一般的基于类别大间距的分类器效果不好。对比学习在识别、分类、自监督模型领域效果都很好。我们的目标是学习一个实例级判别特征表示。我们相信对比学习出来的特征可以兼顾同类紧凑、异类差异,降低相似物体误分类。
正例扩充往往使用同一类别的图像增强,我们采取一个物体不同IoU值作为正例扩充。
我们微调阶段,在Rol head平行的加了一个分支——对比学习分支,该分支衡量proposal之间的相似度。一个有监督的分类器会优化至同一类别的embedding的方差最小(同一类别物体特征紧凑),同时就使得不同类别物体之间间距扩大。
我们提出一个CPE loss,加入原始的loss函数。
据我们所知,FSCE发表的时候,是第一个把对比学习引入小样本目标检测的。
2. 相关工作

  • 少样本学习
    元学习方法目标是学习一个通用的元模型,适用于新的类别。基于度量学习的方法强调学习一个好的特征嵌入。最直观的度量包括余弦相似度、到类中心的欧几里得距离、图距离。还有基于图像合成的方法,生成假数据来解决数据缺失。
  • 少样本目标检测
    有两条路解决FSOD问题:元学习和基于微调的迁移学习。我们不喜欢过于复杂的模型,因为那样容易过拟合,效果也不好。
    我们的目标是通过对比学习,区别不同对象表示,而不增加模型复杂性。
  • 对比学习
    半监督模型最近的成功可以归因于对比学习的重新关注。最优化对比目标函数,就是最大化相似对象(正例对)的共同点,不相似对象(负例对)的差异。有了对比学习,算法能够学到一个高语义层次的特征,能够有效区分不同图像。

3. 方法
我们提出的算法包括两步训练。首先,在有着充足数据的base集上训练标准Faster R-CNN检测模型。其次,将训练好的base detector迁移到平衡好正负例的、有novel数据的数据集(所有novel数据加上随机抽取的base)进行微调。微调的时候,backbone的特征提取器是冻结的,但是Rol特征提取器是在对比目标监督下联合训练的。我们在优化分类和回归box位置的目标函数,同时优化了自己定义的一个对比相关的CPE loss。

  • 重新考虑两阶段微调方法
    之前的方法在微调的时候都只调整最后两个全连接层(负责分类、box回归),其他的都冻结住,这样可以解决数据量太少产生的过拟合问题。但其实这是反直觉的,因为FPN、RPN、尤其是Rol特征提取器的参数如果固定了,就只包括base数据集的信息。在baseline的TFA方法中,不冻结这些特征层的结果就是novel效果下降。但我们发现其实是可以解决的。
  • 更好的baseline
    起初,随着微调component数量的增多,效果逐步下降。但我们注意到对于base数据和novel数据,RPN、Rol数据有很大的断层。positive anchor产生的proposal下降3/4,随之而来的就是前景proposal的下降。尤其是微调起步阶段,novel目标的positive anchor在RPN得到的objectness分数都很低,也就很少的positive anchor可以通过NMS筛选成为Rol head所需学习的proposal。所以我们的目标就是提高positive anchor的低objectness分数。另外,重新平衡前景proposal数量也很重要,防止大量分散的背景像素主导梯度下降。
    我们采取以下方式解冻RPN、ROl:(1)将NMS筛选出来的proposal数量double,可以给novel instance提供更多的前景proposal (2)将ROI head中采样的proposal数量也算入loss,因为微调阶段所丢弃的一半的proposal都只包括背景(标准ROl的batch size是512,而前景的proposal一半都不到)。这样,可调的ROI特征提取器为我们实现加入对比学习提供了可能性。
  • 对比学习目标框编码
    两阶段检测框架下,RPN的输入是backbone提取的特征图,然后生成建议区域,然后如果判定proposal中有目标,ROI head进行单个区域的分类和回归。在Faster R-CNN流程中,ROI head特征提取器首先将所有的建议区域池化到同一大小,然后将他们转义成ROI特征向量。一般的ROI head无法在有限的样本下生成鲁棒的特征表示,从而导致误分类。所以目标就是让ROI能够学会更有区分度的表示object特征。我们提出 批对比学习,建立同类相吸、异类互斥的object proposal embedding。
    为了在Faster R-CNN基础上直接加对比学习,我们在原有的ROI head引入对比学习分支,和分类、回归并行。由于ROl 特征是经过ReLU激活的,所以有些部分被抑制为0了,无法衡量相似度。我们采用几乎零成本的单层MLP(多层感知机),将ROI 特征encode成对比特征Z。随后根据Z,比较相似度,并最优化一个对比目标。
    FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding个人理解

加权的(ROI特征向量和class权重向量之间的cosine值)刻画 当前目标属于该class的可能性。我们提出的对比分支可以引导ROI head学出更好地区分不同类别的object proposal嵌入向量。在cosine投影出来的超平面,包含对比信息的嵌入向量使得同类别之间更紧凑,不同类别之间距离更大,就更容易区分不同类别。

  • CPE loss
    主要是比较i和j两个proposal之间的相似度。指数函数括号里面是 i、j两个proposal的标准化向量在cosine投影空间下的相似度。
    FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding个人理解
  • 对比proposal的连续性
    我们建议使用IOU阈值确保对比的proposal归属class的一致性,不然选取偏离object中心太多的proposal会携带其他语义信息。因此,IOU大于φ阈值的proposal才会考虑CPE loss,且不同IOU值的proposal对于loss贡献度由g()函数控制。
  • 目标函数
    第一阶段的训练目标就是标准的Faster R-CNN loss(anchor产生前景proposal交叉熵、bbox分类交叉熵误差、L1位置回归误差)。
    第二阶段,加入λ加权的CPE loss。

4. 实验

FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding个人理解

; 个人理解

get

1.利用合理IOU分数的proposal作为数据增强的手段;
2.迁移学习的冻结手段可以放宽至一部分特征提取器一起微调;
3.对比学习分支辅助训练特征提取器生成更好的特征表示向量;

Q&A

1″重新平衡前景proposal数量也很重要,防止大量分散的背景像素主导梯度下降”:所谓的正负样本平衡问题,让负样本产生的loss不要因为数量大而主导了loss。
2.CPE loss的理解:计算和当前proposal i 相同真值的其他所有proposal j 之间的cosine相似度,目标是是二者越相似越好,越相似则log内的越接近1,log出来的值越接近0。log里面有一层的操作有点类似softmax。
3.Faster R-CNN基本架构、L1距离损失函数

FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding个人理解

4.利用合理IOU分数的proposal作为数据增强的手段—>loss函数的关系

Original: https://blog.csdn.net/qq_41064487/article/details/123862342
Author: qq_41064487
Title: FSCE: Few-Shot Object Detection via Contrastive Proposal Encoding个人理解

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/686397/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球