FS【2】:CAT-Net

文章目录

  • 前言
  • Abstract
  • Introduction
  • Methods
    • Problem Definition
    • Network Overview
    • Mask Incorporated Feature Extraction
    • Cross Masked Attention Transformer
      • Self-Attention Module
      • Cross Masked Attention Module
      • Prototypical Segmentation Module
    • Iterative Refinement Framework
  • 总结


前言

本文来自港科陈浩老师组发表在 MICCAI23 上的一篇有关 few-shot 在医学图像上的应用。方法简洁高效,可供参考。插一句题外话,医学图像做 few-shot 主要基于腹部器官的 3 个数据集,期待后续可以见到一些在更多数据集上更通用更有效的方法。

原论文链接:Few Shot Medical Image Segmentation with Cross Attention Transformer


Abstract

本文提出了一种基于交叉掩码注意力 Transformer 的少样本医学图像分割新框架 CAT-Net

  • 通过挖掘 supportquery 图像之间的相关性,并限制模型仅关注有用的前景信息,来提高 supportquery 特征的表达能力
  • 同时,本文还进一步设计了一个迭代细化训练框架来优化查询 query 图像分割

Introduction

大多数 few-shot 分割方法都在学习如何学习(旨在学习元学习器),根据 support 图像及其相应的分割标签的知识预测 query 图像的分割,而这里的核心是:如何有效地将知识从 support 图像传递到 query 图像。现有的少样本分割方法主要集中在以下两个方面:

  1. 如何学习一个元学习器
  2. 如何更好地将知识从 support 图像传递到 query 图像

尽管基于原型的方法效果已经不错,但它们通常忽略了训练过程中 supportquery 特征之间的交互。

本文提出了一种名为 CAT-Net 的新型网络结构,其基于交叉注意力 Transformer:

  • 可以更好地捕捉 support 图像和 query 图像之间的相关性,促进 supportquery 特征之间的相互作用,同时减少无用像素信息,提高特征表达能力和分割性能
  • 此外,本文还提出了一个迭代训练框架,将先前的support分割结果反馈到注意力 Transformer 中,以有效增强并细化特征和分割结果。

Methods

Problem Definition

少样本分割(Few-shot segmentation,FSS)的目的是通过只有少量标注的样本来分割新类别。在FSS中,数据集被分为训练集 Dtrain 和测试集 Dtest,其中训练集包含基类别 Ctrain,测试集包含新类别 Ctest,且 CtrainCtest 没有交集。为了获得用于 FSS 的分割模型,采用了通常使用的 episode 训练方法。每个训练 / 测试 e p i s o d e ( S i , Q i ) \mathrm{episode(S_i,Q_i)} episode(Si,Qi) 实例化一个 N-way, K-shot 分割学习任务。具体而言:support 集 S i \mathrm{S_i} Si 包含 N 个类别的 K 个样本,而 query 集 Q i \mathrm{Q_i} Qi 包含同一类别的一个样本。FSS 模型通过 episode 训练以预测 query 图像的新类别。在模型推理测试时,模型直接在 Dtest 上进行评估,无需重新训练。

Network Overview

在这里插入图片描述

CAT-Net 主要由三部分组成:

  1. 带有mask的特征提取 MIFE 子网络,用于提取初始 querysupport 特征以及 query mask
  2. 交叉 mask 注意力 Transformer 模块 CMAT,其中 querysupport 特征相互促进,从而提高 query 预测的准确性
  3. 迭代细化框架,顺序应用 CMAT 模块以持续促进分割性能,整个框架以端到端的方式进行训练

Mask Incorporated Feature Extraction

MIFE 子网络接收查询和支持图像作为输入,生成它们各自的特征,同时集成支持掩膜。然后,使用一个简单的分类器来预测查询图像的分割结果:

  • 具体地,首先使用一个特征提取器网络(即 ResNet-50)将查询和支持图像对 I q I^q Iq I s I^s Is 映射到特征空间中,分别产生查询图像的多层特征图 F q F^q Fq 和支持图像的特征图 F s F^s Fs
  • 接下来,将支持掩膜与 F s F^s Fs 进行池化,然后将其扩展并与 F q F^q Fq F s F^s Fs 进行连接
  • 此外,还将一个先验掩膜进一步与查询特征进行连接,通过像素级相似度图来增强查询和支持特征之间的相关性
  • 最后,使用一个简单的分类器来处理查询特征,得到查询掩膜

Cross Masked Attention Transformer

