CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

第一个针对「Segment Anything」大模型的域适应策略来了!相关论文已被CVPR 2024 接收。
引言

大语言模型(LLMs)的成功激发了计算机视觉领域探索分割基础模型的兴趣。这些基础分割模型通常通过 Prompt Engineer 来进行 zero/few 图像分割。其中,Segment Anything Model(SAM)是最先进的图像分割基础模型。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

cvpr 2024 | 分割一切模型sam泛化能力差?域适应策略给解决了

                             图  SAM 在多个下游任务上表现不佳
但是最近的研究表明,SAM 在多种下游任务中并非具有很强的鲁棒性与泛化性,例如在医学图像、伪装物体、添加干扰的自然图像等领域表现较差。这可能是由于训练数据集与下游的测试数据集之间存在较大的域差异(Domain Shift)所致。因此,一个非常重要的问题是,如何设计域自适应方案,使 SAM 在面对现实世界和多样化的下游任务中更加鲁棒?
将预训练好的 SAM 适应到下游任务主要面临三个挑战:
首先,传统的无监督域自适应范式需要源数据集和目标数据集,由于隐私和计算成本较为不可行。
其次,对于域适应,更新所有权重通常性能更好,同时也受到了昂贵的内存成本的限制
最后,SAM 可以针对不同种类、不同颗粒度的提示 Prompt,展现出多样化的分割能力,因此当缺乏下游任务的提示信息时,无监督适应将非常具有挑战性。

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

                            图 1 SAM 在大规模数据集上进行预训练,但存在泛化性问题。我们使用弱监督的方式在各种下游任务上对 SAM 进行自适应
为了应对上述挑战,我们提出了一种具有锚点正则化低秩微调弱监督自训练架构,以提高自适应的鲁棒性和计算效率
具体而言,我们首先采用无源域的自训练策略,从而避免对源数据的依赖。自训练产生伪标签,用于监督模型的更新,但是容易受到错误伪标签的影响,我们引入冻结的 source model 作为锚定网络,以规范模型的更新。
为了进一步减少更新完整模型权重的高计算成本,我们对编码器应用低秩权重分解,并通过低秩快捷路径进行反向传播。
最后,为了进一步提高无源域自适应的效果,我们在目标域引入了弱监督(weak supervise),例如稀疏的点注释,以提供更强的域适应信息,同时这种弱监督与 SAM 中的提示编码器自然兼容。
借助弱监督作为 Prompt,我们获得了更局部、更明确的自训练伪标签。经过调整的模型在多个下游任务上表现出了更强的泛化能力。
我们总结本工作的贡献如下:
1. 我们受到 SAM 在下游任务中泛化问题的启发,提出了一种与任务无关且无需源数据的解决方案,通过自训练来适应 SAM。
2. 我们利用弱监督,包括 box、point 等标签,以提高自适应效果。这些弱监督标签与 SAM 的提示编码器完全兼容。
3. 我们对 5 种类型的下游实例分割任务进行了大量实验,证明了所提出的弱监督自适应方法的有效性。

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

论文地址:https://arxiv.org/pdf/2312.03502.pdf
项目地址:https://github.com/Zhang-Haojie/WeSAM
论文标题:Improving the Generalization of Segmentation Foundation Model under Distribution Shift via Weakly Supervised Adaptation
方法
方法介绍分为四个部分:
Segment Anything 模型
基于自训练的自适应框架
弱监督如何帮助实现有效的自训练
低秩权重更新
1.Segment Anything Model
SAM 主要由三个组件构成:图像编码器(ImageEncoder)、提示编码器(PromptEncoder)、和解码器(MaskDecoder)
图像编码器使用 MAE 进行预训练,整个 SAM 在拥有 11 亿标注的训练集 SA-1B 上进一步进行微调,训练时使用了 Focal loss 和 Dice loss 的组合。推理时,测试图片 x 首先由图像编码器进行编码,然后给定提示 Prompt,轻量级的解码器将进行三个级别的预测。
2.Source-Free 域适应自训练

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

                              图 2 所提出的具有锚定网络正则化和对比损失正则化的自训练架构
