FS【1】:SSP

文章目录

  • 前言
  • 1. Abstract
  • 2. Introduction
    • 2.1. Motivation
      • 2.1.1. Few-shot Segmentation (FSS) Task
      • 2.1.2. Few-shot Segmentation (FSS) Problem
    • 2.2. Contribution
  • 3. Methods
    • 3.1. Motivation
    • 3.2. Overview of the architecture
    • 4.3. Self-support Prototype
    • 4.4. Adaptive Self-support Background Prototype
    • 4.5. Self-support Matching
  • 总结


前言

这是一篇发表在 ECCV 2022 上的论文,对后续的许多 few-shot 方法都有着一定的启发作用。原论文作者在知乎上也给出了自己的解读:ECCV 2022 | SSP: 自支持匹配的小样本任务新思想

原论文链接:Self-support Few-Shot Semantic Segmentation


1. Abstract

现有的 few-shot 分割方法严重受限于所提供的少数几张照片支持对类内变化的覆盖范围。

为此,本文提出了一种新颖的自支持匹配策略来缓解这一问题,该策略使用查询原型来匹配查询特征,其中查询原型是从高置信度查询预测中收集的。这种策略能有效捕捉查询对象一致的基本特征,从而恰当地匹配查询特征。本文还提出了自适应自支持背景原型生成模块和自支持损失,以进一步促进自支持匹配过程。


2. Introduction

2.1. Motivation

2.1.1. Few-shot Segmentation (FSS) Task

对于一个感兴趣的目标新类别,小样本分割算法通过给定的支持图片 I s I_s Is 对查询图片 I q I_q Iq 中的目标新类别进行分割。其中,对每个目标新类别来说,在训练集中没有出现或者没有标注,且在测试时对应的样本数量只有少数几张图片(一般低于 10 张)。经典的小样本分割算法是分别在支持图片 I s I_s Is 对查询图片 I q I_q Iq 上提取特征,并利用 Masked Average Pooling 操作和 support GT mask 在支持图片特征 F s F_s Fs 上生成支持特征原型 P s P_s Ps。最后计算支持特征原型 P s P_s Ps 和查询图片特征 F q F_q Fq 每个空间位置特征之间的余弦相似度(cosine similarity),并将这个 cosine similarity map 作为预测的分割结果。
在这里插入图片描述

2.1.2. Few-shot Segmentation (FSS) Problem

小样本分割任务存在一个非常重要的问题,就是 support 和 query 间的 appearance gap。在 support 和 query 中的同类别物体可能存在非常大的外观差异性。

这一问题源自于小样本任务的特性,即数据稀少性和数据多样性。其中数据稀少性是指 support 数据很少,通常每个新类别只有不到10个样本,而数据多样性是指 query 的数量是无穷无尽的。所以 support 中的物体根本无法涵盖所有 query 中的同类别物体。

2.2. Contribution

本文提出了一种全新的自支持小样本分割算法。其思想是利用查询特征原型 P q P_q Pq 去匹配查询图片特征 F q F_q Fq。其中查询特征原型 P q P_q Pq 是利用高置信度的 query prediction mask 提取对应的查询图片特征 F q F_q Fq 得到的,而 query prediction mask 则是由传统 support-query 匹配算法生成的。因为这种 query 特征的自匹配性质,我们将方法命名为自支持(self-support)算法。


3. Methods

3.1. Motivation

自支持匹配想法源自于格式塔理论(Gestalt principle),即物体的整体性:相对于不同物体上的不同部分,同一个物体上的不同部分会更像。

为了验证这一想法,本文统计了 Pascal VOC 数据集中的图片不同像素之间的相似度,其特征是用 ImageNet 上预训练的 ResNet-50 提取的。

在这里插入图片描述

如 Table 1. 所示,对于前景像素来说,相同物体上的前景像素之间的相似度远大于不同物体上的前景像素之间的相似度,在背景像素上也观察到相同的现象。

在这里插入图片描述

为了进一步验证本文的自支持想法,如 Table 2. 所示,本文使用传统的支持特征原型 P s P_s Ps(从 support 图片中提取的 support prototype)和自支持特征原型 P q P_q Pq(从 query 图片中提取的 self-support prototype,因为知道 query GT mask),分别与查询图片特征 F q F_q Fq 进行匹配。自支持特征原型 P q P_q Pq 的匹配结果可以达到 83.0 mIoU,比支持特征原型 P s P_s Ps 的匹配结果高近 25 个点。但是在实际使用中不可能知道 query GT mask,所以本文人为地设置不同大小的 query GT mask 并引入噪声来模拟预测得到的 query mask。在这种情况下,自支持特征原型 P q P_q Pq 的匹配结果仍然高于 74 mIoU。这两个实验很好地支持了自支持匹配的想法。

