TPAMI 2023:When Object Detection Meets Knowledge Distillation: A Survey

摘要

目标检测(Object Detection,OD)是计算机视觉中的一项关键任务,多年来涌现出了众多算法和模型。尽管当前 OD 模型的性能有所提升,但它们也变得更加复杂,由于参数规模庞大,在工业应用中并不实用。为解决这一问题,2015 年知识蒸馏(Knowledge Distillation,KD)技术被提出用于图像分类,随后因其能够将复杂教师模型所学知识转移到轻量级学生模型中,而被扩展到其他视觉任务。**本文对近年来基于 KD 的 OD 模型进行了全面综述,旨在为研究人员提供该领域近期进展的概述。**我们深入分析了现有工作,强调其优势和局限性,并探索未来研究方向,以启发相关任务模型的设计。我们总结了设计基于 KD 的 OD 模型的基本原理,描述了相关的基于 KD 的 OD 任务,包括轻量级模型的性能提升、增量式 OD 中的灾难性遗忘、小目标检测以及弱 / 半监督 OD。我们还分析了新颖的蒸馏技术,即不同类型的蒸馏损失、教师和学生模型之间的特征交互等。此外,我们概述了基于 KD 的 OD 模型在特定数据集(如遥感图像和 3D 点云数据集)上的扩展应用。我们比较和分析了不同模型在几个常见数据集上的性能,并讨论了解决特定 OD 问题的有前景的方向。

Section II:The Categorization of KD-based Object Detection (OD) Methods

A. KD-based OD Methods Based on Different OD Tasks

(1) Novel KD-based OD Models for Conventional OD Tasks

传统的目标检测模型主要用于检测自然图像中大量常见的目标,引入知识蒸馏是为了获得性能更优的轻量级学生模型。然而,人们也设计出了许多使用基于知识蒸馏的传统目标检测模型的新方法。例如,一些方法采用基于对抗学习的策略,使学生模型能更精准地从教师模型中学习知识,而其他方法则设计了相关的损失函数来缩小学生模型与教师模型之间的差距。

(2) KD-Based OD Models to Solve Specific Problems

学术界已经提出了几种基于知识蒸馏(KD)的目标检测(OD)模型来解决特定的 OD 问题。例如,为了解决小目标检测(S - OD)问题,使用高分辨率图像在教师模型中进行知识蒸馏(跨分辨率知识蒸馏);为提高学生模型在低光照条件下的 OD 性能,将多模态信息引入教师模型(跨模态知识蒸馏)。此外,利用注意力机制的 KD 分支,结合不同网络层之间的高分辨率图像和特征蒸馏模块,来解决遥感图像中的多尺度 OD 问题。而且,出现了新的类别,模型更新过程中的灾难性遗忘问题也得到了考虑;通过引入金字塔网络和先验知识,还额外提出了相关的基于增量式 KD 的 OD 方法。

KD 也被引入到三维 OD基于视频的 OD 任务中,取得了更好的性能。此外,基于 KD 的弱监督 OD 也是一项特定的 OD 任务。虽然现有的相关工作主要关注如何使用不同的 KD 策略来提高模型性能,但对模型压缩的关注较少。因此,我们回顾了相关工作,包括如何引入语义信息、利用未标记图像以及设计相关策略来提高相应的 OD 模型性能。除了上述基于 KD 的 OD 模型,还有许多其他基于 KD 技术的扩展 OD 任务,包括关系检测、人 - 物交互(HOI)检测、车道检测、人脸检测、人物搜索、对象分割等。

B. KD-Based OD Methods Based on Different KD Strategies

视觉任务中使用的知识蒸馏(KD)策略多种多样。新颖且优化的 KD 策略能够显著提升知识转移和知识学习的效果。在这些基于 KD 的目标检测(OD)方法中,已经提出了多种先进的 KD 策略来提高 OD 模型的性能。例如,一些方法通过在教师模型和学生模型的不同网络层进行特征蒸馏来转移知识,并且设计了各种网络结构,使教师模型和学生模型能够从多模态数据中学习特征。此外,类似于人类教学活动,通过设计多个教师模型共同或逐步训练一个学生模型,可以提高学生模型的性能。教师模型和学生模型也可以相互学习视觉特征,或者使用各种损失函数进行自特征蒸馏。最后,不同类型的先验知识(对象掩码、语义上下文、文本信息等)可以用作训练轻量级学生模型的指导。

