AI学习者 · 2023年04月10日

目标检测提升技巧 | 结构化蒸馏一行代码让目标检测轻松无痛涨点

image.png

知识蒸馏(KD)是深度神经网络中一种众所周知的训练范式,其中由教师模型获得的知识传递给一个学生模型。KD已被证明是一种有效的技术,可以显著提高学生模型在各种任务(包括目标检测)中的表现。因此,KD技术主要依赖于中间特征的指导,这通常通过在训练期间最小化教师和学生模型激活之间的-范数距离来实现。

在本文中提出了一种基于结构相似性(SSIM)的像素独立-范数的替换。通过考虑额外的对比度和结构线索,在损失公式中考虑了特征空间中的特征重要性、相关性和空间相关性。

MSCOCO上的大量实验证明了本文的方法在不同训练方案和架构中的有效性。本文的方法只增加了很少的计算开销,易于实现,同时显著优于标准的-范数。此外,与普通模型相比,使用基于注意力的采样机制比最先进KD方法表现更好,包括使用Faster R-CNN R-50获得+3.5 AP增益。

1、简介

在过去十年中,卷积神经网络(CNNs)已证明是解决基本计算机视觉任务的非常有效的工具。神经网络的一个主要应用包括自动驾驶汽车中的实时感知系统,其中目标检测通常是一项非常重要的任务。然而,将CNNs部署到实时应用程序中会对内存和延迟造成严格限制。另一方面,最先进的检测器的性能提高通常伴随着内存需求和推理时间的增加。因此,网络模型的选择及其相应的检测性能受到严格限制。

已经提出了几种技术来解决这个问题,例如剪枝、权重量化、参数预测和知识蒸馏(KD)。在这项工作中,作者对后者特别感兴趣,因为它提供了一种直观的性能改进方式,而无需对现有网络进行架构修改。

使用KD,在训练期间,由计算昂贵的教师模型获得的知识被迁移到较小的学生模型。KD已被证明在分类、分割等任务中非常有效,特别是最近在目标检测方面取得了长足发展。由于典型目标检测模型的输出空间的复杂性,有必要在中间特征应用KD,因为仅依赖基于输出的KD已被证明是无效的。在基于特征的KD中,除了现有目标之外,还引入了一个训练目标,该目标最小化了教师和学生激活之间的误差,并且是由单个特征激活之间的-范数距离定义的事实标准,如图1a所示。然而,-范数忽略了特征图中存在的3个重要信息:

  1. 特征之间的空间关系
  2. 教师和学生特征之间的相关性
  3. 个体特征的重要性

最近的工作侧重于通过假设对象区域更“knowledge-dense”,通过对特征激活进行采样的机制绕过后一点。然而,正如Guo等人所证明的那样,即使只提取背景特征激活也可以显著提高性能,因此不能假设仅目标区域包含有用的知识。采样机制还引入了额外的缺陷,这些缺陷可能会限制其在现实世界应用中的更广泛实现,例如需要标注数据。

image.png

在这项工作中提出了结构知识蒸馏,其目的是改善与作为KD方法核心驱动因素的-范数相关的缺点,而不是设计更复杂的采样机制。作者的关键见解如图1b所示:

CNN的特征空间可以局部分解为亮度(均值)、对比度(方差)和结构(互相关)分量,这一策略已在SSIM形式的图像领域成功应用。

新的训练目标变成最小化均值和方差的局部差异,并最大化教师和学生激活之间的局部零归一化互相关。这样做可以捕捉教师和学生的特征激活之间的空间关系和相关性中包含的额外知识,而不是直接最小化个体激活的差异。

为了证明方法的有效性,使用各种检测架构和训练方案进行了广泛的实验。总体而言,贡献如下:

  • 提出了结构知识蒸馏,它引入了和变体,以代替目标检测模型中基于特征的KD的-范数。这使得能够捕获学生和教师网络的特征空间中表现为局部均值、方差和互相关关系的额外知识。
  • 通过对特征空间的分析说明本文方法关注的是不同于-范数的区域,因此,仅从目标区域采样是次优的,因为整个特征空间可以包含取决于激活模式的有用知识。
  • 通过在MSCOCO上进行大量实验,证明了在各种训练设置和模型架构下检测精度的一致性定量改进。本文的方法甚至性能相当或优于精心调整的最先进的目标采样机制,并通过仅引入一行代码从根本上实现了这一点。

