论文阅读笔记:Cross-Image Relational Knowledge Distillation for Semantic Segmentation

论文阅读笔记:Cross-Image Relational Knowledge Distillation for Semantic Segmentation

  • 1 背景
  • 2 创新点
  • 3 方法
  • 4 模块
    • 4.1 预备知识
    • 4.2 跨图像关系知识蒸馏
    • 4.3 Memory-based像素到像素蒸馏
    • 4.4 Memory-based像素到区域蒸馏
    • 4.5 整体框架
  • 5 效果

论文:https://arxiv.org/pdf/2204.06986

代码:https://github.com/winycg/CIRKD

1 背景

本文在面向语义分割的高容量教师网络的指导下,研究KD以提高学生网络的性能。广泛的KD方法已经得到很好的研究,但主要用于图像分类任务。与图像级别的识别不同,分割任务针对的事更稠密的像素预测,更具挑战性。之前的研究发现,直接使用基于分类的KD方法来处理稠密预测,可能达不到理想的性能。

这是因为严格对齐教师和学生网络之间的粗略特征图可能会导致负约束,并忽略像素之间的结构化上下文。

最近提出用于语义分割的KD方法中,大部分都关注挖掘空间像素位置之间的相关性和依赖性,因为分割需要结构化的输出。这类方法在捕捉结构化的空间知识方面往往比传统的点对齐方式表现的更好。然而,以往的分割KD方法往往引导学生模仿教师从个体数据中产生的结构化信息,它忽略了利用像素之间的跨图像语义关系来传递知识,如图8所示。
在这里插入图片描述

基于这一动机,本文提出了跨图像关系知识蒸馏(Cross-Imge Relational Knowledge distillation,CIRKD)。其核心思想是构建跨整个训练图像的全局像素作为有意义的知识。一个好的预训练教师网络往往可以生成一个良好的像素嵌入空间,并捕获比学生网络更好的像素相关性。基于这个性质,作者将这种像素关系从教师转移到学生。具体来说,就是提出了像素到像素蒸馏和像素到区域蒸馏,以充分利用各种图像之间的结构化关系,前者旨在传递图像嵌入之间的相似性分布,后者侧重于转移与前者互补的像素到区域的相似性分布。区域嵌入通过平均池化来自同一类别的像素嵌入生成,并代表该类别的特征中心。像素到区域的关系表明像素和原类型之间的相对相似性。

如图1,具有相同颜色的圆表示来自同一图像的像素嵌入。 t i t_i ti s i s_i si 分别表示教师和学生图像中标记的第 i i i 个像素位置的像素嵌入。虚线表示两个像素之间的相似性关系。
在这里插入图片描述

2 创新点

(1)提出了跨图像关系知识蒸馏来传递全局像素关系。

(2)提出了像素到像素和像素到区域蒸馏的内存库机制,以充分探索用于传输的结构化关系。

(3)CIRKD在公共分割数据集上取得了最先进方法中最好的蒸馏性能。

3 方法

在这里插入图片描述

输入网络将教师网络的像素嵌入经过不同处理分别存储到在线像素队列和在线区域队列。同时,计算当前图像经过teacher和student的图像嵌入,和像素嵌入队列中采样的像素嵌入分别计算像素到像素的相似度矩阵,和在线区域队列采样的区域嵌入计算像素到区域的相似度矩阵,并进行对齐。

4 模块

4.1 预备知识

一个分割网络需要将图像中的每个像素从 C C C 类中分类到一个单独的类别标签。该网络可以分解为一个特征提取器和一个分类器。前者生成稠密特征图 F ∈ R H × W × d F∈R^{H × W × d} FRH×W×d,其中 H H H W W W d d d 分别表示通道的高度,宽度和数量。可以推理出沿空间维度的 H × W H × W H×W 像素嵌入。后者进一步将 F F F 转化为分类logit映射 Z ∈ R H × W × C Z∈R^{H × W × C} ZRH×W×C。传统的分割任务损失是使用交叉熵对每个像素及其真实标签进行训练:
在这里插入图片描述

其中 CE 表示交叉熵损失, σ \sigma σ 表示softmax函数, y h , w y_{h,w} yh,w 表示第(h,w)个像素。

一种直接的像素级分类概率蒸馏方法是将每个像素的类别概率分布从学生到对齐到教师,公式表示为:
在这里插入图片描述