CMAT模块包括三个主要组成部分:自注意力模块、交叉掩码注意力模块,和原型分割模块

  • 自注意力模块用于提取查询 query 特征和支持 support 特征中的全局信息
  • 交叉掩码注意力模块用于在传递前景信息的同时消除冗余的背景信息
  • 原型分割模块用于生成查询图像的最终预测结果

Self-Attention Module

自注意力模块首先将查询特征 F 0 q F_0^q F0q 和支持特征 F 0 s F_0^s F0s 展平为 1D 序列,然后输入到两个相同的自注意力模块中。每个自注意力模块由一个多头注意力层(MHA)和一个多层感知器层(MLP)组成。给定一个输入序列 S S SMHA 层首先使用不同的权重将序列投影为三个序列 Q Q Q K K K V V V。然后计算注意力矩阵 A A A,公式为:

在这里插入图片描述

其中, d d d 是输入序列的维度。注意力矩阵通过 softmax 函数归一化,并乘以值序列 V V V 以获得输出序列 O O OMLP层是一个简单的 1 × 1 1 \times 1 1×1 卷积层,将输出序列 O O O 映射到与输入序列 S S S 相同的维度。最终,将输出序列 O O O 添加到输入序列 S S S 中,并使用层归一化(LN)对其进行规范化,以获得最终的输出序列 X X X。自注意力对齐编码器的输出特征序列分别表示为 X q X^q Xq X s X^s Xs,分别对应于查询和支持特征

Cross Masked Attention Module

用于将查询特征和支持特征按照它们的前景信息结合起来

具体来说,给定查询特征 X q X^q Xq 和来自自注意力模块的支持特征 X s X^s Xs,首先使用不同的权重将输入序列投影到三个序列 K K K Q Q Q V V V 中,从而得到 K q K^q Kq Q q Q^q Qq V q V^q Vq K s K^s Ks Q s Q^s Qs V s V^s Vs。以查询特征为例,交叉注意力矩阵通过下面的公式计算得到:

在这里插入图片描述

其中, d d d 表示查询特征的维度。这里使用的是点积注意力的形式,通过 K q K^q Kq Q s Q^s Qs 的点积计算查询和支持之间的相关性。通过 d \sqrt{d} d 来缩放点积,防止在较高维度时点积的大小对注意力分布的影响过大

Prototypical Segmentation Module

通过 MAP 建立每个类别的原型 p c p_c pc,用于表示该类别的特征分布:
在这里插入图片描述

  • K K K 是支持集中图像的数量
  • m ( k , x , y , c ) s m_{(k,x,y,c)}^s m(k,x,y,c)s 是一个二进制掩模,表示位置 ( x , y ) (x,y) (x,y) 在支持特征 k k k 中是否属于类别 c c c
  • F 1 s F_1^s F1s 是支持特征

对于每个类别 c c c,该原型是在所有支持图像中该类别对应位置的特征平均值,这样可以得到每个类别的原型 p c p_c pc

接着使用非参数度量学习方法进行分割。原型网络计算查询特征向量与原型 P = P c ∣ c ∈ C P=P_c|c \in C P=PccC 之间的距离。对所有类别应用 softmax 函数,生成查询分割结果:

在这里插入图片描述

  • c o s ( ⋅ ) cos(·) cos() 表示余弦距离
  • α \alpha α 是一个缩放因子,有助于在训练中反向传播梯度,本文中设置为 20

Iterative Refinement Framework

该模块的设计目的是优化查询和支持特征以及查询分割掩模。因此可通过迭代优化的思路进行精细化分割,第 i i i 次迭代后的结果由以下公式给出:

在这里插入图片描述

每个步骤的细分可表示如下:

在这里插入图片描述

其中 C M A ( ⋅ ) CMA(·) CMA() 表示自注意力和交叉掩码注意力模块, P r o t o ( ⋅ ) Proto(·) Proto() 代表原型分割模块,该公式表示通过多次迭代应用 CMA 和 Proto 模块,来获得增强的特征和优化的分割结果


总结

本文提出了一种用于 few-shot 医学图像分割的交叉注意力 Transformer 网络 CAT-Net。通过交叉掩码注意力模块实现了查询和支持特征之间的交互,增强了特征表达能力。此外,所提出的 CMAT 模块可以通过迭代优化的方式以持续提高分割性能,实验结果表明了每个模块的有效性以及模型相对于 SOTA 方法的卓越性能。其中论文中的各个组件属于即插即用模块,可很好的嵌入到 few-shot 任务中,以提高少样本分割的性能。

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

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

