当前位置: 首页 > news >正文

Focal and Global Knowledge Distillation forDetectors

摘要

文章指出,在目标检测中,教师和学生在不同领域的特征差异很大,尤其是在前景和背景中。如果我们 平等地蒸馏它们,特征图之间的不均匀差异将对蒸馏产生负面影响。因此,我们提出了局部和全局蒸馏。局部蒸馏分离前景和背景,迫使学生专注于教师的关键像素和通道。全局蒸馏重建了不同像素之间的关系,并将其从教师传递给学生,补偿了局部蒸馏中缺失的全局信息。由于我们的方法只需要计算特 征图上的损失, FGD 可以应用于各种探测器。
总结
提出了局部和全局蒸馏,局部蒸馏分离前景和背景,迫使学生专注于教师的关键像素和通道。
全局蒸馏重建了不同像素之间的关系,并将其从教师传递给学生,补偿了局部蒸馏中缺失的全局信息。

1、介绍

众所周知,前景 - 背景类不平衡是物体检测的一个关键点,不平衡的比例也损害了物体检测的蒸馏。对于这个问题,chen 分配权重以抑制背景, Mimick 提取学生的区域建议网络提出的积极区域。 FGFI TADF分别使用细粒度和高斯掩模来选择蒸馏区域。击败分别提取前景和背景。然而,蒸馏的关键在哪里,仍然不清楚。
为了探究学生和教师特征之间的差异,我们对注意力的空间和通道进行了可视化。如图 1 所示,学生的注意力和教师的注意力在前景中差异非常显著,而在背景中的差异相对较小。
这可能会导致学习前景和背景的不同困难。文章中,进一步探讨了知识蒸馏的前景和背景对目标检测的不同影响。我们通过在蒸馏中解耦前景和背景来设计实验。令人惊讶的是,如表1 所示,在前景和背景一起蒸馏的性能是最差的,甚至比只使用前景或背景还要差。这一现象表明,特征中的不均匀差异会对蒸馏产生负面影响。更深入的思考,不仅前景和背景之间存在负面影响,像素和通道之间也存在负面影响。因此,提出局部蒸馏,在分离前景和背景的同时,局部蒸馏还计算教师特征中不同像素和通道的注意力,像学生能够专注于教师的关键像素和通道。
总结
局部蒸馏,在分离前景和背景的同时,局部蒸馏还计算教师特征中不同像素和通道的注意力,使学生能 够关注教师的关键像素和通道
然而,仅仅关注关键信息是不够的。众所周知,全局上下文在检测中起着重要作用。许多关系模块已成功应用于检测,如非局部、GcBlock 、关系网络,极大地提高了检测器的性能。为了弥补局部蒸馏中提出的全局信息,我们进一步提出了全局蒸馏。在局部蒸馏中,我们利用GcBlock 提取不同像素之间的关系,然后从教师到学生提取它们。
总结
只关注局部是不够的,因此在局部蒸馏中,利用 GcBlock 蒸馏不同像素之间的关系。
提出了局部和全局蒸馏( FGD ),将局部蒸馏和全局蒸馏相结合,如图 2 所示。
所有损失函数仅根据特征进行计算 ,因此 FGD 可以直接用于各种探测器,包括两级模型、基于锚的一级和无锚的一级模型。
本文贡献:
1 、我们认为老师和学生关注的像素和通道是完全不同的,如果我们提取像素和通道而不区分它们,这将导致微不足道的改进。
2 、我们提出了局部和全局蒸馏,使学生不仅关注教师的关键像素和通道,而且能够学习像素之间的关系。

2、相关工作

基于特征的知识蒸馏方法,可以应用于几乎所有检测器。 Li 等人选择从 RPN 中采样的特征来计算蒸馏损失。很多方法对所有像素和通道都一视同仁。FKD 分别使用注意力掩码和非局部模块来引导学生蒸馏关系。然而,它将前景和背景蒸馏在一起。
蒸馏检测的关键问题是选择有价值的蒸馏区域。先前的蒸馏方法平等地处理所有像素和通道或将所有区域提取在一起。大多数方法缺少全局上下文信息的提炼。此外,我们捕捉了不同像素之间的全局关系,并将其提取给学生,这带来了另一个改进。

3、方法

大多数探测器都使用 FPN 作为 neck ,他们是从 backbone 中得到的不同尺度的特征图。从老师那里转移这些知识显著提高了学生的表现。通常,特征的蒸馏可以公式化为:
其中, F^S and F^T分别表示 来自教师和学生的特征,f是用于将F^S重塑到F^T相同 尺寸的自适应层。 H W 表示高宽 ,C 表示通道。然而,这种方法对所有部分一视同仁,缺乏对不同像素之
间全局关系的提炼。为了克服上述问题,提出了 FGD ,包括局部蒸馏和全局蒸馏。

3.1局部蒸馏

