摘要
最先进的基于CNN的识别模型通常在计算上禁止部署在低端设备上。解决这一限制的一种很有前途的高级方法是知识蒸馏,它让小学生模型模仿繁琐的教师模型的输出,以提高泛化能力。然而,相关方法主要关注简单的分类任务,而不考虑目标检测这样的复杂任务。我们证明将原始知识蒸馏应用于检测模型会获得较小的增益。为了解决检测模型中知识蒸馏的挑战,我们提出了一种利用特征响应的跨位置差异的细粒度特征模仿方法。我们的直觉是,探测器更关心局部近物体区域。因此,特征响应在近目标锚点位置上的差异揭示了教师模型如何泛化的重要信息。我们设计了一种新的机制来估计这些位置,并让学生模型在上面模仿教师以获得更好的表现。
介绍
对于模型量化来说,一种很有前途的端到端直接学习紧凑模型的高级方法是知识蒸馏。学生模型学习更强的教师网络的行为以获得增强的泛化能力。然而,先前关于知识蒸馏的工作大多致力于分类,很少考虑目标检测。一个检测模型可能只涉及几个类,用这些类可以从教师软化输出的类间相似性中提取出更少的知识。此外,除了分分类之外,检测还需要可靠的定位,基本的蒸馏不能用于提取定位知识。此外,前景和前景实例的极度不平衡也会导致边界框注释。我们发现仅仅增加蒸馏损失只会对学生产生轻微的促进作用。
与知识蒸馏类似,提示学习通过最小化教师和学生模型的全部高级特征的差异来改进学生模型。但我们发现,在检测模型上直接应用提示学习会损害性能。直觉是,检测器更关心与ground truth对象重叠的局部区域,而分类模型更关注全局上下文。因此,直接进行全特征模仿将不可避免地从未覆盖的区域引入大量噪声,尤其是对于背景实例压倒性且多样化的目标检测。
回想一下,在知识蒸馏中,不同类别的相对概率确实说明了教师模型是如何泛化的。类似地,由于检测器更关心局部对象区域,因此在对象附近的近锚位置上的特征响应的差异也传达了关于复杂检测模型如何检测目标实例的重要信息。为了利用这种位置间的差异在目标检测器中知识蒸馏,我们开发了一种新的机制,利用ground truth边界盒和锚先验来有效地估计那些信息丰富的近目标锚位置,然后让学生模型在上面模仿老师,如图1所示。