这里 σ ( Z h , w s / T ) \sigma(Z_{h,w}^s/T) σ(Zh,ws/T) σ ( Z h , w t / T ) \sigma(Z_{h,w}^t/T) σ(Zh,wt/T) 表示学生和教师产生的第(h,w)个像素的软类别概率。 K L KL KL 表示KL散度, T T T 是温度,在之前的工作中 T = 1 T=1 T=1 是足够好的。

4.2 跨图像关系知识蒸馏

虽然式(1)(2)的训练目标被广泛应用于语义分割,但他们只独立处理像素级的预测,而忽略了像素之间的语义关系。一些分割KD方法试图通过像素亲和度建模来捕获空间关系知识。然而,这些KD方法只构建了单幅图像中像素之间的语义依赖关系。本文论证了跨图像关系知识对于基于师生模型的知识蒸馏也是有帮助的。

给定一个 mini-batch { x n } n = 1 N \{x_n\}^N_{n=1} {xn}n=1N,分割网络从 N N N 幅输入图像中提取N个结构化特征图 { F n ∈ R H × W × d } n = 1 N \{F_n∈R^{H×W×d}\}^N_{n=1} {FnRH×W×d}n=1N。通过 l2 归一化对 F n F_n Fn 中的每个像素嵌入进行预处理。为了便于记号,将 { F n ∈ R H × W × d } n = 1 N \{F_n∈R^{H×W×d}\}^N_{n=1} {FnRH×W×d}n=1N的空间维数重新定义为 { F n ∈ R A × d } n = 1 N \{F_n∈R^{A×d}\}^N_{n=1} {FnRA×d}n=1N,其中 A = H × W A = H × W A=H×W。对于第 i i i 幅图像 x i x_i xi 和第 j j j 幅图像 x j x_j xj i , j ∈ { 1 , 2 , ⋅ ⋅ ⋅ , N } i,j∈\{ 1,2,· · ·,N \} ij{12⋅⋅⋅N},可以计算跨图像两两相似度矩阵 S i j = F i F j T > j ∈ R A × A S_{ij} = F_iF_j^T > j∈R^{A × A} Sij=FiFjT>jRA×A。关系矩阵 S i j S_{ij} Sij 捕捉了像素间的跨图像成对相关性。

引导学生产生的成对相似性矩阵 S i j s S_{ij}^s Sijs 与教师产生的成对相似度矩阵 S i j t S_{ij}^t Sijt 对齐。蒸馏过程表述为:
在这里插入图片描述

其中, S i j ∣ a , : S_{ij|a,:} Sija,: 表示 S i j S_{ij} Sij 的第 a a a 行。通过softmax函数 σ \sigma σ S i j S_{ij} Sij 的每行相似度分布归一化为一个与温度 τ \tau τ 相关的概率分布。由于softmax归一化,学生网络和教师网络之间的数量级差异将被消除。 K L KL KL 散度用于对齐每一行的概率分布。对 N N N 幅图像中的每两幅图像进行像素到像素的蒸馏:
在这里插入图片描述

4.3 Memory-based像素到像素蒸馏

虽然mini-batch的蒸馏可以在一定程度上捕获跨图像关系,但由于分割任务的每个GPU的batch大小通常较小,例如1或2,因此很难从全局图像中建模依赖关系。为了解决这个问题,作者引入了一个在线像素队列,该队列可以在过去的mini-batch生成的存储库中存储大量的像素嵌入。这样就可以高效的检索到丰富的嵌入。

在密集分割任务重,每幅图像都会包含大量的像素样本,而同一目标区域的大多数像素往往是同质的。因此,存储所有像素可能会学习到冗余的关系知识,并减慢蒸馏过程。此外,将最后几个batch保存到队列中也可能会破坏像素嵌入的多样性。因此,作者使用了一个对类别敏感的像素嵌入队列 Q p ∈ R C × N p × d Q_p ∈ R^{C×N_p×d} QpRC×Np×d,其中 N p N_p Np 是每个类的像素嵌入个数, d d d 是嵌入大小。对于小批次图像中的每一幅图像,只随机采样一小部分 V V V,即 V < < N p V <<N_p V<<Np,将来自同一类别的像素嵌入推送到像素队列 Q p Q_p Qp 中,随着蒸馏的进行,队列在先进先出策略下逐步更新。