针对未提供标记的目标数据集 DT={xi} 和预训练的分割模型。我们采用了 student-teacher 架构进行自训练。如图 2 所示,我们维护三个编码器网络,即 anchor model、student model、teacher model,其中 student 和 teacher model 共享权重。
具体来说,对于每个样本 xi,应用一个随机的弱数据增强作为 anchor 和 teacher model 的输入,应用一个随机的强数据增强作为 student model 的输入,三个编码器网络编码产生三个特征图。
在解码器网络中,给定一定数量 Np 的提示 prompt,例如 box、point 或 coarse mask,将推理出一组实例分割的 masks。
基于以上知识,我们下面详细阐述用于自训练的三组优化目标。
1) Student-Teacher 自训练
我们首先使用与训练 SAM 时相同的损失函数作为自训练优化目标来更新 student/teacher model。自训练广泛应用于半监督学习,最近还被证明了对无源域自适应非常有效。具体而言,我们使用 teacher model 产生的预测结果,作为伪标签(Pseudo label),并使用 Focal loss 和 Dice loss 来监督 student 的输出。

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

2) Anchor 损失用于鲁棒正则化
仅使用自训练损失进行网络训练容易受到 teacher 网络预测的错误伪标签积累的影响,即所谓的确认偏差。观察也表明,仅使用自训练长时间迭代后性能会下降。现有的无源域自适应方法通常采用额外的约束来防止自训练的负面影响,例如对预测进行均匀分布。
我们通过 anchor 损失来进行正则化,如公式 3 所示,分别最小化了 anchor model 与 student/teacher model 之间的 Dice loss。冻结的 anchor model 作为从源域(source domain)继承的知识,不鼓励源模型和自训练更新模型之间出现过大的偏差,可以防止模型崩溃。

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

3) 对比损失正则化编码器特征空间

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

                                   图 3 两个分支下的对比损失

以上两个训练目标是在解码器的输出空间中执行的。实验部分揭示出,更新编码器网络是适应 SAM 最有效的方法,因此有必要直接对从编码器网络输出的特征应用正则化。具体如图 3 所示,我们根据 anchor 和 teacher 分支中预测 mask 从特征图中裁剪出每个实例的特征CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

我们进一步定义对比损失中的正负样本对,正样本对是由两个分支中使用相同的 prompt 对应的实例特征构建,而负样本对是由不同 prompt 对应的实例特征来构建的。最终的对比损失如下所示,其中 CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了是温度系数。

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

4) 总损失
我们将上述三个损失函数组合成最终的 Source-Free 自适应损失。

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

3. 自训练的 Prompt 生成
SAM 分割需要 Prompt 输入来指示出待分割的目标对象,但可能会存在颗粒度模糊的问题。Prompt 工程可以以完全自动化的方式实现,也可以通过人工交互实现。
1) 完全自动生成 Prompt
我们首先使用网格密集采样点作为 prompt 输入,通过 Anchor model 生成初始阶段分割的 masks,剔除 IoU 和稳定性得分低的 mask,然后进行非极大值抑制来获得分割结果。接下来从最终的 masks 中产生一组固定的 prompts,作为所有三个分支的 prompt 输入。因此,三个网络分割输出的 mask 长度相同,并且具有精确的一对一对应关系。
2) 弱监督作为 Prompt
尽管可以通过在图像上使用网格采样获得 prompts,并过滤掉质量低和重复的 mask 来进行自动分割。但这些分割质量相对较差,可能包含许多误报预测,并且颗粒度不明确。由此产生的 prompt 质量参差不齐,使得自训练效果较差。
因此,借鉴先前的弱监督域自适应工作,我们提出使用三种弱监督方式,包括边界框 box、稀疏点标注 point 和粗分割多边形 coarse mask。在 SAM 中,这些弱监督方式与 prompt 输入完美匹配,可以无缝集成弱监督以适应 SAM。
4. 低秩权重更新
基础模型庞大的编码器网络使得更新所有模型的权重变得异常困难。然而,许多现有研究表明,更新编码器网络权重是调整预训练模型的有效方法。
为了能够更加有效且低成本地更新编码器网络,我们选择了一种计算友好的低秩更新方法。对于编码器网络中的每个权重 θ,我们使用低秩近似 ω = AB,并设定一个压缩率 r。只有 A 和 B 通过反向传播进行更新以减少内存占用。在推理阶段,通过将低秩近似和原始权重组合来重构权重,即 θ = θ + AB。
实验
在实验中,我们提供了与最先进方法的详细比较和定性结果。最后,我们分析了各个部分的有效性以及网络的具体设计。
1. 数据集
在这项工作中,我们对五种不同类型的下游分割任务进行评估,其中一些与 SA-1B 存在明显的分布偏移。数据集涵盖了清晰的自然图像、添加干扰的自然图像、医学图像、伪装物体和机器人图像,总计 10 种。
数据划分:每个下游数据集被划分为互不重叠的训练集和测试集。
表 1 中列出了每种类型下游任务所评估的数据集,以及训练和测试数据集的划分。

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

