CVPR2022:局部和全局知识蒸馏用于目标检测(源代码开源)

关注并星标

从此不迷路

计算机视觉研究院

a52d973512f5bcfb3139b064296bd0a7.gif

CVPR2022:局部和全局知识蒸馏用于目标检测(源代码开源)_第1张图片

公众号IDComputerVisionGzq

学习群扫码在主页获取加入方式

CVPR2022:局部和全局知识蒸馏用于目标检测(源代码开源)_第2张图片

论文地址:https://arxiv.org/pdf/2111.11837.pdf

源代码: https://github.com/yzd-v/FGD

计算机视觉研究院专栏

作者:Edison_G

知识蒸馏已成功应用于图像分类。然而目标检测要复杂得多,大多数知识蒸馏方法都失败了。

01

489ac7e8310cde50a507ec35c0d2eed7.png

前言

333fb5bd2fc2a9c93b32db69fc0b390f.png

在目标检测中,教师和学生的特征在不同的区域有很大的差异,尤其是在前景和背景中。如果我们平均蒸馏它们,特征图之间的不均匀差异将对蒸馏产生负面影响。

CVPR2022:局部和全局知识蒸馏用于目标检测(源代码开源)_第3张图片

Distilling the Knowledge in a Neural Network

因此,研究者提出了局部和全局蒸馏(FGD)。局部蒸馏分离了前景和背景,迫使学生将注意力集中在老师的关键像素和通道上。全局蒸馏重建不同像素之间的关系,并将其从教师传递给学生,以补偿局部蒸馏中丢失的全局信息。由于我们的方法只需要在特征图上计算损失,FGD可以应用于各种检测器。我们在各种不同backbone的检测器上进行了实验,结果表明,学生检测器实现了良好的mAP提升。例如,基于ResNet-50的RetinaNet、FasterRCNN、RepPoints和Mask RCNN使用了我们的蒸馏方法在COCO2017上实现了40.7%、42.0%、42.0%和42.1%的MAP,分别比基线高3.3、3.6、3.4和2.9。

02

e3adb0c5a7948d6c877ad71befac330b.png

背景

42e36c47040ffce5d16d9da34c095fe7.png

深度学习在各个领域取得了巨大的成功。为了获得更好的性能,我们通常使用更大的backbone,这需要更多的计算资源和更慢的推理。为了克服这个问题,人们提出了知识蒸馏。知识蒸馏是一种将大型教师网络中的信息继承到一个紧凑的学生网络中,并在推理过程中不增加额外成本而获得强大性能的方法。然而,大多数蒸馏方法都是为图像分类而设计的,这导致了目标检测的微小提升。

众所周知,前景背景的极端不平衡是目标检测中的一个关键问题。不平衡的比率也会影响目标检测的蒸馏。对于这个问题人们也做了一些努力。Chen等人分配权重以抑制背景。Mimick蒸馏学生的RPN网络提出的感兴趣区域。FGFI和TADF分别使用细粒度和高斯Mask来选择蒸馏区域。Defeat分别蒸馏前景和背景。然而,蒸馏的关键区域在哪里还不清楚。

CVPR2022:局部和全局知识蒸馏用于目标检测(源代码开源)_第4张图片

为了探索学生和教师的特征之间的差异,研究者进行了空间和通道注意力的可视化。如上图所示,学生的注意力和老师的注意力在前景中的差异非常显著,而在背景中的差异相对较小。这可能会导致学习前景和背景上的不同的困难。

在今天分享中,研究者进一步探讨了前景和背景的知识蒸馏对目标检测的影响。通过分离蒸馏过程中的前景背景来设计实验。令人惊讶的是,如下表所示,前景和背景同时蒸馏的性能最差,甚至比只在前景或背景中蒸馏的性能更差。

CVPR2022:局部和全局知识蒸馏用于目标检测(源代码开源)_第5张图片

这一现象表明,特征图中的不均匀差异会对蒸馏产生负面影响。此外,如上图所示,每个通道之间的注意力也非常不同。再深入一步,不仅前景和背景之间存在负面影响,像素和通道之间也存在负面影响。因此,研究者建议进行局部蒸馏。在分离前景和背景的同时,局部蒸馏还计算教师特征中不同像素和通道的注意力,使学生能够聚焦于教师的关键像素和通道。

然而,仅仅关注关键信息是不够的。众所周知,全局上下文在检测中也起着重要作用。许多关系模块已成功应用于检测,如non-local、GcBlock、relation network,极大地提高了检测器的性能。为了弥补局部蒸馏中丢失的全局信息,研究者进一步提出了全局蒸馏。在全局蒸馏中,研究者利用GcBlock提取不同像素之间的关系,然后把它们从教师蒸馏到学生。

03

d83251e70e8b2ac7a2c4fc36f56737f2.png

新框架

a62a11a42b941e6acaea73ea17674279.png

FGD的说明如下图,包括局部蒸馏和全局蒸馏。局部蒸馏不仅可以分离前景和背景,还可以使学生网络更好地关注教师网络特征图中的重要信息。全局蒸馏弥合了学生和教师的全局上下文之间的差距。