受论文《Seed: Self-supervised distillation for visual representation》在学生和教师网络之间采用一个共享的像素队列,并存储教师在蒸馏过程中产生的像素嵌入。给定图像 x n x_n xn ,学生网络和教师网络生成的像素嵌入分别为 F n s ∈ R A × d F_n^s∈R^{A×d} FnsRA×d F n t ∈ R A × d F_n^t∈R^{A×d} FntRA×d。对 F n s F_n^s Fns F n t F_n^t Fnt 的每个像素嵌入进行 L2归一化处理。将 F n s F_n^s Fns F n t F_n^t Fnt 作为锚点,从像素队列 Q p Q_p Qp 中随机采样 K p K_p Kp 个对比嵌入 { v k ∈ R d } k = 1 K p \{v_k∈R^d\}_{k=1}^{K_p} {vkRd}k=1Kp,这里采用类别平衡采样,因为来自不同类别的像素数通常符合长尾分布。为了方便表述,令 V p = [ v 1 , v 2 , … , v K p ] ∈ R K p × d V_p=[v_1,v_2,…,v_{K_p}]∈R^{K_p×d} Vp=[v1,v2,,vKp]RKp×d { v k ∈ R d } k = 1 K p \{v_k∈R^d\}_{k=1}^{K_p} {vkRd}k=1Kp 沿着行维度拼接。然后,将学生和教师的锚点和对比嵌入之间的像素相似度矩阵建模为 P s P^s Ps P t P^t Pt:
在这里插入图片描述

教师网络的像素相似度矩阵往往表现比学生网络更好。强迫学生的 P s P^s Ps 模仿教师的 P t P^t Pt 来惩罚差异。类似的,对 P s P^s Ps P t P^t Pt 每一行分布进行softmax归一化,并通过KL散度损失进行像素到像素的蒸馏。公式如下:
在这里插入图片描述

每次迭代后,将每类的 V 个教师像素嵌入推进像素队列 Q p Q_p Qp 中。

4.4 Memory-based像素到区域蒸馏

离散的像素嵌入可能无法完全捕捉图像内容。因此,作者又引入了一个在线区域队列,可以在内存库中存储大量更具代表性的区域嵌入。除了像素到像素的蒸馏,进一步构建像素到区域的蒸馏来建模全局图像中像素和类别区域嵌入之间的关系。每个区域嵌入表示图像中一个语义类的特征中心。通过平均池化单幅图像中属于 c c c 类的所有像素嵌入来构造 c c c 类的区域嵌入。

在蒸馏过程汇中保持一个区域队列 Q r ∈ R C × N r × d Q_r∈R^{C×N_r×d} QrRC×Nr×d,其中 N r N_r Nr 是每个类的区域嵌入个数, d d d 是嵌入大小,对于每一次迭代,从 Q r Q_r Qr 中进行类平衡采样 K r K_r Kr 个对比区域嵌入 { r k ∈ R d } k = 1 K r \{r_k∈R^d\}_{k=1}^{K_r} {rkRd}k=1Kr,为了方便表述,令 V r = [ r 1 , r 2 , … , r K r ] ∈ R K r × d V_r=[r_1,r_2,…,r_{K_r}]∈R^{K_r×d} Vr=[r1,r2,,rKr]RKr×d { r k ∈ R d } k = 1 K r \{r_k∈R^d\}_{k=1}^{K_r} {rkRd}k=1Kr 沿着行维度拼接。给定输入图像 x n x_n xn,将从像素嵌入 F n s ∈ R A × d F^s_n∈R^{A × d} FnsRA×d F n t ∈ R A × d F^t_n∈R^{A × d} FntRA×d 到区域嵌入 V r V_r Vr 建模为像素到区域的相似度矩阵 R s R^s Rs R t R^t Rt
在这里插入图片描述

与式(6)相似,通过KL -散度损失提取学生和教师网络之间的归一化像素-区域相似性矩阵:
在这里插入图片描述

对于每个小批次,将所有教师区域嵌入推入区域队列 Q r Q_r Qr

4.5 整体框架

整体框架如图2。损失函数上,采用传统的逐像素交叉熵损失 L t a s k L_{task} Ltask 和 类概率蒸馏损失 L k d L_{kd} Lkd 作为基础损失,总损失为:
在这里插入图片描述

其中, α , β , γ \alpha,\beta,\gamma α,β,γ 是权重系数。实验中设置 α = 1 , β = 0.1 , γ = 0.1 \alpha=1,\beta=0.1,\gamma=0.1 α=1,β=0.1,γ=0.1。当学生网络和教师网络的嵌入大小不匹配时,可以在学生网络上加入一个投影头,由两个 1×1 卷积层, ReLU 和 BN层组成,在推理时丢弃,不会引入额外推理成本。

CIRKD的整体训练pipeline如算法1。
在这里插入图片描述

5 效果

在CityScapes上的效果对比如表1。
在这里插入图片描述

在CamVid上的效果对比如表2。
在这里插入图片描述

