【小样本分割 2020 TPAMI 】PFENet

news2024/11/13 11:18:50

文章目录

  • 【小样本分割 2020 TPAMI 】PFENet
    • 1. 简介
      • 1.1 问题
        • 1) 高级特征误用造成的泛化损失
        • 2) 查询样本和空间样本之间的空间不一致
      • 1.2 方法
    • 2. 网络
      • 2.1 整体架构
      • 2.2 先验掩膜生成
      • 2.3 FEM模块
    • 3. 代码

【小样本分割 2020 TPAMI 】PFENet

论文题目:Prior Guided Feature Enrichment Network for Few-Shot Segmentation

中文题目:先验引导的特征富集网络的小样本语义分割

论文链接:https://arxiv.org/abs/2008.01449

论文代码:https://github.com/Jia-Research-Lab/PFENet/

论文团队:香港中文大学

发表时间:2020年8月

DOI:

引用:Tian Z, Zhao H, Shu M, et al. Prior guided feature enrichment network for few-shot segmentation[J]. IEEE transactions on pattern analysis and machine intelligence, 2020, 44(2): 1050-1065.

引用数:219【截止时间:2023年5月1号】

1. 简介

小样本分割的挑战:现有的小样本分割方法普遍存在高级特征误用造成的泛化损失以及查询样本与支持样本的空间不一致等问题。

1.1 问题

1) 高级特征误用造成的泛化损失

CANet的实验表明,使用中层特征比使用高层特征,实验性能更好。在小样本模型的特征处理过程中简单地添加高级特征会导致性能下降

  • CANet论文的理由:中层特征是由看不见的类共享的对象部分组成,可能蕴含着未知类别的特征。
  • 本文认为的理由:
    • 高层特征中包含的语义信息比中间层特征更class-specific(特定于类),所以高层特征更有可能使模型对未见类的泛化能力产生负面影响
    • 高层特征直接提供语义信息,在识别属于训练类别的像素和减少训练损失上的贡献大于中层特征,从而导致对训练类的偏爱

因此,在小样本设置中利用语义信息的方式并不简单。与以前的方法不同,我们使用ImageNet预先训练的查询的高级特征,并支持图像为模型生成“先验”。这些先验有助于模型更好地识别查询图像中的目标。

由于先前的生成过程是无训练的,因此生成的模型不会失去对看不见的类的泛化能力,尽管在训练过程中频繁使用看到的类的高级信息。


2) 查询样本和空间样本之间的空间不一致

现有大多方法利用掩膜全局平均池化从训练图像中提取类别向量。但是,因为查询图像中的目标可能会比支持样本大得多或小得多,或者姿态相差很大,所以使用全局平均池化会导致空间信息不一致。

由于样本有限,每个支持对象的比例和姿态可能与其查询目标存在很大差异,我们称之为空间不一致性。

1.2 方法

针对高层特征误用导致的泛化损失问题 —— 先验泛化方法

利用查询和支持图像的高层特征来生成模型的“先验值”(无需训练)

  • 先验信息有助于模型更好地识别查询图像;
  • 高层特征是从预先训练的ImageNet中得到的,
  • 所以生成先验的过程并没有增加额外的训练过程,所以生成的模型不会失去对未见类的泛化能力。极大地提高了预测精度,保持了高泛化性

针对支持和查询样本空间不一致问题 —— FEM方法

通过整合支持特征和先验信息,利用条件化的跨尺度信息交互自适应地丰富查询特征

水平地交互查询特征与每个尺度中的支持特征和先验掩码

垂直利用层次关系,通过自顶向下的信息路径,从精细特征中提取必要信息,丰富粗特征图

水平和垂直优化后,收集不同尺度的特征,形成新的查询特征

2. 网络

2.1 整体架构

image-20230423154922112

  • 通过预训练的CNN,分别得到支持图像和查询图像的高层特征和中层特征。
  • 利用中层特征生成查询和支持特征。
  • 利用高层特征生成先验掩膜。
  • 特征富集模块(FEM)利用支持特征和先验掩膜丰富查询特征。
  • 损失函数: L = σ n ∑ i = 1 n L 1 i + L 2 , \mathcal{L}=\dfrac{\sigma}{n}\sum_{i=1}^n\mathcal{L}_1^i+\mathcal{L}_2, L=nσi=1nL1i+L2,不同空间大小在New Query feature上的损失 + 最后的预测损失

2.2 先验掩膜生成

