Structured Knowledge Distillation for Accurate and Efficient Object Detection

摘要

许多之前的知识蒸馏方法是为图像分类而设计的,在具有挑战性的任务(如目标检测)中失败。本文首先提出了知识蒸馏在目标检测中失败的主要原因是:(1)前景和背景之间不平衡:(2)缺乏对不同像素之间关系的蒸馏。针对这两个问题,提出了一种结构化的知识蒸馏方案,包括注意力引导蒸馏和非局部蒸馏采用注意力引导蒸馏的方法,利用注意力机制找到前景目标的关键像素点,使学生更加努力地学习其特征提出了非局部蒸馏,使学生不仅可以学习单个像素的特征,还可以学习非局部模块捕获的不同像素之间的关系

介绍

我们将知识蒸馏在目标检测上的性能不理想归因于以下两个问题:(1)前景和背景之间的不平衡;(2)缺乏对不同像素之间关系的知识蒸馏。

前景和背景不平衡。图像中背景像素的数量通常大大超过与前景对象相关的像素数量。然而,只有属于前景目标的像素才真正具有用于目标检测的信息。

在传统的知识蒸馏方法中,学生模型通常被训练成平等地模仿所有像素的特征。因此,学生将很大一部分注意力分配到从背景像素中学习教师的知识上,这阻碍了他们学习前景物体的显著特征的能力,结果,这种不平衡严重降低了知识蒸馏的有效性。

为了解决这个问题,我们提出了注意力引导蒸馏,它有选择地从基本前景像素中提取知识。已有研究表明,像素的关注值反映了其在图像中的重要性。基于这一见解,我们的注意引导蒸馏使用注意力图作为度量来确定像素是否属于前景对象。因此,知识蒸馏只适用于这些前景对象,而不是考虑图像中的所有像素。这种方法允许学生模型将其学习努力集中在最相关的前景特征上,有效地解决了不平衡问题。

关系信息缺乏蒸馏。人们普遍认为,不同目标之间的关系信息在目标检测中具有重要的价值。最近的进展,比如非局部模块和关系网络,通过促进这些对象关系的捕获和利用,已经证明了检测器性能的成功改进。尽管取得了这些进展,但现有的目标检测知识蒸馏方法主要侧重于单个像素中提取信息,而忽略了学习像素间关系的关键方面。

为了解决这个问题,我们提出了非局部蒸馏,旨在通过非局部模块捕获学生和教师的关系信息,然后将这些信息从教师提取到学生。由于我们方法中的非局部模块和注意机制仅在训练时需要,因此可以在推理时丢弃它们,以避免额外的计算和存储成本。

由于所提出的方法是基于特征的蒸馏方法,不依赖于特定的检测模型,因此无需任何修改即可直接用于各种检测器。鉴于教师检测器的特征比其预测结果包含更丰富的语义信息,我们的方法优于基于预测的知识蒸馏。

我们还研究了目标检测情境下的师生关系。我们的研究结果表明,目标检测中的知识蒸馏需要具有高平均精度(AP)下的教师模型,这与图像分类领域的结论不同,在图像分类领域,高精度的教师可能会损害学生的表现。这些结果突出了在图像分类以外的任务中进一步探索知识蒸馏的必要。贡献如下

(1)我们提出了注意力引导蒸馏,强调学生在前景对象上的学习,抑制学生在背景像素上的学习。

(2)我们提出了非局部蒸馏,使学生不仅可以从教师那里了解到单个像素的信息,还可以了解到不同像素之间的关系。

(3)我们发现,在目标检测的知识蒸馏中,AP越高的教师往往越有效,这与之前在图像分类领域的结论不同

相关工作

知识蒸馏

最初的知识蒸馏被提出,是学生被训练模仿教师的softmax输出。此后,人们提出了许多方法来讲知识从教师传递给学生,重点关注教师特征、注意机制、FSP、互信息、积极特征、任务导向特征、关系自监督学习知识等当面。继其在图像分类方面取得成功后,研究人员将知识蒸馏应用于各种领域和任务,包括目标检测、语义分割、人脸识别、少镜头学习、增量学习、分布式学习等。

