增量目标检测方法 Faster ILOD

论文信息: Faster ILOD: Incremental Learning for Object Detectors based on Faster RCNN
代码链接:https://github.com/CanPeng123/Faster-ILOD
整体信息:这是发表在PRL2020上的一篇文章关于增量目标检测的文章,作者是来自The University of Queensland,这篇文章基于Faster RCNN,使用multi-network 自适应蒸馏,设计了一种end2end的增量目标检测方法。

任务定义

增量目标检测包含S个增量steps,在每个增量step,训练数据只包含新类别Cn ,给定一个在旧类别 C0 上已训练好的目标检测模型,增量目标检测的任务是在新类别 Cn 数据上重新训练模型(一般是fine-tune),同时维持模型在旧类别 C0 上的性能,在增量训练过程中,旧类别 C0 不可见。

img

上图展示的是一个在VOC数据集上的增量目标检测的示例,模型首先在前15类训练,然后逐步增加每个类别。增量训练过程中,只提供当前新类别的标注,其他类别不可见。Normal Training是使用所有数据(旧数据和新数据)从头开始重新训练模型,该模型在测试集上的指标即为增量目标检测的指标上界。 Catastrophic forgetting是使用已训练好的旧类模型直接在新类数据上fine-tune的结果,可以看到在不断进行增量训练时,总体指标在逐渐下降,即出现了灾难性遗忘的问题( Catastrophic forgetting)。

本文方法

img

作者使用Multi-network自适应蒸馏的方法来解决增量目标检测中出现的Catastrophic forgetting问题。具体做法如上图所示,上面是旧模型即teacher模型T,下面是新模型即student模型S,中间为蒸馏过程。

(1)特征蒸馏,所有feature map进行减均值归一化,然后使用L1 loss进行蒸馏。具体地,针对特征图上每个激活值大小进行比较,确定是否蒸馏,如下公式所示,

(2)RPN蒸馏,同样地,使用T模型RPN的输出作为下界进行自适应蒸馏,使用的是L2 loss。

(3)RCNN蒸馏,具体做法和ILOD做法一致,在T模型中背景分数最小的128个ROI中随机选择64个proposal进行蒸馏,即只蒸馏背景信息,新类别不参与RCNN蒸馏,具体地,如下公式所示,

最后,总的loss为三者相加,

Experiments

  • 数据集(指标):PASCAL VOC(AP@0.5),COCO(mAP)
  • settings:one-step 和 multi-step
  • 对比方法,ILOD

  • 对比方法,ILOD

img

img