SAM轻量化应用Auto-SAM、Group-Mix SAM、RAP-SAM、STLM

news2024/11/19 20:17:51

1. Auto SAM(Auto-Prompting SAM for Mobile Friendly 3D Medical Image Segmentation)

1.1 面临问题

医学背景:
(1)与自然图像相比,医学图像的尺寸更小形状不规则对比度更低。(注意力模块)
(2)2D变3D对硬件的要求高。(Spatial Adapter)
SAM自身:
(1)SAM对劳动密集型手动生成提示的依赖。(APG自动提示生成器)
(2)解决SAM在3D医学图像分割任务上表现出低于标准的性能。
(3)强大的GPU服务器施加的大量计算负担。(Knowledge Distillation)

1.2 应用技术

(1)在输入级为图像编码器设计了复杂的修改,使原始的2D Transformer能够熟练地适应体积输入
(2)同时使用参数高效的微调方法优化预训练权重的可重用性。我们将所有三个维度都视为各向同性,并直接调整经过训练的Transformer块来捕获3D图案。
(3)在提示编码器级别,设计了一个自动提示生成器(APG)模块,该模块将从先前的图像编码器中提取的特征图作为输入,并自动学习以下掩码编码器所需的提示。该设计有效地消除了耗时的手动提示生成过程,特别是对于多器官医学图像分割任务。
(4)优先考虑在输出级的掩码解码器的轻量级设计,强调多层聚合。采用知识蒸馏来促进学习从AutoSAM Adapter转移到更小、资源高效的模型,弥合复杂模型和实际医学成像需求之间的差距,使其更适合于移动设备和实时应用场景。

1.3 模型结构 

(A) AutoSAM Adapter

        输入3D医学图像,通过Patch Partition模块,该模块将3D图像分割成小块(patch)生成patch Embedding,通过1xkxk的卷积核有效地提取3D图像中的局部特征,再通过k x 1 x 1卷积在不改变空间维度的情况下调整特征的通道数,整合通道间的信息。例如,它可以用于降维,减少模型的参数数量和计算量,或者用于升维,增加模型的表征能力。Positional Embedding为模型提供输入数据中每个点的空间位置信息将经过两次卷积后的patch Embedding与Positional Embedding相结合生成3D数据。将3D数据经过多次Attention Block 注意力机制模块(使模型动态地关注图像中的关键区域,整合图像的全局上下文信息,以灵活的方式处理不同大小和形状的图像块。)和Spatial Adapter 空间适配器(确保模型能够有效地处理3D数据,捕捉到深度方向上的细节和模式)生成特征图。从图像编码器提取的特征图输入到Auto Prompt Generator自动提示生成器(APG)模块中生成提示,减少了手动生成提示的需要,提高了效率。将图像编码器每个阶段生成的特征图和APG生成的提示输入到掩码解码器Mask Decoder中,生成最终的分割掩码,预测每个像素的类别。

(B)Spatial Adapter

        空间适配器专门设计来处理3D空间数据,能够捕捉和提取图像中的深度和空间特征。 通过空间适配器,模型能够学习到更细粒度的局部特征,这种设计还有助于模型在有限的计算资源下运行,使其适用于移动设备和实时应用场景。
        通过Depth-wise 3D Conv(沿着图像深度方向的3D卷积),用于提取3D空间特征,通过Up Proj., Down Proj.调整特征图的维度,将特征图传入到Norm归一化层调整和稳定特征的分布。Multi-head Attention多头注意力机制捕捉更丰富的上下文信息,MLP (多层感知器)用于从提取的特征中学习更高层次的表示。

(C)Auto Prompt Generator

        APG自动提示生成器自动生成用于指导图像分割过程的提示。APG接收来自图像编码器的特征图作为输入,然后通过内部网络结构(FCN)处理这些特征图,以生成用于分割的提示。FCN通过使用卷积层替代传统卷积神经网络(CNN)中最后一层全连接层(Fully Connected Layer)。通过自动化这一过程,减少了手动干预,提高了效率。

