【论文阅读笔记】ASPS: Augmented Segment Anything Model for Polyp Segmentation

1.论文介绍

ASPS: Augmented Segment Anything Model for Polyp Segmentation
ASPS:用于息肉分割的扩展SAM模型
2024年 arxiv
Paper Code

2.摘要

息肉分割在结直肠癌诊断中起着至关重要的作用。最近,Segment Anything Model(SAM)的出现利用其在大规模数据集上的强大预训练能力,为息肉分割带来了前所未有的潜力。然而,由于自然图像和内窥镜图像之间的区域差距,SAM在实现有效的息肉分割方面遇到了两个限制。首先,它的基于变压器的结构优先考虑全局和低频信息,可能会忽略局部细节,并在学习的特征中引入偏差。其次,当应用于内窥镜图像时,其较差的分布(OOD)性能导致不符合标准的预测和有偏差的置信度输出。为了应对这些挑战,我们提出了一种新的用于息肉分割的扩展SAM(ASPS)方法,该方法包括两个模块:跨分支特征增强(CFA)和不确定引导预测正则化(UPR)。CFA将可训练的CNN编码器分支与冻结的VIT编码器集成在一起,在增强局部特征和高频细节的同时,实现了特定领域知识的整合。此外,UPR巧妙地利用SAM的IOU分数来减少训练过程中的不确定性,从而提高了面向对象设计的性能和领域泛化。大量的实验结果证明了该方法在提高SAM在息肉分割中的性能方面的有效性和实用性。

Keywords: SAM,CNN+ViT,跨分支特征增强,不确定引导预测正则化

3.Introduction

自动息肉分割是诊断结直肠癌的关键工具,有助于有效的干预和及时的治疗策略。最近SAM被引入,由于其巨大的模型大小和数据量,这种创新的方法为息肉分割领域引入了新的视角。它还具有增强的表示和特征提取能力,超过了现有的方法。然而,由于训练数据和内窥镜图像之间的域差距,SAM在息肉分割任务中的性能并不令人满意。这导致了两个主要问题:第一,SAM不能充分捕捉息肉图像的显著特征,导致其学习表示的偏差。其次,它对分布外数据产生了错误的预测和不准确的置信度估计。此外,由于SAM依赖于提示,大大阻碍了其在临床应用中的便利性。尽管有几种方法改进了SAM,但这些方法要么依赖于提示,要么直接微调实体模型。Samus有效地集成了CNN和VIT,但其设计相当复杂,特别适合处理小图像。因此,这些方法的有效性在某种程度上受到了限制。人们已经提出了各种方法来解决语义切分中无监督领域自适应的挑战。MIC提出了一种用于目标领域情境学习的掩蔽图像一致性模型;情境感知领域自适应通过交叉注意改进了情境迁移。然而,特定领域的信息集成和不确定性减少仍然没有被探索。为了解决这些问题,本文从领域自适应的角度提出了一种新的基于SAM的方法,旨在增强特征提取能力和泛化能力,而不依赖于提示。本文提出了交叉分支特征增强模块(CFA)和不确定性引导预测正则化模块(UPR)。CFA加入了一个额外的可训练卷积神经网络(CNN)编码器分支,该分支补充了冻结视觉转换器(VIT)编码器,以捕获多尺度和多层次的特征。UPR调整归一化层以促进内窥镜领域的自适应,并利用提示确保准确的置信度估计,从而提高SAM的面向对象设计性能。

4.模型结构详解

在这里插入图片描述
CFA模块集成了CNN编码器特征和全局VIT信息,导致了广义特征表示学习。这种集成通过将深层信息聚合到浅层并结合来自浅层的位置信息来促进精细化分割输出。同时,UPR的设计是为了最大限度地减少训练期间的不确定性和校准置信度。UPR利用基于不确定性的训练策略,利用gt作为指导性“提示”。提出的网络遵循端到端训练,在没有提示的情况下,联合优化两个模块以实现最佳性能。

Cross-branch Feature Augmentation Module 跨分支特征增强模块:
SAM在息肉分割任务中仍存在一定的局限性,其中一个主要原因是SAM的图像编码器不能有效地从不可见的内窥镜图像中捕获足够的特征。为了解决这个问题,CFA模块被设计成学习多尺度特征和多层次表示,从而增强编码器的特征提取能力。

