目标检测无痛涨点新方法 | DRKD蒸馏让ResNet18拥有ResNet50的精度(一)

简介: 目标检测无痛涨点新方法 | DRKD蒸馏让ResNet18拥有ResNet50的精度(一)

知识蒸馏是一种有效的模型压缩方法。然而,将知识蒸馏应用于检测任务仍然是一个具有挑战性的课题。有两个关键点导致检测任务的蒸馏性能较差。

  1. 前景和背景特征之间的严重失衡,
  2. 小目标缺乏足够的特征表示。

为了解决上述问题,作者提出了一种新的蒸馏方法,即双重关系知识蒸馏(DRKD),包括逐像素关系蒸馏和逐实例关系蒸馏。像素关系蒸馏在图空间中嵌入像素特征,并应用图卷积来捕获全局像素关系。通过提取全局像素关系,学生检测器可以学习前景和背景特征之间的关系,避免了由于特征不平衡问题而直接提取特征的困难。

此外,作者发现实例关系补充了小目标独立特征之外的宝贵知识。因此,设计了实例关系蒸馏,它计算不同实例的相似性以获得关系矩阵。更重要的是,设计了一个关系过滤器模块来突出显示有价值的实例关系。

所提出的双重关系知识蒸馏是通用的,可以很容易地应用于单阶段和两阶段检测器。本文的方法实现了最先进的性能,这将基于ResNet50的Faster R-CNN从38.4%提高到41.6%mAP,并将基于ResNet50的RetinaNet从37.4%提高到40.3%mAP。


1、简介


近年来,随着深度学习技术的发展,目标检测取得了巨大进展。检测框架可大致分为两种类型,单阶段检测器和两阶段检测器。这些深度学习方法取得了优异的性能,远远超过了传统的检测方法。然而,这些深度学习方法需要高计算成本,限制了在机器人和手机等移动设备上的部署。

如何平衡计算成本和检测性能仍然是一个具有挑战性的课题。知识蒸馏是解决上述问题的有效方法。它采用师生学习的形式,将知识从大模型转移到小模型。通常,学生模型可以直接部署在移动设备上。由于知识蒸馏原理简单有效,因此它被广泛应用于计算机视觉任务,如分类、分割和目标检测。

然而,知识蒸馏在目标检测方面仍然面临许多挑战。前景和背景之间的不平衡是一个重要问题。通常,前景像素远少于背景像素。在现有的知识蒸馏方法中,学生模型从教师模型中以相同的优先级学习所有像素特征。因此,将更多地关注背景特征,限制前景特征的学习。

由于前景特征对于检测至关重要,因此提取所有特征直接导致较差的性能。一些工作试图解决这个问题。NLD提取注意特征进行蒸馏,使检测器聚焦于目标区域。DeFeat的蒸馏方法试图分别提取前景和背景特征。这些方法可以获得某些结果,但不考虑实例之间的关系。此外,很难从小实例特征中提取有效的知识,导致小目标检测的性能较差。目前的蒸馏方法很少考虑这个问题,这也限制了它们的性能。

为了解决上述问题,作者提出了双重关系知识蒸馏(DRKD),以使学生模型能够从教师模型中学习像素和实例之间的关系。作者观察到像素关系对前景和背景特征之间的不平衡不敏感,可以使检测器聚焦在前景上,如图1所示。

image.png

此外,实例关系可以提供超越独立特征的有价值的知识,特别是对于小目标。例如,如图2所示,图1中从索引0到索引7有7个目标。坐标轴上的数字表示同一图片中实例的索引。索引根据同一图片中实例的大小排序。作者发现,小尺寸实例之间有更多的马赛克,这意味着实例关系补充了小目标独立特征之外的宝贵知识。因此,作者设计了两种关系蒸馏,即像素关系蒸馏和实例关系蒸馏。

image.png

提出了逐像素关系蒸馏,使检测器专注于前景特征的学习。采用图卷积来捕获全局像素关系。图卷积捕获了比注意力模块更好的特征表示,以提高模型性能。

首先,将坐标空间中的特征嵌入到图形空间中。然后,应用图卷积来捕获图空间中的关系特征。最后,将关系特征投影回原始坐标空间。原始坐标空间中的关系特征称为逐像素关系特征。通过提取像素关系特征,检测器可以更加关注前景特征的学习,解决了不平衡问题。