目的:将高层特征转化为先验掩膜(prior mask)

  • 先验掩膜:像素属于目标类的概率。具体来说,揭示查询特征和支持特征之间像素级的对应关系。掩膜上的一个高值像素表明对应的查询像素与支持特征中的至少一个像素具有高对应关系。所以此像素很可能处于查询图像的目标区域。
  • 此处的支持特征背景被设为0,所以查询特征的像素与支持特征上的背景没有对应关系。

I Q , I S I_Q,I_S IQ,IS表示输入查询和支持图像, M S M_S MS表示二进制支持掩码, F \mathcal{F} F表示骨干网络,并且 X Q , X S X_Q,X_S XQ,XS表示高级查询和支持特征。
X Q = F ( I Q ) , X S = F ( I S ) ⊙ M S , X_Q=\mathcal{F}(I_Q),\quad X_S=\mathcal{F}(I_S)\odot M_S, XQ=F(IQ),XS=F(IS)MS,

计算查询特征 X Q X_Q XQ X S X_S XS每个像素间的余弦相似度。
c o s ( x q , x s ) = x q T x s ∥ x q ∥ ∥ x s ∥ q , s ∈ { 1 , 2 , . . . , h w } cos(x_q,x_s)=\dfrac{x_q^Tx_s}{\|x_q\|\|x_s\|}\quad q,s\in\{1,2,...,hw\} cos(xq,xs)=xq∥∥xsxqTxsq,s{1,2,...,hw}
取所有支持像素中最大相似度作为响应值 c q c_q cq
c q = max ⁡ s ∈ { 1 , 2 , . . . , h w } ( c o s ( x q , x s ) ) , C Q = [ c 1 , c 2 , . . . , c h w ] ∈ R h w × 1 . \begin{array}{rcl}c_q&=&\max_{s\in\{1,2,...,hw\}}(cos(x_q,x_s)),\\ C_Q&=&[c_1,c_2,...,c_{hw}]\in\mathbb{R}^{hw\times1}.\end{array} cqCQ==maxs{1,2,...,hw}(cos(xq,xs)),[c1,c2,...,chw]Rhw×1.
归一化处理。
Y Q = Y Q − min ⁡ ( Y Q ) max ⁡ ( Y Q ) − min ⁡ ( Y Q ) + ϵ . Y_Q=\dfrac{Y_Q-\min(Y_Q)}{\max(Y_Q)-\min(Y_Q)+\epsilon}. YQ=max(YQ)min(YQ)+ϵYQmin(YQ).

2.3 FEM模块

输入:查询特征、支持特征、先验掩膜

输出:新的查询特征

分为三个过程:Inter-Source Enrichment、Inter-Scale Interaction、Information Concentration。

image-20230424152448470

3. 代码

参考资料

(2条消息) 【小样本分割】PFENet_Herbst_Loch的博客-CSDN博客

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

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

相关文章

flinkCDC相当于Delta.io中的什么 delta.io之CDF

类似flink CDC databricks 官方文档: How to Simplify CDC With Delta Lakes Change Data Feed - The Databricks Blog delta.io 官方文档: Change data feed — Delta Lake Documentation 概述 更改数据馈送 (CDF) 功能允许 Delta 表跟踪 Delta 表版本之间的行级更改 在…

C语言函数与递归

目录😊 1. 函数是什么🐾 2. 库函数🐾 3. 自定义函数🐾 4. 函数参数🐾 5. 函数调用🐾 6. 函数的嵌套调用和链式访问🐾 7. 函数的声明和定义🐾 8. 函数递归🐾 1. 函…

二叉搜索树(内含AVL树的旋转操作的详细解释)

二叉搜索树 二叉搜索树的概念二差搜索树结构设计二叉搜索树的操作以及实现遍历判空插入查找删除(☆☆☆)二叉搜索树的其他方法 二叉搜索树的应用二叉搜索树的性能分析二叉树习题练习AVL树AVL树的概念AVL树的结构设计AVL树的插入(非常重要)AVL树的旋转(☆☆☆☆☆)AVL树的插入操…

基于STATCOM的风力发电机稳定性问题仿真分析(Simulink)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

网页三剑客之 HTML

本章开始我们来介绍一下网页前端部分,我们只是简单的介绍一些常用的各种标签,其目的在于为我们后面的项目做准备。 我们并不要求能完全掌握前端的语法,但是在见到以后能够认识这些代码就可以了。 想走后端开发的,前端不需要多么…

【C++】哈希和unordered系列封装

