【论文阅读笔记】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. 设置置信度损失,解决置信度错误地过高的问题。

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

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

相关文章

视频压缩软件哪个压缩最小,视频用什么软件压缩最小

在数字媒体时代,视频内容的生产与分享已成为生活常态。但随之而来的问题就是,大视频文件占用过多存储空间,上传和分享也变得不便。本文将为你揭示如何将视频压缩到最小,同时保持画质清晰。让我们一起探索吧! 下载并文件…

剪辑抽帧技巧有哪些 剪辑抽帧怎么做视频 剪辑抽帧补帧怎么操作 剪辑抽帧有什么用 视频剪辑哪个软件好用在哪里学

打破视频节奏,让作品告别平庸。抽帧剪辑可以改变视频叙事节奏,人为制造冲突、转折、卡顿的效果。这种剪辑方式,不仅可以推进剧情发展,还能吸引观众的注意力,有效防止观影疲劳。有关剪辑抽帧技巧有哪些,剪辑…

Typora篇-忍痛开启

语雀专业会员即将到期, 我看着99元的学费款, 我决定重新用回Typora。 虽然里面有一些文件但是我还是舍不得ಥ_ಥ 99元巨款。 下面开启我的Typora整活历程, 大家有什么好用的插件快捷方式一起来分享啊。

MyBatis框架学习笔记(二):原生API 的调用 和 注解的使用

1 MyBatis原生API 1.1 原生API 快速入门需求 在笔记一案例的基础上将增删改查,使用 MyBatis 原生的 API 完成,就是直接通过SqlSession 接口的方法来完成 1.2 原生API 快速入门-代码实现 创建 src\test\java\com\hspedu\mapper\MyBatisNativeTest.jav…

uni-app 封装http请求

1.引言 前面一篇文章写了使用Pinia进行全局状态管理。 这篇文章主要介绍一下封装http请求,发送数据请求到服务端进行数据的获取。 感谢: 1.yudao-mall-uniapp: 芋道商城,基于 Vue Uniapp 实现,支持分销、拼团、砍价、秒杀、优…

实用性提升百分之一百!!!【ONLYOFFICE 8.1版本】全方位深度性能测评

目录 【ONLYOFFICE 8.1 版本】全方位深度性能测评 一、界面与用户体验 二、文字处理功能 表格处理功能 演示文稿功能 协作与共享功能 性能与稳定性 总结 【ONLYOFFICE 8.1 版本】全方位深度性能测评 在当今数字化办公的时代,办公软件的选择对于提高工作效率和…

selenium处理cookie问题实战

1. cookie获取不完整 需要进入的资损平台(web)首页,才会出现有效的ctoken等信息 1.1. 原因说明 未进入指定页面而获取的 cookie 与进入页面后获取的 cookie 可能会有一些差异,这取决于网站的具体实现和 cookie 的设置方式。 通常情况下,一些…

【解决Windows11系统Windows Hello不能使用的问题】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Windows Hello是什么?二、使用步骤1.购买一个摄像头2.开始配置 三、异常解决1.内置管理员不能使用2.没找到合适的摄像头3.摄像头需要专用驱动4.…

原创作品——教育课程界面设计

教育行业UI界面设计需直观易懂,确保学习者能迅速上手,减少认知负担。布局清晰,导航便捷,功能按钮和图标设计应符合教育场景,直接支持学习目标的达成,促进高效学习体验。 通过丰富的互动元素(如拖…

博途通讯笔记1:1200与1200之间S7通讯

目录 一、添加子网连接二、创建PUT GET三、各个参数的意义 一、添加子网连接 二、创建PUT GET 三、各个参数的意义

代码随想录(day1)二分法

if语句的基本语法 if 要判断的条件: 条件成立的时候&#xff0c;要做的事举例&#xff1a; if nums[middle]<target:leftmiddle1 while语句的基本语法&#xff1a; while 判断条件(condition)&#xff1a;执行语句(statements)举例&#xff1a; while left<right:midd…

2通道音频ADC解码芯片ES7243L、ES7243E、ES7243,用于低成本实现模拟麦克风转换为IIS数字话筒

前言&#xff1a; 音频解码芯片某创参考价格&#xff1a; ES7243L 500&#xff1a;&#xffe5;1.36 / 个 ES7243E 500&#xff1a;&#xffe5;1.66 / 个 ES7243 500&#xff1a; &#xffe5;1.91 / 个 其中ES7243L工作电压为1.8V&#xff0c;与其他两款的3.3V工作电压不同&…

日本IT-SIER/SES的区别详情、契约形态等

一、SLER 主要的服务内容就是“帮客人开发系统或是各种APP&#xff0c;并在指定期间内交货&#xff0c;交货后也会持续进行运维等售后服务”。 客人很广泛&#xff0c;小到普通的服务业商家&#xff08;餐饮店/服饰店/美容业/电商&#xff09;大到各种公共/政府机关&#xff…

【面试题】串联探针和旁挂探针有什么区别?

在网络安全领域中&#xff0c;串联探针和旁挂探针&#xff08;通常也被称为旁路探针&#xff09;是两种不同部署方式的监控设备&#xff0c;它们各自具有独特的特性和应用场景。以下是它们之间的主要区别&#xff1a; 部署方式 串联探针&#xff1a;串联探针一般通过网关或者…

第一百四十九节 Java数据类型教程 - Java子字符串、字符串转换

Java数据类型教程 - Java子字符串 获取子字符串 我们可以使用substring()方法来获取字符串的子部分。 我们可以将开始索引作为参数&#xff0c;并返回一个从开始索引开始到字符串结尾的子串。 我们还可以将开始索引和结束索引作为参数。 它返回从开始索引开始的子字符串和小…

Windows右键没有新建Word、PPT与Excel的解决方法

本文介绍在Windows电脑中&#xff0c;右键与资源管理器的“新建”选项中&#xff0c;都没有新建Word、PPT或Excel文件的解决方法。 最近&#xff0c;发现一台重装了系统与Office的电脑中&#xff0c;无论是桌面上与资源管理器中的右键&#xff0c;还是资源管理器左侧顶部的“新…

手写简单模拟mvc

目录结构&#xff1a; 两个注解类&#xff1a; Controller&#xff1a; package com.heaboy.annotation;import java.lang.annotation.*;/*** 注解没有功能只是简单标记* .RUNTIME 运行时还能看到* .CLASS 类里面还有&#xff0c;构建对象久没来了&#xff0c;这个说明…

C++编译链接原理

从底层剖析程序从编译到运行的整个过程 三个阶段 一、编译阶段二、链接阶段三、运行阶段 为了方便解释&#xff0c;给出两端示例代码&#xff0c;下面围绕代码进行实验&#xff1a; //sum.cpp int gdata 10; int sum(int a,int b) {return ab; }//main.cpp extern int gdata…

初始redis:在Ubuntu上安装redis

1.先切换到root用户 使用su命令切换到root 2.使用apt命令来搜索redis相关的软件包 命令&#xff1a;apt search redis 3.下载redis 命令&#xff1a; apt install redis 在Ubuntu 20.04中 &#xff0c;下载的redis版本是redis5 4.查看redis状态 命令&#xff1a; netst…

Python自动化测试系列[v1.0.0][高效自动化设计]

Python多线程应用于自动化测试 将多线程在测试巧妙地应用&#xff0c;确实会带来很多好处&#xff0c;并且这是充分利用机器资源执行高效率测试很好的方式 # -*- coding: utf-8 -*- import threading from time import ctime import time from selenium import webdriverdef …