当前位置: 首页 > news >正文

SAM功能改进VRP-SAM论文解读VRP-SAM: SAM with Visual Reference Prompt

现已总结SAM多方面相关的论文解读,具体请参考该专栏的置顶目录篇

一、总结

1. 简介

发表时间:2024年3月30日

论文:

2402.17726.pdf (arxiv.org)icon-default.png?t=N7T8https://arxiv.org/pdf/2402.17726.pdf代码:

syp2ysy/VRP-SAM (github.com)icon-default.png?t=N7T8https://github.com/syp2ysy/VRP-SAM

2. 摘要

        在本文中,我们提出了VRP-SAM,通过集成视觉参考提示(VRP)编码器实现了SAM框架的创新扩展。这个附加功能使SAM能够利用视觉参考提示进行引导分割
        核心方法包括通过VRP编码器编码带注释的参考图像,然后与目标图像交互,在SAM框架内生成有意义的分割提示,对目标图像中的特定对象进行分割。VRP编码器可以支持各种参考图像的注释格式,包括点、框、涂鸦和掩码。它克服了SAM现有提示格式的限制,特别是在复杂场景和大型数据集中。为了提高VRP- SAM的泛化能力,VRP编码器采用了元学习策略。我们还对Pascal和COCO数据集进行了广泛的实证研究。
        VRP-SAM在保留SAM固有优势的同时扩展了它的多功能性、灵活性和适用性,增强了用户友好性。大量的实证研究表明,VRP-SAM在视觉参考分割中以最小的可学习参数实现了最先进的性能,展示了强大的泛化能力,允许它执行未见对象的分割并实现跨域分割。

3. 引言

        SAM存在以下两个问题:如下图所示,SAM依靠用户提供的提示(点、框、粗掩码)对目标图像中的物体进行分割,要求用户对目标物体有全面的了解用户对目标对象的熟悉程度会显著影响提供特定提示的有效性

        此外,不同图像中目标对象的位置、大小和数量的变化需要为每个图像定制提示。如图所示,为了对“自行车”进行分割,用户需要为每个图像定制不同的提示,这极大地影响了SAM的效率。为了解决这一问题,PerSAMMatcher结合语义相关模型来建立参考目标相关性,获得目标对象的伪掩码。在此之后,设计了一种采样策略,从伪掩模中提取一组点和边界框,作为SAM分割目标图像的提示。这些方法忽略了伪掩码内的假阳性,并对超参数表现出高灵敏度。因此,它严重依赖于伪掩码的质量,泛化能力差。

   现有的方法受到SAM现有提示模式的限制,在面对复杂的对象和不熟悉的场景时可能会遇到困难。我们整合视觉参考提示来克服这些局限性。视觉参考提示是描述用户期望分割的对象的带注释的参考图像。如下图所示,通过简单地提供一个可视的参考提示对于自行车,可以在不同的图像中分割自行车,而不需要用户为每个图像提供特定的提示。它显著提高了SAM的效率,同时减少了对用户熟悉对象的依赖。

        视觉参考分割的目的是利用语义标注的参考图像来指导目标图像中与参考图像中具有相同语义的对象或区域的分割。在目前的研究中,方法大致可以分为两大类:基于原型的方法和基于特征匹配的方法。基于原型的方法,如PFENet、PANet和CWT,通常侧重于区分具有不同类特定特征的原型。另一方面,ASGNet通过增加原型的数量来提高分割性能。另一种特征匹配方法利用参考图像和目标图像之间的像素级相关性来显著增强分割性能,如CyCTR和HDMNet等方法。此外,现代大尺度视觉模型已经将视觉参考分割作为主要任务,因为它在处理复杂物体和未知场景中起着不可或缺的作用。然而,需要注意的是,SAM不具备执行此任务的能力,这强调了引入VPR-SAM的必要性。

4. 贡献