首先,为了实现自动分割,对SAM的体系结构进行了改进,去掉了它的提示输入和提示编码器部分,保留了它的图像编码和掩码解码部分。最近的研究表明,VIT更专注于低频信号,而CNN更擅长处理高频信号。因此,本文集成了一个基于CNN的并行分支来弥补高频和局部特征的缺失。此外,通过提出一个额外的多头交叉分支注意块来增强SAM的掩码解码器,以促进从VIT编码器和CNN编码器中提取的特征的整合。对于VIT分支机构的 F V F_V FV特征和CNN的 F C F_C FC特征,跨分支特征注意力可以表达如下:
在这里插入图片描述
其中 Q = F v W Q Q=F_vW^Q Q=FvWQ K = V = F c W K K=V=F_cW^K K=V=FcWK,并且d是Fv的每个头部的通道数。考虑到CNN特征提供了更精确的位置信息,用CNN编码器的最终输出特征代替了SAM在掩码解码器中的原始位置嵌入。此外,将跨分支注意机制集成到掩码解码器的注意块中,重复此过程两次,以确保来自VIT和CNN编码器的多尺度特征的集成。
在这里插入图片描述
其次,为了获得更准确的分割结果,将来自编码器的高层上下文和低层边界信息与SAM的解码器特征相结合,以增强输出信息。具体地说,将从中间嵌入的VIT编码器获得的浅局部特征,从VIT编码器获得的最终全局特征与CNN的最终特征相结合,像上图所示的,这种方法充分利用了丰富的边缘信息、广泛的全局上下文信息和每个编码器分支的局部位置细节。因此,可以有效地集成VIT和CNN的多层次特征。

ViT,即原SAM的image encoder的最终特征和中间层特征,与CNN的最终特征相结合。并在原SAM的mask decoder中增加多头注意力,以融合ViT与CNN的特征。
首先在原本的image_encoder中提取第4、8、12层特征作为interm embedding(代码中这么设置),无prompt_encoder,在mask_decoder中,首先把来自CNN的特征,与interm embedding和image embedding融合,用CNN的特征代替ViT的位置嵌入,并在transformer块中融合CNN与image embedding特征,然后在最后把fusion的特征再加上去。
除此之外,增加一个置信度计算。

Uncertainty-guided Prediction Regularization Module 不确定性引导的预测正则化模型:

为了增强SAM的泛化能力,本文提出了一种新的训练策略,该策略包括在编码器内选择性激活LayerNorm。我们还以gt为线索,通过纠正置信度来进一步指导训练过程。由于SAM是在自然数据上训练的,其在息肉图像中的性能可能会因域转移而恶化。尽管LayerNorm的引入可能会减少训练时间,但它从根本上改变了输入数据的分布。当将SAM从自然图像转移到内窥镜图像时,数据分布和相应的特征空间分布都发生了偏移。这些分布差异可能会导致内部协变量的变化,从而影响模型的性能。为了提高SAM在内窥镜领域的泛化能力,本文对编码器的归一化层进行了微调。在这个过程中,该模型有效地适应了目标领域的数据分布,并缓解了内部协变量变化的影响。

具体地说,SAM的VIT编码器的层范数LayerNorm分为(1)transformer块norm和(2)neck层norm,如上图(A)所示。考虑到Neck层的特征更接近编码器的输出特征,最终决定训练Neck层归一化,这相当于对预先训练的VIT编码器的特征进行重新归一化。

这里提到训练策略在编码器的neck层增加LayerNorm,原代码中就是可选择的,不理解这里怎么重新处理了。

