Few-shot Object Detection via Feature Reweighting论文阅读笔记

Few-shot Object Detection via Feature Reweighting论文阅读笔记

    • 本文贡献
    • Motivation
    • 其它小样本目标检测的不足
    • 整体架构
      • Feature extractor(特征提取模块)
      • reweighting module(重加权模块)
      • 特征向量对元特征进行干预
      • 损失函数
    • 训练部分
    • 结果

最近开始阅读小样本目标检测相关的论文,在这里做些简单的记录。

本文贡献

  1. 是第一个研究小样本目标检测实际应用的研究。
  2. 设计了一个小样本检测模型
    2.1可以泛化学习到的元特征(也就是所有目标都具有的一些共性特征)
    2.2通过支持集样本激活特定某个类的系数来对新类特征进行重加权,也即重加全模块的设计。
    2.3实验表明该模型的表现要远远好于baseline的方法,特别是当标签数量极少的时候。

Motivation

传统的基于CNN的目标检测都需要大量的标注数据集进行训练才能达到很好的训练效果,但是现实中尤其是工业使用过程中,很多时候难以采集很多的图片信息,而且工业中目标检测仅仅时检测几个目标,这就需要一种能够在很少样本标注的情况下还能够准确检测的系统。
论文提出了一种基于大量样本标注的基类和少量新类来完成对模型的训练,并且模型使用了一个元特征学习器和重加权模块。

目前的小样本学习目标检测在工业界并不容易落地。一个主要原因是准确率太低。但此方向还是很有意义的,因为很多数据集是不容易获取的,如医疗等行业。

目前的小样本目标检测都是在目标检测的框架之下进行的,与小样本学习进行结合

其它小样本目标检测的不足

1.半监督设置,训练用图像级标签,而不用标注的方法,获取难度高。
2.还有的假设每类有少量标签框,但是要依赖于大量未标注的图像生成可靠的伪标签进行训练
3.zero shot 目标检测旨在检测从未见到的物体,这需要额外的关于类之间关系的信息。
4.本文方法每类新类别只需要少量的标签,不需要额外的其他信息。(其实还需要大量基类做第一阶段的训练集)

整体架构

Few-shot Object Detection via Feature Reweighting论文阅读笔记_第1张图片
本文的整体架构是在yolov2的 darknet19基础上改进的。其实也就是加了个模块。下面分开来看每个模块的作用。

Feature extractor(特征提取模块)

Few-shot Object Detection via Feature Reweighting论文阅读笔记_第2张图片
该模块是使用的darknet19对查询集图像进行特征提取的,生成一个w* h * m的特征图。m表示不同维度的特征图

reweighting module(重加权模块)

Few-shot Object Detection via Feature Reweighting论文阅读笔记_第3张图片
该模块为整个框架最重要的部分,它本身是一个轻量化的CNN结构,具体的代码组成大家可以去看源码。我之后也会贴上。

1.在输入Task之前,先将图像的标注信息转化为Mask,简单地说,就是用在框内的像素标为1,不在框内的像素标为0。图像的标注信息就转化成了一个二值mask,然后将其添加到RGB中去,组成四通道的输入。
(注意:这里转换时,每张图片只能标注一个目标,也就是一张图对应一个目标的mask)
2. 通过重加权模块将四通道的输入转化为m维wi的向量。

特征向量对元特征进行干预

Few-shot Object Detection via Feature Reweighting论文阅读笔记_第4张图片
在这里插入图片描述
F为特征提取的特征。wi为特征向量,用wi对F做1x1的卷积操作生成新的特征向量,随后送入后面的检测器中(与yolov2相同)

损失函数

在这里插入图片描述
这里Ldet是检测损失函数,上述损失函数保证模型能够学到好的查询及元特征和有用的支持集重组权重的参数。
损失函数由后面三部分组成,其中bbox和目标的损失都与yolov2相同。需要注意的是前面的类别损失。

Few-shot Object Detection via Feature Reweighting论文阅读笔记_第5张图片

1(·i)一个指示函数,用来表示目前的BOX是否属于i类。

损失函数:最开始使用交叉熵损失,目标类别为1,其余类别为0.但是发现使用时会出现输出冗余的情况,把火车看成car or bus.

冗余的原因:因为对于一个ROI,只有N类中的一个是对应的。然而二值交叉熵损失会趋向于产生平均的正负预测。
为了解决这个问题,用softmax层来校准在不同类别中的分类得分。

训练部分

训练包括两阶段的训练过程。

1.使用带有大量标签的基类进行训练,此时进行feature learner 、detection prediction 、reweighting module的联合训练。

2.进行微调,此时同时在基类和新类上训练,如果新类有K个标签,那么也让基类保持K个可用标签。训练时与1相同,除了此时仅仅需要很少的迭代次数就能让模型收敛。

结果

Few-shot Object Detection via Feature Reweighting论文阅读笔记_第6张图片
Few-shot Object Detection via Feature Reweighting论文阅读笔记_第7张图片
与前人做的工作相比较,还是很明显的。当然现在也出现了更好的小样本检测方法。如mate RCNN,还有腾讯一篇文章。这两篇都是在Faster RCNN基础上进行改进的。

前者基于ROI 在元学习上做文章,后者改进了带注意力的RPN和一个多关系检测器。有时间再写。

你可能感兴趣的:(机器视觉论文阅读笔记,计算机视觉,机器学习,人工智能,深度学习)