Section III:KD-Based Methodologies

A. The Basic Principles

知识蒸馏(KD)已被引入基于深度学习的目标检测(OD)模型中,用于改进模型压缩和模型性能。一种常见的知识蒸馏方式是使用不同类型的蒸馏损失来引导学生模型学习教师模型的知识。基于知识蒸馏的目标检测模型的一般损失函数可以表示如下:
在这里插入图片描述
其中Ldet是目标检测损失函数,Ldis是KD知识蒸馏损失函数,gamma是知识蒸馏的损失权重。

图2展示了基于目标检测(OD)的模型图。

在此,教师网络的输出被用作学生网络的软标签。针对特定的 OD 任务,人们已经提出了各种各样的特征蒸馏模块。然而,对许多现有相关工作中所采用的模型或算法进行综述后发现,基本网络框架依旧是基于 OD 模型来设计的 [49][50][51][52]。因此,我们通过分析将知识蒸馏(KD)技术引入传统两阶段和一阶段 OD 模型所提出的方法,推导出了基于 KD 的 OD 模型的基本原理

在这里插入图片描述

目前,两阶段 OD 模型以 Faster R - CNN 作为主流网络框架,而 YOLO 和 SSD 是经典且应用广泛的一阶段 OD 模型 [16]。因此,当前公开的基于 KD 的 OD 模型是在这些基础的 OD 网络上进行探索的。如公式(1)所示,这些早期基于 KD 的 OD 模型的基本原理在于蒸馏损失函数。基于 KD 的 OD 模型在两阶段和一阶段 OD 网络上的总损失函数可总结如下:
在这里插入图片描述
其中Lclass是分类子任务损失函数,Lreg是回归子任务损失函数,Lhint是特征蒸馏损失函数。

值得注意的是,公式(2)仅呈现了蒸馏损失函数的基本形式;为了解决现有基于知识蒸馏(KD)的目标检测(OD)模型所遇到的问题,人们已经提出了众多不同类型的蒸馏损失函数

此外,为了提高基于 KD 的 OD 模型的性能,人们还探索了各种类型的蒸馏模块、机制和策略。例如,存在多种先验信息引导模块 [21]、多教师网络 [37][53][54]、多模态数据蒸馏网络 [14][35][55]、自蒸馏网络 [38][56][57][58]、弱监督 OD 网络 [28][29][59][60] 等等。本文后续将对这些内容进行更详细的阐述和讨论。

B. Challenges

(1) The Balance Between Model Compression and Performance

知识蒸馏(KD)是一种有效的模型压缩技术,有效的知识转移有助于构建轻量级网络模型;这种轻量级模型更适合具有特定模型效率要求和设备性能限制的实际应用场景 [4][61][62]。复杂网络具有大规模的网络参数和较长的运行时间,这使其不适合此类实际应用 [63]。然而,轻量级网络从大规模复杂数据集中学习有效的视觉特征也具有挑战性 [4]。因此,必须在模型压缩和模型性能提升之间取得平衡。

(2) The Imbalance Between Multi-Modal Data Features

目前,大多数基于知识蒸馏(KD)的目标检测(OD)模型侧重于在图像领域内进行知识转移;只有少数工作尝试从其他模态数据(红外图像、深度图像、文本、指标数据等)中提取额外特征 [19][35][55]。多模态特征的引入对知识蒸馏是有益的。然而,一个更具挑战性的问题是如何处理多模态数据特征之间的不平衡问题。这里的 “不平衡” 是指不同模态的特征维度和语义信息存在显著差异。例如,从视觉数据和指标数据中提取的特征维度就存在明显不同。此外,RGB 图像的文本特征和视觉特征之间的语义特征差距,也使得利用文本信息来指导学生模型的视觉特征学习变得困难。因此,另一个挑战在于如何结合不平衡的多模态特征来引导学生模型进行特征学习 [19][64];需要为学生模型的学习设计新的特征融合机制或多模态信息引导机制。

(3) Designing or Selecting Superior Teacher and Student Models

知识蒸馏(KD)技术被用于将复杂教师模型所学的知识转移到轻量级学生模型中。一个最优的教师模型或者模型组合对引导学生模型的特征学习有着非常有利的影响。因此,教师模型和学生模型的选择对最终学生模型的性能有着非常重要的贡献 [53][65]。然而,由于存在许多用于目标检测(OD)的复杂模型和轻量级模型,针对特定的 OD 问题选择合适的教师模型和学生模型是很困难的。

