Distilling Object Detectors with Fine-grained Feature Imitation阅读笔记

文章链接:论文pdf

目前基于CNN的检测模型一般都比较复杂,需要消耗较多的计算资源。一种解决这个问题的方法是使用知识蒸馏,将复杂网络当作“教师”网络,让小规模的“学生”网路去模拟“教师”网络的输出,使得小网络获得更好的性能。但是目前知识蒸馏更多的是用在比较简单的任务,例如分类上,而在目标检测上做的不多。作者尝试直接将分类的知识蒸馏网络用到检测中,但性能不佳,因此,作者在本文中提出了一种细粒度特征模仿的方法,探索响应图之间的差异性。并且,作者认为,接近目标区域的那些anchors的响应图很大程度上反映了教师网络如何趋向泛化的重要信息。本文提出一种方法,先估计出这些目标附近的anchors, 然后让学生网络在这些位置上模仿教师网络的响应图以获得更好的性能。

主要方法

1.区域估计

目的:找出目标区域周围的anchors

方法:使用的真值信息,对于每一个真值框,计算它和anchors之间的IOU,得到一个W*H*K(Ws是特征图的宽,H是特征图的高,K为anchors个数)的IOU map,称为m, 取其中最大的值,M=max(m), 根据M计算一个阈值F:

根据阈值F,可以过滤掉那些IOU值低于F的位置,并在ahchors维度上使用或操作结合K个anchors的结果,得到一张W*H的mask。对所有真值框都进行此操作,并结合各个mask,得到最终的细粒度的估计的mask.

2.细粒度的特征模仿

作者没有直接计算学生网路和教师网络响应图之间的距离,而是在学生网络后面加了一个全卷积适应层(fully convolution adaptation layer),原因有两个:(1)统一教师网络和学生网络的特征响应图的通道数;(2)通过实验发现这样做可以提升性能。对于教师网络和学生网络的特征响应图,计算它们之间的距离(只计算那些目标区域附近的,即上面估计出来的位置):

 其中,(i,j)表示位置,c表示通道

对于所有估计出来的位置,最小化这些位置上,学生网络与教师网络的特征响应图的距离,即最小化:

 最终用来训练学生网络的loss:

 即联合真值和估计目标附近区域的特征响应图差异来训练网络

原文地址:https://www.cnblogs.com/yangruicvpr/p/11720222.html