【语义分割】PANet Few-Shot Image Semantic Segmentation with Prototype Alignment 论文理解

本文主要是介绍【语义分割】PANet Few-Shot Image Semantic Segmentation with Prototype Alignment 论文理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PANet Few-Shot Image Semantic Segmentation with Prototype Alignment 论文理解

  • 解决什么问题
  • 本文创新点\贡献
  • 前人方法
  • 本文IDEA来源
  • 方法
    • 方法概述
    • Alignment
    • Prototype learning
    • Non-parametric metric learning
    • Prototype alignment regularization (PAR)
  • 训练
  • 实验
    • PAR的分析
    • Generalization to weaker annotations
  • 总结

解决什么问题

少训练样本的分割


本文创新点\贡献

将prototype的提取和无参数的度量学习分开了

优点:

  1. 不需要额外学习参数,不容易过拟合

    啥意思,那一块不需要参数啊,度量学习?如何实现的呢?

  2. prototype嵌入和预测都是在计算好的特征图上进行的,没有额外的前向传播
  3. 简单易用,更弱的注释也可以,bbox或涂鸦?这尼玛还能分割了?

亮点

  1. 利用了prototypes上的度量学习,无参数
  2. 提出prototypes对齐正则化,充分利用support的知识
  3. 对于带有弱注释的少样本直接使用

前人方法

Few-shot learning

  • 输入放入神经网络,执行加权最近邻匹配来分类
  • 用一个向量特征来表示每个类
  • 独立的模组直接学习support特征和query特征的联系

Few-shot segmentation

  • 从support set生成一些用来调整query set的分割处理
  • 将提取的support特征和query对方到一起,然后decoder,来生成分割结果
  • 使用mask average pool从suppor set里提取前后景信息

本文IDEA来源

Prototypical networks for few-shot learning的延申


方法

在这里插入图片描述

方法概述

用同一个backbone来提取support和query的深度特征,然后使用masked average pooling从support的特征将不同的前景物体背景嵌入不同的prototypes中,每个prototype表示对应的类别,这样query图像的每个的像素通过参考离它的嵌入表达最近的特定类的prototype来标记,得到query的预测mask后;训练的时候,得到mask后,再将刚才提取的query feature和mask作为新的“support set”,将之前的support set作为新的“query set”,再用“support set”对“query set”做一波预测,然后再算一个loss

prototype紧凑且鲁棒的对每个语义类别进行表达;mask标记那块就是无参度量学习,通过和嵌入空间的逐像素匹配来执行分割

在这里插入图片描述
算 法 总 览 , 公 式 编 号 和 顺 序 相 同 算法总览,公式编号和顺序相同


Alignment

在这里插入图片描述
执行一个prototype对齐正则化,用query和他的mask建立新的support,然后用这个来预测原始的support set的分割,实验证明能鼓励query的prototype对齐他们的support的prototype,只有训练的时候这么做

反向再推一次,看看是否真的相似

图像说明
support的嵌入特征是圆形,query图像是三角形,对每个类学习prototype(蓝色和黄色的),query通过在嵌入空间中将他的特征和最近的prototype进行匹配,来进行分割,虚线就是匹配,右图进行了prototype对齐正则化,就是通过从support到query的反向对齐。


Prototype learning

方法的选择
使用support的mask注释分开学习前景和后景的prototypes,对于什么时候融合mask有两种策略,一种是早融合,一种是晚融合:

  • 早:在送入网络提取器之前,把mask和support图片融合
  • 晚:分别把mask和提取出来的前/后景的特征融合在一起

作者选择晚输入,能保证两个特征提取器的输入一致性(query是没有mask的)

操作
给定support set S i = { ( I c , k , M c , k ) } S_i = \{ (I_{c,k},M_{c,k})\} Si={(Ic,k,Mc,k)},用 F c , k F_{c,k} Fc,k表示图片的输出特征图, c c c表示类别的index, k = 1 , . . . , K k=1,...,K k=1,...,K是support图片的index, c c c类别的prototype用下式计算:
p c = 1 K ∑ k ∑ x , y F c , k ( x , y ) L [ M c , k ( x , y ) = c ] ∑ x , y L [ M c , k ( x , y ) = c ] p_c = \frac{1}{K}\sum_k\frac{\sum_{x,y}F^{(x,y)}_{c,k}L[M^{(x,y)}_{c,k}=c]}{\sum_{x,y}L[M^{(x,y)}_{c,k}=c]} pc=K1kx,yL[Mc,k(x,y)=c]x,yFc,k(x,y)<

这篇关于【语义分割】PANet Few-Shot Image Semantic Segmentation with Prototype Alignment 论文理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/532847

相关文章

spring IOC的理解之原理和实现过程

《springIOC的理解之原理和实现过程》:本文主要介绍springIOC的理解之原理和实现过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、IoC 核心概念二、核心原理1. 容器架构2. 核心组件3. 工作流程三、关键实现机制1. Bean生命周期2.

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

深入理解Apache Kafka(分布式流处理平台)

《深入理解ApacheKafka(分布式流处理平台)》ApacheKafka作为现代分布式系统中的核心中间件,为构建高吞吐量、低延迟的数据管道提供了强大支持,本文将深入探讨Kafka的核心概念、架构... 目录引言一、Apache Kafka概述1.1 什么是Kafka?1.2 Kafka的核心概念二、Ka

Python如何将大TXT文件分割成4KB小文件

《Python如何将大TXT文件分割成4KB小文件》处理大文本文件是程序员经常遇到的挑战,特别是当我们需要把一个几百MB甚至几个GB的TXT文件分割成小块时,下面我们来聊聊如何用Python自动完成这... 目录为什么需要分割TXT文件基础版:按行分割进阶版:精确控制文件大小完美解决方案:支持UTF-8编码

C++字符串提取和分割的多种方法

《C++字符串提取和分割的多种方法》在C++编程中,字符串处理是一个常见的任务,尤其是在需要从字符串中提取特定数据时,本文将详细探讨如何使用C++标准库中的工具来提取和分割字符串,并分析不同方法的适用... 目录1. 字符串提取的基本方法1.1 使用 std::istringstream 和 >> 操作符示

使用Python实现批量分割PDF文件

《使用Python实现批量分割PDF文件》这篇文章主要为大家详细介绍了如何使用Python进行批量分割PDF文件功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、架构设计二、代码实现三、批量分割PDF文件四、总结本文将介绍如何使用python进js行批量分割PDF文件的方法

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

使用Python将长图片分割为若干张小图片

《使用Python将长图片分割为若干张小图片》这篇文章主要为大家详细介绍了如何使用Python将长图片分割为若干张小图片,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果1. Python需求