在VOC上的效果对比如表3。
在这里插入图片描述

图3展示了单个类别IoU分数在学生网络上的表现。可以观察到,CIRKD比基线(w/o蒸馏)和CWD获得了更好的IoU得分,特别是那些IoU得分较低的类别。例如,在Wall上比baseline和CWD分别相对提升了10.4 %和9.4 %。
在这里插入图片描述

进一步的,图4可视化得展示了分割结果。
在这里插入图片描述

图5将CWD和CIRKD在学生网络上学习到的特征嵌入进行T-SNE可视化。与CWD相比,CIRKD训练的网络表现出结构良好的像素级语义特征空间。
在这里插入图片描述

表4为Loss项的消融实验。
在这里插入图片描述

表6为缓存队列大小的消融实验。
在这里插入图片描述

表7为超参 τ \tau τ ,像素嵌入和区域嵌入采样个数 K p , K r K_p, K_r Kp,Kr 的消融实验。
在这里插入图片描述

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

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

相关文章

Redis和Docker

Redis 和 Docker 是两种不同的技术&#xff0c;它们各自解决不同的问题&#xff0c;但有时会一起使用以提供更高效和灵活的解决方案。 Redis 是一个开源的内存数据结构存储系统&#xff0c;可以用作数据库、缓存和消息代理。它设计为解决MySQL等关系型数据库在处理大量读写访问…

MySQL数据操作与查询-T5 MySQL函数

一、数学函数和控制流函数 1、数学函数 &#xff08;1&#xff09;abs(x) 计算x的绝对值。 1 select abs(‐5.5),abs(10) &#xff08;2&#xff09;pow(x,y) 计算x的y次方的值。 1 select pow(2,8),pow(8,2) &#xff08;3&#xff09;round(x) 和 round(x,y) 对数字x进…

php遇到的问题

1、 underfined at line 3 in xxx.php , 错误提示&#xff0c;注释这行代码 // error_reporting(DEBUG ? E_ALL : 0); 目录&#xff1a;config/config.php

Ubuntu20.04部署Qwen2.openvino流程

下载代码 里面包含依赖 git clone https://github.com/OpenVINO-dev-contest/Qwen2.openvino.gitpython环境配置 创建虚拟环境 conda create -name qwen2openvino python3.10 conda activate qwen2openvino安装依赖 pip install wheel setuptools pip install -r requirem…

CCAA质量管理【学习笔记】​​ 备考知识点笔记(二)

第三节 GB/T19001-2016 标准正文 本节为ISO9001:2015 标准条款的正文内容&#xff0c;各条款中的术语参照上节内容理解时&#xff0c;会很轻松。本节不再一一对各条款讲解。 引 言 0.1 总 则 采用质量管理体系是组织的一项战略决策&#xff0c;能够帮助其提高整体绩效…

这个网站有点意思,可做SPRINGBOOT的启动图

在 SpringBoot 项目的 resources 目录下新建一个 banner.txt 文本文件&#xff0c;然后将启动 Banner 粘贴到此文本文件中&#xff0c;启动项目&#xff0c;即可在控制台展示对应的内容信息。 下面这个工具很好用&#xff0c;收藏精哦

PFA 反应罐内衬特氟龙 润滑绝缘行业加工 匠心工艺

PFA反应罐别名也叫反应瓶&#xff0c;储样罐&#xff0c;清洗罐等。可作为样品前处理实验中消解样品和中低压溶样的反应容器&#xff0c;广泛应用于半导体分析、新材料、新能源、同位素分析等。 PFA反应罐规格参考&#xff1a;250ml、300ml、350ml、500ml、1L等。 产品特点&…

官网首屏:太漂亮了,真是着了它的魔,上了它的道。

大气的企业官网致力于提供用户友好的界面和优质的用户体验。网页经过精心设计和开发&#xff0c;旨在展示客户的品牌形象和产品信息&#xff0c;并为用户提供便捷的服务和沟通渠道。 官网设计追求简洁、美观、易用的原则&#xff0c;以吸引用户的注意力并提供清晰的导航和信息…

手机丢失不惊慌,华为手机已升级至楼层级设备查找!

出门总是丢三落四&#xff0c;手机丢了怎么办&#xff1f;不要怕&#xff0c;只要你的华为手机升级至云空间新版本&#xff0c;就可以进行楼层级设备查找&#xff0c;现在可以查看到具体的楼层了&#xff01; 之前有手机丢失过的朋友&#xff0c;肯定有相似的经历&#xff0c…

【会议征稿,ACM出版】2024年云计算与大数据国际学术会议(ICCBD 2024,7月26-28)

