Attention-guided Feature Distillation for Semantic Segmentation

摘要

与现有的复杂方法相比,该方法通常用于从老师那里提取知识给学生,该方法展示了一种简单而强大的方法,可以利用精细的特征映射来转移注意力。事实证明,该方法在提取丰富信息方面是有效的,在作为密集预测任务的语义分割方面优于现有方法。所提出的注意力引导特征蒸馏(AttnFD)方法采用卷积块注意模块(CBAM),该模块通过考虑通道特征信息和空间信息内容来细化特征映射。通过仅使用教师和学生的精细化特征图之间的均方误差(MSE)损失函数,AttnFD在语义分割方面表现出出色的性能。

介绍

虽然逐像素KD有利于图像分类,但由于其捕获像素之间上下文相关性的能力有限,在增强语义分割任务方面面临挑战。

随着研究的进展,已经转向基于特征的蒸馏和对齐教师和学生网络之间的中间特征映射。为了实现这一点,许多方法提出了复杂的损失函数来增强知识蒸馏,因为用简单的距离度量复制特征图有局限性。虽然这些方法是有效的,但最近的研究表明,通过新的模块转换学生特征映射,同时保留基本损失函数,可以使网络更简单,性能更高。

注意机制是为了模仿人类观看视觉场景的方式设计的。事实上,人类倾向于选择具有重要信息的区域(忽略图像的其他地方),而不是一次处理完整的图像。考虑到注意力的长距离上下文语义信息的聚合能力,将其集成到基于特征的KD中有望产生重要影响。尽管有潜力,但这种方法目前在很大程度上未被探索。

与之前的工作不同,之前的工作要么定义复杂的损失来考虑成对关系,要么依赖原始特征,而本研究利用CBAM中的注意机制。这种机制结合了通道和空间信息来产生精细的特征,然后从老师那里提炼出来给学生。图1所命令原始特征和精炼特征之间的区别。

image-20240509184959618

如图所示,经过改进的特征突出了图像的重要区域,并减少了背景噪声,使其成为具有显著蒸馏潜力的强大候选图像。这是因为它迫使学生网络模仿教师强调的重要区域。

贡献

(1)提出一种简单有效的基于注意力的语义分割特征蒸馏方法。通过利用来自教师和学生网络的原始特征图,通道和空间注意力被用来生成精细化的特征图进行蒸馏,通过使用该模块引入了一种新的KD方法。

(2)超越现有的KD语义分割方法。所提出的注意力引导特征蒸馏方法显著提高了紧凑模型在广泛使用的基准数据集上的最先进性能。

相关工作

面向语义分割的知识蒸馏

逐像素KD对于语义分割任务是不够的,因为它们需要关于场景空间结构的更高级别的信息。[41]中的工作建议将学生的8个邻居边界对齐。SKDS使用广告序列运算,并在网络的每个特征映射的通道之前提出成对KD。[39]采用对抗性训练,使用类内特征变异而不是两两蒸馏。此外,还在各个级别提出了进一步的成对蒸馏方法,包括实例级、类级和通道级。最近,人们开始考虑其他形式的关系。DIST通过关注类内和类间的相关性,解决了使用更强教师的挑战。CIRKD提取图像间的关系,以更好地获取关于像素依赖性的全局知识。BPKD对身体和边缘使用单独的蒸馏损失来提高边缘的区分。

尽管这些方法已经被证明是有效的,但它们定义和提取知识的新方法通常会导致复杂的模型,这需要先验知识和仔细的特征提取过程。因此,一些研究倾向于设计模块来转换特征并从中提取丰富的信息。MGD中提出的方法设计掩盖学生特征的随机像素,并训练其复制教师的特征。最近的一些作品也展示了通过直接使用原始特征或通过简单的转换来提高性能。MLP通过使用简单的通道转换,跨通道维度对齐特征来实现这一点。LAD表明,使用教师和学生的原始特征之间的MSE损失可以显著提高性能。

注意力机制

注意机制用于计算机视觉,以帮助模仿人类在处理场景时对图像区域的选择性注意。这种机制允许模型更准确地从图像中提取局部上下文信息,同时降低计算成本。一些方法,如SE-NET和SGE-NET,在通道间水平计算注意力,CBAM表明,在多个维度上获取注意力可以获得更高的准确性,并提出了沿着通道方面的关注利用空间注意力的策略。在KD的背景下,[1]通过结合[9]的概念并在蒸馏过程中使用空间自注意,利用了一种注意力机制。