(D)Knowledge Distillation

        在AutoSAM Adapter中,知识蒸馏用于将从大型AutoSAM Adapter模型(约600M参数)中学到的知识转移到更小的SwinUNETR模型(如小型版本约15.7M参数或微型版本约4.0M参数)。均方误差损失 L_{MSE }用于衡量学生模型的预测与教师模型的预测之间的差异,L_{Seg}用于训练AutoSAM Adapter模型的损失函数,它结合了L_{Dice}和交叉熵损失L_{CE},用于评估模型预测的分割掩码与真实掩码之间的一致性。L_{Dice}衡量预测分割掩码和真实分割掩码之间的重叠程度。L_{CE} 衡量预测概率分布和真实标签之间的差异。

2. Group-Mix SAM(Group-Mix SAM: Lightweight Solution for Industrial Assembly Line Applications)

2.1 面临问题

(1)SAM在实际装配线场景中的部署尚未实现,因为其大型图像编码器的大小高达632 M,在实际部署中使用SAM执行分段任务会导致无法承受的计算和内存成本。
(2)在实际的装配线上,负责运行算法的是边缘计算机。这些边缘计算机的购买通常受到价格的限制,因此存在内存低和计算能力弱等问题

2.2 应用技术

(1)Groupmixformer:提出了群体混合注意力(GMA)作为传统自注意力的高级替代方案,分组计算混合注意力权重。
(2)知识蒸馏 知识蒸馏(Knowledge Distillation)是一种模型压缩技术,用小型的学生模型(student model)学习模仿大型的教师模型(teacher model)的行为,提高小型模型的性能,使其在推理时的性能更接近于大型模型。 学生模型不仅学习模仿教师模型的输出(即预测类别的概率分布),还可能学习模仿其中间层的表示(特征图)。这通常通过比较学生和教师模型在不同层次上的输出来实现。直接用小型图像编码器训练,费时费力,效果也不一定好。

2.3 模型结构

        Group-Mix SAM用一种更小的图像编码器结构Groupmixformer替换MobileSAM编码器中的原始ViT-Tiny结构。MobileSAM中的解耦蒸馏是直接从原始SAM的ViT-H中提取小型图像编码器,而不依赖于组合解码器,与半耦合(冻结掩码解码器并从掩码层优化图像编码器)和耦合蒸馏(直接从掩码层优化图像编码器)相比,解耦蒸馏在时间和效率方面都优于上述。因此,Group-Mix SAM依然用解耦蒸馏方法将基于ViT-Tiny的MobileSAM知识转移到具有较小图像编码器的Groupmixformer。与MobileSAM相比,参数减少了37.63%(2.16 M),浮点运算减少了42.5%(15614.7 M)。

3. RAP-SAM(RAP-SAM : Towards Real-Time All-Purpose Segment Anything)

3.1 面临问题

(1)以往的分割模型使用笨重的编码器和级联解码器,导致无法实时运行实时性能低,且移动设备间难以兼容
(2)以前的实时分割局限于单一应用目的,但实际情况是需要多种输出。仍没有研究调查实时的通用分割任务(或实时全方位分割),也就是包括图像分割、视频实例/视频分割以及类似 SAM 的交互式分割。

3.2 应用技术

(1)提出了一种新的实时全方位分割。
(2)提出的模型能够完成交互式分割全景分割以及视频分割三种任务。
(3)提出了一个实时全方位 SAM(RAP-SAM)模型。它包括一个轻量级的特征提取器、一个统一轻量高效的解码器两个非对称适配器(解耦的适配器 = 对象适配器 + 提示适配器)。

3.3 模型结构

(1)图像编码器

        图像编码器是用于从输入图像中提取特征,由于计算成本的限制,避免了大的骨干和较重的 Transformer 编码器,而是使用轻量级骨干如:ResNet 18 ,STDC-v1和 SeaFormer。通过backbone(主干网络)和Lite Neck(轻量级颈部网络)从输入的图像或视频中提取出特征图F,送入三阶段解码器进行后续处理。