近年来,研究学生和教师在知识蒸馏方面的表现之间的关系日益引起人们的兴趣。Mirzadeh等发现准确率最高的老师不一定是最适合知识蒸馏的老师,因为师生之间的准确率差距太大会阻碍学生的培养。Cho等发现,接受过早期停止训练的教师在知识蒸馏方法往往更有效。此外,Muller等证明,标签平滑可能对知识蒸馏的效率产生负面的影响。此外,还提出了神经网络搜索方法来自动识别最优师生配对。然而,值得注意的是,上述所有关于师生关系的研究主要集中在图像分类任务上。这些发现和实验结果的推广到更具挑战性的视觉任务,如目标检测,仍然在很大程度上是未知的。

知识蒸馏在目标检测领域得到了广泛的关注,目的是提高目标检测器的性能。Chen等人介绍了第一个专门用于目标检测的知识蒸馏方法,该方法设计骨干特征,分类头和回归头的蒸馏损失。Chen等人将知识蒸馏应用于目标检测中的增量学习。此外,一些研究关注于提取教师知识来提高目标检测的定位能力,结果显著提高了性能。

近年来,一些研究发现者发现前景目标与背景目标之间的不平衡是检测蒸馏中的一个关键问题。Dai等人引入了实例知识蒸馏,在目标检测中提取基于特征、基于关系和基于响应的信息。Li等人提出了一种方法,其中只有区域建议网络采用的特征才会受到L2蒸馏损失。Bajestani和Yang提出了用于视频目标检测的时间知识蒸馏,他们引入了一个超参数来平衡前景和背景像素之间的蒸馏损失。Wang等人提出了细粒度特征模仿,即在目标锚点附近提取特征。Guo等人使用梯度来识别前景目标像素,而Du等人则根据分类头的特征丰富度评分来定位待提取的像素。然而,这些方法中的许多都依赖于ground truth、anchor 或bounding box中的注释,这使得它们在不同的检测器之间的可移植性较差。

相比之下,我们的注意力引导蒸馏通过使用无参数注意力机制自适应识别前景目标像素来解决这一挑战。这种注意力图可以很容易地从特征中生成,计算成本最小。因此,我们的方法可以直接应用于各种探测器和任务,而无需修改。

之前的目标检测知识蒸馏方法与我们的注意力引导蒸馏方法的对比如图3所示。

image-20240323145708876

我们强调我们方法在以下四个方面的优势:

(1)我们的注意力引导蒸馏方法利用无参数的注意力机制来识别前景目标像素,而不依赖于ground truth注释、边界框、锚定先验或梯度传播。这使得我们的方法很容易转移到不同类型的探测器。

(2)与以前依赖于边界框的方法不一样,我们的方法为单个像素分配注意力分数,允许他应用于任意形状的对象。

(3)以前的方法只决定像素是否应该被提取,而我们的方法为每个像素分配了一个从0到1的学习优先级,为提取过程提供了更多的信息指导。

(4)除了识别图像中的关键像素外,我们的方法还识别关键通道。我们的消融研究表明,信道掩模的包含显著提高了知识蒸馏的性能,使识别图像中的关键像素和重要通道成为可能。

方法

总体说明

我们方法的细节如图2所示。

image-20240323153938386我们的方法包括两种不同的蒸馏方法:注意力引导蒸馏和非局部蒸馏。在注意力引导蒸馏中,我们首先产生教师和学生的空间和通道注意力图。这是通过分别对通道和空间维度中的特征的绝对值应用平均池化来实现的。随后,我们使用温度参数化的softmax函数对教师和学生的空间和通道注意图进行归一化。接下来,我们将教师和学生的标准化注意力图加在一起,并将结果除以2.此操作产生用于注意力引导蒸馏的掩模。需要注意的是,掩码中的每个元素的范围从0到1,表示不同像素和通道的相对重要性。在计算特征蒸馏损失时,我们利用空间和通道掩码来重新加权不同像素和通道的损失。因此,知识蒸馏损失强调关键像素和通道,而抑制其他像素和通道。

