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

核心思想

  本文提出一种小样本目标检测算法。整体网络结构采用单阶段目标检测的形式,利用一个预测网络同时输出目标框的位置及类别结果。网络结构如下图所示
论文阅读笔记《Few-shot Object Detection via Feature Reweighting》
  首先,查询集图片II经过特征提取网络D\mathcal{D}得到对应的特征图F=D(I)F=\mathcal{D}(I),支持集图片IiI_i和利用真实边界框制作的掩码图MiM_i一起输入到重加权模块(Reweighting Module)M\mathcal{M}中,得到每个类别对应重加权向量wi=M(Ii,Mi)w_i=\mathcal{M}(I_i,M_i)。然后将重加权向量wiw_i作为卷积核,分别对查询集图片对应的特征图FF做1 * 1的卷积操作,得到重加权后的特征图FiF_i,计算过程如下
论文阅读笔记《Few-shot Object Detection via Feature Reweighting》
最后将重加权后的特征图FiF_i输入到预测网络P\mathcal{P}中,输出每个预定义的锚点(anchor)对应的预测结果
论文阅读笔记《Few-shot Object Detection via Feature Reweighting》
式中oo表示存在物体的概率,(x,y,h,w)(x,y,h,w)表示编辑框的位置和尺寸,cic_i表示物体属于类别ii的概率。

实现过程

网络结构

  特征提取网络和预测网络采用YOLOv2的结构(DarkNet-19),重加权模块采用一种轻权重的CNN结构,即参数量较小的CNN,文中说细节结构见支持材料,但我并没有找到。

损失函数

  整个网络的训练目标函数如下
论文阅读笔记《Few-shot Object Detection via Feature Reweighting》
式中θD,θM,θP\theta_{D},\theta_{M},\theta_{P}分别表示特征提取网络,重加权模块和预测网络的参数。目标检测损失函数包含一下三个部分
论文阅读笔记《Few-shot Object Detection via Feature Reweighting》
式中LcL_c表示分类损失,作者利用softmax函数将各个类别的预测结果归一化到[0,1]的范围内,得到每个类别的概率值c^i\hat{c}_i,然后利用下式计算分类损失LcL_c
论文阅读笔记《Few-shot Object Detection via Feature Reweighting》
式中1(,i)\mathbb{1}(\cdot,i)是一个指示函数,表示当前的锚点框是否属于类别ii。编辑框回归损失LbbxL_{bbx}和置信度损失LobjL_{obj}均与YOLOv2中计算方法相同。

训练策略

  训练过程分为两个阶段:第一阶段在基础数据集上进行训练;第二阶段在基础数据集和新数据集上做微调训练,为了保证类别间的平衡性,基础数据集中每个类别的样本数量与新数据集每个类别的样本数量保持一致。

创新点

  • 在YOLOv2的基础上增加了重加权模块,利用支持集图像信息帮助网络提高目标检测的能力

算法评价

  本文可能是最早采用单阶段形式实现小样本目标检测的文章,相对于两阶段形式,单阶段方法将定位与分类任务融于一体,同时完成,这对于小样本任务来讲更加困难。作者利用重加权模块将支持集图像的信息很好的融合到查询集图像对应的特征信息中,帮助网络实现了单阶段小样本学习任务。但该方法同样需要在预测时同时输入查询集图片和多种类别的支持集图片,在实际应用中并不方便。

如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。论文阅读笔记《Few-shot Object Detection via Feature Reweighting》