(2)提示编码器

        将Visual Prompts(视觉提示)中的提示(如点、框)传送到prompt encoder(提示编码器)生成prompt queries提示查询;与可学习的object queries对象查询一起送入三阶段解码器进行后续处理。
        注意:Object queries是由模型内部的编码器-解码器架构自动生成,代表图像或视频中的对象,主要用于处理如语义分割、实例分割等任务。Prompt queries是由视觉提示(如用户指定的框或点)生成的,用于指导模型的分割行为,用于交互式分割任务。

(3)掩码解码器

        Three-Stage Decoder(三阶段解码器)负责将前面的提示查询、对象查询和特征图三种输入转换为最终的分割掩码。结构图虚线右半部分是它的详细组成。
        将三种输入传送到掩码解码器中,先通过基于池化的Dynamic Convolution(动态卷积)根据输入特征动态调整卷积核,以更好地细化对象查询;再通过Add & Norm(加法和归一化)保持数值的稳定性;通过Self-attention(自注意力机制)考虑全局上下文信息;通过FFN(前馈网络)进一步提炼和更新查询表示。最终输出更新后的提示查询和对象查询。

(4)双解耦适配器

        在共享解码器(Shared Decoder)之后使用双解耦适配器,通过将提示查询和对象查询分别与特征图结合传送到对应的适配器中进行细化,使模型能够灵活地适应不同的分割任务,同时保持实时的处理速度,以达到实时多用途分割。Object Adaptor(对象适配器)使用与动态卷积相同的设计来进一步细化对象查询,因为在图像和视频分割中,场景的上下文信息和时序特征对于生成准确的分割掩码至关重要。用于处理图像分割和视频分割任务。Prompt Adaptor(提示适配器)使用逐像素的cross-attention(交叉注意力机制),因为交互式分割更侧重于根据用户提供的视觉提示(如点或框)来定位和分割特定的区域,因此需要对局部细节有更好的捕捉能力。

4. STLM:A SAM-guided Two-stream Lightweight Model for Anomaly Detection

4.1 面临问题

(1)模型效率:在实际应用中,尤其是在资源受限的环境下,模型需要有较高的效率,能够实时处理数据并快速给出检测结果,即需要较少的计算资源和时间,模型的复杂性和内存占用也是一个重要考虑因素。
(2)移动友好性:随着移动设备的普及,模型需要能够在这些设备上运行,这要求模型必须足够轻量,以适应移动设备的计算能力和能耗限制。
(3)数据稀少:在实际的工业应用中,正常样本通常容易获得,而异常样本可能较为稀少,导致数据集不平衡。且异常可能包括从微小的变化到大的缺陷,具有多样性。

4.2 应用技术

(1)双流轻量级模块:采用了由SAM知识指导的两个轻量级的图像编码器,一个流被训练成在正常和异常区域生成判别和通用的特征表示,而另一个流在没有异常的情况下重建相同的图像。
(2)共享掩码解码器:采用共享掩码解码器和特征聚合模块来生成异常映射。

4.3 模型结构

        训练阶段:首先输入正常图像和由数据增强技术生成的伪异常图像,使用知识蒸馏技术从SAM的图像编码器中提取知识,转移到Two-stream Lightweight Model (TLM)双流轻量级模块中,TLM模型采用了ViT-Tiny作为图像编码器的骨干网络,分别包括Plain Student和Denoising Student两个图像编码器Plain Student 被训练用来生成正常和异常区域的有区分性和泛化的特征表示,生成直接嵌入;Denoising Student 被训练用来重建没有异常的图像特征,从而增强两路特征表示在面对异常区域时的差异性,生成异常嵌入。将两种嵌入传送到一个共享的掩码解码器,用于从学生网络生成的特征中提取信息,生成异常掩码。将两路学生网络的特征传送到Feature Aggregation (FA) Module,该模块由两个残差块和一个空洞空间金字塔池化模块组成,通过特征聚合模块融合特征,生成异常图,以提高异常检测的准确性。
        推理阶段:训练阶段训练TLM和FA模块。在推理阶段,丢弃固定的SAM教师网络,只使用TLM和FA模块生成像素级异常分割图和图像级异常分数。

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

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