1.哈希 1.1 哈希概念 顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O( l o g 2 N log_2 N l…

CSAPP学习笔记 2 浮点数(自用)

1. 首先 我们回忆一下计算机思维导论的编码问题 小白鼠问题 (107条消息) 小白鼠喝水问题------计算机思维 编码思想(自用)_和光同尘463的博客-CSDN博客 2. 对于一些可表示的浮点数比如 101.11可以用二进制精确表示 因为是2的倍数 但是 对于一些不可整除的浮点数 我们又如何…

阿里云服务器部署node项目笔记

阿里云部署node项目笔记 此过程中全部安装都按照B站教程实现本篇是个人笔记,许多细节并未陈述比如开发阿里云对应端口等,不是完整的过程,如有误导在此致歉。 安装node报错linux查看nginx配置文件 使用 nginx -t mongodb数据库安装解决&#x…

【JAVA】#详细介绍!!! 文件操作之File对象(1)!

本文内容不涉及文件内容操作,主要是对指定文件元信息的获取,以及通过java代码如何创建一个文件或者删除文件 目录 文件操作的File对象 File对象的基本操作方法 得到文件(夹)对象的信息元 1.getParent 2. getName 3.getPath 4…

CentOS 安装与配置Nginx【含修改配置文件】

1.安装Nginx yum install nginx -y2.启动Nginx systemctl start nginx查询是否启动nginx systemctl status nginx3.尝试访问 这是默认的配置文件 # For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * …

wordcloud制作词云图

wordcloud制作词云图 wordcloud中文方框问题 jieba(分词)jieba库分词的三种模式 wordcloud WordCloud(font_pathNone, width400, height-200,margin2,maskNone, max_words200, min_font_size4, stopwordsNone,background_colorblack, max_font_sizeNone…

js中setinterval怎么用?怎么才能让setinterval停下来?

setinterval()是定时调用的函数,可按照指定的周期(以毫秒计)来调用函数或计算表达式。 setinterval()的作用是在播放动画的时,每隔一定时间就调用函数,方法或对象。 setInterval() 方法会不停地调用函数,…

浙大数据结构与算法一些有意思的理论基础题

堆栈 有人给出了堆栈用数组实现的另一种方式,即直接在函数参数中传递数组和top变量(而不是两者组成的结构指针),其中Push操作函数设计如下。这个Push函数正确吗?为什么? #define MaxSize 100 ElementTyp…

Three.js--》Gsap动画库基本使用与原理

目录 Gsap动画库使用讲解 Gsap动画库基本使用 修改自适应画面及双击进入全屏 设置stats性能监视器 Gsap动画库使用讲解 GSAP的全名是GreenSock Animation Platform,是一个从flash时代一直发展到今天的专业动画库,今天将其与three.js进行结合&#x…

【DevOps视频笔记】1. DevOps的诞生

视频官网 目录 一、DevOps介绍 定义: 作用: 核心: 二、软件开发流程 三、流程图 一、DevOps介绍 定义: Development & Operations的缩写,也就是开发&运维DevOps 是一个不断提高效率并且持续不断工作的…

GPIO输出——LED闪烁、LED流水灯、蜂鸣器

1、STM32F1 GPIO 简介 GPIO ( General Purpose Input Output )通用输入输出口 可配置为 8 种输入输出模式 引脚电平: 0V~3.3V ,部分引脚可容忍 5V 输出模式下可控制端口输出高低电平,用以驱动 LED 、控制蜂鸣器、模拟通…

Spring 统一功能处理(拦截器)

文章目录 Spring拦截器1.统一用户登录权限校验1) SpringAOP 用户统一验证的问题2) Spring拦截器3) 拦截器实现原理4)同一访问前缀添加 2. 统一异常处理3. 统一数据返回格式1)统一数据返回的好处2)统一数据返回实现 Spring拦截器 SpringBoot统…

第13章 项目合同管理

文章目录 13.2.1 按信息系统 范围 划分的合同分类 4451、总承包合同2、单项工程承包合同3、分包合同 13.2.2 按项目 付款方式 划分的合同分类 4461、总价合同2、成本补偿合同(卖方有利)3、工料合同 13.3.1 项目合同的内容 44713.3.2 项目合同签订的注意事…

【设计模式】我终于读懂了迭代器模式。。。

看一个具体的需求 编写程序展示一个学校院系结构:需求是这样 要在一个页面中展示出学校的院系组成, 一个学校有多个学院, 一个学院有多个系。 如图: 传统的设计方案(类图) 传统的方式的问题分析 将学院看做是学校的子类&#xf…

深度学习(23):SmoothL1Loss损失函数

0. 基本介绍 SmoothL1Loss是一种常用的损失函数,通常用于回归任务中,其相对于均方差(MSE)损失函数的优势在于对异常值(如过大或过小的离群点)的惩罚更小,从而使模型更加健壮。 SmoothL1Loss的公式为: l o s s ( x , y ) { 0.5 …