2024年云计算与大数据国际学术会议(ICCBD 2024)将于2024年7月26-28日在中国大理召开。ICCBD 2024将围绕“云计算与大数据”的最新研究领域, 旨在为从事研究的专家、学者、工程师和技术人员提供一个国际平台&#xff0c;分享科研成果和尖端技术&#xff0c;了解学术发展趋势&…

Windows安装配置CUDA12.5

搞大模型往往都需要GPU加速&#xff0c;本次在家里的PC上安装CUDA来实现GPU加速。 一、环境准备 操作系统&#xff1a;Windows11 23H2 GPU&#xff1a;RTX 4070 Ti Super 显卡驱动&#xff1a;555.99 &#xff08;NVIDIA GeForce 驱动程序 - N 卡驱动 | NVIDIA&#xff09; …

基于JSP技术的定西扶贫惠农推介系统

开头语&#xff1a;你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;文末可以找到我的联系方式。 开发语言&#xff1a;JSP 数据库&#xff1a;MySQL 技术&#xff1a;B/S架构、JSP技术 工具&#xff1a;Eclipse、MySQL、Tomcat 系统展示 首…

【python】OpenCV—Background Estimation(15)

文章目录 中值滤波中值滤波得到图像背景移动侦测 学习来自 OpenCV基础&#xff08;14&#xff09;OpenCV在视频中的简单背景估计 中值滤波 中值滤波是一种非线性平滑技术&#xff0c;主要用于数字信号处理&#xff0c;特别是在图像处理中去除噪声。 一、定义与原理 定义&am…

大模型日报2024-06-14

大模型日报 2024-06-14 大模型资讯 Meta发布Llama 3并专注大规模语言模型研发 摘要: Meta于2024年4月发布了开源的大规模语言模型Llama 3&#xff0c;并详细解释了他们在训练这些模型时关注的重点和方法。Meta目前正专注于大规模语言模型的进一步发展。 微软研究人员推出VALL-E…

log4j漏洞学习

log4j漏洞学习 总结基础知识属性占位符之Interpolator&#xff08;插值器&#xff09;模式布局日志级别 Jndi RCE CVE-2021-44228环境搭建漏洞复现代码分析日志记录/触发点消息格式化 Lookup 处理JNDI 查询触发条件敏感数据带外漏洞修复MessagePatternConverter类JndiManager#l…

论文阅读笔记:DepGraph: Towards Any Structural Pruning

论文阅读笔记&#xff1a;DepGraph: Towards Any Structural Pruning 1 背景2 创新点3 方法4 模块4.1 分组4.2 依赖图4.3 网络分解4.4 依赖建模4.4 组级剪枝 5 效果 论文&#xff1a;https://arxiv.org/pdf/2301.12900 代码&#xff1a;https://github.com/VainF/Torch-Prunin…

LDR6020显示器应用:革新连接体验,引领未来显示技术

一、引言 随着科技的飞速发展&#xff0c;显示器作为信息展示的重要载体&#xff0c;其性能和应用场景不断得到拓展。特别是在办公、娱乐以及物联网等领域&#xff0c;用户对显示器的需求越来越多样化。在这一背景下&#xff0c;LDR6020显示器的出现&#xff0c;以其卓越的性能…

opencv_GUI

图像入门 import numpy as np import cv2 as cv # 用灰度模式加载图像 img cv.imread(C:/Users/HP/Downloads/basketball.png, 0)# 即使图像路径错误&#xff0c;它也不会抛出任何错误&#xff0c;但是打印 img会给你Nonecv.imshow(image, img) cv.waitKey(5000) # 一个键盘绑…

AutoCAD 2025 ObjectARX(C++)二次开发环境搭建

&#xff08;原文&#xff1a;https://blog.iyatt.com/?p16480&#xff09; 基本环境 AutoCAD 机械版 2025 Visual Studio 2022&#xff08;需要安装“C 桌面开发”&#xff09; 开发环境 下载 &#xff08;1&#xff09;ObjectARX SDK 下载&#xff08;提供开发使用的 …

【计算机网络仿真实验-实验2.4、2.5】静态路由、动态路由(RIP)

实验2.4 静态路由 1. 实验拓扑图 注意&#xff1a;有些同学不知道两个路由器之间如何用串行DCE(红线)相接&#xff0c;只需要为路由器分别增加新的HWIC-2T接口卡就好了 不知道如何添加物理接口的&#xff0c;可以查看本人计算机网络专栏中【计算机网络仿真实验——实验准备】…