CVPR2022:局部和全局知识蒸馏用于目标检测(源代码开源)_第6张图片

大多数检测器都使用FPN来利用多尺度语义信息。来自FPN的特征融合了来自backbone的不同层次的语义信息,并用于直接预测。从老师那里转移这些特征的知识显著提高了学生的表现。一般来说,特征的蒸馏可以表述为:

CVPR2022:局部和全局知识蒸馏用于目标检测(源代码开源)_第7张图片

这种方法对所有部分都一视同仁,缺乏对不同像素之间全局关系的蒸馏。为了克服上述问题,研究者提出了FGD,它包括局部蒸馏和全局蒸馏,如上图。这里我们将详细介绍新方法。

Focal Distillation

对于前景和背景的不平衡,研究者提出了局部蒸馏来分离图像,并引导学生聚焦于关键像素和通道。蒸馏区域的比较如下图所示。

CVPR2022:局部和全局知识蒸馏用于目标检测(源代码开源)_第8张图片

  • Binary Mask 将图片的前景信息和背景信息进行分离,在GT里的像素是前景,标为1,不在的则统统标为0;

CVPR2022:局部和全局知识蒸馏用于目标检测(源代码开源)_第9张图片

  • Scale Mask 是为了处理蒸馏过程中的目标尺寸问题——大目标占有的像素多,在损失中的占比也就高,这会在一定程度上影响小目标的蒸馏效果——GT中的像素,即前景像素,在计算对应的 loss 时需要除以GT的“面积”(即H×W,相当于是归一化了一下);不在GT中的像素,即背景像素,在计算 loss 时同理;

CVPR2022:局部和全局知识蒸馏用于目标检测(源代码开源)_第10张图片

  • Attention Mask 是为了让蒸馏过程更关注于特征图上的关键区域,用特征值的绝对值平均值的softmax来作为特征图的空间/通道权重。

CVPR2022:局部和全局知识蒸馏用于目标检测(源代码开源)_第11张图片

除此之外,本文还使用了一个 attention loss 来迫使学生网络生成的 attention map 和教师网络的尽量接近:

2aa1c6f4120f22e54f3fab4077a2fc84.png

Distillation

不同像素之间的关系具有有价值的知识,可用于提高检测任务的性能。研究者利用局部蒸馏来分离图像,并迫使学生将注意力集中在关键部位。然而,这种蒸馏切断了前景和背景之间的关系。因此,研究者提出了全局提取,其目的是从特征图中提取不同像素之间的全局关系,并将其从教师蒸馏到学生。

CVPR2022:局部和全局知识蒸馏用于目标检测(源代码开源)_第12张图片

04

dab59f954bdcdffda89979c84d6709e1.png

实验及可视化

5af5a0431f2cbfb6ce8f3d912ed49692.png

不同蒸馏方法和不同检测框架在COCO数据集上的结果。T和S分别表示教师和学生检测器。FGFI只能应用于基于anchor的探测器。†的意思是使用继承策略。我们使用GIOULoss、norm-on-bbox和center-sampling等技巧训练FCOS,这与GID相同。

CVPR2022:局部和全局知识蒸馏用于目标检测(源代码开源)_第13张图片

在COCO数据集上使用更强的教师检测器的更多检测器的结果  †意味着使用继承策略,只有当学生和教师具有相同的head结构时才能使用继承策略。

CVPR2022:局部和全局知识蒸馏用于目标检测(源代码开源)_第14张图片

CVPR2022:局部和全局知识蒸馏用于目标检测(源代码开源)_第15张图片

不同检测器的空间和通道注意力mask的可视化  通道注意力mask中的每个像素都意味着一个通道  教师检测器:RetinaNet-ResNeXt101  学生检测器:RetinaNet-ResNet50。

部分摘自于:CSDN 象牙山首富_

© THE END 

转载请联系本公众号获得授权

245dbfe32b877b44e427a9fd5c1ed3c9.gif

计算机视觉研究院学习群等你加入!

计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

CVPR2022:局部和全局知识蒸馏用于目标检测(源代码开源)_第16张图片

扫码关注

计算机视觉研究院

公众号ID|ComputerVisionGzq

学习群|扫码在主页获取加入方式

 往期推荐 

  • IoU优化——在Anchor-Free中提升目标检测精度(附源码)

  • 微软提出DeepNet:把Transformer提升到了1000层,目标检测领域新的希望(附源代码)

  • Swim-Transform V2:用于目标检测,视觉大模型不再是难题(附源代码)

  • GiraffeDet:对目标检测中对Neck进行优化提升最终精度

  • 深度学习目标检测在实际场景中的应用(附源代码)

  • Label,Verify,Correct:一种简单的Few Shot 目标检测方法

  • SPARSE DETR:具有可学习稀疏性的高效端到端目标检测(源代码下载)

  • 自适应特征融合用于Single-Shot目标检测(附源代码下载)

  • 目标检测:SmartDet、Miti-DETR和Few-Shot Object Detection

你可能感兴趣的:(python,计算机视觉,机器学习,人工智能,深度学习)