基于小目标与其他大小目标具有更丰富的关系这一事实,实例关系蒸馏旨在为小实例获得更丰富的表示。首先,嵌入式高斯函数被应用于评估不同实例的关系,这在注意力机制中被广泛使用。计算不同大小实例之间的相似度以获得关系矩阵。

此外,作者观察到不同的关系对实验中的蒸馏有不同的贡献。因此,设计了一个关系过滤模块来强调有价值的关系。过滤后的关系矩阵被提取以将实例关系从教师检测器传递到学生检测器。同时,在本文的框架中,将裁剪的前景特征(称为实例特征)用于提取,以进一步提高检测精度。实验证明,实例关系蒸馏可以提高小目标的检测精度。这项工作的贡献总结如下:

  1. 提出了基于图卷积的逐像素关系蒸馏。与注意力机制相比,图卷积可以更有效地捕获全局上下文,实现更好的蒸馏效果。
  2. 提出了实例关系蒸馏,以获得更丰富的小目标表示。实验证明,实例关系蒸馏可以提高小目标的检测精度。
  3. 双重关系知识蒸馏实现了最先进的性能,它将基于ResNet50的Faster RCNN从38.4%提高到41.6%mAP,并将基于ResNet50的RetinaNet从37.4%提高到40.3%mAP。所提出的双重关系知识蒸馏是通用的,可以很容易地应用于单阶段和两阶段检测器。

2、本文方法


提出了双关系知识蒸馏(DRKD),使学生检测器能够从教师检测器中学习像素级和实例级关系,如图3所示。

image.png

2.1、Pixel-wise Relation Distillation

像素关系蒸馏帮助学生检测器学习前景和背景特征之间的关系,解决特征不平衡问题。采用名为GloRe的图形卷积模块来捕获全局像素关系。它可以比注意力机制更有效地捕捉全局背景,实现更好的蒸馏效果。

具体来说,分别从教师和学生的骨干中提取多尺度特征,并将其提供给不同的GloRe模块,以捕获全局像素关系。然后,提取像素级关系特征,将全局关系从教师传递给学生。蒸馏损失如等式(1)所示。

此外,为了最小化学生模型和教师模型之间的特征差异,在学生模型一侧添加了自适应卷积。

image.png

其中k是特征的数量。和分别指教师和学生的特征。表示GloRe模块。表示自适应卷积。如图3(b)所示,GloRe包含3个部分:

  • 图嵌入
  • 图卷积
  • 重投影

坐标特征首先被投影到低维图形特征空间。对于输入特征,首先通过线性层将其投影并变换为。然后,通过投影可以获得图节点特征。投影矩阵为。投影方法是原始特征的线性组合,如Equ(2)所示图形节点特征可以聚合来自多个区域的信息。

image.png

其中是可学习投影矩阵。是图节点特征。

基于图节点特征,使用图卷积来捕获节点之间的关系,该关系由Equ(3)定义A表示邻接矩阵,其随机初始化并通过训练更新。在训练过程中,邻接矩阵学习节点之间边的权重。边的权重反映了节点之间的关系。基于邻接矩阵和状态更新矩阵,对节点特征进行更新以获得相关的特征。

image.png

其中是单位矩阵。表示状态更新矩阵。表示节点邻接矩阵。是图节点特征。表示图空间中的关系感知特征。

最后,关系感知特征被投影回坐标特征空间,如等式(4)所示。

image.png

其中是逐像素关系特征,为可学习投影矩阵,与Equ(2)相同。表示图空间中的关系感知特征。

2.2、Instance-wise Relation Distillation

基于小实例与其他大小实例具有更丰富的关系这一事实,实例关系蒸馏旨在为小实例获得更丰富的表示。应用嵌入高斯函数对实例特征的相似性进行建模。此外,作者设计了一个关系过滤模块来强调有价值的关系。实例关系模块如图4所示。

image.png

1、Instance Feature Extraction

为了捕获实例关系,需要提取实例特征。根据输入和特征图的比率,使用目标坐标从特征图中提取实例特征。提取的实例特征被调整为相同的大小,如等式(5)所示。

image.png

其中,ξ表示ROI对齐。是输入的特征映射。表示GT值的坐标。o表示输出特性的大小。

2、Instance-wise Relation Module and Distillation

如图4所示,输入特征是。表示同一图像中实例的数量,表示实例特征的通道,表示实例特征图的大小。实例关系模块可以由等式(6)表示。

其中,和引用了实例特性。和分别为全连接层。是来自关系矩阵的权值,如图4中的关系滤波器所示。ψ是指实例和之间的实例级关系特征。将实例级关系蒸馏函数定义为Equ (7)。