此外,以前的研究已经证明,不确定性较低的预测往往表现出优越的分布外(OOD)性能,这也有利于领域适应。SAM会生成一个IOU分数输出,这本身就代表着不确定性(或者置信度)。然而,在预测过程中,SAM可能会频繁地对看不见的数据产生高置信度的错误预测,这是不可取的。为了缓解这个问题,我们努力减少模型在训练过程中的不确定性(即增加置信度)。在[4]的启发下,我们利用gt作为提示来指导模型的学习。首先,我们将SAM的IoU得分表示为图像级别的置信度Ci。然后,我们计算像素级置信度cp,以使用公式来细化每个像素的不确定性。其中Up∈Rb×1×H×W.
在这里插入图片描述
Up表示像素不确定性,定义为 U p = 1 − σ ( ∣ P ∣ ) Up=1−σ(|P|) Up=1σ(P)。这里,σ表示Sigmoid函数,而P表示输出预测。最终置信度被计算为图像级置信度和像素级置信度之和,表示为 c = 1 / 2 ( C i + c p ) c=1/2 (Ci+cp) c=1/2(Ci+cp)。这种可信度是由伯努利分布决定的,它决定了是否将gt作为提示。换句话说,如果置信度足够低,我们认为该模型需要特定的答案提示来学习正确的掩码预测。因此,答案是必需的,作为提示,否则就没有必要。提示的权重由置信度c确定,其表示如下:
在这里插入图片描述
然而,通过最小化损失函数,模型将倾向于使c=0,从而 P ′ P' P将始终是GT。这意味着该模型实际上并不学习。因此,引入置信度损失来监督c,当c→为0时,置信度损失会增加,并且置信度损失的定义如下:
在这里插入图片描述
最终损失函数是分段损失Ls和置信度损失Lc之和,如公式中所定义的。5.这里,λ表示一个超参数。具体地,所采用的分段损失是CE损失、Dice损失和MSE损失的组合,如ls=Lce+0.5Ldice+Lmse。
在这里插入图片描述

这里说增加一个新损失:置信度损失。它由图像级和像素级两个组成。

5.实验结果

在这里插入图片描述
创新点

  1. image_encoder中用交叉注意力引入CNN特征;
  2. mask_decoder中使用CNN特征作为位置嵌入,融合CNN特征、image encoder的中间层特征与最终特征,再最后加上;
  3. 设置置信度损失,解决置信度错误地过高的问题。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件缺陷简介

缺陷种类 遗漏,指规定或预期的需求为体现在产品种错误,需求是明确的,在实现阶段未将需求的功能正确实现冗余,需求说明文档中未涉及的需求被实现了不满意,用户对产品的实现不满意也成为缺陷 缺陷等级划分 致命&#…

【测试】软件测试报告模板(直接套用)

软件资料清单列表部分文档清单:工作安排任务书,可行性分析报告,立项申请审批表,产品需求规格说明书,需求调研计划,用户需求调查单,用户需求说明书,概要设计说明书,技术解…

PGCCC|【PostgreSQL】PCA+PCP+PCM等IT类认证申报个税退税指南

小编特将PostgreSQL证书申报个税退税流程,编辑成文,供大家申报参考哦~ 1.申报专项附加扣除 第一步:打开个人所得税APP,选择“专项附加扣除填报”: 第二步:“扣除年度”选择您要申报的年度,并…

Java之封装、继承,多态

文章目录 Java 之封装、继承,多态一、封装1.封装的基本介绍2. 封装的实现3. 将构造器与 setXxx 方法结合 二、继承1. 继承的基本介绍2. 基本语法3.继承的深入理解4. 继承的本质分析(内存存在形式)5. 子类创建的内存布局6. super 关键字6.1 su…

Altium Designer软件绘制一个stm32最小系统的电路原理图

文章目录 一、安装软件二、新建工程 一、安装软件 教程: Altium Designer 24下载安装教程,免费汉化版,保姆级教程,附安装包 二、新建工程 1.新建项目 2.新建原理图 3.和上面一样的方法新建PCB文件 文件->原理图,这样文件…

产品经理-研发流程-敏捷开发-迭代-需求评审及产品规划(15)

敏捷开发是以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。 通俗来说,敏捷开发是一个软件开发流程,是一个采用了迭代方法的开发流程 简单来说,迭代就是把一个大产品拆分出一些最小的实现单位。完成不同的迭代就最…

组合模式(大话设计模式)C/C++版本

组合模式 C #include <iostream> #include <list> using namespace std; // 公司类... 抽象或者接口 class Company { public:Company(string name){this->name name;}virtual void Add(Company *c) 0; // 增加virtual void Remove(Company *c) 0; // 移…

docker inspect 如何提取容器的ip和端口 网络信息?

目录 通过原生Linux命令过滤找到IP 通过jq工具找到IP 使用docker -f 的过滤&#xff08;模板&#xff09; 查找端口映射信息 查看容器内部细节 docker inspect 容器ID或容器名 通过原生Linux命令过滤找到IP 通过jq工具找到IP jq 是一个轻量级且灵活的命令行工具&#xf…

几何距离与函数距离:解锁数据空间中的奥秘