在非局部蒸馏中,我们加入了额外的非局部模块来捕获教师和学生骨干特征中的关系信息。如图6所示,值得注意的是,我们的方法不同于以前的非局部神经网络。在以前的方法中,使用非本地模块来增强骨干特征。然而,在我们的方法中,非局部模块被单独用于知识蒸馏。因此,在推理阶段,这些非本地模块可以被丢弃,以避免额外的计算和存储成本。

为什么在我们的方法中,学生和教师可以有不同的架构

我们的方法允许学生可以与老师有不同的架构,原因有几个。首先,在我们的许多实验中,学生检测器和教师检测器都使用了Faster RCNN风格的检测范式,其中包括通过骨干网络提取图像特征,使用区域建议网络(RPN)计算目标建议,以及使用回归和分类头进行目标定位和分类。考虑到它们的检测管道的相似性,教师检测器学习到的特征也与学生检测器学习到的特征相似,因此,可以应用知识蒸馏。其次,我们的方法专注于骨干网的图像特征提取阶段。检测器之间的大多数差异存在于其他阶段,例如提案生成和标签分配,它们不会直接影响我们的方法。第三,之前的知识蒸馏工作已经证明,学生和教师特征在通道维度、宽度和高度方面的差异可以通过线性特征重塑层(自适应层)来协调。这使得我们的方法可以很好地概括不同的学生——教师配置。然而,正如V-B2节所讨论的,当学生和教师检测器使用完全不同的检测通道(例如RetinaNet学生与Faster rcnn教师),我们的方法可能不那么有效。它们的检测管道的差异导致它们各自的主干提取不同类型的图像特征。在这种情况下,用于教师检测器学习到的特征来训练学生检测器可能会误导学生的训练过程。

构想

注意引导蒸馏image-20240323160703361表示目标检测模型中主干的特征,其中C,H,W分别表示其通道、高度和宽度。那么,空间注意图和通道注意图的生成就相当于找到映射函数image-20240323160759981,请注意,这里的上标s和c用于区分“空间”和“通道“。因为特征中每个元素的绝对值都暗示它的重要性,我们通过对整个通道维度的绝对值求平均值构造image-20240323161054608,通过对宽度和高度的绝对值求平均值得到image-20240323161139796

公式如下:

image-20240323161205745

式中,i,j,k分别表示S在高度、宽度和通道维度上的第i,j,k切片。然而,将来自教师和学生检测器的注意图相加,得到用于注意引导蒸馏的空间注意掩模image-20240323161403448和通道注意掩模image-20240323161409540,即可表示为:

image-20240323161417410

注意这里的上标S和T是用来区分学生和教师的。T是softmax中引入的一个超参数,用于调整注意掩码中元素的分布(见图4和5)。

image-20240323161559032

注意引导蒸馏损失image-20240323161710264由注意转移损失image-20240323161718114和注意掩蔽损失image-20240323161726237两个子模块组成。image-20240323161800264被用来鼓励学生模型模仿教师模型的空间和引导注意力,可以表述为:

image-20240323161805426

image-20240323161900767被用来鼓励学生通过将image-20240323161918676覆盖的image-20240323161931201范式损失来模仿教师模型的特征,可以表示为:

image-20240323161941339

非局部蒸馏。非局部模块是一种通过捕获全局信息全局关系信息来提高神经网络性能的有效方法。在本文中,我们使用非局部模块来捕获图像中像素之间的关系,可以表示为:

image-20240323162136066

式中,r为得到的关系信息,i,j是待计算响应的输出位置的空间索引。image-20240323162253679是空间索引,枚举图像中所有可能得位置。f是计算两个图像关系的两两函数,g是计算单个像素表示的一元函数。现在,我们可以将提出的非局部蒸馏损失作为学生与教师关系信息之间的L2损失,可以表示为image-20240323162453345