2. 实验细节
Segment-Anything 模型:由于内存限制,我们采用 ViT-B 作为编码器网络。采用标准提示编码器和 mask 解码器。
Prompt 生成:训练和评估阶段的 Prompt 输入均是由从实例分割 GT mask 计算而来,模拟人类交互作为弱监督。
具体来说,我们从整个 GT mask 的最小边界框中提取 box。Point 是通过在 GT mask 内随机选择 5 个正样本点和 5 个 mask 外的负样本点创建的。Coarse mask 是通过将多边形拟合到 GT mask 来模拟的。
3. 实验结果
表 2、3、4、5 分别是在添加干扰的自然图像、清晰的自然图像、医学图像、伪装物体数据集上的测试结果,完整的实验结果可以在论文中找到。实验证明了我们的方案在几乎所有的下游分割数据集上都优于预训练的 SAM 和最先进的域适应方案。

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

无阶未来模型擂台/AI 应用平台 无阶未来模型擂台/AI 应用平台

无阶未来模型擂台/AI 应用平台,一站式模型+应用平台

无阶未来模型擂台/AI 应用平台 35 查看详情 无阶未来模型擂台/AI 应用平台

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

4. 可视化结果
部分可视化结果如图 4 所示,更多的可视化结果可以在论文中找到。

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

                                 图 4 部分实例的可视化结果
5. 消融实验和额外分析
我们在 COCO 数据集上分析了三个自训练优化目标各自的有效性,如表 7 所示。表 7 中,我们还分析了所提出方法在不使用任何弱监督信息时进行自适应的效果。

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

我们分析了训练和测试使用不同类别的 prompt 的性能差异,如表 8 所示。实验表明我们的方案在 cross-prompt 条件下依然表现良好。

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

此外,我们还分析了优化不同模块,包括解码器、LayerNorm 和不同的 finetune 方案以及他们的组合的实验结果,实验证明了 finetune 编码器的 LoRA 方案效果最佳。

CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了

总结
尽管视觉基础模型可以在分割任务上表现出色,但其在下游任务中仍会存在性能不佳的情况。我们研究了 Segment-Anything 模型在多个下游图像分割任务中的泛化能力,并提出了一种基于锚点正则化和低秩微调的自训练方法。该方法无需访问源数据集、内存成本低、与弱监督自然兼容,可以显著提升自适应效果。经过广泛的实验验证,结果表明我们提出的域适应方法可以显著改善 SAM 在各种分布迁移下的泛化能力。

以上就是CVPR 2024 | 分割一切模型SAM泛化能力差?域适应策略给解决了的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/616773.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月11日 04:20:46
下一篇 2025年11月11日 04:25:34