相关文章

【Qt 开发基础体系】QMap 类和 QHash 类以及 QVector 类

文章目录 1.QMap 详解1.1 QMap 的介绍1.2 QMap 的具体用法如下1.3 QmultiMap类 2.QHash 详解3. QMap 和 QHash 的对比4. QVector 详解 1.QMap 详解 1.1 QMap 的介绍 &#x1f427;① QMap<key,T>提供一个从类型为Key的键到类型为T的值的映射。通常&#xff0c;QMap存储的…

使用torch完成多卡训练

最近在学detr&#xff0c;顺便学了一下多卡训模型&#xff0c;它的源码写的非常不错&#xff01; 我自己在detr的代码的基础上实现了一个vae的训练&#xff0c;在mnist数据集上&#xff0c;4张2080上&#xff0c;batch size开到1024&#xff0c;训练快到飞起。 总结一下多卡训…

JUC下的CompletableFuture详解

详细介绍 CompletableFuture是Java 8引入的一个实现Future接口的类&#xff0c;它代表一个异步计算的结果。与传统的Future相比&#xff0c;CompletableFuture提供了更丰富的功能&#xff0c;比如链式调用、组合异步操作、转换结果、异常处理等&#xff0c;极大地增强了Java在…

力扣HOT100 - 739. 每日温度

解题思路&#xff1a; 单调栈 class Solution {public int[] dailyTemperatures(int[] temperatures) {int length temperatures.length;int[] ans new int[length];Deque<Integer> stack new LinkedList<>();for (int i 0; i < length; i) {int temperatu…

TCP超时重传机制

一、TCP超时重传机制简介 TCP超时重传机制是指当发送端发送数据后&#xff0c;如果在一定时间内未收到接收端的确认应答&#xff0c;则会认为数据丢失或损坏&#xff0c;从而触发重传机制。发送端会重新发送数据&#xff0c;并等待确认应答。如果在多次重传后仍未收到确认应答&…

VMware Workstation 17 Player 创建虚拟机教程

本教程是以windows server 2012物理机服务器安装好的VMware Workstation 17 Player为例进行演示&#xff0c;安装VMware Workstation 17 Player大家可以自行网上搜索安装。 1、新建虚拟机 双击安装好的VMvare图标&#xff0c;点击创建虚拟机。 2、选择是否安装系统 本步骤选…

复习了好久的软考中项,现在上半年不考了,该怎么办?

如果有更多学习时间的话&#xff0c;可以考虑报考高级职称&#xff0c;因为高级和中级职称的很多知识点有重叠&#xff0c;只需要再复习一下相关论文就可以了。 从2024年下半年开始&#xff0c;集成考试将采用最新版教材和大纲&#xff0c;与高级职称的新版教材内容相似度很高…

Spring框架学习笔记(二):Spring IOC容器配置 Bean,分别基于XML配置bean 和 基于注解配置 bean

1 Spring 配置/管理 bean 介绍 Bean 管理包括两方面 &#xff1a;创建 bean 对象&#xff1b;给 bean 注入属性 Bean 配置方式&#xff1a;基于 xml 文件配置方式&#xff1b;基于注解方式 2 基于 XML 配置 bean 2.1 通过类型来获取 bean 方法&#xff1a;给getBean传入一…

新型AI Stable Artisan横空出世?

StabilityAI宣布推出Stable Artisan 前言 就在今天&#xff0c;Stability AI宣布推出 Stable Artisan&#xff0c;让更广泛的受众能够使用 Stability AI 的 Developer Platform API 功能。Stable Artisan 具有他们的高级型号&#xff0c;例如 Stable Diffusion 3、Stable Video…

4000字超详解Linux权限

各位大佬好 &#xff0c;这里是阿川的博客 &#xff0c; 祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 在Linux当中权限的体现主要有两种 普通用户 超…

ARIMA模型在河流水质预测中的应用_含代码