(1)提出了一个由特征增强器和提示生成器组成的视觉参考提示(VRP)编码器,它接受多种格式的视觉参考,并将其编码为提示嵌入,而不是几何提示。
(2)通过元学习方法,VRP编码器在参考图像中提取目标对象的原型特征,并将其与目标图像的特征相结合,以生成用于分割的提示。
(3)在COCO-20^{i}PASCAL-5^{i}数据集上进行了广泛的实验,证明了VRP-SAM在处理复杂场景和大量图像时的有效性,特别是在处理新对象和跨域场景时。
(4)通过结合BCE损失和Dice损失,VRP-SAM在生成精确分割结果方面表现出色。

二、模型结构

1. 整体流程     

        VRP-SAM利用带注释的参考图像作为提示,接受各种注释格式(点、涂鸦、方框和掩码)的输入,来分割目标图像中相似的语义对象。在SAM固有功能的基础上,VRPSAM增强了模型的视觉参考分割能力。引入视觉参考提示(VRP)不仅使提示多样化,使模型能够快速分割具有相同语义的对象,而且还结合了元学习机制,显着提高了模型的泛化,特别是在处理新对象和跨域场景时。

        VRP-SAM通过训练效率高的视觉参考提示编码器扩展了SAM,在不损害其原始功能的情况下执行视觉参考分割。首先,它可以容纳不同粒度的视觉参考,其次,直接将这些视觉参考编码成提示嵌入而不是几何提示。然后,将这些提示嵌入直接馈送到掩码解码器中,从而生成目标掩码。
        如下图所示,VRP编码器由特征增强器和提示生成器组成。具体来说,VRP编码器引入了语义相关模型,将参考图像和目标图像编码到同一空间。采用元学习方法,我们首先从参考图像的注释信息中提取目标对象的原型,增强目标对象在两幅图像中的表示。根据元学习方法,首先从带注释的参考图像中生成目标对象(用户标记)的原型,目的是突出这些目标实例在参考和目标图像中。然后,我们引入了一组可学习的查询,从关注的增强参考特征中提取目标对象的语义线索。然后,这些查询与目标图像交互,生成可用于掩码解码器的提示嵌入,以分割目标图像中语义特定的对象。

2. 特征增强器

        特征增强器受元学习启发,能够将参考图像的注释信息编码到参考图像和目标图像的特征中,从而在两个图像之间建立语义关联。为目标图像中特定类别的对象分割提供了强有力的特征表示,从而提高了分割的准确性和模型的泛化能力。

特征增强器的主要步骤包括:

(1)初始编码:使用语义感知图像编码器(例如ResNet-50)分别对参考图像l_{r}和目标图像l_{t}进行编码,得到特征图F_{r}F_{t}
(2)提取原型特征:使用参考图像的掩码m_{r}^{i}(表示以下注释格式之一:点、涂鸦、框或掩码)从参考图像的特征图F_{r}中提取与特定类别 i 相关的原型特征P_{i}
(3)特征增强:将原型特征P_{i}与参考图像和目标图像的特征图F_{r}F_{t}进行拼接,增强特征图中关于类别 i 的上下文信息。F_{r}与掩码m_{i}连接,F_{t}伪掩码m_{i}^{\text {pseudo}}连接。
(4)降维处理:通过共享的1×1卷积层减少增强特征的维度,得到降维后的特征图(F_{r}^{'}F_{t}^{'}),这些特征图包含了类别 i 的前景表示和其他类别的背景表示。
(5)特征图输出:最终,特征增强器输出增强后的参考图像和目标图像特征(F_{r}^{'}F_{t}^{'}),这些特征随后被送入提示生成器(Prompt Generator)以获取一组视觉参考提示。

【注意】伪掩码生成:根据相似性图,选择最相似的像素点作为目标对象的近似位置,并将这些点连接起来形成一个粗略的掩码,即伪掩码。它的主要作用是为分割模型提供一个初步的对象位置提示,帮助模型在没有精确标注的情况下进行对象分割。

3. 提示生成器

        提示生成器的目的是为SAM掩码解码器生成一组富含语义信息的视觉参考提示嵌入(embeddings),这些嵌入能够有效地指导目标图像中的前景对象分割,以实现目标图像中特定对象的精确分割。

提示生成器的主要步骤包括:

