前言
基于深度学习的目标检测器能够取得成功,很大一部分依赖于完整标注的大规模数据,但实际上,完整标注的数据集是有限的。为了解决这个问题,一种方法是进行迁移学习,源域(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+1)分类。
这种 “由粗到精” 的分类(二分类器到 K + 1 K+1 K+1分类器)可能能够有效缓解迁移学习中的困难,这是因为源域和目标域中的目标可能存在一些共有特征,使用二分类器能够迁移这些相同的特征信息,进而生成更好的proposal并增强性能。而直接进行 ( K + 1 ) (K+1) (K+