C. Novel KD-Based OD Models for Conventional OD Tasks

对于传统的目标检测任务,研究人员试图设计出性能更优、模型结构更优化的目标检测方法 / 模型。因此,知识蒸馏(KD)被用于简化传统的目标检测模型(这些模型通常具有大量的网络参数),同时仍确保高检测准确率。此外,通过 KD 技术从多模态数据中提取各种类型的特征和先验知识,以不断提高目标检测模型的性能。

1) Traditional OD Model Compression Using KD

目前,基于卷积神经网络(CNN)的目标检测(OD)模型取得了卓越的性能,并且为了提高检测性能,设计出了越来越复杂、网络参数更多的网络模型。然而,由于性能限制,这些模型并不适合实际应用或在嵌入式设备上运行。因此,知识蒸馏(KD)技术和能够实现可靠性能的轻量级 OD 模型是解决这些问题的不错选择。在 KD 最初被引入时,很少有作品将其应用于 OD [66]。大约在 2017 年,许多基于 KD 的 OD 模型开始被提出,其主要动机是开发轻量级网络模型。Li等人提出了一种特征模仿架构feature mimic architecture,这可以被视为基于 KD 的 OD 框架的一种特殊情况 [49]。这些早期方法中的大多数旨在通过教师模型和学生模型之间的特征蒸馏或软标签蒸馏来获得压缩模型 [44][63][67][68],而其他一些应用则使用 KD 进行网络预训练 [69]。

一些方法还设计了一些基于知识蒸馏(KD)的目标检测(OD)方法,通过设计不同的类别平衡焦点损失函数来解决类别不平衡问题 [50]。此外,还提出了多尺度特征蒸馏损失函数来处理多尺度 OD 任务 [16],并且也探索了多重 KD,以使学生模型能够从多级特征图中学习特征,从而同时提取低级细节和高级抽象 [70]。2017 年,Chen 等人 [4] 提出了一种基于 KD 的检测模型,这可能是首次尝试将 KD 引入多类别 OD 任务。使用了两种类型的损失函数(加权交叉熵损失和教师边界损失)分别解决类别不平衡和回归组件问题。此外,KD 也可应用于多目标跟踪。例如,在 [71] 中,一个端到端的 KD 框架通过具有共享骨干网络的多任务网络实现多目标跟踪。

此外,这些模型的网络结构有许多相似之处。例如,使用教师模型的软标签进行知识蒸馏是最常见的方法,几乎在所有基于知识蒸馏(KD)的目标检测(OD)模型中都有采用。教师模型和学生模型卷积层之间的特征蒸馏也已被引入,用以提升目标检测性能。

与图像分类不同,目标检测(OD)不仅涉及对象的类别,还涉及对象的位置标签。因此,人们探索了标签分配蒸馏(Label Assignment Distillation,LAD)[72] 和定位蒸馏(Localization Distillation,LD)[73],以进一步提高对象定位的准确性。LAD [72] 是一种简单有效的知识蒸馏(KD)方法,可应用于大多数目标检测器。LAD 让学生模型使用教师网络间接从教师模型中学习知识,以生成和分配软标签,这与传统 KD 方法采用的途径有很大不同。值得注意的是,定位模糊在 OD 任务中普遍存在;因此,Zheng 等人 [73] 将蒸馏学习引入到 OD 网络的定位分支中,利用 LD 来改进对象定位。为了利用对象的位置信息,将教师网络生成的边界框分布蒸馏到学生网络中。因此,为了实现位置信息蒸馏,Zheng 等人 [74] 提出了有价值定位区域(Valuable Localization Region,VLR)的概念,它不同于由标签分配确定的主要蒸馏区域。这些作者设计了一种算法来获取这些 VLR,然后通过区域加权进行定位蒸馏。同样,为了解决由于忽视教师模型和 1 比特学生模型之间的信息差异,传统 KD 在蒸馏 1 比特检测器时效果较差的问题,提出了一种信息差异感知策略(Information Discrepancy - Aware Strategy,IDa - Det)[75]。IDa - Det 可用于根据信息差异选择代表性的候选框对,有利于蒸馏 1 比特检测器。此外,Yang 等人 [76] 考虑了焦点区域和全局区域特征之间的差异,然后将这些不同的特征不均衡地蒸馏到学生模型中。焦点特征图和全局特征图是从教师模型的颈部获得的,并且仅使用在特征图上计算的蒸馏损失进行特征蒸馏。同样使用软标签,Umer 等人 [77] 提出了一种用于显著预测的伪知识蒸馏(Pseudo - KD,PKD)训练方法。PKD 采用经典的 KD 架构,并且教师网络提供的伪标签用于将预测的显著图蒸馏到学生网络中。