3.2. Overview of the architecture

本文通过传统的 support prototype based matching 生成初始的 query mask,并利用 query mask 在查询图片特征 F q F_q Fq 上提取自支持特征原型 P q P_q Pq。最后将自支持特征原型 P q P_q Pq 和支持特征原型 P s P_s Ps 融合并与查询图片特征 F q F_q Fq 进行匹配。同时本文认为可以进行多次的自支持匹配对自支持特征原型 P q P_q Pq 进行优化。
在这里插入图片描述

4.3. Self-support Prototype

常规的支持原型生成程序是:

在这里插入图片描述

MAP 用于生成与查询特征 F q F_q Fq 匹配的预测,同时可以得到 estimated query mask M 1 M_1 M1

在这里插入图片描述

然后,可以用同样的方法生成查询原型 P q P_q Pq,只是在推理过程中查询图像 M q M_q Mq 的 GT mask 不可用。因此,需要使用预测的 query mask M ~ q \tilde{M}_q M~q 来聚合查询特征。查询原型生成过程可表述为:

在这里插入图片描述

其中, M ~ q = 1 ~ ( M 1 > τ ) \tilde{M}_q = \tilde{1}(M_1 > \tau) M~q=1~(M1>τ)

  • 1 ~ \tilde{1} 1~ 代表 indicator function,通常用于将 1 分配不给一组元素中属于集合的元素,将 0 分配给不属于集合的元素
  • τ \tau τ 用于控制查询特征采样范围,前景和背景查询掩码的阈值分别设置为 { τ f g = 0.7 , τ b g = 0.6 } \{ \tau_{fg} =0.7, \tau_{bg} =0.6 \} {τfg=0.7,τbg=0.6}

估计的自支持原型 P q = { P q , f , P q , b } P_q = \{ P_{q,f}, P_{q,b}\} Pq={Pq,f,Pq,b} 将用于匹配查询特征

本文发现,估计的查询掩码只需要涵盖一些有代表性的对象片段,就足以检索到同一对象的其他区域。为了验证部分对象或对象片段是否能够支持整个对象,我们使用部分原型对模型进行了训练和评估,这些原型是根据地面实况掩码标签随机选择的特征聚合而成的

在这里插入图片描述

Table 2. 所示,在减少用于生成原型的聚合对象区域的同时,本文提出的自支持原型始终保持着较高的分割性能

本文在部分原型中引入了噪声特征(噪声比为 20%),以便在推理过程中模拟真实的自支持生成,方法是从非目标区域随机选择图像特征,并将这些特征汇总到上述部分原型中。如 Table 2. 所示,在这种噪声情况下,我们的自支持原型仍然比传统的支持原型好用得多

需要注意的是,每幅图像可能包含多个对象,所以本文提出的自支持原型也能很好地处理多对象场景

4.4. Adaptive Self-support Background Prototype

本文的算法分别对 foreground 和 background 的 prototype 进行建模,但是 foreground 和 background 的性质完全不一样:

在这里插入图片描述

  • 对于 foreground 来说,同一个物体的不同部分之间一般是相似的,具有全局的相似性,所以可以使用 MAP 将所有的 foreground 像素聚合为一个 prototype 向量来表示 foreground

在这里插入图片描述

  • 但是对于 background 来说,背景一般比较杂乱,没有全局的相似性,只有局部的相似性,所以用一个 prototype 向量来表示 background 是有问题的。因此基于 background 的局部相似性这一特点,本文提出了 adaptive self-support background prototype (ASBP),即根据当前 background 像素与其他 background 像素之间的相似度,加权地融合 background 特征。具体来说:

    • 首先通过对查询特征 F q F_q Fq 与背景掩码 M ~ q , b \tilde{M}_{q,b} M~q,b 的掩码乘法,收集背景查询特征 F q , b F_{q,b} Fq,b

    • 然后,可以通过矩阵乘法运算 MatMul 生成重塑的背景查询特征 F q , b F_{q,b} Fq,b 的像素与完整查询特征 F q F_q Fq 之间的亲和矩阵 A A A

      在这里插入图片描述

    • 最后,亲和矩阵通过 softmax 运算沿第一维进行归一化,用于对每个查询像素的背景查询特征进行加权汇总,生成自适应自支持背景原型 P q , b ∗ P^*_{q,b} Pq,b

    在这里插入图片描述