(1)引入可学习查询(queries):提示生成器首先引入一组可学习的查询向量Q,这些查询向量用于从参考图像中提取与目标对象相关的语义信息。
(2)交互参考图像特征:这些查询向量通过交叉注意力(cross-attention)和自注意力(self-attention)层与参考图像特征F_{r}^{'}进行交互,从而获得关于待分割对象的类别特定信息。
(3)生成目标图像提示:接着,这些查询向量Q_{r}^{'}通过交叉注意力与目标图像特征F_{t}^{'}进行交互,以获取目标图像中的前景信息。之后,使用自注意力层更新这些查询向量,生成一组与SAM表示对齐的提示Q_{t}^{'}
(4)产生提示嵌入:最终生成的Q_{t}^{'}作为视觉参考提示嵌入,它们具备指导目标图像中特定语义对象分割的能力。将这些视觉参考提示嵌入输入到掩码解码器中,可以生成目标图像中类别i的掩码M_{t}^{i}

4. 损失函数

        VRP-SAM模型中训练视觉参考提示编码器时,结合了二元交叉熵(Binary Cross-Entropy, BCE)损失和Dice损失,使其能够在训练过程中同时优化像素级别的分类准确性和对象空间位置的准确性,从而提高模型在视觉参考分割任务上的性能。
(1)BCE损失:这种损失确保像素级别的准确性,即模型预测的掩码与真实标签之间的匹配程度。BCE损失鼓励模型正确地识别目标对象的每个像素。
(2)Dice损失:这种损失提供了额外的上下文信息,帮助模型在像素级别进行更准确的分割。Dice损失是一种常用于图像分割任务的损失函数,它衡量两个样本的相似度,特别是在医学图像分割中。
(3)总损失:VRP-SAM的总损失是BCE损失和Dice损失的组合,其中包含了一个平衡因子,用于调整两种损失的相对重要性。这种组合损失函数全面考虑了分割的准确性和上下文效果,从而更有效地指导视觉参考提示编码器生成精确的分割结果。

三、实验

1. 设置

        数据集:COCO-20^{i}PASCAL-5^{i}数据集上验证VRP-SAM的分割性能和泛化能力。具体来说,我们将两个数据集中的所有类组织为4个folds,对于每个folds,PASCAL-5^{i}包括15个用于训练的基类和5个用于测试的新类,而COCO-20^{i}包括60个训练基类和20个测试新类。在每个folds中随机抽取1000对参考目标对用于评估模型的性能。在每个folds中按照SEEM通过基于参考真实掩码随机模拟用户输入来生成这些注释标签。

        实现细节:在视觉参考提示编码器中,使用VGG-16和ResNet-50作为图像编码器,并使用ImageNet预训练的权值进行初始化。使用AdamW优化器以及余弦学习率衰减策略来训练VRPSAM。在COCO-20^{i}数据集上训练了50个epoch,初始学习率为1e-4,批大小为8。在PASCAL-5^{i}数据集上训练了100个epoch,初始学习率为2e-4,批大小为8。在VRP中,查询次数默认设置为50,所有实验的输入图像大小需要调整为512 × 512。在训练过程中,根据掩码注释获得点、涂鸦和框的注释。

2. 与最先进的比较

(1)与其他基础模型比较:COCO-20^{i}上的一次性语义分割结果。灰色表示模型是由域内数据集训练的。†表示使用SAM的方法。

(2)与few-shot方法比较:COCO-20^{i}PASCAL-5^{i}上的一次性语义分割性能,红色和蓝色分别代表最优和次优结果。

3. 几何提示的比较

        如下表所示,几何提示从伪掩码中随机采样。†表示Matcher中提出的精心设计的抽样策略。

        下图显示了GP-SAM和VRP-SAM的分割结果。可视化结果表明,GP方法容易产生假阳性提示,严重影响分割性能。相反,我们的VRP有效地避免了这些问题。

4. 概括评价

 (1)域的转变:COCO-20^{i}PASCAL-5^{i}域移下的评估(Mean IoU(%))。

(2)可视化:给出了VRP-SAM在不同图像样式下的定性结果。目标图片来自互联网。

5. 消融实验

(1)损失:VRP-SAM不同损失函数的消融研究。

(2)查询次数:不同查询数对VRP-SAM的消融研究。x轴表示查询的数量,y轴表示模型性能。

(3)查询的初始化: VRP-SAM上不同查询初始化方法的消蚀研究。

(4)VRP数量:VRP-SAM几种视觉参考提示的消融研究。

相关文章:

SAM功能改进VRP-SAM论文解读VRP-SAM: SAM with Visual Reference Prompt

现已总结SAM多方面相关的论文解读,具体请参考该专栏的置顶目录篇 一、总结 1. 简介 发表时间:2024年3月30日 论文: 2402.17726.pdf (arxiv.org)https://arxiv.org/pdf/2402.17726.pdf代码: syp2ysy/VRP-SAM (github.com)htt…...

MySQL truncate table 与 delete 清空表的区别和坑

拓展阅读 MySQL View MySQL truncate table 与 delete 清空表的区别和坑 MySQL Ruler mysql 日常开发规范 MySQL datetime timestamp 以及如何自动更新,如何实现范围查询 MySQL 06 mysql 如何实现类似 oracle 的 merge into MySQL 05 MySQL入门教程&#xff0…...

Spring GA、PRE、SNAPSHOT 版本含义及区别

GA:General Availability: 正式发布的版本,推荐使用(主要是稳定),与maven的releases类似; PRE: 预览版,内部测试版。主要是给开发人员和测试人员测试和找BUG用的,不建议使用; SNAPSHOT: 快照…...

一文看懂标准版和Pro版的区别

在CRMEB的众多产品中,有这样两款产品经常被拿来比较,它们就是CRMEB的标准版和Pro版商城系统,今天,我们就来盘一下这两款系统之间究竟有哪些不同。 1、Pro版系统性能更卓越 CRMEB Pro版采用Tp6 SwooleRedis高性能框架开发&#x…...

腾讯云服务器价格表(腾讯云服务器报价表)

腾讯云服务器提供了多种类型的产品,以满足不同用户的需求,其价格因产品类型、配置和使用时长等因素而有所不同。以下是根据最近的信息整理的腾讯云服务器价格表概览,但请注意,实际价格可能会有所变动,建议用户在购买前…...

试试把GPT和Suno结合起来用(附免费GPT)

什么是GPT GPT(生成预训练变换器)是由OpenAI开发的一种先进的人工智能模型,它能够理解和生成人类语言。通过大量的数据训练,GPT模型不仅能够撰写文章、编写代码,还能创作诗歌和故事。而现在,这种技术已经扩…...

SpringBoot修改菜品模块开发

需求分析与设计 一:产品原型 在菜品管理列表页面点击修改按钮,跳转到修改菜品页面,在修改页面回显菜品相关信息并进行修改,最后点击保存按钮完成修改操作。 修改菜品原型: 二:接口设计 通过对上述原型图…...

Rust开发笔记 | 系统编程的守护神

在如今这个信息技术不断发展的时代,系统编程语言演进的步伐从未停歇。Rust,作为现代化的系统编程语言,正凭借其出色的性能、安全性和并发处理能力赢得编程界的广泛赞誉。有别于传统的系统编程语言,Rust在保证高性能的同时&#xf…...

dcoker+nginx解决前端本地开发跨域

步骤 docker 拉取nginx镜像跑容器 并配置数据卷nginx.conf nginx.conf文件配置 这里展示server server {listen 80;listen [::]:80;server_name localhost;#access_log /var/log/nginx/host.access.log main;location / {# 当我们访问127.0.0.1:8028就会跳转到ht…...

基于云开发和微信小程序的爱宠家系统

基于云开发和微信小程序的爱宠家系统 “Development of PetCare Home System based on Cloud Computing and WeChat Mini Program” 完整下载链接:基于云开发和微信小程序的爱宠家系统 文章目录 基于云开发和微信小程序的爱宠家系统摘要第一章 系统概述1.1 研究背景1.2 研究目…...

光场相机建模与畸变校正改进方法

摘要:光场相机作为一种新型的成像系统,可以直接从一次曝光的图像中得到三维信息。为了能够更充分有效地利用光场数据包含的角度和位置信息,完成更加精准的场景深度计算,从而提升光场相机的三维重建的精度,需要实现精确…...

面试算法-173-二叉树的直径

题目 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们之间边数表示。 示例 1: 输入:root [1,2,3,4,…...

Python Typing模块

Python Typing模块 常用类型 类型说明int,long,float整型,长整形,浮点型bool,str布尔型,字符串类型List, Tuple, Dict, Set列表,元组,字典, 集合Iterable,Iterator可迭代类型,迭代器类型Generator生成器类型 后三行需要从typing…...

【鸿蒙开发】饿了么页面练习

0. 整体结构 整体划分3部分。店铺部分,购物车部分,金额统计部分。使用 Stack 把3部分堆叠 0.1 整体页面 Index.ets 修改 Index.ets ,使用堆叠布局,并居底部对齐 import { ElShop } from ../components/ElShop import { ElShopp…...

鸿蒙开发学习笔记第一篇--TypeScript基础语法

目录 前言 一、ArkTS 二、基础语法 1.基础类型 1.布尔值 2.数字 3.字符串 4.数组 5.元组 6.枚举 7.unkown 8.void 9.null和undefined 10.联合类型 2.条件语句 1.if语句 1.最简单的if语句 2.if...else语句 3.if...else if....else 语句 2.switch语句 5.函数…...

Java基础知识总结(55)

(2) ArrayList和LinkedList的区别 1、ArrayList和LinkedList都实现了List接口2、ArrayList和LinkedList都是非线程安全的,因此在多线程环境下可能会出现出现不同步的情况3、ArrayList底层实现是数组,LinkedList底层实现是双向链表…...

python爬虫 - 爬取微博热搜数据

文章目录 python爬虫 -爬取微博热搜数据1. 第一步:安装requests库和BeautifulSoup库2. 第二步:获取爬虫所需的header和cookie3. 第三步:获取网页4. 第四步:解析网页5. 第五步:分析得到的信息,简化地址6. 第…...

Pytorch-张量形状操作

😆😆😆感谢大家的观看😆😆 🌹 reshape 函数 transpose 和 permute 函数 view 和 contigous 函数 squeeze 和 unsqueeze 函数 在搭建网络模型时,掌握对张量形状的操作是非常重要的&#xff…...

k8s的service为什么不能ping通?——所有的service都不能ping通吗

点击阅读原文 前提:kube-proxy使用iptables模式 Q service能不能ping通? A: 不能,因为k8s的service禁止了icmp协议 B: 不能,因为clusterIP是一个虚拟IP,只是用于配置netfilter规则,不会实际绑定设备&…...

[Linux] 权限控制命令 chmod、chown和chgrp

文章目录 chmodchownchgrp chmod 在Linux系统中,root用户可以使用chmod命令来修改文件的权限,并且root用户也可以授权普通用户来执行chmod命令。要将权限授予普通用户修改一个文件的权限,可以使用以下步骤: 使用root用户登录到L…...

RNN知识体系构筑:详尽阐述其理论基础、技术架构及其在处理序列数据挑战中的创新应用

一、为什么需要RNN 尽管神经网络被视为一种强大且理论上能够近似任何连续函数的模型,尤其当训练数据充足时,它们能够在输入空间中的某个点( x )映射到输出空间的特定值( y ),然而,这并不能完全解释为何在众多应用场景中&#xff…...

LeetCode 1702.修改后的最大二进制字符串:脑筋急转弯(构造,贪心)

【LetMeFly】1702.修改后的最大二进制字符串:脑筋急转弯(构造,贪心) 力扣题目链接:https://leetcode.cn/problems/maximum-binary-string-after-change/ 给你一个二进制字符串 binary ,它仅有 0 或者 1 组…...

图片像素轻松缩放自如,支持批量将多张jpg图片像素放大,高效掌握图片的像素

在这个数字化时代,图片已经成为我们生活中不可或缺的一部分。然而,你是否曾遇到过需要放大图片像素却担心失去细节和质量的问题?现在,一款全新的图片缩放工具诞生了,它能够让你轻松将多张JPG图片像素放大,同…...

FILE类与IO流

目录 File类的实例化与常用方法 File类的理解 文件路径的表示方式: API的使用 IO流概述与流的分类 I/O流中的是Input/Output的缩写 IO流的分类(不同角度) Java程序中的IO流涉及40多个,但实际上都是由4个抽象类衍生出来的。 F…...

基于java+springboot+vue实现的智慧党建系统(文末源码+Lw+ppt)23-58

摘 要 当今社会进入了科技进步、经济社会快速发展的新时代。国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。传统智慧党建管理采取了人工的管理方法,但这种管…...

HiveSQL基础Day03

回顾总结 hive表的类型 :内部表和外部表 删除内部表会删除表的所有数据 删除外部表只会删除表的元数据,hdfs上的行数据会保留 表的分区和分桶 本质都是对表数据的拆分存储 分区的方式 是通过创建不同的目录来拆分数据 ,根据数据本身的内容最为…...

houdini 学习过程

1.基础界面操作了解 当初通过 朱峰上的界面 工具栏操作入门的,现在B站上应该也比较多 houdini pdf早期的 2.节点操作 B站视频 教程 3.vex B站捷佳 4.BILIBILI ENTAGMA CGWIKI YOUTUBE 5.节点功能的深入,属性了解,或其它节点扩充 常用&…...

Angular学习第四天--问题记录及父子组件问题

问题一、 拉取完项目,使用npm install命令的时候遇到的。 解决办法: 在查找网上五花八门的解决方案之后,发现都不能解决。 我的解决办法是: 1. 把package-lock.json给删掉; 2. 把package.json中公司自己库的包给删除掉…...

如何拿捏2024年的B端设计?(附工具推荐)

伴随着2019年前的互联网人口红利时代结束,科技行业的基本面发生了巨大的变化,以普通消费者为目标的C端需求大幅萎缩,面向企业的B端需求成为行业热点。 在2024年的今天,设计师应该如何理解B端设计的实质,并真正驾驭B端产…...

【蓝桥杯】2024年第15届真题题目

试题 A: 握手问题 本题总分: 5 分 【问题描述】 小蓝组织了一场算法交流会议,总共有 50 人参加了本次会议。在会议上, 大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进 行一次握手(且仅有一次&a…...

怎么做类似清风dj网站/外包推广公司

2019独角兽企业重金招聘Python工程师标准>>> Activity 基类定义了一系列用于管理活动生命周期的事件。它定义了如下事件: ● onCreate()—当活动首次加载时调用 ● onStart()—当活动对用户可见时调用 ● onResume()—当活动开始与用户交互时调用 ● onP…...

四川建设厅网站施工员证查询/seo和sem的区别是什么?

(二)内存 内存地址 区分三种不同的地址:1.逻辑地址:机器语言指令中指定操作书或指令的地址,由段和偏移量构成 2.线性/虚拟地址:应用程序的地址 3.物理地址:在内存芯片上的寻址地址   逻辑地址…...

成都建设网站哪个好/网络营销的特点有哪些?

ug768和ug799文档介绍了7系列芯片中包含的基本逻辑单元,对其中常用的单元,进行下分析。 图片 1、IOBUF单元 图片 (1)真值表 图片(2)用途 the design element is a bidirectional single-ended I/O…...

宝鸡营销型网站建设/陕西网站推广公司

实现功能:1.修改标题样式。把jquery ui的标题样式放上去。支持换肤。2.修改按钮样式,换成jqueryui的button按钮样式。3.将模式化窗口的背景换成了jqueryui的模式化背景。代码://首先要引入jquery,以及ui的包和皮肤的样式如&#x…...

高端网站建设公司哪个靠谱/域名解析查询

活动日程表: 转载于:https://www.cnblogs.com/CuteRabbit/archive/2007/10/13/2192526.html...

桐城市美好乡村建设办公室网站/综合性b2b电子商务平台网站

一、正则表达式 简要介绍 正则表达式 \w \s \d \b . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 等价于 [^A-Za-z0-9_]。 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串的开始 $ 匹配字符串的结束 \w能不能匹配汉字要视你的…...