SAM4MLLM:结合多模态大型语言模型和SAM实现高精度引用表达分割 | ECCV24

news/2024/11/14 12:49:33/文章来源:https://www.cnblogs.com/VincentLee/p/18543070

来源:晓飞的算法工程笔记 公众号,转载请注明出处

论文: SAM4MLLM: Enhance Multi-Modal Large Language Model for Referring Expression Segmentation

  • 论文地址:https://arxiv.org/abs/2409.10542
  • 论文代码:https://github.com/AI-Application-and-Integration-Lab/SAM4MLLM

创新点


  • 提出了一种允许MLLM理解像素级细节的方法SAM4MLLM,无需改变MLLM模型架构、引入新标记或使用额外损失,该方法简单但对引用表达分割(RES)非常有效。
  • 为了连接MLLMSAM,引入了一种新颖的方法,通过主动询问语言系统来获取提示点线索。
  • 在各种RES基准上进行实验,包括RES数据集、GRESReasonSeg,验证了SAM4MLLM的有效性,并展示了其在处理复杂像素感知任务中的优良性能。

内容概述


SAM4MLLM是一种创新的方法,集成Segment Anything ModelSAM)与多模态大型语言模型(MLLMs)以实现像素感知任务。

  1. 首先,在MLLM训练数据集中引入像素级信息,而不改变原有的MLLM架构,这使得MLLM能够使用与主流LLM相同的文本交叉熵损失来理解像素级信息。
  2. 其次,考虑到输入分辨率限制和模型架构未明确设计用于视觉任务,MLLM在像素表达方面可能存在的潜在限制。进一步利用SAM增强输出,通过后处理MLLM的输出以相对简单的方式获得更高精度的分割掩码。
  3. 最后,为了在SAMMLLM之间建立联系,一种简单的方法是使MLLM生成SAM的提示点。利用LLM的对话能力,主动要求MLLM获取SAM的有效提示点。

SAM4MLLM解决了RES问题,使得MLLMs能够学习像素级的位置信息。将详细的视觉信息与大型语言模型强大的表达能力以统一的基于语言的方式结合起来,而在学习中没有额外的计算开销。

SAM4MLLM


编码分割掩码为SAM提示

现有的用于分割的MLLMs依赖于模型架构的专门设计、分割特定的token和异构损失函数来预测对象掩码。而SAM4MLLM利用了SAM的特点,将少量文本提示token(边界框加上几个指示它们是否位于对象区域的点)转换为高质量的连续分割掩码。

SAM4MLLM使用在边界框内采样的点作为离散提示。具体而言,使用一个边界框 \(Prompt_B \in \mathbb{N}^4\)\(\mathcal{K}\) 个点来编码任意形状的掩码。 \(\mathcal{K}\) 个点的提示,每个点包含三个值: \(x\) 坐标、 \(y\) 坐标以及它是否在掩码上,编码为 \(Prompt_P \in \mathbb{N}^{\mathcal{K} \times 3}\)

通过将连续分割掩码编码为离散的SAM提示,避免了添加任何token或改变模型结构,同时仅使用文本自回归交叉熵损失进行训练。这种方法与语言模型的原始训练模式一致,使得MLLMs能够理解像素级信息,并促进未来的模型扩展变得更加容易。

使用MLLM提示SAM

为了将SAM以统一的方式纳入MLLM,一个主要问题在于获取SAM的提示点,包括在物体掩码区域内的正点(inside)和在外部的负点(outside)。为此,提出了两种解决方案:提示点生成(Prompt-Point Generation, PPG)和主动查询提示点(Proactive Query of Prompt-Points, PQPP)。

PPG直接采用MLLM来生成提示点和边界框,但同时生成多个点的学习将面临挑战,因此仅使用了少量提示点。PQPP则利用了MLLM的对话能力,首先询问一个粗略的边界框,然后通过问答的方式在边界框内探测多个感兴趣的点以提示SAM

  • SAM4MLLM-PPG

PPG采用了一种能够同时接受文本提示和图像输入的MLLM。为了使MLLM与分割任务对齐,使用了参数高效的微调技术LoRA,从而基于包含图像-文本对和真实掩码的RES数据集进行模型训练。LoRA输出位置提示,包括边界框 \(Prompt_B \in \mathbb{N}^4\)\(k\) 组正点和负点 \(Prompt_P \in \mathbb{N}^{(n_1+n_2)k \times 3}\) ,如图 (a) 所示,其中一组包含 \(n_1\) 个正点和 \(n_2\) 个负点( \(n_1=2, n_2=1\) )。

为了向LoRA提供位置监督,在训练阶段根据物体掩码随机采样 \(K\) 组点( \(K>k\) ),然后将这些提示发送给SAM。对于每一组,SAM输出分割结果。过滤掉与真实掩码相比IoU较低的提示,仅保留前 \(k\) 组(如图 (c) 所示)。在该实现中,仅需要文本损失(自回归交叉熵损失)。\(K\) 通常为64\(k=1\)

在推理阶段,LoRA直接输出发送给SAM进行分割的点,如图 (b) 所示。

  • SAM4MLLM-PQPP

PQPP利用MLLM的查询-响应能力,而不是直接生成提示。对提示点进行采样,并主动询问MLLM这些点是否在掩码内(或外)。在训练阶段,根据真实掩码随机采样一个边界框和 \(K\) 组点,并进行两轮对话。在对话的第一轮中,LoRA响应一个边界框。在第二轮中,对于每个 \((n_1+n_2)K\) 个点,LoRA在训练期间响应该点是否在掩码内(是或否)。

