典型常见的基于知识蒸馏的目标检测方法总结一
总结来源:TPAMI 2023: When Object Detection Meets Knowledge Distillation: A Survey 收录的方法
[4] NeurIPS 2017: Learning efficient object detection models with knowledge distillation
三种知识蒸馏损失:
第一种:分类子任务的交叉熵蒸馏损失
回归子任务的bounded L2 regression loss,Lb only penalizes the network when the error of the student is larger than that of the teacher
中间层的特征蒸馏损失:作者使用L1距离
[9] JSTARS 2021:Learning slimming SAR ship object detector through network pruning and knowledge distillation
Three modules called distillation of backbone feature, classification head, and bounding box regression head constitute the proposed distillation framework, and three different levels of knowledge are adaptively transferred from cumbersome network to the lightweight one.
[11] TNNLS 2024:Collaborative knowledge distillation via multiknowledge transfer
LRD,关系蒸馏损失,探索两个instance之间和三个instance之间的距离
LKL,logits蒸馏损失,KL散度
LSD,logits的自蒸馏损失,KL散度
LCE,交叉熵损失,与ground truth的任务损失
[14] ICIP 2017:Low-light pedestrian detection from RGB images using multi-modal knowledge distillation
[16] ECCV Workshops 2018:Object detection at 200 frames per second
基于YOLO目标检测算法,进行知识蒸馏。对于YOLO算法的三种损失函数,即objectness损失,classification损失,还有regression损失。分别把教师模型的预测当成伪的gt,并运用相应的任务损失作为知识蒸馏的损失函数
[17] CVPR 2019:Distilling object detectors with fine-grained feature imitation
提出了一种细粒度的特征模仿方法,该方法利用了特征响应的跨位置差异。我们的直觉是,检测器更关注靠近目标物体的局部区域。因此,在靠近目标物体的锚点位置上的特征响应差异揭示了 “教师” 模型倾向于如何进行泛化的重要信息。我们设计了一种新颖的机制来确定这些位置,并让 “学生” 模型在这些位置上模仿 “教师” 模型,以获得性能提升。
如何生成mask:对于每个预定的anchor计算与gt的IoU得到潜在目标区域的mask
imitation loss:L2损失
[22] ICCV Workshops 2021:Photon-Limited Object Detection Using Non-Local Feature Matching and Knowledge Distillation
方法:教师模型是photon-abundant的clean image训练的检测器。学生模型是photon-limited的noisy image训练的检测器
蒸馏方法:对特征进行L1损失
总的损失:学生模型的分类交叉熵损失 + 学生模型的回归损失 + L1知识蒸馏损失
[24] CVPR 2021:Multi-scale aligned distillation for low-resolution detection
第一步:训练多尺度图像金字塔网络的教师模型,基线方法是FCOS,两个FCOS的输出特征通过C-FF进行跨level特征融合后得到
第二步,训练单尺度的学生模型,学生模型的损失函数包括FCOS目标检测损失加上知识蒸馏损失,即教师模型的特征PsT,与学生模型的特征Ps-mS进行L1蒸馏损失
[33] CVPR 2021:Distilling Knowledge via Knowledge Review
设计了知识蒸馏的跨stage的学习方式,即学生模型的高层次特征与前一个stage的特征进行融合之后,再与教师的相应stage的特征进行知识蒸馏。即论文中所说的 the student high-level stage has the great capacity to learn useful information from the teacher’s low-level features
[35] CVPR 2021:There is More than Meets the Eye: Self-Supervised Multi-Object Detection and Tracking with Sound by Distilling Multimodal Knowledge
蒸馏方法:对多个模态的教师模型的特征进行通道注意力之后求和得到多教师Alignment的特征表示,然后对多教师Alignment的特征表示和学生特征进行L2归一化,之后使用KL散度作为知识蒸馏损失
[36] AAAI 2020:Towards Oracle Knowledge Distillation with Neural Architecture Search
论文中提出的方法:最优知识蒸馏(LOD)鼓励 “学生” 网络通过仅模仿预测正确类别的模型的平均预测结果来实现集成模型的最优预测,如图 1(b)所示。在没有正确模型的情况下,我们会让 “学生” 网络去拟合真实标签。由于最优预测所给出的准确率总是优于平均预测的准确率,经过训练的 “学生” 网络有可能超越采用模型平均和 / 或多数投票的 “教师” 模型。
[39] ICCV 2021:Self-knowledge distillation with progressive refinement of targets
对于第t轮次的学生训练阶段,模型的损失函数为t-1轮次学生的预测logits和label的加权之和
[43] TII 2023:Multilevel Attention-Based Sample Correlations for Knowledge Distillation
提出了一种基于注意力的relation知识表征,并设计了基于注意力表征的relation知识蒸馏。
学生模型总的损失函数:包含教师到学生的特征attention relation 蒸馏损失,logits的KL散度蒸馏损失,以及学生本身的任务特定损失。
[45] ICLR 2022:MonoDistill: Learning spatial features for monocular 3D object detection
We first train a teacher net using the projected LiDAR maps, and then train our monocular 3D detector under the guidance of the teacher net,跨模态知识蒸馏
蒸馏方法包含Scene-level distillation in the feature space,Object-level distillation in the feature space,和Object-level distillation in the result space
Scene-level distillation in the feature space:学习特征的affinity map作为high-level的表示,并用L1损失作为蒸馏监督
Object-level distillation in the feature space:使用ground-truth 2D bounding boxes生成空间的mask对教师和学生的特征进行监督,L2距离损失,Mof指的是mask生成函数
Object-level distillation in the result space:使用Gaussian-like mask,对2D bounding box的坐标和中心点生成空间mask,对detection head的预测输出进行蒸馏监督,L1距离
[46] CVPR 2022:Image-to-Lidar self-supervised distillation for autonomous driving data
Main idea:将知识从一个训练好的2D网络中蒸馏到3D网络中。
技术路线:分别对3D点云特征P和2D图像特征Ic生成超像素表示
然后使用基于超像素表示的知识蒸馏损失,作者称之为superpixel-driven contrastive loss
[49] CVPR 2017:Mimicking very efficient network for object detection
分别对教师和学生,把每一个proposal的特征拿出来,进行L2损失作为知识蒸馏
Two-stage Mimic:在检测头的分类子任务部分,作者也使用了蒸馏学习来also the category classification information learned by the large model can be passed to the small network
[52] ICCV 2021:G-DetKD: Towards General Distillation Framework for Object Detectors via Contrastive and Semantic-guided Feature Imitation
为目标检测提出了两个蒸馏模块,semantic-guided feature imitation (SGFI)和contrasive Knowledge Distillation (CKD)
SGFI的思路:在RoI的层次,将多个stage的学生特征与教师的特征计算余弦相似性,然后softmax得到每个学生特征与教师特征的weights,根据这个weights得到融合后的整体学生特征表征,最后使用L2损失进行特征层面的蒸馏
CKD:利用对比学习,定义来自同一个bounding box的教师和学生的一对region特征为positive pairs,设定一个IoU阈值,定义来自不同的bounding box的学生和教师的且满足IoU低于阈值的一对region特征为negative pairs。对比学习的目标是最大化正样本对的agreement,最大化负样本对的距离。损失函数采用InfoNCE loss
[56] IJCAI 2021:Hierarchical self-supervised augmented knowledge distillation
使用自监督样本增强策略来训练一个增强型的教师模型,其中Lce是分类任务损失,Lce_SAD表示多个stage的自监督增强的分类损失
然后,使用教师模型作为监督信号,对学生模型进行知识蒸馏监督,学生模型的损失包括自己本身和教师模型一样的Lce和Lce_SAD之外,还包括模仿教师模型的分类头的logits的KL散度知识蒸馏损失,和模仿教师模型的中间自监督预测输出的KL散度知识蒸馏损失(作者实验发现增加Lce_SAD到学生模型的总的损失函数中会导致性能下降,所以去掉了这一项)
[57] AAAI 2022:LGD: Label-guided self-distillation for object detection
在本文中,我们提出了首个面向通用目标检测的自蒸馏框架,名为 LGD(标签引导自蒸馏)。以往的研究依赖强大的预训练教师模型来提供指导性知识,而在现实场景中,这类指导性知识可能无法获取。与之不同的是,我们仅基于学生模型的表征以及常规标签来生成指导性知识。
我们的框架包含稀疏标签外观编码器、目标间关系适配器以及目标内知识映射器,它们在训练阶段共同构成一个隐式教师模型,该模型动态依赖于标签以及不断演进的学生模型表征。它们与检测器一起进行端到端的训练,并在推理阶段被舍弃。
Label-appearance encoder:使用PointNet2017将每个目标instance的类别和位置信息编码为一个256维度的向量
Inter-object Relation Adapter:使用cross-attention将label的编码信息和检测器特征提取的embedding进行cross-attention,来探索不同目标表征之间的relation
Intra-object Knowledge Mapper:不好理解。
[58] CVPR 2022:Single-domain generalized object detection in urban scene via cyclic-disentangled self-distillation
在本文中,我们致力于增强目标探测器的泛化能力。我们考虑了一种现实却颇具挑战性的场景,即单域广义目标检测(Single-DGOD),其目标是学习一种仅利用一个源域进行训练,却能在众多未见过的目标域上表现良好的目标探测器。
针对单域广义目标检测,提取包含物体内在特征的域不变表示(DIR)十分重要,这有助于提升在未见过的域上的鲁棒性。因此,我们提出了一种方法,即循环解耦自蒸馏法,用于在无需域相关标注(例如域标签)监督的情况下,将域不变表示从特定域表示中解耦出来。
具体而言,首先提出了一个循环解耦模块,用于从输入的视觉特征中循环提取域不变表示。通过这种循环操作,解耦能力能够在不依赖域相关标注的情况下得到提升。然后,将域不变表示作为教师(引导信息),我们设计了一个自蒸馏模块来进一步增强泛化能力。
global- and instance-level contrastive loss:
DIR-based Self-Distillation:对backbone的三个stage的特征F1,F2,F3,使之接近定义的domain-invariant的特征Fdi,此外,对三个RoI的特征表示P1,P2,P3之后接三个分类器,得到三个输出y1,y2,y3,与分类标签y作为深监督
[61] CVPR 2021:General instance distillation for object detection
根据公式1,2,3得到General Instance 的score和box,目的是选择the key instances for distillation
Feature based Distillation:对同一个GI box的特征在instance level运用RoI Align得到对齐后的特征,进行L2距离,作为特征蒸馏
Relation based Distillation:对两个instance之间的GI的RoI Align对齐后的特征,进行L2距离计算作为度量,然后运用L2损失进行蒸馏
Response based Distillation:使用GI bounding box生成空间mask,对教师和学生预测的输出进行选择性的监督
[64] ICLR 2022:Open-vocabulary object detection via vision and language knowledge distillation
open-vocabulary目标检测:对于检测器提取的region,将知识从一个预训练的 open-vocabulary image classification model (teacher) 蒸馏到 a two-stage detector (student),真留损失,L1 loss
[70] ICIP 2019:Learning lightweight pedestrian detector with hierarchical knowledge distillation
非常straightforward的知识蒸馏方法:1)特征金字塔层面,对五层整体特征进行蒸馏
2)对每个region的RoI Align后的五个stage的融合特征进行蒸馏:
3)对logits的检测结果进行蒸馏:
[72] WACV 2022:Improving object detection by label assignment distillation
Main idea:通过GT来由选择性的筛选一些教师网络的预测输出作为key lsoft abel,进行选择性的知识蒸馏。并不是讲教师的全部输出一股脑的全都塞给学生。
核心贡献:设计了一个label assignment 方法,参考PAA标签分配方法,定义了一个assignment cost分数,对所有的assignment cost集合构造了两个高斯分布,一个是正样本的,一个是负样本的,仅仅蒸馏assignment cost分数低于正样本正态分布的均值的教师预测。
[73] CVPR 2022:Localization distillation for dense object detection
[74] TPAMI 2023:Localization distillation for object detection
总结了现有目标检测知识蒸馏工作的不足,仅仅模仿教师模型的分类输出,region特征,还有回归输出
提出了localization distillation方法:通过generalized SoftMax函数将目标bounding box的预测结果(t, b, l , r)转换成四个概率分布,然后对教师与学生的,预测bounding box的概率分布进行KL散度损失 作为知识蒸馏的监督
定义了valuable localization region的概念,即计算每个预测bounding box与GT的DIoU数值,根据一个区间[vl, pos]来筛选出有价值的bounding box,然后对这些有价值的bounding box再次进行KL散度的蒸馏
学生模型总的损失函数:其中红色为目标检测学生模型原有的任务损失;绿色为所有bounding box预测结果的KL散度回归蒸馏损失和KL散度分类蒸馏损失;蓝色为根据DIoU选择出的更有价值的bounding box预测结果的KL散度回归蒸馏损失和KL散度分类蒸馏损失
[75] ECCV 2022:IDa-Det: An information discrepancy-aware distillation for 1-bit detectors
将region的特征使用channel-wise的softmax函数转换为高斯分布,
对于教师模型的Nt个regions和学生模型的Ns个regions,分别根据坐标得到Nt+N个region在教师网络和学生网络的对应RoI align的采样特征,并定义了一个mahalanobis距离进行度量每个region pair的discrepancy score
根据discrepancy score设定一个阈值,来选取representative proposals with maximum information discrepancy,然后定义了一种entropy distillation loss用于蒸馏损失:
[76] CVPR 2022:Focal and global knowledge distillation for detectors
Focal Distillation:根据bounding box把每个图片划分为前景区域和背景区域,Mij作为binary mask来标记每个像素属于前景还是背景。使用sum求和分别在spatial维度和Channel维度得到Gs和Gc然后使用softmax求得attention weights
使用二值mask,空间注意力As,通道注意力Ac,对特征进行蒸馏,L2损失
此外,还对通道和空间的attention进行知识蒸馏,L1损失
Global Distillation:使用GcBlock ( Gcnet: Non-local networks meet squeeze-excitation networks and beyond. In Proceedings of the IEEE/CVF International Conference on Computer Vision Workshops, 2019.)对教师和学生的特征进行处理,得到global relation的information,然后使用L2损失进行知识蒸馏
[83] NeurIPS 2021:Instance-conditional knowledge distillation for object detection
将每个目标instance的label信息编码成特征,作为query,把教师网络的instance的预测输出级联作为Key和Value,计算QK的dot product作为instance level的attention mask,计算QKV的cross-attention作为instance-conditional Knowledge作为每个instance的知识表征度量
Instanc-level condition Distillation:使用instance level的attention mask来作为学生value和教师value的L2蒸馏距离损失函数
[85] CVPR Workshops 2021:Towards black-box explainability with Gaussian discriminant knowledge distillation
方法:利用concepts建模数据集的data distribution得到logits,然后利用学生的decoder得到data distribution的分布p(z|y)。然后利用学生的encoder从图像中学习图像的concept contribution分布q(z|y),然后运用KL散度对concepts distribution的分布进行知识蒸馏,总的蒸馏损失包括logits的KL散度蒸馏和concepts distribution的KL散度损失。
难点:如何表征concept的分布,变成正态分布。
[105] NeurIPS 2022:Towards efficient 3D object detection with knowledge distillation
论文对3D目标检测的知识真留展开了一个empirical study,总结了三种蒸馏损失,logits KD,feature KD,and label KD
1)logits KD:
2)Feature KD:
label KD:标签知识蒸馏首先从预训练的教师检测器中获取预测结果以及置信度得分。在用给定的阈值对进行筛选之后,它进而得到一个高质量的教师预测集合。它通过将真实标签以及置信度高的教师预测结果相结合,生成一个有教师辅助的真实标签集合,并利用为学生网络进行标签分配。
[106] CVPR 2023:ItKD: Interchange transfer-based knowledge distillation for 3D object detection
Interchange Knowledge Transfer:对于教师模型和学生模型的编码特征Mt和Ms,作者使用一个共享的auto-encoder对特征进行共享编码和压缩,得到encoder特征Menct和Mencs,并使用带有前景mask的L1 loss进行feature-based的知识蒸馏。
此外,作者还提出了一种interchange transfer的损失函数,用来逼近anto-encoder的解码器特征与各自检测器的编码器的输出特征之间的距离
Head Relation-Aware Self-Attention:对于3D检测器输出的object properties的特征,分别融合inter和intra的self-attention特征,并得到融合的表示,使用L1 loss来进行输出logits-level的知识蒸馏
[108] ECCV 2022: Lidar distillation: Bridging the beam-induced domain gap for 3D object detection
[109] CVPR 2022:Boosting 3D object detection by simulating multimodality on point clouds
boost a single modality (LiDAR) 3D object detector by teaching it to simulate features and responses that follow a multi-modality (LiDAR-image) detector (从多模态的检测器中蒸馏知识到单模态的3D的目标检测器,同时从features层面和responses层面),如图3所示,作者设计了四个levels的知识蒸馏
Response Distillation:只考虑TP,FP,FN的分类得分的蒸馏,只考虑TP和FN的回归目标的蒸馏
Sparse-Voxel Distillation:对response蒸馏的TP,FP,FN目标所对应的crucial voxels层级的特征分别进行feature对应和cosine relation对应的蒸馏损失
Voxel-to-Point Distillation:Our key idea is to interpolate the voxel features to raw point clouds and perform fine-grained feature distillation on points:把voxel特征采样为raw point cloud特征,对point level进行feature和cosine relation的蒸馏
使用feature propagation layer [29]将voxel特征转换为point feature
Instance Distillation: on the last-layer BEV features to promote the consistency of the deep features, which have a direct impact on the object prediction. 首先使用NMS过滤冗余的bounding box特征,然后使用RoI-grid pooling处理最后一层的BEV特征得到每个bounding box的特征,作为一个instance,将每一个instance采样为5*5大小的空间特征。
we treat each filtered bounding box as an instance, fit a uniform grid (G=5×5) in each bounding box, interpolate BEV features at each grid point, and transfer knowledge from multi- (superscript m) to single-modality (superscripts) through the 5×5 interpolated features
[117] NeurIPS 2020:Comprehensive attention self-distillation for weakly-supervised object detection
为弱监督目标检测提出了两种自蒸馏损失的方法,第一种是对输入图像进行transformation之后保证特征一致,第二种是对不同stage的特征图保持一致。两种均采用了max特征。
[128] ECCV 2022:Prediction-guided distillation for dense object detection
提出了一种计算分类任务和回归任务的mask方法,并基于mask对教师和学生的特征和特征计算的空间和通道attention进行蒸馏计算
feature Distillation:M表示前景区域的mask矩阵,N表示背景区域的mask矩阵,P表示空间注意力矩阵,A表示通道注意力矩阵,F表示特征。
attention Distillation:分别对分类的特征和回归的特征计算注意力矩阵进行蒸馏,分类任务蒸馏空间注意力矩阵P和通道注意力矩阵A;回归任务只蒸馏mask矩阵M大于0的区域的通道注意力矩阵
Full Distillation:
如何计算Mask矩阵?
首先对于每一个(x,y)坐标的一个预测的bounding box,定义了一个质量分数quality score:其中1表示坐标位于一个ground truth的bounding box之内为1,否则为0;p表示预测的为真实分类标签的预测概率,IoU表示与真值的IoU分数,ξ is a hyper-parameter that balances classification and localisation。
使用Top-K方法,按照quality分数排序,选择每个instance目标的最高的K个坐标,然后使用2D Gaussian Distribution把每个instance目标的quality得分进行正态分布:
最后对于每个FPN的第l个stage的位置(x, y),计算每个位置的mask矩阵数值:
在分类和回归的两个检测头上的特征分别计算mask矩阵,能计算出Mcls和Mreg
[131] TPAMI 2023:Adaptive Perspective Distillation for Semantic Segmentation
为语义分割提出了三种知识蒸馏方法,Lkd表示的是输出logits的蒸馏损失。Lrec表示的是对特征进行attention-based的蒸馏损失。Lob表示的是对attention和feature进行cosine计算之后得到的Pa矩阵进行的蒸馏损失。
[132] CVPR 2022:Open-vocabulary one-stage detection with hierarchical visual-language knowledge distillation
从CLIP中蒸馏知识到base detector中,提出了instance-level的蒸馏损失和global-level的蒸馏损失
[133] ICCV 2021:Lipschitz continuity guided knowledge distillation
提出了一个residual block的Transmitting Matrix的概念:
提出了一种基于power iteration的Spectral Norm方法:
提出了一种lipschitz continuity loss作为蒸馏损失
[134] CVPR 2022:Distillation using oracle queries for transformer-based human-object interaction detection
对HOI Detection进行知识蒸馏,对于教师模型和学生模型Transformer decoder的Attention输出和output embedding,分别进行KL散度知识蒸馏和cosine相似性蒸馏损失计算
对教师模型和学生模型进行同时优化:
[138] ICME 2021:Attention-Guided Knowledge Distillation for Efficient Single-Stage Detector
受focal loss的启发,基于每个坐标(x,y)的所预测的分类分数计算的分类损失lk,定义了一种Attention weights分数:wk
使用wk来计算整个特征图上的Attention weights map:特征图上没有被目标bounding box覆盖的区域的Attention weights为0,被bounding box覆盖的重叠像素区域取Attention weights的最大值。
最后,使用Attention矩阵Am对特征level的知识蒸馏进行指导:
[143] AAAI 2022:Knowledge distillation for object detection via rank mimicking and prediction-guided feature imitation
首先,作者通过可视化发现了学生模型和教师模型的prediction差异和feature差异的inconsistency,基于这一个motivation,提出了prediction-guided的feature Distillation,同时,作者对每一个bounding box的positive anchor的classification scores使用softmax函数得到rank distribution,然后使用KL散度进行蒸馏:
Rank Mimicking
Prediction-Guided Feature Imitation:使用prediction的difference矩阵对feature的difference矩阵进行过滤,进行特征蒸馏:
总的损失函数:学生网络的任务损失 + Rank Mimicking损失 + Prediction-Guided Feature Imitation损失
[146] ICLR 2021:Improve object detection with feature-based knowledge distillation:Towards accurate and efficient detectors
Attention-Based Distillation:spatial Attention的Distillation,channel Attention的Distillation,基于channel和spatial mask的整个特征的Distillation
对特征使用non-local处理之后,进行L2损失作为蒸馏,属于relation-based的Distillation
[147] ICLR 2022:Open-vocabulary object detection via vision and language knowledge distillation
[156] ECCV 2020:Prime-aware adaptive distillation
不同的数据样本在教师和学生网络的预测有着不同的gap,作者将这种gap归属为data uncertainty。作者的观点是,不同样本的uncertainty是不同的,因此需要对不同样本的蒸馏损失施加不同的权重。因此,作者提出了prime-aware的自适应蒸馏。
假设学生预测F(xi)与教师预测yi之间的差异服从正态分布n(xi) ∼ N(0,σ2(xi)),那么