相关文章

使用 IDEA 开发一个简单易用的 SDK

目录 一、什么是 SDK 二、为什么要开发 SDK 三、开发 SDK 的详细步骤 四、导入 SDK 进行测试 附:ConfigurationProperties 注解的介绍及使用 一、什么是 SDK 1. 定义:软件开发工具包 Software Development Kit 2. 用于开发特定软件或应用程序的工…

【2024年美国大学生数学建模竞赛】F题完整解析(问题分析、数学模型、实现代码、参考论文)

减少非法野生动物贸易的综合数据驱动项目 写在前面摘要1、问题重述1.1、问题背景:1.2、问题描述: 1.3子问题详述:1. 客户选择:2. 项目适应性和支持:3. 客户资源和权力需求:4. 项目影响分析:5. 成…

爬虫(二)使用urllib爬取百度贴吧的数据

下一期我就不用urllib来抓取数据了,因为urllib现在已经很少人用,大部分人用得是requests,requests也是基于底层urllib的一个模块。 首先我先来讲一下关于如何使用动态的UA! 动态UA就是指在自己创建的一个列表里随机选择一个UA当做…

centOS/Linux系统安全加固方案手册

服务器系统:centos8.1版本 说明:该安全加固手册最适用版本为centos8.1版本,其他服务器系统版本可作为参考。 1.账号和口令 1.1 禁用或删除无用账号 减少系统无用账号,降低安全风险。 操作步骤  使用命令 userdel <用户名> 删除不必要的账号。  使用命令 passwd…

20240202在WIN10下使用fast whisper缺少cudnn_ops_infer64_8.dll

20240202在WIN10下使用fast whisper缺少cudnn_ops_infer64_8.dll 2024/2/2 10:48 https://blog.csdn.net/feinifi/article/details/132548556 Could not locate cudnn_ops_infer64_8.dll. Please make sure it is in your library path!解决办法 安装cuDNN c:\faster-whisper-…

芯片设计公司ERP管理生产流程:从设计到制造的全面优化

随着科技的飞速发展&#xff0c;芯片设计公司在整个电子产业链中的地位日益重要。为了提高生产效率、降低成本&#xff0c;许多芯片设计公司选择引入ERP(企业资源计划)管理系统来优化生产流程。本文将详细介绍芯片设计公司如何利用ERP管理生产流程。 一、ERP系统概述 ERP系统是…

Hadoop:HDFS学习巩固——基础习题及编程实战

一 HDFS 选择题 1.对HDFS通信协议的理解错误的是&#xff1f; A.客户端与数据节点的交互是通过RPC&#xff08;Remote Procedure Call&#xff09;来实现的 B.HDFS通信协议都是构建在IoT协议基础之上的 C.名称节点和数据节点之间则使用数据节点协议进行交互 D.客户端通过一…

基于WordPress开发微信小程序1:搭建Wordpress

2年前&#xff0c;在知乎上提问&#xff1a;多数公司为什么宁愿自研也不用wordpress二次开发建站&#xff1f; - 知乎 (zhihu.com)&#xff0c;收到了&#xff0c;很多回答 自己打算做一下提升&#xff0c;便有了自己基于wordpress开发微信小程序的想法 项目定位 基于wordpre…

VUE开发记录

1、VUE模板传递参数到JS方法 <select-language :value"item.language" change"selectLanguage($event, key)"></select-language>selectLanguage(value, key){console.log(value, key) }, 2、Element框架el-form-item自定义label和内容 <…

Linux实验记录:使用Samba或NFS实现文件共享

前言&#xff1a; 本文是一篇关于Linux系统初学者的实验记录。 参考书籍&#xff1a;《Linux就该这么学》 实验环境&#xff1a; VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注&#xff1a; FTP实现了文件传输&#xff0c;而非…

操作系统(10)----从写程序到程序运行

目录 一.从写程序到程序运行 二.链接 三.如何将逻辑地址转为物理地址 1.绝对装入 2.可重定位装入&#xff08;静态重定位&#xff09; 3.动态运行时装入&#xff08;动态重定位&#xff09; 一.从写程序到程序运行 程序员通过编辑器编辑源代码文件&#xff0c;通过编译后…

前端常见标签

<li> (List Item)&#xff1a;定义列表中的一个项目&#xff08;项&#xff09; <ul> (Unordered List)&#xff1a;定义无序列表 <ol> (Ordered List)&#xff1a;定义有序列表 <a> (Anchor Tag)&#xff1a;定义超链接 <ul><li>苹…