2、相关工作

2.1、知识蒸馏

KD旨在将大的教师模型获得的知识迁移到较小的学生模型。Buciláa等人(2006)证明,大模型集合所获得的知识可以迁移到单个小模型。Hinton等人(2015)提供了一种应用于DNN的更通用的解决方案,其中他们提高了最终softmax的温度超参,直到大模型产生了一组合适的Softmax目标。计算机视觉领域的大多数KD研究集中于分类任务。然而,由于本文主要兴趣在于实时领域,专注于更相关的目标检测任务。

2.2、目标检测

目标检测是基本的计算机视觉任务之一,其中速度和精度通常是两个关键要求。目标检测器可以分为单阶段和两阶段方法,在这项工作中研究了两种变体的方法。通常,两阶段检测器需要用更高的计算成本获得更高的精度,而单阶段检测器则是更低的推理时间和复杂性,以换取对精度的均衡。然而,这个概念高度依赖于特征提取器和超参数配置的选择,这不是一个简单的过程。单阶段域中的主要元架构是RetinaNet,其扩展包括Anchor-free模块和Reppoints。在两阶段领域中,Faster R-CNN被视为使用最广泛的元架构,其中迭代包括Cascade R-CNN。此外,无论架构如何,ResNet都常用于提取特征,这些特征还使用例如FPN在多个尺度上进行融合。

2.3、面向目标检测的知识蒸馏

已经提出了几种将KD用于目标检测器的方法,其中已经发现,由于检测模型中输出空间的复杂性,通常在中间特征而不是输出上的引导是关键的。由于检测任务需要在不同位置识别多个目标,因此引入的主要复杂性是前景和背景之间的不平衡,这表现在中间特征中。通常,假设目标区域“knowledge-dense”,而背景区域则不那么密集。因此,最近的工作隐含地集中在设计机制上,该机制对目标相关特征进行采样,以从中提取知识。

Li等人(2017)在两阶段检测器中模拟从区域提议中采样的特征。Wang等人(2019)提出了基于标注框定位“knowledge-dense”特征位置的模仿Mask。

Dai等人(2021)提出了一个基于分类分数之间距离的提取模块。类似地,Zhixing等人(2021)使用输出类概率来确定特征目标概率。

最近,Kang等人(2021)提出了一种方法,他们在注意力机制中对实例注释进行编码,以定位“knowledge-dense”区域。

与上述方法相反,Zhang和Ma(2021)提出了一种纯粹基于特征的方法,其目的是模拟注意力图作为采样机制,并进一步通过非局部模块进行提取。无论采用何种取样技术,Guo等人(2021)已经证明,背景特征对蒸馏并不一定不那么重要。

2.4、目标函数

基于特征的KD的目标是在训练期间最小化教师和学生特征空间之间的误差,通常是除了现有目标之外。在基于特征的KD中,最广泛使用的目标函数是-范数,,而不太常见的。然而,-范数忽略了特征之间的空间关系、教师和学生之间的相关性以及个体特征的重要性,其中个体特征是先前工作的主要焦点。

为了考虑空间相关性,需要进一步在局部而不是逐点比较特征。SSIM通过对强度和对比度进行局部比较,而不仅仅是逐点比较,提供了一种考虑空间相关性的优雅方式。它还能够通过整合零归一化互相关来考虑教师和学生之间的关系。与VIF、GMSD和FSIM等替代图像信号质量度量相反,SSIM在数学上不太复杂,并且是可微的,因此适合作为目标函数。

3、本文方法

3.1、概述

从定义基于特征的蒸馏损失的一般形式开始。出于这项工作的目的,将检测器分为3个部分:

  1. Backbone:用于提取特征
  2. Neck:用于融合不同尺度的特征(通常为FPN)
  3. Head:用于生成回归和分类分数

image.png

3.2、测量差异

image.png
image.png

4、实验

4.1、 Comparison with -norms

image.png

image.png

4.2、Influence of Luminance, Contrast and Structure

image.png

image.png

4.3、Comparison to State-of-the-Art Methods

image.png

4.4、Ablation Studies

image.png

image.png

5、参考

[1].Structural Knowledge Distillation for Object Detection.

原文:集智书童
作者: 小书童

推荐阅读

更多嵌入式AI技术干货请关注嵌入式AI技术专栏。
迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
18808
内容数
1352
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息