在这项工作中,我们使用CBAM注意机制改进原始特征,因为它自适应地执行空间和通道注意。据我们所知,这是第一次同时利用空间和通道注意力进行知识蒸馏。

所提出的方法

在本节中,描述了提出的注意引导特征蒸馏的公式。所建议方法的概述如图2所示。

image-20240511144715428

image-20240511144809880为从教师或学生网络中获得的中间特征映射,空间维度为hxw,通道维度C。在网络的不同阶段,两个注意力模块聚合了中间特征的空间和通道描述符image-20240511144852442。然后这些空间和通道注意力描述符与原始特征图A相乘,生成新的丰富上下文特征图image-20240511145033257,将类间和空间间的信息引入原始特征图。特征细化的总体公式为:

image-20240511145103832

image-20240511145134829表示逐像素乘法。在乘法过程中,空间注意力沿通道传播,通道注意图沿空间维度传播。通道注意模块和空间注意模块的方法分贝见图3和图4.

image-20240511145247597

image-20240511145259032

通道注意图

如图3所示,通道注意模块(CAM)通过对中间特征映射A应用最大池化和平均池化算子来聚合空间信息。这些操作产生上下文描述符,然后由多层感知器处理以生成通道注意图Mc(A)。该图突出显示图像的有意义区域,同时模糊与分割任务无关的区域,如背景。中间特征映射A的通道感知描述符定义为:

image-20240511145829218

image-20240511145958465是对中间特征映射。image-20240511150024337应用平均池化和最大池化算子生成的特征映射。image-20240511150040037是两个池化特征映射之间的共享MLP的权重。image-20240511150051872后接ReLU激活函数,image-20240511150058548为sigmoid函数。

空间注意模块

如图4所示,空间注意模块(SAM)的操作与CAM非常相似。中间特征映射image-20240511150234121的空间信息通过使用max和averge池化运算符进行聚合,生成两个不同的空间上下文描述符image-20240511150335815。然后,计算特征映射A的空间上下文描述符为:

image-20240511150409941

其中表示一个7x7的卷积核。利用新获得的特征,建议的损失计算为:

image-20240511150504268

其中image-20240511151216147分别表示学生网络和教师网络的第j个中间丰富的上下文特征映射。在计算不同矩阵之前,每个特征映射沿着其通道进行归一化。

整体损失函数是的加权和,由:

image-20240511151332361

其中是一个权重系数,如4.2中所述进行了微调。在这种情况下,使用众所周知的交叉熵损失函数作为学生网络预测和ground truth标签之间的分割损失。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springfox.documentation.spi.DocumentationType没有OAS_30(从swagger2转到swagger3出现的问题)

直接开讲: 查看源码根本没有OAS_30的类型选择 右键package的springfox找到maven下载的包,打开到资源管理器 可以看到项目优先使用2版本的jar包,但是OAS_30只在3版本中才有,意思就是让项目优先使用以下图片中的3.0.0jar包 解决办法…

智能文件夹改名助手:一键秒级恢复原始名称,轻松告别繁琐操作,提升文件管理效率

文件夹管理成为了我们日常工作和生活中不可或缺的一部分。然而,随着文件数量的不断增加和文件夹命名的复杂性,我们经常面临着重命名文件夹的繁琐操作。你是否曾经因为误改文件夹名称而头疼不已?是否曾经为了找回原始名称而耗费大量时间&#…

docker容器实现https访问

前言: 【云原生】docker容器实现https访问_docker ssl访问-CSDN博客 一术语介绍 ①key 私钥 明文--自己生成(genrsa ) ②csr 公钥 由私钥生成 ③crt 证书 公钥 签名(自签名或者由CA签名) ④证书&#xf…

【Java】:向上转型、向下转型和ClassCastException异常

目录 先用一个生动形象的例子来解释向上转型和向下转型 向上转型(Upcasting) 向下转型(Downcasting) 向上转型 概念 例子 发生向上转型的情况 1.子类对象赋值给父类引用 2.方法参数传递 3.返回值 向下转型 概念 注意…

SpringSecurity的核心原理使用总结

1. SpringSecurity的核心原理 对于最原始Servlet请求处理的层次结构 客户端->过滤器链->Servlet 对于在SpringMVC中处理请求的层次结构 如何让Filter与Spring建立连接呢? 因此它增加了一个DelegatingFilterProxy 它是SpringMVC提供的的Filter,它内部代理了一个原生的F…

