典型常见的基于知识蒸馏的目标检测方法总结二
来源:https://github.com/LutingWang/awesome-knowledge-distillation-for-object-detection收录的方法
NeurIPS 2017:Learning Efficient Object Detection Models with Knowledge Distillation
CVPR 2017:Mimicking Very Efficient Network for Object Detection
Feature Distillation
1)Ground Truth Guided
CVPR 2019:Distilling Object Detectors With Fine-Grained Feature Imitation
使用ground truth和预定义anchor对每个空间位置计算mask,基于mask来引导学生特征向教师特征的学习。
CVPR 2021:Distilling Object Detectors via Decoupled Features
将feature-level和classification head-level的特征根据binary mask划分为前景特征和背景特征,对前景特征和背景特征分别使用不同的权重进行解耦蒸馏。
2)Prediction Guided
NeurIPS 2021:Distilling Object Detectors with Feature Richness
首先,定义了一种Feature Richness Score,将特征图中的每个(x,y)坐标的预测最大的classification score定义为这个坐标的richness score,从而得到一层W*H的mask,运用这个mask来优化蒸馏学习。
在此基础上,蒸馏损失分为FPN层面的feature-level Distillation和classification head-level Distillation
ECCV 2022:Prediction-Guided Distillation for Dense Object Detection
首先,对于一个特征图上的坐标(x,y),作者定义了一个quality score
其中b代表一个bounding box,indicator表示如果坐标(x,y)在GT bounding box之内,则为1,如果不属于任何bounding box则为0;
pij(b)表示预测为GT bounding box的正确类别的分类概率,IoU表示预测框与GT框的IoU得分。
然后,作者将每个GT bounding box中quality score排名top-k的pixel取出来,作为集合To,并假设To服从正态分布Tok∼ N(μ,Σ|o),所以可以建模他们的热力图为:
如果一个像素点是多个排名top-k的bounding box像素点的重叠,那么I取多个重叠数值的最大值,再根据每个I求平均,得到mask矩阵
总的蒸馏损失分为cls和reg的feature-level的蒸馏,还有cls和reg的attention-level的蒸馏。
feature-level的蒸馏:classification的分支的特征蒸馏分为前景和背景的蒸馏,regression分支的特征蒸馏只考虑前景的蒸馏。
其中P代表空间注意力,A表示通道注意力,M为前景mask,N为背景mask
Attention-level的蒸馏:classification分支考虑空间注意力和通道注意力的蒸馏,regression分支只考虑前景mask引导的通道注意力的蒸馏
PR 2023:Task-balanced distillation for object detection
首先,作者定义了一种Harmonious predictions
pc是每个像素点的预测分类概率值最大的概率
pr是每个像素点预测的bounding box与GT bounding box的最大IoU得分。
然后作者定义了HS得分,用于平衡两个子任务的预测得分:
并在此基础上,定义了基于Harmonious的Distillation loss:
此外,作者更进一步引入了一种动态变化因子dynamic modulation factor,用于为每个空间像素点施加不同的损失权重
此外,作者提出了Task-decoupled feature distillation
即使用教师模型的pc矩阵和pr矩阵,以及学生模型的pc矩阵和pr矩阵,通过注意力机制学习得到混合的T0矩阵和T1矩阵作为教师模型的pc和pr矩阵特征蒸馏引导的权重矩阵。
3)Attention Guided
ICLR 2021:Improve Object Detection with Feature-based Knowledge Distillation: Towards Accurate and Efficient Detectors
Attention-based:
Relation-based:
TPAMI 2023: Structured Knowledge Distillation for Accurate and Efficient Object Detection
本论文是 ICLR 2021:Improve Object Detection with Feature-based Knowledge Distillation: Towards Accurate and Efficient Detectors的扩充版本
CVPR 2022:Focal and Global Knowledge Distillation for Detectors
### Focal Distillation:包含基于注意力mask和前景mask和尺度mask的feature-level蒸馏,以及通道和空间注意力的蒸馏。
其中,基于feature-level的特征蒸馏是前景与背景分离的
其中,Mij为前景mask,1-Mij为背景mask,Sij为尺度mask,As为空间注意力,Ac为通道注意力
Global Distillation:使用GcBlock对特种inquiry全局处理,得到全局的correlation:
ECCV 2022:GLAMD: Global and Local Attention Mask Distillation for Object Detectors
联合global和local的Attention Mask,global表示全图,local表示将全图切分为多个patch
Mc表示通道注意力机制,Ms表示空间注意力机制
Lc表示local的通道注意力机制,Ls表示local的spatial注意力机制
Gc表示global的通道注意力机制,Gs表示global的空间注意力机制
Tc表示联合local和global的通道注意力机制,Ts表示联合local和global的空间注意力机制
一共三种蒸馏损失:空间和通道注意力蒸馏损失,基于空间和通道注意力mask的特征蒸馏损失,基于空间注意力mask的检测头蒸馏损失
其中,通道注意力蒸馏损失包含global和local两项,空间注意力蒸馏损失只有全局的,因为空间局部注意力与全局注意力等价。
特征蒸馏损失为基于空间注意力mask矩阵Ts和通道注意力mask矩阵Tc的引导蒸馏
检测头的蒸馏损失,基于spatial Attention的mask
4)Miscellaneous Foreground Masks
ICCV 2021:Channel-wise Knowledge Distillation for Dense Prediction
使用1X1卷积,把学生特征图的通道数与教师特征图的通道数对齐,然后使用在channel-wise的softmax函数,和温度参数Temperature,把每个通道的特征变为一个总和为1的概率分布,对于每个通道,使用KL散度进行蒸馏损失
5)Miscellaneous Feature Distillation
IJCAI 2023:Dual Relation Knowledge Distillation for Object Detection
作者首先解释导致检测任务中蒸馏性能不佳主要有两个关键点:一是前景和背景特征之间存在严重的不平衡,另一个是小目标缺乏足够的特征表示。
为解决上述问题,提出了一种名为双重关系知识蒸馏(DRKD)的新蒸馏方法,它包含像素级关系蒸馏和实例级关系蒸馏。像素级关系蒸馏将像素级特征嵌入图空间,并运用图卷积来捕捉全局像素关系。通过对全局像素关系进行蒸馏,学生检测器能够学习到前景和背景特征之间的关系,并且可以避免因特征不平衡问题而难以直接对特征进行蒸馏的情况。
此外,发现对于小目标而言,实例级关系能为独立特征补充有价值的知识。因此,设计了实例级关系蒸馏,它通过计算不同实例的相似度来获取关系矩阵。更为重要的是,还设计了一个关系过滤模块,用以突出有价值的实例关系。
Pixel-wise Relation Distillation:将学生和教师模型的特征输入到图卷积模型GloRe来提取global context pixel relation,蒸馏损失函数表示为:
Instance-wise Relation Distillation:使用RoI Align将每个instance的特征resize到相同的大小。
一共有N个实例,使用公式(6)来计算两个instance实例si和sj之间的relation,其中g表示全连接层,
使用公式(7)来实现instance-wise relation Distillation
此外,作者还直接将instance目标实例的feature进行蒸馏,
总的损失为公式(9)所示:
Instance Distillation
CVPR 2021:General Instance Distillation for Object Detection
首先,作者基于教师模型的instance预测和学生模型的instance预测,设计了一个General Instance Selection Module (GISM),该模块的核心是联合教师和学生网络的instance预测,来选择核心的instance进行蒸馏。
GI表示筛选出的有价值的预测框集合
Feature-based Distillation:使用RoI Align,将每个GI中的预测框resize为相同大小的特征,L2 距离,GI集合中一共K个目标预测框
Relation-based Distillation:计算GI bounding boxes中任意两个instance的relation,L2距离
Response-based Distillation:根据GI bounding box求一个前景mask矩阵M,利用M引导Response-based的蒸馏损失
总的损失函数
ICCV 2021:Deep Structured Instance Graph for Distilling Object Detectors
Structured Instance Graph
将学生模型与教师模型的RoI pooled features构造为Graph结构,其中前景目标的特征和背景目标的特征表示为nodes,目标与目标之间的cosine similarity定义为edges。
Graph Distillation Loss
前景目标的特征蒸馏,背景目标的特征蒸馏,以及边节点之间的特征蒸馏。
NeurIPS 2021:Instance-Conditional Knowledge Distillation for Object Detection
Label Assignment Distillation
WACV 2022:Improving Object Detection by Label Assignment Distillation
把每个anchor或者预测框与教师模型的输出的分类focal loss和1-回归IoU分数之和定义为assignment cost分数。根据这个assignment cost来分配空间的位置坐标来得到一个mask
Balancing between Tasks
arXiv 2020:Distilling Object Detectors with Task Adaptive Regularization
使用Gaussian Mask矩阵Mij来引导feature-level的学习
分类头的蒸馏学习:把教师的yt作为引导,
回归头的蒸馏学习:只蒸馏教师预测与GT的IoU大于学生预测与GT的IoU的情况
ICCV 2023:Bridging Cross-task Protocol Inconsistency for Distillation in Dense Object Detection
Binary Classification Distillation Loss:把每个instance的logits map的每个概率item使用sigmoid激活,然后把每个item和1-item的数值作为二分类的概率,来进行BCE的蒸馏损失。
IoU-based Localization Distillation Loss:w指的是公式(7)中的教师模型与学生模型的预测分类损失的绝对差值,作为1-IoU蒸馏损失的权重,IoU表示教师模型与学生模型的预测框的IoU
Miscellaneous Knowledge Distillation for General Object Detectors
AAAI 2022:Knowledge Distillation for Object Detection via Rank Mimicking and Prediction-Guided Feature Imitation
Rank Mimicking:把每个instance的所有正样本anchor的预测正确类别的分数s使用softmax得到一个分布,对教师和学生的M个instance的分布进行KL散度蒸馏。
Prediction-Guided Feature Imitation:基于教师与学生的prediction的差异矩阵作为过滤mask,来引导特征的蒸馏学习。
NeurIPS 2022:Structural Knowledge Distillation for Object Detection
考虑到特征蒸馏的L2损失的不足之处,引入将局部patch特征建模为均值矩阵u,方差矩阵σ,还有协方差矩阵σST。参照SSIM定义亮度比较函数,对比度比较函数,结构比较函数
基于l,c,s定义SSIM蒸馏损失来引导学生与教师模型的结构化的特征蒸馏
CVPR 2024:CrossKD: Cross-Head Knowledge Distillation for Dense Object Detection
作者发现直接模仿教师模型的预测会面临目标冲突问题,这阻碍了预测模仿取得良好的性能。为缓解这一问题,在本节中我们提出了一种新颖的跨头部知识蒸馏(CrossKD)方法。整体框架如图 4 所示。与许多先前的预测模仿方法一样,我们的跨头部知识蒸馏(CrossKD)也是针对预测进行蒸馏过程。不同的是,跨头部知识蒸馏(CrossKD)将学生模型的中间特征传递到教师模型的检测头部,并生成跨头部预测来进行蒸馏。
给定一个密集型检测器,例如 RetinaNet [39],每个检测头部通常由一系列卷积层构成,用 {Cᵢ} 表示。为简便起见,我们假设每个检测头部共有 n 个卷积层(例如,在具有 4 个隐藏层和 1 个预测层的 RetinaNet 中为 5 个)。我们使用 fᵢ(i∈{1, 2,・・・, n - 1})来表示由 Cᵢ产生的特征图,并用 f₀表示 C₁的输入特征图。预测结果 p 是由最后一个卷积层 Cₙ生成的。因此,对于给定的一对教师模型和学生模型,教师模型和学生模型的预测结果可分别表示为 pₜ和 pₛ。
Knowledge Distillation for Specific Object Detectors
1)Knowledge Distillation for GFL
CVPR 2022:Localization Distillation for Dense Object Detection
在本文中,通过重新构建定位方面的知识蒸馏流程,我们提出了一种新颖的定位蒸馏(LD)方法,该方法能够有效地将定位知识从教师模型传递到学生模型。此外,我们还启发式地引入了 “有价值定位区域” 这一概念,它有助于针对特定区域选择性地提取语义和定位知识。
将这两个新要素相结合,我们首次证明了模仿对数几率(logit)能够超越特征模仿,并且对于目标检测器的蒸馏而言,定位知识蒸馏比语义知识蒸馏更为重要且更高效。我们的蒸馏方案既简单又有效,能够轻松应用于不同的密集目标检测器。
将每个空间特征图的坐标(x,y)预测的bounding box的坐标的预测偏移的四个元素所组成的所有大集合,运用softmax转换为正态分布的四个正态分布,然后对正态分布之后的概率数值使用KL散度进行localization的回归知识蒸馏
提出了有价值的Valuable Localization Region,计算预定义anchor和GT的DIoU,设定一个区间,选择有价值的localization区域。
Overall Distillation Process:第一部分表示目标检测的任务损失;第二部分表示整体特征图的分类logist的KL散度和回归的softmax的正态分布KL散度,第三部分表示有价值区域的分类logist的KL散度和回归的softmax的正态分布KL散度,
2)Knowledge Distillation for DETR
ICCV 2023:DETRDistill: A Universal Knowledge Distillation Framework for DETR-families
基于 Transformer 的检测器(DETR,Detection Transformer)因其架构简洁而日益受到青睐,但其模型体积庞大且耗时较长,这阻碍了它们在现实世界中的部署应用。而知识蒸馏(KD)是一种颇具吸引力的技术,它可将大型检测器压缩为小型检测器,同时能保持相近的检测性能并降低推理成本。由于 DETR 将目标检测构建为一个集合预测问题,现有的为经典的基于卷积的检测器所设计的知识蒸馏方法可能无法直接适用。
在本文中,我们提出了 DETRDistill,这是一种专门针对 DETR 系列的新型知识蒸馏方法**。具体而言,我们首先设计了一种匈牙利匹配对数几率蒸馏方法,以促使学生模型做出与教师 DETR 模型完全相同的预测**。然后,我们提出了一种目标感知特征蒸馏方法,帮助学生模型学习教师模型中以目标为中心的特征。最后,为了提高学生 DETR 模型的收敛速度,我们引入了一种查询先验分配蒸馏方法,以加速学生模型从训练良好的查询以及教师模型稳定的分配中进行学习。在 COCO 数据集上进行的大量实验结果验证了我们所提方法的有效性。值得注意的是,DETRDistill 能使各类 DETR 模型的平均精度(mAP)持续提升 2.0 以上,甚至超过了它们对应的教师模型。
针对于DETR与常见目标检测模型不同的问题,作者提出了基于DETR的知识蒸馏方法。
Target-aware Feature Distillation:对于特征的蒸馏,作者使用教师预测的Query和教师预测的ci and bpredi denote the classification score and the predicted box from the i-th teacher’s query来作为mask优化特征的蒸馏:
Hungarian-matching Logits Distillation:对于prediction的输出,作者使用匈牙利的bipartite match-cost loss来优化positive query和negative query的输出:
Query-prior Assignment Distillation:对于learnable Query的蒸馏,作者使用教师的assignment 参数来生成学生的预测,并于教师的query做匈牙利匹配的match蒸馏损失
arXiv 2022:D3ETR: Decoder Distillation for Detection Transformer
作者对于DETR的transformer decoder部分进行蒸馏。作者设计了两个分支,第一个分支是adaptive分支,第二个辅助分支是fixed分支。fixed分支是将教师的query作为输入到学生模型中得到的输出。对于每一个分支,蒸馏损失分为self-attention矩阵的蒸馏,cross-attention矩阵的蒸馏,以及prediction的蒸馏。
CVPR 2024:KD-DETR: Knowledge Distillation for Detection Transformer with Consistent Distillation Points Sampling
由于不同的基于DETR的目标检测模型自适应学习的object queries是不同的,直接对object query进行一对一的知识蒸馏,会导致inconsistent,并导致图像性能衰减。因此,作者对query进行选择,作者将学生的query固定并在每个iteration中进行重采样,将教师模型的query直接拿过来用于学生模型的specific query。并将query输入教师模型得到最大的分类预测概率输出作为Distillation的weights
Knowledge Distillation for Heterogeneous Object Detector Pairs
ICCV 2021:G-DetKD: Towards General Distillation Framework for Object Detectors via Contrastive and Semantic-guided Feature Imitation
提出了一个general的KD目标检测方法,distilling knowledge for both homogeneous and heterogeneous detectors pairs,核心贡献有两点,包含Semantic Guided Feature Imitation (SGFI)和Exploiting Region Relationship with Contrastive KD (CKD)
Semantic Guided Feature Imitation (SGFI)
考虑到学生网络的FPN特征有多层,教师网络的FPN网络有多层。各层之间的关系都需要被探索。作者提出了一种SGFI来探索多层学生与多层教师特征层的关系。
目标相似性计算是目标proposal或者instance实例级别的RoI特征,首先,作者通过特征拼接把学生模型的FPN所有stage的对应于RoI的特征拼接得到Si属于LxHxWxC, 其中L表示FPN的level层总数。然后通过embed转换为NLxCkey的矩阵,同时教师的RoI分配到FPN特定stage的特征Ti也通过embed编码为1xCkey的矩阵,通过两个矩阵相乘和softmax操作得到一个NLx1的相似性矩阵,然后与学生各层FPN的RoI对应特征加权相加得到学生的聚合特征Sagg,使用MSE loss对Sagg和教师RoI特征Ti进行知识蒸馏,公式表达为:
Exploiting Region Relationship with Contrastive KD (CKD):对比学习,教师和学生模型对于同一个instance的RoI feature为positive samples,教师和学生模型的不同instance的RoI feature属于negative samples,然后视同InfoNCE loss来最小化positive samples的距离,最大化negative samples的距离,定义样本特征的距离为cosine similarity的e指数
由于anchor具有很大的冗余性,空间上会出现特征重叠,所以如果将IoU耦合在一起的重叠的anchor分配为negative samples。如果强行将这些有IoU重叠的proposal拉远他们的距离,会导致 instability during training。因此作者使用IoU阈值来过滤highly overlapping的proposal boxes
proposal with large overlaps may contain similar semantics, thus pushing them away may cause instability during training.
ECCV 2022:HEAD: HEtero-Assists Distillation for Heterogeneous Object Detectors
传统的目标检测知识蒸馏(KD)方法主要聚焦于同构的教师 — 学生检测器。然而,为部署而设计的轻量级检测器往往与大容量检测器存在显著差异。因此,我们针对异构的教师 — 学生对之间的知识蒸馏进行研究,以使其能得到广泛应用。
我们发现异构知识蒸馏(hetero-KD)的核心难点在于,由于优化方式不同,异构检测器的主干特征之间存在显著的语义差异。传统的同构知识蒸馏(homo-KD)方法受此差异影响,很难直接在异构知识蒸馏中获得令人满意的性能。
在本文中,我们提出了异构辅助蒸馏(HEtero-Assists Distillation,HEAD)框架,利用异构检测头作为辅助来引导学生检测器的优化,以缩小这一差异。在 HEAD 框架中,辅助部件是一个附加的检测头,其架构与教师检测头同构,并连接到学生检测器的主干网络上。这样一来,异构知识蒸馏就被转换为同构知识蒸馏,从而能够实现从教师模型到学生模型的高效知识传递。
此外,当没有经过良好训练的教师检测器可用时,我们将 HEAD 框架扩展为无教师 HEAD(Teacher-Free HEAD,TF-HEAD)框架。与当前的检测知识蒸馏方法相比,我们的方法取得了显著的改进
提出了Assistant Head,考虑学生和教师模型的架构是异构的,给学生添加一个和teacher同构的检测头。
对于教师和学生的同类检测头,作者设计了Assistant-based KD,LA损失包含Assistant-Head的学生检测头损失,还有教师head和学生Assistant head的多层级检测头特征的MSE蒸馏loss
对于教师和学生的异构检测头,作者采样每个RoI的特征,与教师和学生对应的anchor features对应的部分进行MSE蒸馏损失。
NeurIPS 2022:PKD: General Distillation Framework for Object Detectors via Pearson Correlation Coefficient
作者使用1-PCC系数分数来考虑教师模型与学生模型之间的correlation作为蒸馏损失
Teacher Free Knowledge Distillation for Object Detectors
ECCV 2020:MimicDet: Bridging the Gap Between One-Stage and Two-Stage Object Detection
在本文中,我们提出了 MimicDet,这是一种新颖且高效的框架,旨在通过直接模仿双阶段特征来训练单阶段检测器,以缩小单阶段和双阶段检测器之间的精度差距。与传统的模仿方法不同,MimicDet 为单阶段和双阶段检测器设置了一个共享主干网络,然后分支为两个检测头,它们经过精心设计,具备可相互模仿的兼容特征。因此,MimicDet 能够进行端到端的训练,无需对教师网络进行预训练。而且成本并没有大幅增加,这使得采用大型网络作为主干网络变得切实可行。
我们还进行了几项专门的设计,比如双路径模仿(conduct mimicking in classification and regression branches individually)和交错式特征金字塔(obtains high-resolution features for T-head and low-resolution features for Shead from different layers of the feature pyramid),以促进模仿过程。在极具挑战性的 COCO 检测基准数据集上进行的实验证明了 MimicDet 的有效性。在 COCO 测试开发集上,采用 ResNeXt-101 作为主干网络时,它实现了 46.1 的平均精度(mAP),显著超越了当前的先进方法。
ECCV 2020:LabelEnc: A New Intermediate Supervision Method for Object Detection
在本文中,我们提出了一种新的中间监督方法,名为标签编码(LabelEnc),旨在促进目标检测系统的训练。其核心思路是引入一种新颖的标签编码函数Anto-Encoder,将真实标签映射到潜在嵌入空间,在训练期间作为对检测主干网络的一种辅助性中间监督手段。
我们的方法主要涉及一个两步式的训练流程。首先,我们通过在标签空间中定义的一个自动编码器来优化标签编码函数,以此来逼近目标目标检测器的 “理想” 中间表示形式。其次,利用已学习到的标签编码函数,我们为检测主干网络引入了一种新的辅助损失,从而提升派生检测器的性能。
实验表明,我们的方法能使多种目标检测系统在 COCO 数据集上的性能提升约 2%,无论是单阶段还是双阶段框架均是如此。而且,这些辅助结构仅在训练期间存在,也就是说,在推理阶段完全不会产生额外成本。
First, to learn the label encoding function, we train an AutoEncoder architecture, embedding the ground-truth labels into the latent space according to the (approximated) optimal detection head
Second, with the help of the learned label encoding function, we optimize Eq. 2 under the auxiliary supervision R(f(I; θf ), y) and detection loss function.
AAAI 2022:LGD: Label-Guided Self-Distillation for Object Detection
Label-appearance Encoder:将一个object instance的label的坐标信息和类别信息使用PointNet编码为一个256维度的intermediate feature dimension,
Appearance Encoder把每个object的特征使用mask矩阵提取出来
Inter-Object Relation Adapter:使用cross-attention,把每个目标的appearance embedding作为query,label embedding作为key和value
最后得到所有object的interacted embeddings
Intra-object Knowledge Mapper:通过非线性变换整合所有object的interacted embeddings为一个整体向量XpI,与原网络自身的输入通过adapt调整之后的特征XpS进行知识蒸馏。
总的损失函数:Xl接入检测头做目标检测损失,原网络的X接入目标检测头做检测损失,加上Ldistill蒸馏损失
ICCV 2023:Spatial Self-Distillation for Object Detection with Inaccurate Bounding Boxes
由于高质量标注数据获取成本高昂,或者偶尔不可避免地会出现标注质量较低(例如微小目标)的情况,通过不精确边界框监督进行目标检测引起了广泛关注。以往的工作通常利用高度依赖类别信息的多示例学习(MIL)来选择并优化低质量的边界框。这些方法由于没有挖掘空间信息,存在目标偏移、群体预测以及局部主导等问题。
在本文中,我们启发式地提出了一种基于空间自蒸馏的目标检测器(Spatial Self-Distillation based Object Detector,SSD-Det),通过挖掘空间信息以自蒸馏的方式来优化不精确的边界框。SSD-Det 利用空间位置自蒸馏(Spatial Position Self-Distillation,SPSD)模块来挖掘空间信息,并采用一种交互结构将空间信息与类别信息相结合,从而构建出一个高质量的候选框集合。为进一步改进选择流程,SSD-Det 中引入了空间一致性自蒸馏(Spatial Identity Self-Distillation,SISD)模块,以获取空间置信度来帮助选出最佳的候选框。在带有噪声边界框标注的 MS-COCO 和 VOC 数据集上进行的实验验证了我们方法的有效性,并且该方法取得了当前最先进的性能。
Miscellaneous
CVPR2023:ScaleKD: Distilling Scale-Aware Knowledge in Small Object Detector
提出了cross-resolution的 目标检测知识蒸馏方法,将high-resolution输入的图像训练的检测器视为teacher,将low-resolution输入的图像训练的检测器视为student
尽管用于目标检测的前沿知识蒸馏(KD)方法已经开发出了诸如焦点蒸馏 [41] 等各种各样的技术,以提升所传递知识的质量,但这类方法在蒸馏过程中对所有大小各异的目标一视同仁。我们发现这些方法在小目标检测(SOD)方面的关键缺陷在于,不同目标的特征表示相互纠缠。当目标尺寸不小时,这是一种可行的解决方案。然而,在检测任务中目标的尺寸差异很大。小目标的特征表示可能会受到大面积背景以及其他尺寸相对较大的实例的干扰。为解决这一问题,我们提出了一个尺度解耦特征(Scale-Decoupled Feature,SDF)蒸馏模块,用以明确地对教师模型的特征图进行解耦。
Scale-Decoupled Feature Distillation Module:使用一个MLP和ResNet block和一个MLP来作为一个branch,其中ResNet block中3x3卷积的dilation rate可以分为1,2,3,这样就组成了三个branchs,这三个branchs共享一个权重,之前的MLP用于对齐学生和教师的特征维度,之后的MLP用于压缩特征,最后,三个branch的特征拼接在一起,并用L2损失作为蒸馏
Cross-Scale Assistant:教师模型特征做QK,学生模型特征做V,特征在classification和regression branches上进行。
相关文章:
典型常见的基于知识蒸馏的目标检测方法总结二
来源:https://github.com/LutingWang/awesome-knowledge-distillation-for-object-detection收录的方法 NeurIPS 2017:Learning Efficient Object Detection Models with Knowledge Distillation CVPR 2017:Mimicking Very Efficient Networ…...
设计一个监控摄像头物联网IOT(webRTC、音视频、文件存储)
前言: 设计一个完整的 监控摄像头物联网 IoT 平台 涉及 视频直播和点播、WebRTC 和 文件存储模块,可以分为以下几个主要部分:摄像头设备、服务端处理、Web 前端、视频流存储和回放。以下是结合这些技术的一个具体完整流程设计,涵盖…...
C# OpenCV机器视觉:凸包检测
在一个看似平常却又暗藏玄机的午后,阿强正悠闲地坐在实验室里,翘着二郎腿,哼着小曲儿,美滋滋地品尝着手中那杯热气腾腾的咖啡,仿佛整个世界都与他无关。突然,实验室的门 “砰” 的一声被撞开,小…...
yii2 手动添加 phpoffice\phpexcel
1.下载地址:https://github.com/PHPOffice/PHPExcel 2.解压并修改文件名为phpexcel 在yii项目的vendor目录下创建一个文件夹命名为phpoffice 把phpexcel目录放到phpoffic文件夹下 查看vendor\phpoffice\phpexcel目录下会看到这些文件 3.到vendor\composer目录下…...
Apifox 12月更新|接口的测试覆盖情况、测试场景支持修改记录、迭代分支能力升级、自定义项目角色权限、接口可评论
Apifox 新版本上线啦!!! 在快速迭代的开发流程中,接口测试工具的强大功能往往决定了项目的效率和质量。而 Apifox 在 12 月的更新中,再次引领潮流,推出了一系列重磅功能!测试覆盖情况分析、场景…...
“库存管理软件的用户体验”:界面与交互设计
3.1可行性分析 开发者在进行开发系统之前,都需要进行可行性分析,保证该系统能够被成功开发出来。 3.1.1技术可行性 开发该库存管理软件所采用的技术是vue和MYSQL数据库。计算机专业的学生在学校期间已经比较系统的学习了很多编程方面的知识,同…...
Mysql大数据量表分页查询性能优化
一、模拟场景 1、产品表t_product,数据量500万+ 2、未做任何优化前,cout查询时间大约4秒;LIMIT offset, count 时,offset 值较大时查询时间越久。 count查询 SELECT COUNT(*) AS total FROM t_product WHERE deleted = 0 AND tenant_id = 1 分页查询 SELECT * FROM t_…...
Linux基础--1.1 什么是 Linux 操作系统
Linux 的起源与定义 Linux 是一种开源的操作系统,由 Linus Torvalds 于 1991 年首次发布。它基于 UNIX 操作系统,并以自由和开放为核心理念。Linux 的代码可以由任何人查看、修改并发布,这是它与许多专有操作系统(如 Windows 和 …...
数电实验期末作业——基于FPGA的数字时钟设计
1. 概述 本系统主要完成数字电子钟的以下功能: 1.计时功能(24小时) 2.闹钟功能(设置闹钟以及到时播放音乐) 3.校时功能 4.其他简单功能(清零、输入频率选择(1hz、500hz、5khz)、…...
hdfs命令(三)- hdfs 管理命令(三)- hdfs dfsadmin命令
文章目录 前言一、hdfs分布式文件系统管理命令1. 介绍2. 语法及解释3. 命令3.1 生成HDFS集群的状态报告3.1.1 语法及解释3.1.2 示例 3.2 重新加载配置文件并更新NameNode中的节点列表3.3 刷新指定DataNode上的NameNode信息3.3.1 语法 3.4 获取并显示指定DataNode的信息3.4.1 语…...
TCP off-path exploits(又一个弄巧成拙的例子)
承接前面几篇文章的观点,本文用一个安全攻击的例子说明为了解决一个伤害很低的低概率问题,会引入多么大的麻烦,这次是可怕的被攻击 (⊙o⊙)。 TCP 端口号只有 16bit,序列号只有 32bit,这意味着在强大攻击算力面前&…...
Docker【初识Docker】
目录 为什么会出现Docker这门技术喃? 应用开发和部署的困境 容器技术的先兆 Docker 的出现:简化容器化 Docker 技术的关键创新: Docker 的广泛应用和变革 什么是 Docker? Docker的历史 早期背景:容器化和虚拟化…...
开机存活脚本
vim datastadard_alive.sh #!/bin/bashPORT18086 # 替换为你想要检查的端口号 dt$(date %Y-%m-%d)# 使用netstat检查端口是否存在 if netstat -tuln | grep -q ":$PORT"; thenecho "$dt Port $PORT is in use" > /opt/datastadard/logs/alive.log# 如…...
【elementplus】中文模式
设置中文 <el-date-picker v-model“userAddKey” type“daterange” style“width: 240px” start-placeholder“Start Date” end-placeholder“End Date” change“handleUserAddChange” /> 引入: import zhCn from “element-plus/es/locale/lang/zh-cn”…...
【Docker命令】如何使用`docker exec`在容器内执行命令
大家好,今天我们来聊聊Docker容器管理中的一个非常有用的命令:docker exec。在日常工作中,我们经常需要在运行中的Docker容器内执行各种命令,docker exec正是帮助我们实现这一需求的利器。下面我将通过一个简单的例子,…...
FPGA的DMA应用——pcileech
硬件通过pcie总线,访存本机的内存,并进行修改,可以进行很多操作。 学习视频:乱讲DMA及TLP 1-pcileech项目简介和自定义模块介绍_哔哩哔哩_bilibili vivado2024.1的下载文章链接和地址:AMD-Xilinx Vivado™ 2024.1 现…...
前后端数据交互
一、后端部分 1.创建Spring Boot项目:在IDEA中创建一个Spring Boot项目,引入必要的依赖。 2.编写Controller层:在Spring Boot项目中创建Controller,用于处理前端的请求和响应数据。 RestController RequestMapping("/demo/s…...
将现有Web 网页封装为macOS应用
文章目录 方式一:Unite for macOS方式二:Web2Desk方式三:Nativefier方式四:Flutter Flutter WebView Plugin总结 方式一:Unite for macOS Unite 是一款专为 macOS 设计的工具,可以将任意 Web 页面快速封装…...
代码随想录Day52 101. 孤岛的总面积,102. 沉没孤岛,103. 水流问题,104.建造最大岛屿。
1.孤岛的总面积 卡码网:101. 孤岛的总面积(opens new window) 题目描述 给定一个由 1(陆地)和 0(水)组成的矩阵,岛屿指的是由水平或垂直方向上相邻的陆地单元格组成的区域,且完全被水域单元格…...
Python毕业设计选题:基于Python的社区爱心养老管理系统设计与实现_django
开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 身体健康界面 公共书籍界面 借阅信息界面 归还…...
逆袭之路(11)——python网络爬虫:原理、应用、风险与应对策略
困厄铸剑心,逆袭展锋芒。 寒苦凝壮志,腾跃绘华章。 我要逆袭。 目录 一、引言 二、网络爬虫的基本原理 (一)网络请求与响应 (二)网页解析 (三)爬行策略 三、网络爬虫的应用领…...
【Rust自学】7.3. 路径(Path)Pt.2:访问父级模块、pub关键字在结构体和枚举类型上的使用
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 7.3.1. super 我们可以通过在路径开头使用super来访问父级模块路径中的内容,就像使用..语法启动文件系统路径。例如ÿ…...
wangEditor富文本插件在vue项目中使用和媒体上传的实现
wangEditor是前端一个比较流行的简洁易用,功能强大的前端富文本编辑器,支持 JS Vue React,提供了很多丰富的功能,下面手把手教你实现wangWditor富文本插件在vue项目中配置,保存、图片上传等功能。无脑ctrlc即可 基本功…...
FFmpeg 的常用API
FFmpeg 的常用API 附录:FFmpeg库介绍 库介绍libavcodec音视频编解码核心库编码 (avcodec_send_frame, avcodec_receive_packet)。解码 (avcodec_send_packet, avcodec_receive_frame)。libavformat提供了音视频流的解析和封装功能,多种多媒体封装格式&…...
【软件】教务系统成绩提交工具使用步骤
【软件】教务系统成绩提交工具使用步骤 零、快速开始 安装 与大多数软件一样,安装步骤很简单,一直点击“下一步”即可快速完成安装,安装完成后,在桌面会有一个软件图标,双击即可打开软件主界面。 导入成绩到Excel中…...
es快速扫描
介绍 Elasticsearch简称es,一款开源的分布式全文检索引擎 可组建一套上百台的服务器集群,处理PB级别数据 可满足近实时的存储和检索 倒排索引 跟正排索引相对,正排索引是根据id进行索引,所以查询效率非常高,但是模糊…...
埃斯顿机器人程序模版案例,欢迎指点
埃斯顿机器人程序模版案例,欢迎指点...
解锁成长密码:探寻刻意练习之道
刻意练习,真有那么神? 在生活中,你是否有过这样的困惑:每天苦练英语口语,可一到交流时还是支支吾吾;埋头苦学吉他,却总是卡在几个和弦转换上;工作多年,业务能力却似乎陷入…...
对外发PDF设置打开次数
在线 Host PDF 文件并对链接进行限制——保障文件安全的最佳解决方案 在数字化办公和远程协作日益普及的今天,如何安全高效地分享 PDF 文件成为许多用户关注的重点。MaiPDF 作为一款功能强大的在线工具,不仅支持在线 host PDF 文件,还提供多…...
【Linux命令】su、sudo、sudo su、sudo -i、sudo -l的用法和区别
su 命令 su (Switch User 切换用户),允许用户切换到另一个用户的身份,默认情况下是切换到 root 用户。 默认行为:如果只运行 su,则系统会要求输入 root 用户的密码来切换到 root 用户,获取管理员权限。 切换到其他用…...
leetcode hot 100搜索回溯
39. 组合总和 已解答 中等 相关标签 相关企业 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candi…...
记录-->为2025添砖java的第二天
如何在java中创建自己的方法呢,我认为它和在C语言c里面写函数就没啥区别,(⊙﹏⊙),可能有一点点就是说public static int add(int a,int b){}就是得和main方法里面的状态一致。 import java.util.Scanner; public class Math3 {public stati…...
uniapp小程序实现弹幕不重叠
uniapp小程序实现弹幕不重叠 1、在父组件中引入弹幕组件 <template><!-- 弹幕 --><barrage ref"barrage" class"barrage-content" reloadDanmu"reloadDanmu"></barrage> </template> <script>import barr…...
拼多多纠偏,能否实现买卖平权?
科技新知 原创作者丨江蓠 编辑丨蕨影 当曾将仅退款、运费险作为标配的电商平台们开始听到商家诉求,有意优化营商环境,作为“仅退款”服务发起者的拼多多也坐不住了。 在推出一揽子减免计划讨好中小商家之后,拼多多近期被传正在内测精选用户…...
【Leetcode】3159. 查询数组中元素的出现位置
文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 给你一个整数数组 nums ,一个整数数组 queries 和一个整数 x 。 对于每个查询 q u e r i e s [ i ] queries[i] queries[i] ,你需要找到 n u m s nums nu…...
PHP语言laravel框架中基于Redis的异步队列使用实践与原理
在 Laravel 中,基于 Redis 的异步队列是通过 Laravel 的队列系统与 Redis 服务结合来实现的。这种队列机制允许你将任务推送到队列中,并由后台工作进程异步处理这些任务。这样,你就可以将耗时的操作(如发送邮件、处理视频、数据同…...
Element-plus自动导入
安装 npm i element-plus 自动引入 1. 安装两个插件 npm install -D unplugin-vue-components unplugin-auto-import2. 配置插件 vue3项目修改vite.config.js,把两个插件添加入即可,注意:不是覆盖原有配置 Vite // vite.config.js import { define…...
贪心算法(常见贪心模型)
常见贪心模型 简单排序模型 最小化战斗力差距 题目分析: #include <bits/stdc.h> using namespace std;const int N 1e5 10;int n; int a[N];int main() {// 请在此输入您的代码cin >> n;for (int i 1;i < n;i) cin >> a[i];sort(a1,a1n);…...
碰一碰发视频后端源码技术开发详解,支持OEM
一、引言 碰一碰发视频作为一种新颖的交互方式,在前端为用户带来便捷体验的同时,后端技术起着至关重要的支撑作用。后端负责管理视频资源、处理 NFC 标签信息与视频的关联逻辑、用户数据的存储与分析以及与前端的高效通信,确保整个系统稳定、…...
Python vs PHP:哪种语言更适合网页抓取
本文将比较 Python 和 PHP,以帮助读者确定哪种语言更适合他们的需求。文章将探讨两种语言的优点和缺点,并根据读者的经验水平分析哪种语言可能更容易上手。接下来,文章将深入探讨哪种语言在抓取网页数据方面更胜一筹。 简而言之,…...
SpringBoot 新特性
优质博文:IT-BLOG-CN 2.1.0新特性最低支持jdk8,支持tomcat9 对响应式编程的支持,spring-boot-starter-webflux starter POM可以快速开始使用Spring WebFlux,它由嵌入式Netty服务器支持 1.5.8 2.1.0/2.7.0/3.0.0 Configuration propertie…...
NAT 技术如何解决 IP 地址短缺问题?
NAT 技术如何解决 IP 地址短缺问题? 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 随着互联网的普及和发展,IP 地址的需求量迅速增加。尤其是 IPv4 地址&…...
微积分复习(微分方程)
1,一阶微分方程 可分离的微分方程: 可以把x和y分列等号两边,然后求积分可以解决 齐次方程和准齐次方程 要求是 :yf(y/x),也就是没有单独的x项,我们可以通过设ty/x来统一变量方便我们运算 准齐次方程就是常数项不统一,我们可以将Xxa,Yyb来消灭常数项进而转化为齐次形式…...
动态规划子序列问题系列一>等差序列划分II
题目: 解析: 1.状态表示: 2.状态转移方程: 这里注意有个优化 3.初始化: 4.填表顺序: 5.返回值: 返回dp表总和 代码: public int numberOfArithmeticSlices(int[] nums) {in…...
【连续学习之SSL算法】2018年论文Selfless sequential learning
1 介绍 年份:2018 期刊: arXiv preprint Aljundi R, Rohrbach M, Tuytelaars T. Selfless sequential learning[J]. arXiv preprint arXiv:1806.05421, 2018. 本文提出了一种名为SLNID(Sparse coding through Local Neural Inhibition and…...
【FastAPI】中间件
【FastAPI】中间件 一、概述二、作用2.1 日志记录与监控2.2 身份验证与授权2.3 CORS(跨域资源共享)2.4 Gzip压缩2.5 会话管理2.6 自定义功能2.7 执行顺序 三、 总结四、相关链接 一、概述 FastAPI的中间件提供了一种强大的机制,允许开发者在…...
文档大师:打造一站式 Word 报告解决方案1
前言 在政府、医院、银行、财务以及销售等领域,常常需要创建各种报告文件来展开工作汇报,譬如季度销售报告、年度总结报告、体检报告和保险合同等。在没有报表工具支持之前,这类报告主要通过 Word 制作,费时费力且难以维护&#…...
再谈c++线性关系求值
目的 线性关系是最简单的一种关系,在编程当中应用非常多,所以,再说一次线性关系。 线性关系的定义是这样的: 两个变量之间存在一次方函数关系,就称它们之间存在线性关系。正比例关系是线性关系中的特例,反…...
【ES6复习笔记】Class类(15)
介绍 ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过 class 关键字,可以定义类。基本上,ES6 的 class 可以看作只是一个语法糖,它的绝大部分功能,…...
AppAgent 源码 (xml 解析)
1. 数据准备 adb shell uiautomator dump /sdcard/output.xml # 获取手机ui界面的xml文件 adb pull /sdcard/output.xml output.xml # 将手机上的xml文件拉取到电脑上具体的xml文件: <?xml version1.0 encodingUTF-8 standaloneyes ?> <hierarchy ro…...