在推理阶段,LoRA在第一轮中为输入的文本查询和图像输出一个边界框。然后,在边界框内均匀采样点并在第二轮再次发送给MLLM-LoRA,并询问它们是否为正点(或负点),用于SAM进行分割。通常将网格大小设置为 \(5\times 5\) 。为了在发送到SAM之前提供高质量的提示点,低置信度的点将被移除。

RES训练

为了使基础MLLMRES任务对齐,使用包含与RES相关示例的三个数据集来指导模型朝目标前进。其中两个(RES数据集和gRefCOCO数据集)包含具有真实掩码的RES数据,第三个(VQA)是一个没有掩码的视觉对话数据集,用于进一步增强联合视觉-语言理解的总体能力。

在训练期间,为了保持MLLM在图像上的泛化能力,冻结了大部分网络参数,只调整了MLLM的视觉重采样器和LoRA适配器。

对于上述提到的所有数据集,我们在训练过程中不使用数据增强,因为翻转和/或裁剪可能会改变图像中物体的相对位置或关系。

主要实验




如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

work-life balance.

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

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

相关文章

信息时代的安全堡垒:500强企业数据安全传输案例解析

数据安全传输,这个是数据安全里一个比较细分的领域,但是包括的传输场景也是很多的,比如隔离网之间的跨网文件传输、企业内外部之间的文件安全外发、总分支之间的数据传输分发、信创环境下的高性能传输、机台等设备的数据采集传输、业务系统之间的自动化传输同步等等。 每家企…

Ubuntu 22.04 LTS 离线安装 Harbor v2.11 (附https认证,Trivy镜像扫描)

Harbor 介绍Harbor是一个开源的企业级Docker Registry服务,它提供了一个安全、可信赖的仓库来存储和管理Docker镜像。Harbor翻译为中文名称为"庇护;居住;"。可以理解为是Docker镜像的"居住环境"或者是镜像的"庇护所"。Harbor最初由VMware公司开…

reposync离线yum源

系统:open Euler 22.03-sp3-x86 reposync ;createrepo 1、配置好yum源 2、下载 下载指定repo到指定目录reposync --repoid EPOL -p /data/EPOL 3、制作镜像仓库cd EPOLcreaterepo .

叮咚!您有一份跨网域跨安全域文件传输方案待查收

跨网域跨安全域文件传输,在很多企业和机构里面,都会存在这样的场景的,比如企业内部会用网络隔离的方式,划分不同的安全域和网段,或者有些机构还有不同的分支机构,就会有不同地域的文件传输需求。 跨网域跨安全域传输的典型应用场景 跨网域跨安全域文件传输的典型应用场景…

rtthread源码completion.c no such file or dir

20241113 从gitee下载rtthread源码,bsp--->stm32--->stm32f407-atk-explorer直接编译报错,如下从百度网盘下载rtthread源码,bsp--->stm32--->stm32f407-atk-explorer编译正常,无错误如果,感到此时的自己很辛苦,那告诉自己:容易走的都是下坡路。坚持住,因为…

团队作业4——项目冲刺-3

团队作业4——项目冲刺-3信息项 内容课程名称 广工计院计科34班软工作业要求位置 作业要求作业目标 小飞棍团队对需求改进和系统设计进行讨论GitHub链接 GitHub一、团队简介队名:小飞棍队团队成员:姓名 学号罗振烘(组长) 3122004748庄崇立 3122004633李响 3121002802何昌洲…

宝塔如何修改网站名,如何在宝塔面板中修改网站名称

修改网站名称可以提升品牌识别度。以下是详细的步骤:登录宝塔面板:打开浏览器,输入宝塔面板的地址,例如 http://yourserverip:8888。 输入用户名和密码,点击“登录”。进入网站管理:登录后,点击左侧菜单栏中的“网站”。 在网站列表中找到需要修改名称的网站。修改网站名…

揭秘!Vue3.5响应式重构如何让内存占用减少56%

前言 Vue3.5版本又将响应式给重构了,重构后的响应式系统主要有两部分组成: 双向链表和 版本计数。我们在前两篇文章中我们已经讲过了 双向链表和 版本计数,这篇文章我们来讲讲为什么这次重构能够让内存占用减少56%。 欧阳年底也要毕业了,加入欧阳的面试交流群(分享内推信息…

11.14

[实验任务一]:计算机组装 使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。 实验要求:画出对应的类图;提交源代码;// Computer.java package builder;public class C…

网站安全狗修改远程端口,如何调整网站防火墙设置以增强安全性

网站安全狗是一款流行的网站防护软件,通过修改远程管理端口可以增加黑客攻击的难度。操作步骤如下:登录安全狗控制台:首先登录到安全狗的管理后台。 找到端口设置:在“设置”或“高级设置”中找到与远程管理相关的选项。 修改端口:选择一个不常用的端口号进行更改,并保存…

修改网站用户名,如何更改用户的登录名

修改网站用户名通常需要通过后台管理系统进行:登录管理后台:使用管理员账号登录网站管理后台。 进入用户管理:导航至“用户管理”或“会员管理”模块。 选择用户:找到需要修改的用户。 编辑用户名:在“用户名”或“登录名”字段中,输入新的用户名。 保存更改:确认无误后…