代码随想录——二叉树的层序遍历(Leetcode102)二叉树层序遍历的模板

题目链接 层序遍历(队列) 层序遍历一个二叉树。就是从左到右一层一层的去遍历二叉树。这种遍历的方式和我们之前讲过的都不太一样。 需要借用一个辅助数据结构即队列来实现,队列先进先出,符合一层一层遍历的逻辑,而用…

java项目之企业OA管理系统源码(springboot+vue+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的企业OA管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 企业OA管理系统的主要使用…

搭建Springboot的基础开发框架-02

本系列专题虽然是按教学的深度来定稿的,但在项目结构和代码组织方面是按公司系统的要求来书定的。在本章中主要介绍下基础开发框架的功能。后续所有章节的项目全是在本基础框架的基础上演进的。 工程结构介绍 SpringbootSeries:父工程,定义一…

语言:C#

一、VSCode生成exe 二、

【计算机毕业设计】基于微信小程序校园服务平台

随着 计算机技术的成熟,互联网的建立,如今,PC平台上有许多关于校园服务方面的应用程序,但由于使用时间和地点上的限制,用户在使用上存在着种种不方便,而开发一款基于微信小程序的校园服务平台,能…

Loongnix系统替换内核操作

Loongnix系统替换内核操作 一、终端下执行命令 sudo apt search linux-image* 返回结果中格式如: linux-image-4.19.0-19-loongson-3 为最新的内核源码。 二、下载内核源码包 sudo apt source linux-image-4.19.0-19-loongson-3 如提示:E: 您必须在 sources.li…

文件系统(未打开的文件)

之前我们讲述的一些文件操作都是在文件被打开的基础上的,因为用户想要对某个文件做操作的话,这个文件一定是被打开的,也就是一定是内存级的文件。 但是有的没有被操作的文件,是在磁盘中的,我们的笔记本是在SSD中&…

红米K60Pro/K50/K40系列澎湃OS解锁BL降级出厂MIUI14稳定版本方法

最新红米K60/60pro/K50/K50至尊/K40等多个系列手机都已经推送了澎湃OS系统,但新版的系统适配周期短或者等其他原因,导致很多小伙伴希望降级回到MIUI14系统,多个小米售后都拒绝降级服务,并且官方也没有开通1个自助降级的方法&#…

rt-thread 挂载romfs与ramfs

参考: https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutorial/qemu-network/filesystems/filesystems?id%e4%bd%bf%e7%94%a8-romfs https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/tutor…

AI回答总不满意?你的提问方式可能完全错误!

大家好,我是卷福同学,一个专注AI大模型整活的前阿里程序员,腾讯云社区2023新秀突破作者 向AI提问想写一篇论文,结果AI就生成2000字左右的文章后就完了。小伙伴们是不是也会遇到这类情况呢。今天来教大家AI提示词的技巧&#xff0c…

FANUC机器人故障诊断—报警代码(五)

FANUC机器人故障诊断中关于报警代码的介绍更新如下: 一、报警代码(SRVO-214) SRVO-214 6轴放大器保险丝熔断 [原因]6轴伺服放大器上的保险丝(FS2,FS3)已熔断。括号内的数字表示在第几台6轴伺服放大器上检测出了保险丝熔断。 [对策] 1.保险…

实现字符串比较函数(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int i, result;char s1[100], s2[100];//填充数组&#xff1b;printf("请输入数组s1的…

java线程局部变量使用方式

线程局部变量是Java中用于存储线程本地信息的变量。这种变量仅在线程的生命周期内存在&#xff0c;并且每个线程都有自己的一份拷贝。换句话说&#xff0c;线程局部变量是线程私有的&#xff0c;其他线程无法访问。 使用场景主要包括&#xff1a; 1. 存储线程状态信息&#xff…

医疗行业面临的网络安全挑战及应对策略

网络攻击已经成为各行各业日益严重的威胁&#xff0c;但医疗行业尤其容易受到影响。2023年&#xff0c;医疗领域的黑客事件占数据泄露的79.7%。 医疗领域 虽然患者、医疗服务提供者和决策者都对保护医疗信息有所关注&#xff0c;但关键的弱点在于提供电子健康记录&#xff08;…

【数据结构与算法】力扣 111. 二叉树的最小深度

题目描述 给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明&#xff1a; 叶子节点是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a; root [3,9,20,null,null,15,7] 输出&#xff1a; 2示例 2&#…