前言
本文提出了一种实现小样本目标检测的通用方法,基于Faster R-CNN生成的RoI feature进行元学习。目前的元学习方法在小样本识别方面非常有用,这主要是因为只需识别单个目标。但如果一张图像中包含多个目标,并且还混合的有背景信息,那么这些元学习方法就不再有用了,因为它不能将这些复杂的信息分开。本文发现,可以通过Faster R-CNN产生的RoI feature对这些混合的目标进行预处理,由于每个RoI feature都指向单个目标或背景,因此Faster R-CNN能够解开这些复杂的信息,进而进行元学习。
基于此,本文构建了Faster R-CNN和元学习之间的联系,通过引入Predictor-head Re-modeling Network (PRN)对Faster R-CNN进行扩增。PRN是一个全卷积网络,并且与Faster R-CNN共享main backbone的参数,也就是Faster R-CNN的前半部分。PRN与Faster R-CNN的后半部分,也就是R-CNN的不同之处在于,它接收的是从基类(base class)和新类(novel class)中得到的小样本目标,包括目标的bbox,然后得到这些目标所属的类的类注意向量(class-attentive vector),每个向量对所有的RoI feature进行channel-wise的attention操作,从而进行针对类的检测。那么这样就对Faster R-CNN的predictor head进行了改造,使它能够检测出与PRN的输入相关的目标,包括目标的类别和位置信息。这个框架可以被归结为典型的元学习范式,称为Meta R-CNN。
方法实现
如下图所示是Meta R-CNN的结构,它主要由两部分组成:Faster R-CNN和PRN,Faster R-CNN提供RoI feature,PRN提供类注意向量,两者相结合以检测属于新类的目标。
1. Faster R-CNN
Faster R-CNN主要包括两个阶段:
- 第一个阶段:RPN接收输入图像xix_ixi,在xix_ixi中生成proposal;
- 第二个阶段:也就是Fast R-CNN,经过RoIAlign从proposal ni^\hat{n_i}ni^中提取RoI feature { zi,j^}j=1ni^\lbrace \hat{z_{i,j}} \rbrace ^{\hat{n_i}}_{j=1}{ zi,j^}j=1ni^,从而通过predictor head h(zi,j^,θ)h(\hat{z_{i,j}}, \theta)h(zi,j^,θ)进行分类和定位。
由于Faster R-CNN中的h(zi,j^,θ)h(\hat{z_{i,j}}, \theta)h(zi,j^,θ)并不适合进行小样本目标检测,因此本文提出PRN对h(zi,j^,θ)h(\hat{z_{i,j}}, \theta)h(zi,j^,θ)重新进行建模,生成新的meta-predictor head h(⋅,Dmeta;θ)h(\cdot,D_{meta};\theta)h(⋅,Dmeta;θ)
2. PRN
通过PRN对元数据集DmetaD_{meta}Dmeta中的目标进行推断,得到类注意向量vmetav^{meta}vmeta,然后与RoI feature相结合,从而实现channel-wise上的特征选择。假设PRN表示为vmeta=f(Dmeta;ϕ)v^{meta}=f(D_{meta};\phi)vmeta=f(D