相关推荐

  • HTML、CSS 和 JavaScript 中的简单侧边栏菜单

    构建一个简单的侧边栏菜单是一个很好的主意,它可以为您的网站添加有价值的功能和令人惊叹的外观。 侧边栏菜单对于客户找到不同项目的方式很有用,而不会让他们觉得自己有太多选择,从而创造了简单性和秩序。 今天,我将分享一个简单的 HTML、CSS 和 JavaScript 源代码来创建一个简单的侧边栏菜单。…

    2025年12月24日
    200
  • 前端代码辅助工具:如何选择最可靠的AI工具?

    前端代码辅助工具:可靠性探讨 对于前端工程师来说,在HTML、CSS和JavaScript开发中借助AI工具是司空见惯的事情。然而,并非所有工具都能提供同等的可靠性。 个性化需求 关于哪个AI工具最可靠,这个问题没有一刀切的答案。每个人的使用习惯和项目需求各不相同。以下是一些影响选择的重要因素: 立…

    2025年12月24日
    300
  • 带有 HTML、CSS 和 JavaScript 工具提示的响应式侧边导航栏

    响应式侧边导航栏不仅有助于改善网站的导航,还可以解决整齐放置链接的问题,从而增强用户体验。通过使用工具提示,可以让用户了解每个链接的功能,包括设计紧凑的情况。 在本教程中,我将解释使用 html、css、javascript 创建带有工具提示的响应式侧栏导航的完整代码。 对于那些一直想要一个干净、简…

    2025年12月24日
    000
  • 布局 – CSS 挑战

    您可以在 github 仓库中找到这篇文章中的所有代码。 您可以在这里查看视觉效果: 固定导航 – 布局 – codesandbox两列 – 布局 – codesandbox三列 – 布局 – codesandbox圣杯 &#8…

    2025年12月24日
    000
  • 隐藏元素 – CSS 挑战

    您可以在 github 仓库中找到这篇文章中的所有代码。 您可以在此处查看隐藏元素的视觉效果 – codesandbox 隐藏元素 hiding elements hiding elements hiding elements hiding elements hiding element…

    2025年12月24日
    400
  • 居中 – CSS 挑战

    您可以在 github 仓库中找到这篇文章中的所有代码。 您可以在此处查看垂直中心 – codesandbox 和水平中心的视觉效果。 通过 css 居中 垂直居中 centering centering centering centering centering centering立即…

    2025年12月24日 好文分享
    300
  • 如何在 Laravel 框架中轻松集成微信支付和支付宝支付?

    如何用 laravel 框架集成微信支付和支付宝支付 问题:如何在 laravel 框架中集成微信支付和支付宝支付? 回答: 建议使用 easywechat 的 laravel 版,easywechat 是一个由腾讯工程师开发的高质量微信开放平台 sdk,已被广泛地应用于许多 laravel 项目中…

    2025年12月24日
    000
  • 如何在移动端实现子 div 在父 div 内任意滑动查看?

    如何在移动端中实现让子 div 在父 div 内任意滑动查看 在移动端开发中,有时我们需要让子 div 在父 div 内任意滑动查看。然而,使用滚动条无法实现负值移动,因此需要采用其他方法。 解决方案: 使用绝对布局(absolute)或相对布局(relative):将子 div 设置为绝对或相对定…

    2025年12月24日
    000
  • 移动端嵌套 DIV 中子 DIV 如何水平滑动?

    移动端嵌套 DIV 中子 DIV 滑动 在移动端开发中,遇到这样的问题:当子 DIV 的高度小于父 DIV 时,无法在父 DIV 中水平滚动子 DIV。 无限画布 要实现子 DIV 在父 DIV 中任意滑动,需要创建一个无限画布。使用滚动无法达到负值,因此需要使用其他方法。 相对定位 一种方法是将子…

    2025年12月24日
    000
  • 移动端项目中,如何消除rem字体大小计算带来的CSS扭曲?

    移动端项目中消除rem字体大小计算带来的css扭曲 在移动端项目中,使用rem计算根节点字体大小可以实现自适应布局。但是,此方法可能会导致页面打开时出现css扭曲,这是因为页面内容在根节点字体大小赋值后重新渲染造成的。 解决方案: 要避免这种情况,将计算根节点字体大小的js脚本移动到页面的最前面,即…

    2025年12月24日
    000
  • Nuxt 移动端项目中 rem 计算导致 CSS 变形,如何解决?

    Nuxt 移动端项目中解决 rem 计算导致 CSS 变形 在 Nuxt 移动端项目中使用 rem 计算根节点字体大小时,可能会遇到一个问题:页面内容在字体大小发生变化时会重绘,导致 CSS 变形。 解决方案: 可将计算根节点字体大小的 JS 代码块置于页面最前端的 标签内,确保在其他资源加载之前执…

    2025年12月24日
    200
  • Nuxt 移动端项目使用 rem 计算字体大小导致页面变形,如何解决?

    rem 计算导致移动端页面变形的解决方法 在 nuxt 移动端项目中使用 rem 计算根节点字体大小时,页面会发生内容重绘,导致页面打开时出现样式变形。如何避免这种现象? 解决方案: 移动根节点字体大小计算代码到页面顶部,即 head 中。 原理: flexível.js 也遇到了类似问题,它的解决…

    2025年12月24日
    000
  • 形状 – CSS 挑战

    您可以在 github 仓库中找到这篇文章中的所有代码。 您可以在此处查看 codesandbox 的视觉效果。 通过css绘制各种形状 如何在 css 中绘制正方形、梯形、三角形、异形三角形、扇形、圆形、半圆、固定宽高比、0.5px 线? shapes 0.5px line .square { w…

    2025年12月24日
    000
  • 有哪些美观的开源数字大屏驾驶舱框架?

    开源数字大屏驾驶舱框架推荐 问题:有哪些美观的开源数字大屏驾驶舱框架? 答案: 资源包 [弗若恩智能大屏驾驶舱开发资源包](https://www.fanruan.com/resource/152) 软件 [弗若恩报表 – 数字大屏可视化组件](https://www.fanruan.c…

    2025年12月24日
    000
  • 网站底部如何实现飘彩带效果?

    网站底部飘彩带效果的 js 库实现 许多网站都会在特殊节日或活动中添加一些趣味性的视觉效果,例如点击按钮后散发的五彩缤纷的彩带。对于一个特定的网站来说,其飘彩带效果的实现方式可能有以下几个方面: 以 https://dub.sh/ 网站为例,它底部按钮点击后的彩带效果是由 javascript 库实…

    2025年12月24日
    000
  • 网站彩带效果背后是哪个JS库?

    网站彩带效果背后是哪个js库? 当你访问某些网站时,点击按钮后,屏幕上会飘出五颜六色的彩带,营造出庆祝的氛围。这些效果是通过使用javascript库实现的。 问题: 哪个javascript库能够实现网站上点击按钮散发彩带的效果? 答案: 根据给定网站的源代码分析: 可以发现,该网站使用了以下js…

    好文分享 2025年12月24日
    100
  • 产品预览卡项目

    这个项目最初是来自 Frontend Mentor 的挑战,旨在使用 HTML 和 CSS 创建响应式产品预览卡。最初的任务是设计一张具有视觉吸引力和功能性的产品卡,能够无缝适应各种屏幕尺寸。这涉及使用 CSS 媒体查询来确保布局在不同设备上保持一致且用户友好。产品卡包含产品图像、标签、标题、描述和…

    2025年12月24日
    100
  • 如何利用 echarts-gl 绘制带发光的 3D 图表?

    如何绘制带发光的 3d 图表,类似于 echarts 中的示例? 为了实现类似的 3d 图表效果,需要引入 echarts-gl 库:https://github.com/ecomfe/echarts-gl。 echarts-gl 专用于在 webgl 环境中渲染 3d 图形。它提供了各种 3d 图…

    2025年12月24日
    000
  • 如何在 Element UI 的 el-rate 组件中实现 5 颗星 5 分制与百分制之间的转换?

    如何在el-rate中将5颗星5分制的分值显示为5颗星百分制? 要实现该效果,只需使用 el-rate 组件的 allow-half 属性。在设置 allow-half 属性后,获得的结果乘以 20 即可得到0-100之间的百分制分数。如下所示: score = score * 20; 动态显示鼠标…

    2025年12月24日
    100
  • CSS 最佳实践:后端程序员重温 CSS 时常见的三个疑问?

    CSS 最佳实践:提升代码质量 作为后端程序员,在重温 CSS/HTML 时,你可能会遇到一些关于最佳实践的问题。以下将解答三个常见问题,帮助你编写更规范、清晰的 CSS 代码。 1. margin 设置策略 当相邻元素都设置了 margin 时,通常情况下应为上一个元素设置 margin-bott…

    2025年12月24日
    000

发表回复

登录后才能评论
关注微信