总损失函数

我们在方法中引入三个超参数image-20240323162634832来平衡不同的蒸馏损失函数。总损失可以表示为:

image-20240323162640345

总的蒸馏损失是一种与模型无关的损失,它可以直接加到任何检测模型的原始训练损失中。因此,将检测器的原始训练损失(如分类和回归损失)记为image-20240323163406792,即学生检测器的整体训练损失image-20240323163413780

image-20240323163422254

以Faster RCNN为例,image-20240323165906159可以表示为:image-20240323165911661

其中,i为小批量中锚点的索引,image-20240323170050024为锚点i为对象的预测概率。当锚点为正时,真值标记image-20240323170113124。当锚点为负时,真值标记image-20240323170136036image-20240323170221012是表示微词边界框的四个参数化坐标的向量。image-20240323170253400是ground truth框中的一个正anchor。image-20240323170346527是二进制分类(对象 vs.非对象)的log 损失。image-20240323170412525表示回归的平滑L1损失。image-20240323170631064分别是小批量中的样本数量和可能的锚定维数量。

整体损失为:

image-20240323170657040

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/765823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PTA L2-027 名人堂与代金券

对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,总评成绩必须达到 60 分及以上,并且有另加福利:总评分在 [G, 100] 区间内者,可以得到 50 元…

公司内部局域网怎么适用飞书?

随着数字化办公的普及,企业对于内部沟通和文件传输的需求日益增长。飞书作为一款集成了即时通讯、云文档、日程管理、视频会议等多种功能的智能协作平台,已经成为许多企业提高工作效率的首选工具。本文将详细介绍如何在公司内部局域网中应用飞书&#xf…

【机器学习之---统计】统计学基础概念

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 统计学基础 1. 频率派 频率学派(传统学派)认为样本信息来自总体,通过对样本信息的研究可以合理地推断和估计总体信息…

docker 的八大技术架构(图解)

docker 的八大技术架构 单机架构 概念: 应用服务和数据库服务公用一台服务器 出现背景: 出现在互联网早期,访问量比较小,单机足以满足需求 架构优缺点: 优点:部署简单,成本低 缺点&#xff1…

单片机基础知识

目录 微型计算机基本结构 总线 片内总线和片外总线 数据总线地址总线与控制总线 系统总线和IO总线 微处理器的内部结构 内部寄存器 通用寄存器 指针和变址寄存器 段寄存器 控制寄存器 标志寄存器 存储器的基本结构 存储器的分类 IO接口的功能 外部设备与CPU之间…

点餐小程序php毕设项目

主要技术框架: 主要功能模块: 商品管理 订单管理 用户管理 优惠券管理 商品分类管理 评论管理 轮播图管理 截图 获取源码 https://blog.lusz.top/article?article_id-2

python爬虫之xpath+多进程爬取百度贴吧实战

文章目录 抓取百度贴吧的某一个帖子的评论内容前言先查看贴吧的robots.txt页面结构分析评论者头像,用户抓取评论内容的抓取评论下回复内容的抓取 源码实现贴吧抓取过程源码实现多进程的实现 抓取百度贴吧的某一个帖子的评论内容 前言 本项目实战是用来学习用&#…

操作系统内功篇:硬件结构之CPU是如何执行任务的?

一 CPU是如何读写数据的? 1.1 CPU架构(组成) 当代CPU一般是多核心的,每个核心都有自己的一个L1和L2Cache,L3Cache是一个CPU所有核心共享的,一个CPU只有一个。L1Cache分为数据缓存和指令缓存。 CPU有三层高速缓存的目的就是将Cac…

安装paddle detection心得

一、安装PaddlePaddle conda create -n mypaddle python3.8 conda activate mypaddle python -m pip install paddlepaddle-gpu2.6.0 -i https://mirror.baidu.com/pypi/simple 请确保您的PaddlePaddle安装成功并且版本不低于需求版本。使用以下命令进行验证。 这是CUDA1…