用自适应自支持背景原型更新自支持原型: P q = { P q , f , P q , b ∗ } P_q = \{ P_{q,f}, P^*_{q,b} \} Pq={Pq,f,Pq,b}

4.5. Self-support Matching

本文对支持原型 Ps 和自支持原型 Pq 进行了加权组合:

在这里插入图片描述

计算增强支持原型 P s ∗ P^*_s Ps 与查询特征 F q F_q Fq 之间的余弦距离,生成最终的匹配预测结果:

在这里插入图片描述

然后,在生成的距离图上应用训练监督:

在这里插入图片描述

为了进一步简化自支持匹配过程,本文提出了一种新的查询自支持损失:

在这里插入图片描述

通过在支持特征上使用相同的步骤,可以引入支持自匹配损失 L s \mathcal{L}_s Ls

最后,通过联合优化上述所有损失,以端到端的方式训练模型:

在这里插入图片描述


总结

算法优点:

  1. 第一个优点是自支持算法会更加受益于更好的 backbone 和 support 数量,因为它们可以带来更准确的初始 query mask 预测结果,可以提取更准确的 self-support prototype,进而得到更好的分割结果
  2. 第二个优点是更高置信度的预测结果。分割算法会使用阈值将预测结果中的连续 [ 0 , 1 ] [0,1] [0,1] 值变为 0-1 值,但是初始的预测结果质量也很重要,尤其是对于困难样本。如果预测值在 0.5 附近,这个点上的预测就很容易失败。本文希望得到更加鲁棒和高置信度的预测结果。因此,本文使用 MAE 对预测结果的连续 [ 0 , 1 ] [0,1] [0,1] 值进行评估
  3. 第三个优点是自支持算法非常通用,没有额外的参数量,且额外的计算量也很小,模型很小,训练和测试都很快,并可以直接应用在其他的小样本分割算法上

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

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

相关文章

C++:多态究竟是什么?为何能成为面向对象的重要手段之一?

C:多态究竟是什么?为何能成为面向对象的重要手段之一? 前言一、多态的概念二、多态的定义及实现2.1 多态的构成条件2. 2 虚函数2.3 虚函数的重写2.3.1 虚函数重写的例外1:协变(基类与派生类虚函数返回值类型不同)2.3.2 虚函数重写…

领域驱动模型之各层实体严格分层处理

为什么要分层处理呢? 在领域驱动模型中,分为应用层(application)、领域层(domain)、基础设施层(infrastructure)。各层只能处理和访问自己所属层的 entity 或者 dto 对象&#xff0…

基于ssm的理财通的设计与实现+jsp论文

摘 要 在如今社会上,关于信息上面的处理,没有任何一个企业或者个人会忽视,如何让信息急速传递,并且归档储存查询,采用之前的纸张记录模式已经不符合当前使用要求了。所以,对理财信息管理的提升&#xff0c…

针对大规模服务日志敏感信息的长效治理实践

文章目录 1 背景2 目标与措施3 实施3.1 脱敏工具类3.2 JSON脱敏3.3 APT自动脱敏3.3.1 本地缓存问题3.3.2 JDK序列化问题 3.4 弃用方案 4 规划5 总结 1 背景 近年来,国家采取了多项重要举措来加强个人数据保护,包括实施《中华人民共和国网络安全法》和《…

TypeError: Cannot read properties of undefined (reading ‘namespace‘)

项目场景: 背景: Java 项目中使用 activi 流程引擎, 创建一个带有排他网关的 申请审核流程, 创建之后 查看 流程图出现 如下所示的 错误信息。 前端页面 不显示 任何 流程图信息。 问题描述 问题: 例如&#xff1…

鸿蒙系列--属性动画

一、定义 当组件的通用属性发生改变时而产生的属性渐变效果 说明: 当组件的通用属性发生改变时,组件状态由初始状态逐渐变为结束状态的过程中,会创建多个连续的中间状态,逐帧播放后,就会形成动画 二、创建 给组件(如…

SCS模型(径流曲线法)概述

目录 1.介绍:2.计算公式:参考文献:小结: 1.介绍: SCS模型(径流曲线法)是由美国农业部水土保持局(Soil Conservation Service) 基于经验提出,最初用于预测在农业用地小型流域降雨所累…

【算法每日一练]-dfs (保姆级教程 篇9) #俄罗斯方块 #ABC Puzzle #lnc的工资