对于前景和背景的不平衡,我们提出了局部蒸馏来分离图像,并引导学生关注关键像素和通道。蒸馏区的比较见图3.
首先,我们设置一个二进制掩码 M 来分离背景和前景
其中 r 表示 GTbox ,并且 i,j 分别是特征图的水平坐标和垂直坐标。 如果 (i,j) 落在 GT ,则 M_{i,j} = 1,否则为0.
规模较大的目标由于拥有更多的像素,将占据更多的损失,这将影响小目标的蒸馏。在不同的图像中, 前景和背景的比例差异很大。因此,为了平等对待不同的目标,平衡前景和背景的损失,我们将比例掩 S 设置为
其中 H_rW_r表示 GT r 的高度和宽度。如果一个像素属于不同的目标,我们选择
最小的框来计算 S SENet和 CBAM 表明,关注关键像素和通道有助于基于 CNN 的模型获得更好的结果。 z 等人使用一种简单 的方法来获得空间注意力掩码并提高蒸馏性能 。在本文中,我们 应用类似的方法来选择局部像素的通 道,然后得到相应的注意力掩码。我们分别计算不同像素和不同通道的绝对平均值。
其中 H W 、C表示特征的高度、宽度和通道。G^SG^C 空间和通道注意力图,然后
注意力掩码可以公式化为
T 的用于调整分布的温度超参数。
学生和老师的掩码之间存在显著差异。在训练过程中,我们使用老师的掩码来引导学生。对于二进制掩码M ,比例掩码 S,注意力掩码A^SA^C,我们提出特征损失L_{fea}如下:
A^SA^C分别表示教师检测器的空间注意力掩码和通道注意力掩码。F^T and F^S分别表示教师检测器和学生检测器的特征图。\alpha and \beta 平衡背景和前 景之间损失的超参数。
除此之外,我们使用注意力损失L_{at} 迫使学生检测器模仿教师检测器的空间和通道注意力掩码 ,其 公式为:
t s 表示教师和学生, l 表示 L1 损失 , \gamma平衡损失的超参数。
部损失L_{focal}是特征损失L_{fea}和注意力损失L_{at}的总和。

3.2全局蒸馏

不同像素之间的关系,具有宝贵的知识,可用于提高检测任务的性能。在 3.1 节中,我们利用局部蒸馏来分离图像,并迫使学生专注于关键部分。然而,这种局部蒸馏切断了前景和背景之间的关系 。因此,我们提出了全局提取 旨在从特征图中提取不同像素之间的全局关系,并将其从教师蒸馏到学生
如图 4 所示:
我们 利用 GcBlock 来捕捉单个图像中的全局关系信息,并迫使学生检测器从教师那里学习关系。 全局损失L_{global}如下:
W_k,W_{v1},W_{v2}表示卷积层。 LN 表示归一化, N_p特征中的像素数,\lambda是平衡损失的超参数。

3.3总损失

总之,训练学生检测器的总损失如下:
L_{original} 是检测器的原始损失。
蒸馏损失仅从特征图上计算,该特征图可以从检测器的颈部获得,因此,它可以很容易地应用于不同的 探测器。

相关文章:

Focal and Global Knowledge Distillation forDetectors

摘要 文章指出,在目标检测中,教师和学生在不同领域的特征差异很大,尤其是在前景和背景中。如果我们 平等地蒸馏它们,特征图之间的不均匀差异将对蒸馏产生负面影响。因此,我们提出了局部和全局蒸馏。局部蒸馏分离前景和…...

FX110网:1月美国零售货币资金环比上升2.61%,嘉盛环比上升1.86%