其中和表示学生模型中的实例特征,和表示教师模型中的示例特征。ψ是指实例和之间的实例关系特征。ψ是指实例和之间的实例关系特征。表示自适应卷积。

此外,实例特征还有助于解决前景和背景之间的不平衡问题。实例提取可以使检测器关注前景特征的学习,加速学生检测器的收敛。因此,直接提取实例特征以进一步提高提取性能。蒸馏采用范数损失,如等式(8)所示自适应卷积应用于学生检测器一侧,以最小化学生和教师之间的特征差异。

其中,为前景特征的个数。和分别参考了教师模型和学生模型的特征。表示自适应卷积。

2.3、Overall Loss Function

根据以上分析,整体损失函数由4个部分组成。

  • 是用于训练检测模型的任务损失
  • 是像素关系的蒸馏损失
  • 是实例关系的蒸馏损失
  • 是实例蒸馏损失

总体损失函数如Equ (9)示

其中λ,λ、λ是用于平衡不同损失的超参数。

该伪代码如下:


相关文章
|
Ubuntu TensorFlow 算法框架/工具
ResNet实战:tensorflow2.X版本,ResNet50图像分类任务(小数据集)
本例提取了植物幼苗数据集中的部分数据做数据集,数据集共有12种类别,今天我和大家一起实现tensorflow2.X版本图像分类任务,分类的模型使用ResNet50。 通过这篇文章你可以学到: 1、如何加载图片数据,并处理数据。 2、如果将标签转为onehot编码 3、如何使用数据增强。 4、如何使用mixup。 5、如何切分数据集。 6、如何加载预训练模型。
1421 0
ResNet实战:tensorflow2.X版本,ResNet50图像分类任务(小数据集)
|
计算机视觉
目标检测无痛涨点新方法 | DRKD蒸馏让ResNet18拥有ResNet50的精度(二)
目标检测无痛涨点新方法 | DRKD蒸馏让ResNet18拥有ResNet50的精度(二)
137 0
ResNet50上天 | DDQ改进Sparse RCNN让ResNet50在coco上来到了49.8的AP(二)
ResNet50上天 | DDQ改进Sparse RCNN让ResNet50在coco上来到了49.8的AP(二)
132 0
|
机器学习/深度学习 算法 计算机视觉
ResNet50上天 | DDQ改进Sparse RCNN让ResNet50在coco上来到了49.8的AP(一)
ResNet50上天 | DDQ改进Sparse RCNN让ResNet50在coco上来到了49.8的AP(一)
179 0
|
机器学习/深度学习 编解码 计算机视觉
ResNet50 文艺复兴 | ViT 原作者让 ResNet50 精度达到82.8%,完美起飞!!!(二)
ResNet50 文艺复兴 | ViT 原作者让 ResNet50 精度达到82.8%,完美起飞!!!(二)
175 0
|
编解码 TensorFlow 算法框架/工具
ResNet50 文艺复兴 | ViT 原作者让 ResNet50 精度达到82.8%,完美起飞!!!(一)
ResNet50 文艺复兴 | ViT 原作者让 ResNet50 精度达到82.8%,完美起飞!!!(一)
167 0
|
编解码 数据可视化 计算机视觉
全新池化方法AdaPool | 让ResNet、DenseNet、ResNeXt等在所有下游任务轻松涨点(二)
全新池化方法AdaPool | 让ResNet、DenseNet、ResNeXt等在所有下游任务轻松涨点(二)
281 0
|
机器学习/深度学习 编解码 算法
全新池化方法AdaPool | 让ResNet、DenseNet、ResNeXt等在所有下游任务轻松涨点(一)
全新池化方法AdaPool | 让ResNet、DenseNet、ResNeXt等在所有下游任务轻松涨点(一)
251 0
|
机器学习/深度学习 存储 数据可视化
ECCV 2022 | CMU提出首个快速知识蒸馏的视觉框架:ResNet50 80.1%精度,训练加速30%(2)
ECCV 2022 | CMU提出首个快速知识蒸馏的视觉框架:ResNet50 80.1%精度,训练加速30%
161 0
|
存储 算法 数据可视化
ECCV 2022 | CMU提出首个快速知识蒸馏的视觉框架:ResNet50 80.1%精度,训练加速30%(1)
ECCV 2022 | CMU提出首个快速知识蒸馏的视觉框架:ResNet50 80.1%精度,训练加速30%
160 0

热门文章

最新文章