目录 今日知识点: 二维图形的状态压缩,存下所有的合法状态然后暴力遍历 dfs的优化剪枝 二项式定理 俄罗斯方块 ABC Puzzle lnc的工资 俄罗斯方块 322D 题意:在4*4方格中分别给出3个俄罗斯方块,问是否可以经过旋转&#xf…

C/C++动态内存管理

文章目录 前言1.C/C内存分布2.C语言中动态内存管理方式:malloc/calloc/realloc/free3.C内存管理方式3.1 new/delete操作内置类型3.2 new和delete操作自定义类型 4. operator new与operator delete函数4.1 operator new与operator delete函数 5. new和delete的实现原…

软件测试|MySQL BETWEEN AND:范围查询详解

简介 在MySQL数据库中,使用BETWEEN AND操作符可以进行范围查询,即根据某个字段的值在指定范围内进行检索数据。这个操作符非常有用,因为它可以让我们轻松地筛选出位于两个特定值之间的数据,而不需要使用复杂的条件语句。 BETWEE…

数据挖掘在制造业中的预测与优化应用

随着大数据时代的到来,数据挖掘技术在各行各业的应用日益广泛,尤其在制造业中,其对于提升生产效率、降低运营成本、优化供应链管理等方面发挥着不可替代的作用。本文将探讨数据挖掘在制造业中的预测与优化应用,通过深入剖析实际案…

如何选择最适合的采购付款 (P2P) 解决方案?

无论企业的业务流程执行得如何,流程中始终存在改进空间。更好的管理系统是获得更好结果的关键,尤其是当企业处于增长阶段时。强大的采购到付款(P2P)系统是加快采购流程,同时保持采购支出可见性的最有效方法之一。 什么…

尚硅谷vite+vue3 (尚医通)项目实战笔记

如何配置项目运行后自动打开? 在package.json 启动命令中添加 “dev”: “vite --open”, 如何配置src的别名? 利用node内置模块path设置一下在vite.config.ts 中的别名 import { defineConfig } from vite import vue from vitejs/plugin-vue import …

IPv6路由协议---IPv6动态路由(OSPFv3-4)

OSPFv3的链路状态通告LSA类型 链路状态通告是OSPFv3进行路由计算的关键依据,链路状态通告包含链路状态类型、链路状态ID、通告路由器三元组唯一地标识了一个LSA。 OSPFv3的LSA头仍然保持20字节,但是内容变化了。在LSA头中,OSPFv2的LS age、Advertising Router、LS Sequence…

Vue3技术解析(小册子)

随着 Vue 3 正式版本的发布,未来 Vue 3 将会成为前端的主流框架,这个毋庸置疑。Vue 3 在使用方面会兼容部分 Vue 2.x 的特性,比如 options API。 所以,究竟是要先学习 Vue 2 打好基础,还是直接学习 Vue 3 呢&#xff…

职场日常英语口语,成人英语培训学校,柯桥学英语推荐哪里

“玩手机”用英语怎么说?你的第一反应是不是:play the phone? 在英语中,play这个动词通常表示“玩耍、娱乐、操纵”等意思,而手机是一种工具,不是玩耍的对象。 换句话说,我们“玩手机”&#xf…

主食冻干哪款好?十大放心主食冻干名单推荐

作为养猫的人,我们都知道每天最担心的事情就是如何为心爱的猫咪选择一款高品质的猫粮。我们都希望为猫咪提供最好的营养,让它们健康快乐地成长。然而,近期的一些事件,如百利猫粮生虫和VE主食冻干掰开有虫,让我们不得不…

软件测试|Windows系统配置pytest+allure环境教程

前言 allure可以输出非常精美的测试报告,也可以和pytest进行完美结合,不仅可以渲染页面,还可以控制用例的执行。本文我们将介绍Windows系统中如何配置allure环境。 第一步:配置Java环境 因为allure的运行依赖于Java环境&#x…

Spring Security介绍

一、Spring Security: 1、简介:Spring Security 是一个非常流行和成功的 Java 应用开发框架。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。一般来说,Web 应用的安全性包括用户认证(A…

vue3引用类型和基础类型深度克隆

深度克隆失效的一个例子 import { cloneDeep } from "lodash"; import { ref } from "vue";const navArr ref(["recommend","hot","new", ]) const list1: any ref([]) const list2: any ref([]) const list3: any ref(…