几何距离&#xff1a;直观的空间度量 几何距离&#xff0c;顾名思义&#xff0c;是我们在几何学中熟悉的距离概念&#xff0c;如欧几里得距离、曼哈顿距离和切比雪夫距离等。这些距离度量直接反映了数据点在多维空间中的位置关系。 欧几里得距离&#xff1a;最为人熟知的几何距…

基于springboot+vue+uniapp的机电公司管理信息系统

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

Coze:如何使用团队空间?

你好&#xff0c;我是三桥君 团队空间&#xff0c;是一个允许我们组建团队并共享机器人、插件等资源的功能。 好的&#xff0c;让我们开始创建一个团队。我们将这个团队命名为“三桥君AI”&#xff0c;并在描述中也填写“这里是关于“三桥君AI”团队的描述”。点击确定后&…

【代码随想录】【算法训练营】【第67天】 [卡码97]小明逛公园 [卡码127]骑士的攻击

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 卡码网。 day 67&#xff0c;周六&#xff0c;ding~ [卡码97] 小明逛公园 题目描述 卡码97 小明逛公园 解题思路 前提&#xff1a; 思路&#xff1a; 重点&#xff1a; 代码实现 C语言 Floyd 算法 [卡码…

css实现渐进中嵌套渐进的方法

这是我们想要的实现效果&#xff1a; 思路&#xff1a; 1.有一个底色的背景渐变 2.需要几个小的块级元素做绝对定位通过渐变filter模糊来实现 注意&#xff1a;这里的采用的定位方法&#xff0c;所以在内部的元素一律要使用绝对定位&#xff0c;否则会出现层级的问题&…

61、基于卷积神经网络的手写数字旋转角度预测(matlab)

1、卷积神经网络的手写数字旋转角度预测原理及流程 基于卷积神经网络的手写数字旋转角度预测是一个常见的计算机视觉问题。在这种情况下&#xff0c;我们可以通过构建一个卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;来实现该任务。以下…

SPI协议与读写串行 FLASH

SPI 协议简介 SPI是串行外设接口&#xff08;Serial Peripheral Interface&#xff09;的缩写&#xff0c;是美国摩托罗拉公司&#xff08;Motorola&#xff09;最先推出的一种同步串行传输规范&#xff0c;也是一种单片机外设芯片串行扩展接口&#xff0c;是一种高速、全双工、…

Vue2打包部署后动态修改后端接口地址的解决方法

文章目录 前言一、背景二、解决方法1.在public文件夹下创建config文件夹&#xff0c;并创建config.js文件2.编写config.js内容3.在index.html中加载config.js4.在封装axios工具类的js中修改配置 总结 前言 本篇文章将介绍使用Vue2开发前后端分离项目时&#xff0c;前端打包部署…

LeetCode分发糖果(贪心思路分析)

题目描述 贪心思路 思路及解法 我们可以将「相邻的孩子中&#xff0c;评分高的孩子必须获得更多的糖果」这句话拆分为两个规则&#xff0c;分别处理。 左规则&#xff1a;当 ratings[i−1]<ratings[i] 时&#xff0c;i 号学生的糖果数量将比 i−1 号孩子的糖果数量多。 …

elasticsearch集群模式部署

系统版本&#xff1a;CentOS Linux release 7.9.2009 (Core) es版本&#xff1a; elasticsearch-7.6.2 本次搭建es集群为三个节点 添加启动用户 确保elasticsearch的启动用户为普通用户&#xff0c;这里我创建了es用户用于启动elasticsearch 执行命令为es用户添加sudo权限 v…

基于AT89C51单片机超声波水位液位控制系统设计(含文档、源码与proteus仿真,以及系统详细介绍)

本篇文章论述的是基于AT89C51单片机的1616点阵LED显示器字符滚动显示设计的详情介绍&#xff0c;如果对您有帮助的话&#xff0c;还请关注一下哦&#xff0c;如果有资源方面的需要可以联系我。 目录 设计任务与要求 原理图 仿真图 代码 系统论文 资源下载 设计任务与要求…

【微信小程序知识点】手机号验证组件

手机验证组件&#xff0c;用于帮助开发者向用户发起手机号申请&#xff0c;必须经过用户同意后&#xff0c;才能获得由平台验证后的手机号&#xff0c;进而为用户提供相应的服务。 手机号验证组件分为两种&#xff1a;手机号快速验证组件以及手机号实时验证组件。 1.手机号快速…