上述方法使用单个教师模型对单个学生模型进行知识蒸馏(KD)。随后,引入了使用多个教师模型或学生模型来实现相互 KD 的基于 KD 的目标检测(OD)模型。例如,使用协同学习在多个学生模型之间进行相互 KD [78]。这种方法可以不断提高不同学生网络的泛化能力。它还可以进一步扩展到其他视觉任务,并用于优化多个相关任务的协同学习。

2) Personalized KD-Based OD Models

近年来,为提高目标检测(OD)的性能,研究人员构建了多个计算成本高昂的深度网络,这些网络需要大量存储空间,且运行耗时较长。这些网络复杂的设计也使得它们难以应用于现实场景中,例如在资源有限的设备上执行目标检测任务。解决这些问题的一种有效方法是通过模型压缩将大规模网络整合成轻量级网络 [51]。轻量级的学生模型学习多个教师模型的知识,并利用知识蒸馏(KD)策略对模型进行压缩,以缓解内存问题。值得注意的是,从多个教师模型中整合隐含知识所花费的时间也少得多。特别是,所谓的基于对抗学习策略监督的组装式轻量级网络 [51],提高了推理速度。文献 [79]、[80] 中提出的方法分别将教师模型和学生模型生成的特征图作为正样本和负样本,在教师模型和学生模型之间进行对抗模型训练,以提高学生模型在单阶段目标检测中的性能。还有另一种进行单阶段目标检测并通过对抗训练提升性能的方法 [79]、[81]。有时,如果用于教师模型训练的数据不可用,就会导致数据缺失问题。深度反演是一种从神经网络合成数据以解决该问题的方法。文献 [81] 中提出的方法是一种基于知识蒸馏(KD)的目标检测网络,旨在解决数据缺失问题。该方法通过一种名为 “DIODE” 的模型反演过程从预训练模型中合成图像,然后在这些合成图像上针对目标检测开展知识蒸馏操作。

此外,为了实现快速目标检测(OD),可以应用知识蒸馏(KD)策略将大规模且运行缓慢的教师模型所获取的知识转移到规模更小、运行速度更快的学生模型中 [82]。为了解决有用知识在复杂网络中分布不均的问题,提出了实例条件知识蒸馏(Instance - Conditional KD)[83],它用于定位有用知识,并通过对知识检索的辅助优化来解码知识检索的网络描述。

为了进一步优化目标检测(OD)网络,我们可以从师生关系的角度入手。从教师网络训练的严谨性角度来看,严格训练的教师网络具有更高的准确率。而且,研究人员认为教师应该更具包容性(峰值置信度分布更低)。因此,通过在教师网络中添加额外的损失,学生网络能够更好地学习类别之间的相似性,这有助于防止过拟合 [84]。
此外,众所周知,神经网络的预测结果往往缺乏可解释性;然而,我们有时需要这些解释来理解并能够信任某些系统(如驾驶辅助系统)的决策。目前,研究人员已经尝试参照语义概念来解释神经网络的预测结果。不过,这些方法会改变基础网络,进而影响模型的性能。因此,我们需要在不修改底层网络的情况下提供有意义的解释。为实现这一目标,一种事后可解释的黑箱模型 [85] 被开发出来,它可能是首个不会影响原始性能的生成式知识蒸馏(KD)可解释方法。
此外,李(Lee)等人 [86] 发现了教师模型和学生模型之间的特征不平衡问题,而传统的基于知识蒸馏(KD)的目标检测(OD)模型往往会忽视这一问题。这促使了共享知识编码器(Shared Knowledge Encoder,SKE)的诞生。在此方法下,教师模型和学生模型的多层特征被输入到共享知识编码器中进行统一编码,之后采用辅助解码器进行特征解码,以便利用平衡的特征进行知识蒸馏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值