LSTD: A Low-Shot Transfer Detector for Object Detection 论文笔记
前言
基于深度学习的目标检测器能够取得成功,很大一部分依赖于完整标注的大规模数据,但实际上,完整标注的数据集是有限的。为了解决这个问题,一种方法是进行迁移学习,源域(source-domain) 中的知识可以作为一种有效的监督,进而泛化到目标域(target-domain) 的学习过程中。但是,小样本目标检测中的迁移学习依然存在以下问题:
- 当目标检测的数据集很小时,使用一般的迁移策略是不太合适的 (比如,使用预训练的分类器来对检测器进行初始化),这是因为在较小的数据集上进行微调时,很难消除分类任务与检测任务之间的不同;
- 相比于分类器,在迁移学习中检测器更容易发生过拟合 ,这是因为检测器需要学习更加特定于目标的表示以进行分类和定位任务;
- 简单的微调可能会降低可转移性 ,因为它很可能会忽略源域和目标域中的重要信息。
为了解决以上问题,本文提出了小样本迁移检测器(low-shot transfer detector,LSTD) ,这是第一个将迁移学习用于小样本目标检测的方法,贡献如下:
- 提出LSTD深度架构 ,通过将SSD和Faster R-CNN的优点相结合以提升小样本检测能力,LSTD能够在模型的不同位置进行bbox回归和目标定位;
- 提出正则化迁移学习框架 ,能够从源域LSTD迁移到目标域LSTD,从而避免了任务之间的不同(比如从分类任务迁移到检测任务)。该正则化框架包括转移指数(transfer knowledge,TK) 和背景抑制(background depression,BD) 等方法,TK 将源域中目标的标签知识迁移到目标域的proposal中,从而在目标域中泛化到小样本学习;BD 将目标域图像的bbox回归信息作为特征图的额外监督,使得LSTD能够抑制背景信息的干扰,从而在迁移过程中专注于目标本身。
LSTD

如上图所示是LSTD的架构,它利用了SSD和Faster R-CNN的各自的优点,以进行高效的bbox回归和目标分类,进而减少在小样本目标检测中进行迁移学习遇到的困难。LSTD是在两个相对分离的地方进行bbox回归和目标分类的 ,这又能进一步减少小样本检测的困难。
1. SSD的bbox回归
对于每个卷积层,在其输出的卷积特征图的每一处空间位置上都有许多预设的candidate box,如果一个candidate box与一个gt匹配,那么就用回归损失(smooth L1)来惩罚predicted box和gt box之间的偏移误差。SSD的这种多卷积特征设计(multiple-convolutional-feature design)对于定位不同大小的目标是非常合适的,而这对于小样本目标检测来说也非常重要,因为不同大小的训练样本数量有限。在SSD中,回归器在所有类别间是共享的,因此SSD的回归参数(在大规模源域上进行预训练得到)可以在不同的小样本目标域中作为初始化,这就避免了bbox回归的随机重新初始化 ,从而减轻了在样本数量很少的目标域中进行微调的困难。
2. Faster R-CNN的目标分类
本文中的目标分类参照的是Faster R-CNN中的分类方法,不过做出了一点改进,可分为以下三个步骤:
- 首先为每个defalt box进行二分类任务,以判别该box中是否存在目标,然后根据分类分数选择proposal;
- 在一个位于中间的卷积层上应用RoI pooling,为每个proposal生成大小固定的卷积特征cube;
- 在RoI pooling层上使用两个卷积层以进行(K+1)(K+1)分类。
这种 “由粗到精” 的分类(二分类器到K+1K+1分类器)可能能够有效缓解迁移学习中的困难,这是因为源域和目标域中的目标可能存在一些共有特征,使用二分类器能够迁移这些相同的特征信息 ,进而生成更好的proposal并增强性能。而直接进行(K+1)(K+1)分类则要处理成千上万的随机选择的proposal。
正则化迁移学习框架
在LSTD的基础上,引入端到端的正则化迁移学习框架以进行小样本目标检测。整个训练过程如下图所示:

- 首先在源域上训练LSTD,源域中包含大规模的数据集,这一步就是预训练;
- 然后在目标域中对经过预训练的LSTD进行微调,这一步需要使用新的正则化方法,以加强在小样本情况下的检测性能。
微调的总损失为:

LmainL_{main}是LSTD中的bbox回归损失和分类损失之和。由于源域和目标域的目标类别可能相关,但不会相同,而小样本目标检测用于从少量数据中检测那些之前未见过的类别,因此目标域中的(K+1)(K+1)分类器需要重新进行随机初始化, 注意bbox回归和二分类器可以直接由在源域中经过预训练的LSTD进行初始化。 也就是说,仅用 LmainL_{main}来训练微调过程很可能出现过拟合。 为了增强目标域中的小样本检测,需要添加正则项LregL_{reg}:

1. 背景抑制正则项(background-depression,BD)
LSTD中的bbox回归使用的是SSD中的设计方法,虽然能够处理不同大小的目标,但在小样本情况下,复杂的背景依然会干扰定位性能。因此,本文提出一种新的正则化方法BD,对源域中的目标知识(object knowledge)进行利用:
- 给定源域中的一张训练图像,将其输入到LSTD中,生成卷积特征cube;
- 然后将原图中所有目标的gt bbox覆盖到cube上,进而得到背景区域,记为FBDF_{BD};
为了抑制背景的干扰,使用L2正则化来惩罚FBDF_{BD}的激活值:

通过LBDL_{BD},LSTD能够抑制背景区域,从而更关注目标本身,这对于仅有少量样本的训练来说是非常重要的。下图说明了BD正则项的作用,可以有效减少背景干扰:

2. 转移指数正则项(transfer-knowledge,TK)
LSTD中“由粗到细”的分类能够缓解在分类过程中遇到的困难,因为可以在目标域中使用经过预训练的二分类器。但由于源域和目标域中类别的差异,目标域中的(K+1)(K+1)分类器必须为KK个新类重新进行随机初始化。在这种情况下,仅使用目标域的数据对分类器进行微调并没有对源域的知识进行充分利用。如下图所示,由于颜色的相似性,目标域中的Cow与源域中的Bear是强烈相关的。

因此,本文提出TK正则项,将源域神经网络中的目标的标签预测信息作为源域的知识,对目标域神经网络中的小样本检测训练进行正则化。
1. 源域的知识
首先,将一个训练图像分别送入源域和目标域的LSTD中,然后将目标域的proposal送入源域LSTD的RoI pooling层中,最终在源域的目标分类器中生成知识向量(knowledge vector):

asa_s是每个proposal在softmax激活前的向量,τ\tau是temperature parameter,可以生成soften lable,该soften lable包含丰富的lable-relation信息。
2. 使用源域的分类器得到目标域的预测结果
为了将源域的知识PsτP^{\tau}_s整合到目标域LSTD的训练过程中,在目标域LSTD的尾部添加一个源域的分类器,那么对于目标域的proposal,这个分类器可以为proposal生成在源域类别中的预测结果:

3. TK正则项
根据源域LSTD的知识psτp{\tau}_s和目标域LSTD的预测结果ppreτp{\tau}_{pre},使用它们的交叉熵损失作为TK正则项:

整体的训练过程如以下算法所示:

总结一下就是:
- 首先在源域的大规模数据集上对LSTD进行预训练;
- 目标域LSTD最后一层的(K+1)(K+1)分类器需要进行随机初始化,其它部分都根据源域LSTD进行初始化;
- 使用TK和BD正则项对数据集较小的目标域LSTD进行微调。
结论
本文提出LSTD以将迁移学习用于小样本目标检测上,LSTD结合SSD中的多尺度bbox回归,以及Faster R-CNN中的“由粗到细”的分类方法。由于源域和目标域中类别的差异,目标域中的(K+1)(K+1)分类器不能直接使用源域中的进行初始化,而简单的微调不仅不能充分利用源域的知识,可能还会导致过拟合,因此提出BD和TK正则项,以强化在样本数较少的目标域中的微调。