#水质模型 #时间序列 #python应用 ARIMA 时间序列模型简介 时间序列是研究数据随时间变化而变化的一种算法&#xff0c;是一种预测性分析算法。它的基本出发点就是事物发展都有连续性&#xff0c;按照它本身固有的规律进行。ARIMA(p,d,q)模型全称为差分自回归移动平均模型 (A…

动态IP避坑指南:如何挑选合适的动态代理IP?

在如今的网络环境中&#xff0c;使用动态IP代理成为实现隐私保护、访问受限内容和提高网络效率的一种常见方式&#xff0c;选择合适的国外动态IP代理可以让我们的业务处理事半功倍。面对市面上琳琅满目的选择&#xff0c;如何挑选购买适合自己的动态IP代理服务呢&#xff1f;在…

数字化转型失败率80%!盘点国内数字化转型“失败案例”有哪些

尤记得几年前&#xff0c;那桩轰动一时的《国外某巨额投入的数字化转型项目失败所引起的法律纠纷案》。 当时&#xff0c;业界人士几乎都在热议这件事。 我也在了解整件事情的原委后&#xff0c;发表一些感想。 当时我就觉得&#xff0c;作为行业从业人员&#xff0c;不要幸…

动态表名 的使用方法

动态表名插件的底层是 拦截器 1&#xff0c;创建一个拦截器 Configuration public class MybatisConfiguration {Beanpublic DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor() {// 准备一个Map&#xff0c;用于存储TableNameHandlerMap<String, Table…

3d gaussian-splatting源码运行及结果展示

笔者是在windows下配置的环境 源码地址及官方教程 github gaussian-splatting 官网给出了详细的配置教程和视频解说 记录一下个人的部署过程 环境需求 硬件需求 具有计算能力 7.0 的带有CUDA的GPU 24G显存 软件需求 python版本我没注意到明确说明&#xff0c;3.7以上应…

用世界语言讲好中国故事 英孚青少儿“中华文化少年说”广州佛山展演开启

秉持“用世界语言&#xff0c;讲好中国故事”的初心&#xff0c;着眼于培养中国青少儿文化素养&#xff0c;提升青少儿文化自信&#xff0c;英孚教育青少儿近日在广州海珠乐峰广场举办了“中华文化少年说”10周年国宝季广佛展演。学员们在舞台上自信表达&#xff0c;用丰富的动…

机器学习算法应用——时间序列分析(4-5)

时间序列分析&#xff08;4-5&#xff09; 时间序列分析&#xff08;Time-Series Analysis&#xff09;是一种对按时间顺序排列的数据序列进行统计分析和预测的方法。这种方法通常用于研究某个现象随时间的变化规律&#xff0c;并据此预测未来的发展趋势。以下是时间序列分析的…

EasyExcel处理Mysql百万数据的导入导出案例,秒级效率,拿来即用!

一、写在开头 今天终于更新新专栏 《EfficientFarm》 的第二篇博文啦&#xff0c;本文主要来记录一下对于EasyExcel的高效应用&#xff0c;包括对MySQL数据库百万级数据量的导入与导出操作&#xff0c;以及性能的优化&#xff08;争取做到秒级性能&#xff01;&#xff09;。 …

【甲辰雜俎】世界上最不可靠的就是人

"世界上最不可靠的就是人" 人是一個多元的複變函數, 今天經受住考驗, 明天你就有可能叛變。 過去是戰場上的仇敵, 明天就有可能成為政治上的盟友。 —— 擷取自電視劇《黑冰》 人的不可預測性, 的確是一個普遍的現象。 每個人都是一個獨特的個體, 受到不同的…

Linux添加IP地址的方法

1.nmcli&#xff1a;命令式的添加IP地址 [rootlocalhost ~]#nmcli connection modify eno16777736 ipv4.addresses 192.168.126.100/24 ipv4.gateway 192.168.126.1 ipv4.method manual connection.autoconnect yes [rootlocalhost ~]# nmcli connection modify eno16777736 i…