点击查看论文
摘要
在目标检测中已经见证了知识蒸馏(KD)强大的学习压缩模型的能力。以前用于目标检测的KD方法大多侧重于模仿模仿区域内的深层特征,而不是模仿分类分对数,因为它在蒸馏位置信息方面效率低下,改进甚微。在本文中,通过重新规划知识蒸馏在定位方面的处理,我们提出了一种新的定位蒸馏(LD)方法,该方法可以有效地将定位知识从教师转移到学生。此外,我们还启发式地引入了有价值的定位区域的概念,该概念可以帮助选择性地蒸馏特定区域的语义和定位知识。结合这两个新部分,我们首次表明logit模仿可以优于特征模仿,并且对于蒸馏目标检测器,定位知识蒸馏比语义知识更重要、更有效。我们的蒸馏方案简单有效,可以很容易地应用于不同的稠密目标检测器。实验表明,我们的LD可以在不牺牲推理速度的情况下,将单尺度1×的训练调度的GFocal-ResNet-50在COCO基准线上的AP得分从40.1提高到42.1。我们的源代码和预训练模型在https://github.com/HikariTJU/LD。
1、引言
Figure 1: “大象”的下边缘和“冲浪板”的右边缘是模糊的。
定位是目标检测中的一个基本问题[16,25,34,51,52,57–59,63,71]。边界框回归是迄今为止目标检测中最流行的定位方式[10,33,41,44],其中Dirac delta分布表示直观且流行多年。然而,定位模糊性仍然是一个常见的问题,即目标不能通过其边缘可靠地定位。如图1所示,“大象”的下边缘和“冲浪板”的右边缘定位不明确。对于轻量级检测器来说,这个问题甚至更糟。缓解这一问题的一种方法是知识蒸馏(KD),作为一种模型压缩技术,它已被广泛验证为通过转移大型教师网络捕获的泛化知识来提高小型学生网络的性能。
Figure 2: 用于目标检测的现有的KD思想。①Logit Mimicking:在[20]中对KD进行分类。②特征模仿:最近流行的方法基于不同的蒸馏区域蒸馏中间特征,通常需要自适应层来对齐学生的特征图的大小。③伪边界框回归:将教师预测的边界框视为额外的回归目标。
说到目标检测中的KD,以前的工作[23,54,64]已经指出,用于分类的原始logit模仿技术[20]效率低下,因为它只传递语义知识(即分类),而忽略了定位知识蒸馏的重要性。因此,现有的用于目标检测的KD方法大多侧重于增强师生对之间深层特征的一致性,并利用各种模仿区域进行蒸馏[5,8,17,26,54]。图2展示了用于目标检测的三个流行的KD方法。然而,由于语义知识和定位知识在特征图上是混合的,很难判断为每个位置传递混合知识是否有利于性能,以及哪些区域有利于某种类型知识的传递。
基于上述问题,本文提出了一种新的分而治之的蒸馏策略,该策略分别迁移语义知识和定位知识,而不是简单地蒸馏特征图上的混合知识。对于语义知识,我们使用原始分类KD[20]。对于定位知识,我们重新规划定位知识的迁移过程,并通过将边界框切换为概率分布,提出了一种简单而有效的定位蒸馏(LD)方法[29,39]。这与以前的工作[5,49]截然不同,以前的工作将教师的输出视为额外的回归目标(即图2中的伪BBox回归)。得益于概率分布表征,我们的LD可以有效地将教师学到的丰富的定位知识传递给学生。此外,在所提出的分治蒸馏策略的基础上,我们进一步引入了有价值的定位区域(VLR),以帮助有效地判断哪些区域有利于分类或定位学习。通过一系列实验,我们首次表明,原始logit模仿可以比特征模仿更好,定位知识提取比语义知识更重要、更有效。我们认为,根据语义和定位知识的有利区域分别蒸馏它们可能是训练更好的目标检测器的一种很有前途的方法。
我们的方法很简单,可以很容易地应用在任何密集目标检测器中,以提高其性能,而不会引入任何推理开销。在MS COCO上的大量实验表明,在花里胡哨的情况下,我们可以将以ResNet-50-FPN为骨干的强基线GFocal[29]的AP得分从40.1提高到42.1,AP75从43.1提高到45.6。我们使用ResNeXt-101-32x4d-DCN为主干的最佳模型可以实现单尺度测试50.5 AP,这超过了在相同主干、颈部和测试设置下的所有现有检测器。
2、相关工作
在本节中,我们简要回顾了相关工作,包括边界盒回归、定位质量评估和知识蒸馏。
2.1、边界框回归
边界框回归是目标检测中最常用的定位方法。R-CNN系列[3,37,44,62]采用多个回归阶段来细化检测结果,而[2,33,41–43,50]采用一阶段回归。在[45,60,67,68]中,提出了基于IoU的损失函数来提高边界框的定位质量。最近,边界框表征已经从Dirac delta分布[33,41,44]发展到高斯分布[7,19],并进一步发展到概率分布[29,39]。边界框的概率分布更全面地描述了边界框的不确定性,并被验证为迄今为止最先进的边界框表征。
2.2、位置质量评估
顾名思义,定位质量估计(LQE)预测一个分数,该分数测量由检测器预测的边界框的定位质量。LQE通常用于在训练过程中配合分类任务[28],即增强分类和定位之间的一致性。它也可以应用于后处理过程中的联合决策[22,41,50],即在执行NMS时同时考虑分类得分和LQE。早期的研究可以追溯到YOLOv1[41],其中预测的目标置信度用于评估分类得分。然后,提出了盒/掩模IoU[21,22]和盒/极性中心度[50,55],分别对目标检测和姿态分割的检测不确定性进行建模。从边界框表征的角度来看,Softer NMS[19]和Gaussian YOLOv3[7]预测了边界框每条边的方差。LQE是解决模型定位模糊性的一种初步方法。
2.3、知识蒸馏
知识提炼[1,20,35,38,47,61]旨在学习在优秀教师网络指导下紧凑高效的学生模型。FitNets[46]提出从教师模型的隐藏层中模拟中间级别的提示。知识蒸馏在[5]中首次应用于目标检测,其中提示学习和KD都用于多类目标检测。然后,李等人[26]提出在Faster R-CNN上模仿区域内的特征。王等人[54]模仿了近锚框位置上的细粒度特征。最近,戴等人[8]引入了通用实例选择模块,以模拟师生对之间的判别补丁中的深层特征。DeFeat[17]在对对象区域和背景区域进行特征模仿时,利用了不同的损失权重。与上述基于特征模仿的方法不同,我们的工作引入了定位蒸馏,并提出基于有价值的定位区域分别迁移分类和定位知识,以提高蒸馏效率。
3、方法提出
在本节中,我们将介绍所提出的蒸馏方法。我们提出了一种新的分而治之的提取策略,该策略基于语义和定位知识各自的偏好区域分别提取它们,而不是提取特征图上的混合知识。为了转移语义知识,我们简单地在分类头上采用分类KD[20],而对于定位知识,我们提出了一种简单而有效的定位蒸馏(LD)。这两种技术都是基于个体头部的逻辑,而不是深层特征。然后,为了进一步提高蒸馏效率,我们引入了有价值的定位区域(VLR),它可以帮助判断哪种类型的知识有利于不同区域的转移。在下文中,我们首先简要地回顾了边界框的概率分布表示,然后过渡到所提出的方法。
3.1、准备工作
对于给定的边界框B,传统表示有两种形式,即{x,y,w,h}(中心点坐标、宽度和高度)[33,41,44]和{t,B,l,r}(从采样点到顶部、底部、左侧和右侧边缘的距离)[50]。这两种形式实际上遵循Dirac delta分布,该分布仅关注真实位置,但不能对边界框的模糊性建模,如图所示1。这一点在之前的工作中也得到了明确的证明[7,19,29,39]。
在我们的方法中,我们使用了最近的边界框的概率分布表示[29,39],它更全面地描述了边界框的定位不确定性。设 e ∈ B e∈B e∈B是边界框的边。其值通常可以表示为 e ^ = ∫ e min e max x Pr ( x ) d x , e ∈ B , (1) \hat {e}=\int _{e_{\min }}^{e_{\max }} x \Pr (x) dx,\quad e\in \mathcal {B}, \tag{1} e^=∫eminemaxxPr(x)dx,e∈B,(1)其中,x是以 [ e m i n , e m a x ] [e_{min},e_{max}] [emin,emax]为单位的回归坐标,Pr(x)是相应的概率。传统的狄拉克-德尔塔表示是方程(1)的一个特例,其中当 x = e g t x=e^{gt} x=egt时,Pr(x)=1否则Pr(x)=0。通过将连续回归范围 [ e m i n , e m a x ] [e_{min},e_{max}] [emin,emax]量化为具有n个子区间的均匀离散变量 e = [ e 1 , e 2 , ⋅ ⋅ ⋅ , e n ] T ∈ R n e=[e_1,e_2,···,e_n]^T∈\Bbb R^n e=[e1,e2,⋅⋅⋅,en]T∈Rn,其中 e 1 = e m i n 和 e n = e m a x e_1=e_{min}和e_n=e_{max} e1=emin和en=emax,给定界框的每条边可以用SoftMax函数表示其概率分布。
3.2、定位蒸馏
在本小节中,我们介绍了定位蒸馏(LD),这是一种提高目标检测蒸馏效率的新方法。我们的LD是从边界框的概率分布表示[29]的角度发展而来的,包围盒最初是为通用目标检测设计的,并携带丰富的定位信息。图1中模糊和清晰的边缘将分别通过分布的平坦度和锐度来反映。
Figure 3: 边 e ∈ B = { t , B , l , r } e∈B=\{t,B,l,r\} e∈B={t,B,l,r}的定位蒸馏(LD)的图解。此处仅显示定位分支。S(·,τ)是温度为τ的广义SoftMax函数。对于给定的检测器,我们首先将边界框表示转换为概率分布。然后,我们通过对主蒸馏区域和有价值的定位区域进行区域加权来确定在哪里蒸馏。最后,我们计算了教师和学生预测的两个概率分布之间的LD损失。
我们LD的工作原理如图3所示。给定任意密集对象检测器,在[29]之后,我们首先将边界框表示从四元表示切换到概率分布。我们选择B={t,B,l,r}作为边界框的基本形式。与{x,y,w,h}形式不同,{t,b,l,r}形式中每个变量的物理意义是一致的,这便于我们将每个边的概率分布限制在相同的区间范围内。根据[66],这两种形式之间没有性能差异。因此,当给出{x,y,w,h}形式时,我们将首先将其转换到{t,b,l,r}形式。
设z是由定位头 针对边缘e的所有可能位置预测的n个logits,分别由教师和学生的 z T 和 z S z_T和z_S zT和zS表示。与[29,39]不同,我们使用广义SoftMax函数 S ( ⋅ , τ ) = S o f t M a x ( ⋅ / τ ) S(·,τ)=SoftMax(·/τ) S(⋅,τ)=SoftMax(⋅/τ)将 z T 和 z S z_T和z_S zT和zS转换为概率分布 p T 和 p S p_T和p_S pT和pS。注意,当τ=1时,它等效于原始SoftMax函数。当τ→ 0,则其倾向于狄拉克-德尔塔分布。当τ→ ∞, 它将退化为均匀分布。经验上,τ>1被设置为软化分布,使概率分布携带更多信息。
用于测量两个概率 p T , p S ∈ R n p_T,p_S∈\Bbb R^n pT,pS∈Rn之间的相似性的局部化蒸馏通过以下方式获得: L L D e = L K L ( p S τ , p T τ ) = L K L ( S ( z S , τ ) , S ( z T , τ ) ) , (3) \begin{aligned} \mathcal {L}_{LD}^e &= \mathcal {L}_{KL}(\bm {p}_S^\tau ,\bm {p}_T^\tau ) \\&= \mathcal {L}_{KL}\left (\mathcal {S}(\bm {z}_S, \tau ), \mathcal {S}(\bm {z}_T, \tau )\right ), \tag{3}\end{aligned} LLDe=LKL(pSτ,pTτ)=LKL(S(zS,τ),S(zT,τ)),(3)其中 L K L \mathcal L_{KL} LKL表示KL发散损失。然后,边界框 B B B的所有四条边的LD可以公式化为: L LD ( B S , B T ) = ∑ e ∈ B L LD e . (4) \mathcal {L}_\text {LD} (\mathcal {B}_S, \mathcal {B}_T)= \sum _{e \in \mathcal {B}} \mathcal {L}_\text {LD}^{e}. \tag{4} LLD(BS,BT)=e∈B∑LLDe.(4)
讨论
我们的LD是第一次尝试采用logit模拟来提取用于目标检测的定位知识。尽管盒子的概率分布表示已被证明在通用目标检测任务中有用[29],但没有人探索它在定位知识提取中的性能。我们将盒子的概率分布表示和KL发散损失相结合,证明了这种简单的logit模拟技术在提高物体探测器的蒸馏效率方面表现良好。这也使得我们的LD与以往的相关作品截然不同,相反,它们强调特征模仿的重要性。在我们的实验部分,我们将对所提出的LD的优点进行更多的数据分析。
3.3、有价值的定位区域
以前的作品大多通过最小L2损失来迫使学生的深层特征模仿老师的深层特征。然而,一个直截了当的问题应该是:我们是否应该一视同仁地使用整个模仿区域来提取混合知识?根据我们的观察,答案是否定的。以前的工作[11,14,27,48,53]已经指出,知识分布模式在分类和定位方面是不同的。因此,我们在本小节中描述了有价值的定位区域(VLR),以进一步提高蒸馏效率,我们相信这将是训练更好的学生检测器的一种很有前途的方法。
具体来说,蒸馏区分为两部分,主蒸馏区和有价值的局部蒸馏区。主蒸馏区域通过标签分配直观地确定,即检测头的阳性位置。通过算法1可以获得有价值的定位区域。首先,对于第l个FPN级别,我们计算所有锚框 B l a B_l^a Bla和真实框 B g t B^{gt} Bgt之间的DIoU[67]矩阵 X l X_l Xl。然后,我们将DIoU的下界设置为 α v l = γ α p o s α_{vl}=γα_{pos} αvl=γαpos,其中 α p o s α_{pos} αpos是标签分配的正IoU阈值。VLR可以定义为 V l = { α v l ⩽ X l ⩽ α p o s } V_l=\{α_{vl}⩽X_l ⩽α_{pos}\} Vl={αvl⩽Xl⩽αpos}。我们的方法只有一个超参数γ,它控制VLRs的范围。当γ=0时,预设锚盒和GT盒之间DIoU满足 0 ⩽ x i l j ⩽ α p o s 0⩽x_{i_lj} ⩽α_{pos} 0⩽xilj⩽αpos的所有位置将被确定为VLRs。当γ→ 1时,VLR将逐渐收缩为空。这里我们使用DIoU[67],因为它对靠近对象中心的位置给予更高的优先级。
与标签分配类似,我们的方法在多层次FPN中为每个位置分配属性。这样,GT盒外的一些位置也将被考虑在内。因此,我们实际上可以将VLR视为主蒸馏区的向外延伸。注意,对于无锚检测器,如FCOS,我们可以使用特征图上的预设锚,并且不改变其回归形式,从而使局部学习保持为无锚类型。而对于通常在每个位置设置多个锚的基于锚的检测器,我们展开锚框来计算DIoU矩阵,然后分配它们的属性。
3.4、整体蒸馏过程
训练学生S的总损失可以表示为: L = λ 0 L c l s ( C S , C g t ) + λ 1 L r e g ( B S , B g t ) + λ 2 L D F L ( B S , B g t ) + λ 3 I M a i n L L D ( B S , B T ) + λ 4 I V L L L D ( B S , B T ) + λ 5 I M a i n L K D ( C S , C T ) + λ 6 I V L L K D ( C S , C T ) , ( 5 ) \begin{aligned} \mathcal {L}=&\lambda _0\mathcal {L}_{cls}(\mathcal {C}_S,\mathcal {C}^{gt})+\lambda _1\mathcal {L}_{reg}(\mathcal {B}_S,\mathcal {B}^{gt})+\lambda _2\mathcal {L}_{DFL}(\mathcal {B}_S,\mathcal {B}^{gt})\\+&\lambda_3\mathcal{I}_{Main}\mathcal {L}_{LD}(\mathcal {B}_S, \mathcal {B}_T)+\lambda _4\mathcal {I}_{VL}\mathcal {L}_{LD}(\mathcal {B}_S, \mathcal {B}_T)\\ +&\lambda _5\mathcal{I}_{Main}\mathcal {L}_{KD}(\mathcal {C}_S, \mathcal {C}_T)+\lambda _6\mathcal{I}_{VL}\mathcal {L}_{KD}(\mathcal {C}_S, \mathcal {C}_T), (5)\end{aligned} L=++λ0Lcls(CS,Cgt)+λ1Lreg(BS,Bgt)+λ2LDFL(BS,Bgt)λ3IMainLLD(BS,BT)+λ4IVLLLD(BS,BT)λ5IMainLKD(CS,CT)+λ6IVLLKD(CS,CT),(5)其中前三项与任何基于回归的检测器的分类和边界框回归分支完全相同,即 L c l s \mathcal L_{cls} Lcls是分类损失, L r e g \mathcal L_{reg} Lreg是边界框回归损失, L D F L \mathcal L_{DFL} LDFL是分布焦点损失[29]。 I M a i n \mathcal{I}_{Main} IMain和 I V L \mathcal{I}_{VL} IVL分别是主蒸馏区和有价值定位区的蒸馏掩码, L K D \mathcal L_{KD} LKD是KD损失[20], C S C_S CS和 C T C_T CT分别表示学生和教师的分类头输出logits, C g t C^{gt} Cgt是真实的分类标签。所有蒸馏损失将根据其类型由相同的权重因子加权,例如,LD损失遵循bbox回归,KD损失遵循分类。此外,值得一提的是,由于LD损失具有足够的引导能力,因此可以禁用DFL损失项。此外,我们可以启用或禁用四种类型的蒸馏损失,以便以单独的蒸馏区方式蒸馏学生。
4、实验略
5、结论
在本文中,我们提出了一种用于密集目标检测的灵活定位蒸馏方法,并设计了一个有价值的定位区域,以单独的蒸馏区域的方式蒸馏学生检测器。我们发现:1)逻辑模仿可以比特征模仿更好;以及2)在蒸馏目标检测器时,用于迁移分类和定位知识的分离蒸馏区域方式是重要的。我们希望我们的方法能够为目标检测社区提供新的研究直觉,以开发更好的蒸馏策略。此外,LD在稀疏目标检测器(DETR[4]系列)和其他相关领域的应用,如实例分割、目标跟踪和3D目标检测,值得未来的研究。