美国商品期货交易委员会(CFTC)发布的最新月度报告显示,2024年1月零售货币存款与上月相比上升2.61%。 这份报告涵盖在美国运营的注册零售货币对交易商(RFED)和经纪自营商。包括嘉信理财(CHARLES SCHWAB Futu…...

全量知识系统的核心-全量知识的一个“恰当组织”的构想及百度AI答问

全量知识系统的核心-全量知识的一个恰当组织 Q1. 以下是对 我刚刚完成的文档“全量知识系统的核心:全量知识的一个恰当组织构想”的百度AI答复。由于字数400的限制,内容被分成四段. 第一次回答:学科和科学的框架 关于技术学科、一般学科和…...

C++中using 和 typedef 的区别

C中using 和 typedef 的区别_typedef using-CSDN博客 在C中,“using”和“typedef”执行声明类型别名的相同任务。两者之间没有重大区别。C中的“Using”被认为是类型定义同义词。此方法也称为别名声明。定义这些别名声明的工作方式类似于使用“using”语句定义C中…...

LeetCode-1944题: 队列中可以看到的人数(原创)

【题目描述】 有 n 个人排成一个队列,从左到右 编号为 0 到 n - 1 。给你以一个整数数组 heights ,每个整数 互不相同,heights[i] 表示第 i 个人的高度。一个人能 看到 他右边另一个人的条件是这两人之间的所有人都比他们两人 矮 。更正式的&…...

Java基础面试题整理2024/3/13

1、可以使用switch的数据类型 Java5以前,switch(arg)表达式中,arg只能是byte、short、char、int。 Java5之后引入了枚举类型,也可以是枚举类型。 Java7开始引入了字符串类型。 2、Java中的goto有什么作用 goto是Java中的保留字&#xff0c…...

MachineSink - 优化阅读笔记

注:该优化与全局子表达式消除刚好是相反的过程,具体该不该做这个优化得看代价模型算出来的结果(有采样文件指导算得会更准确) 该优化过程将指令移动到后继基本块中,以便它们不会在不需要其结果的路径上执行。 该优化过程并非旨在替代或完全…...

虾皮shopee根据ID取商品详情 API

公共参数 名称类型必须描述keyString是免费申请调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheString否[yes,no]默认y…...

你知道数据库有哪些约束吗?

目录 1. NULL约束 2. 唯一(UNIQUE)约束 3. 默认值(DEFAULT)约束 4. 主键约束 5. 外键约束 6. CHECK约束 数据库约束是一种用于确保数据库中数据完整性和一致性的规则或条件。这些约束可以应用于表、列或整个数据库&#xff0…...

QT----基于QT的人脸考勤系统(未完成)

目录 1 编译opencv库1.1 下载源代码1.2 qt编译opencv1.3 执行Cmake一直卡着data: Download: face_landmark_model.dat 2 编译SeetaFace2代码2.1 遇到报错By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has2.2遇到报错Model missing 3 测试…...

机试:成绩排名

问题描述: 代码示例: #include <bits/stdc.h> using namespace std;int main(){cout << "样例输入" << endl; int n;int m;cin >> n;int nums[n];for(int i 0; i < n; i){cin >> nums[i];}// 排序for(int i 0; i < n; i){//…...

C编程基础四十分笔记

都是一些基础的C语言 一 输入一个整数&#xff0c;计算这个整数有几位二 编写程序计算一个分布函数三 输入一个字符串&#xff0c;再随便输入一个字母&#xff0c;判断这个字母出现几次四 求 1到10的阶乘之和五 求一个球体体积六 写一个链表&#xff0c;存1&#xff0c;2&#…...

k8s关于pod

目录 1、POD 的创建流程 kubectl 发起创建 Pod 请求&#xff1a; API Server 接收请求并处理&#xff1a; 写入 Etcd 数据库&#xff1a; Kubelet 监听并创建 Pod&#xff1a; Pod 状态更新和汇报&#xff1a; 2、POD 的状态解析 1. Pending Pod 2. Running Pod 3. S…...

yum安装mysql 数据库tab自动补全

centos7上面没有mysql&#xff0c;它的数据库名字叫做mariadb [rootlocalhost ~]#yum install mariadb-server -y [rootlocalhost ~]#systemctl start mariadb.service [rootlocalhost ~]#systemctl stop firewalld [rootlocalhost ~]#setenforce 0 [rootlocalhost ~]#ss -na…...

MBT-Net

feature F&#xff0c;edge feature E-F where r related to the relative position 辅助信息 作者未提供代码...

大数据赋能,能源企业的智慧转型之路

在数字洪流中&#xff0c;大数据已经成为推动产业升级的新引擎。特别是在能源行业&#xff0c;大数据的应用正引领着一场深刻的智慧转型。今天&#xff0c;我们就来探讨大数据如何在能源企业中发挥其独特的魅力&#xff0c;助力企业提效降本&#xff0c;实现绿色发展。 动态监控…...

2024考研国家线公布,各科分数线有哪些变化?考研国家线哪些涨了,哪些跌了?可视化分析告诉你

结论在文章结尾 2024考研国家线 一、近五年国家线趋势图-学术硕士 文学 管理学 工学照顾专业 体育学 交叉学科 军事学 历史学 理学 享受少数名族照顾政策的考生 中医类照顾专业 教育类 艺术类 医学 工学 哲学 法学 农学 经济学 二、近五年国家线趋势图-专业硕士 中医 应用心理 …...

高效、安全的APP分发与推广平台

在信息化快速发展的今天&#xff0c;APP已经成为人们生活中不可或缺的一部分。然而&#xff0c;对于众多APP开发者来说&#xff0c;如何让自己的APP在众多竞争者中脱颖而出&#xff0c;被更多用户所认知和下载&#xff0c;成为了一个亟待解决的问题。这时&#xff0c;一个高效、…...

浅谈异或运算

异或&#xff0c;是一个数学运算符&#xff0c;英文为exclusive OR&#xff0c;缩写为xor&#xff0c;应用于逻辑运算。异或的数学符号为“⊕”&#xff0c;计算机符号为“xor”。其运算法则为&#xff1a; a⊕b &#xff08;a ∧ b&#xff09; ∨ &#xff08;a ∧b&#xf…...

Linux下platform总线

一. 简介 前面我们讲了设备驱动的分离&#xff0c;并且引出了总线 (bus) 、驱动 (driver) 和设备 (device) 模型&#xff0c;比如 I2C 、 SPI 、 USB 等总线。 但是&#xff0c;在 SOC 中有些外设是没有总线这个概念的&#xff0c;但是又要使用总 线、驱动和设备模型该怎么…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...