Warning logs 2024-03-23

给旧的笔记本安装ubuntu系统,并实现ssh远程连接 1、下载ubuntu系统 ubuntu下载链接 选择带桌面版本 2、准备U盘 3、使用UltraISO制作启动盘 破解UltraISO软件 输入 注册名:王涛 注册码:7C81-1689-4046-626F 使用UltraISO&#xff0c…

RabbitMQ的使用—实战

RabbitMQ的使用—实战 ​ RabbitMQ是一个开源的消息代理中间件,在分布式系统开发中被广泛应用。它实现了高级消息队列协议(AMQP),提供可靠的消息传递、灵活的路由、消息确认等功能。下面是使用RabbitMQ的基本流程: 安…

雷卯推荐超级省电防反接方案

方案特别适合一端电池,一端充电的防反接,特别节能 低VF肖特基电源防反接 此方案采用3颗低压降SKY,相比只用1颗功耗更低,可以防止元器件过热 (两者正常工作损耗对比公式: 1.采用1颗SS34LVFA:…

如何安装配置Goland并使用固定公网地址SSH远程连接本地服务器

文章目录 1. 安装配置GoLand2. 服务器开启SSH服务3. GoLand本地服务器远程连接测试4. 安装cpolar内网穿透远程访问服务器端4.1 服务器端安装cpolar4.2 创建远程连接公网地址 5. 使用固定TCP地址远程开发 本文主要介绍使用GoLand通过SSH远程连接服务器,并结合cpolar内…

八、C#计数排序算法

简介 计数排序是一种非比较性的排序算法,适用于排序一定范围内的整数。它的基本思想是通过统计每个元素的出现次数,然后根据元素的大小依次输出排序结果。 实现原理 首先找出待排序数组中的最大值max和最小值min。 创建一个长度为max-min1的数组count…

IM系统设计之websocket消息转发

Websocket消息转发 项目地址:gitgithub.com:muyixiaoxi/Link.git 上周面试被面试官问到:“在分布式IM系统中,如何实现多个websocket集群之间的通信”。 我在思考了良久后回答:“不会”。 随着我的回答,我和面试官的…

【机器学习入门 】支持向量机

系列文章目录 第1章 专家系统 第2章 决策树 第3章 神经元和感知机 识别手写数字——感知机 第4章 线性回归 第5章 逻辑斯蒂回归和分类 前言 支持向量机(Support Vector Machine) 于1995年发表,由于其优越的性能和广泛的适用性,成为机器学习的主流技术&…

阿里云有免费服务器吗?有的,附送免费服务器申请流程

阿里云服务器免费试用申请链接入口:aliyunfuwuqi.com/go/free 阿里云个人用户和企业用户均可申请免费试用,最高可以免费使用3个月,阿里云服务器网分享阿里云服务器免费试用申请入口链接及云服务器配置: 阿里云免费服务器领取 阿里…

day10_面向对象之封装丶构造器

封装概述 现实生活中,每一个个体与个体之间是有边界的,每一个团体与团体之间是有边界的,而同一个个体、团体内部的信息是互通的,只是对外有所隐瞒。 面向对象编程语言是对客观世界的模拟,客观世界里每一个事物的内部…

总结: HQL语句

总结: HQL语句 Part1 数据库的操作Part2 数据表的操作1. 创建普通表2. 内外部表3. 内外部表转换 Part1 数据库的操作 查看数据库: show databases; 创建数据库: create database if not exists 数据库名 使用数据库: use 数据库名; 查看数据库详细信息: desc database 数据库名…

Echarts 利用多X轴实现未来15天天气预报

Echarts 利用多X轴实现未来15天天气预报 UI 设计图 Echarts 实现效果 代码实现 代码分解 echarts 图表上下均显示数据 通过设置 grid.top 和 grid.bottom 设置白天和夜间天气展示区域 grid: {top: 36%,bottom: 36%,left: 5%,right: 5%}, 天气图标的设置 由于 axisLabel 的…