PerSAM!单图即可定制专属SAM模型!支持微调,甚至可增强DreamBooth

2023-05-16

大家好呀,我是阿潘。

Meta 的 Segment Anything Model 着实火了一把,今天来和大家分享一篇相关的研究成果,论文和代码都已开源:

从标题的字面意思应该就是指仅需一个样本即可定制个性化的SAM。

Personalize Segment Anything Model with One Shot https://arxiv.org/pdf/2305.03048.pdf https://github.com/ZrrSkywalker/Personalize-SAM

1bccb6319d762ddc5198e91955638cf7.png

1.摘要

在大数据预训练的驱动下, Segment Anything 模型(SAM)已被证明是一个强大且可推广的框架,彻底改变了分割模型。尽管具有普遍性,但在没有人工提示的情况下为特定视觉概念定制SAM的探索不足,例如,在不同的图像中自动分割宠物狗。在本文中,我们为SAM提出了一种 training-free的个性化方法,称为PerSAM。仅给定具有参考掩码的单个图像,PerSAM首先通过位置先验定位目标概念,并通过三种技术将其分割到其他图像或视频中:目标引导注意力、目标语义提示和级联后细化。通过这种方式,我们在没有任何训练的情况下有效地调整SAM以供私人使用。为了进一步缓解掩码的模糊性,我们提出了一种有效的一次性微调变体PerSAM-F。冻结整个SAM,我们为多尺度掩码引入了两个可学习的权重,仅在10秒内训练2个参数以提高性能。为了证明我们的有效性,我们构建了一个新的分割数据集PerSeg,用于个性化评估,并在具有竞争性能的视频对象分割上测试了我们的方法。此外,我们的方法还可以增强DreamBooth,以个性化文本到图像生成的稳定扩散,从而丢弃背景干扰,实现更好的目标外观学习。

2.动机

Segment Anything(SAM)开发了一个用于收集11M图像掩码数据的精细数据引擎,随后训练了一个强大的分割基础模型,称为SAM。它首先定义了一种新的可提示分割范式,即将手工制作的提示作为输入,并返回期望的掩码。SAM的可接受提示足够通用,包括点、框、掩码和自由格式文本,这允许在视觉上下文中分割任何内容。

然而,SAM本质上失去了细分特定视觉概念的能力。想象一下,打算在相册中剪下你可爱的宠物狗,或者从你卧室的照片中找到丢失的时钟。使用普通SAM模型既耗费人力,又耗时。对于每张图像,需要在不同的姿势或上下文中定位目标对象,然后激活SAM并精确提示进行分割。因此,我们要问:我们能否个性化SAM,以简单高效的方式自动分割独特的视觉概念?

3.改进工作

e8ce09ddd45075b74408a4e6a467edc4.png

为此,我们提出了PerSAM,这是一种针对分段任意模型的无训练个性化方法。如图1所示,我们的方法只使用一次拍摄数据,即用户提供的图像和指定个人概念的粗略掩码,就可以有效地定制SAM。具体来说,我们首先利用SAM的图像编码器和给定的掩模来对参考图像中目标对象的嵌入进行编码。然后,我们计算对象和新测试图像上所有像素之间的特征相似度。最重要的是,选择两个点作为正负对,它们被编码为提示token,并作为SAM的位置先验。在SAM的解码器处理测试图像中,我们引入了三种技术来释放其个性化潜力,而无需参数调整。

  • Target-guided Attention。我们通过计算的特征相似性来引导每个token在SAM的解码器中映射 cross-attention层。这迫使prompt tokens主要集中在前景目标区域,以进行有效的特征交互。

  • Target-semantic Prompting。为了更好地为SAM提供高级目标语义,我们将原始的低级提示token与目标对象的embedding 相融合,这为解码器提供了更充分的视觉线索来进行个性化分割。

  • Cascaded Post-refinement。为了获得更精细的分割结果,我们采用了两步后细化策略。我们利用SAM逐步完善其生成的掩码。这个过程只需要额外花费100毫秒。

    d0119c51c49a73ac0b09ad432995f6ad.png

如图2所示,通过上述设计,PerSAM在各种姿势或背景下为独一无二的物体提供了良好的个性化分割性能。然而,可能偶尔会出现故障情况,其中物体包括要分割的分层结构,例如泰迪熊顶部的帽子、机器人玩具的头部或罐子的顶部。这种模糊性给PerSAM确定适当的掩模比例作为分割输出带来了挑战,因为局部部分和全局形状都可以被SAM从像素级别视为有效的掩模。

为了缓解这种情况,我们进一步引入了我们方法的微调变体PerSAM-F我们冻结整个SAM以保留其预先训练的知识,并且仅在10秒内微调2个参数。详细地说,我们使SAM能够产生具有不同掩模尺度的多个分割结果。为了自适应地为不同的对象选择最佳尺度,我们对每个尺度使用可学习的相对权重,并进行加权求和作为最终的掩码输出。通过这种高效的一次性训练,PerSAM-T表现出更好的分割精度,如图2(右)所示。不使用即时调整或适配器,可以通过有效地加权多尺度掩码来有效地抑制模糊性问题

01a6b1a24822b875c17e2fa5e36c45a0.png

此外,如图3所示,我们观察到,我们的方法还可以帮助DreamBooth更好地微调Stable Diffusion,以生成个性化的文本到图像。给定一些包含特定视觉概念的图像,例如,你的宠物猫,DreamBooth及其其他作品将这些图像转换为单词嵌入空间中的标识符,然后用于表示句子中的目标对象。然而,标识符同时包括给定图像中背景的视觉信息,例如楼梯。这不仅会覆盖生成的图像中的新背景,还会干扰目标对象的表示学习。因此,我们建议利用我们的PerSAM来有效地分割目标对象,并且只通过少数拍摄图像中的前景区域来监督稳定扩散,从而实现更多样、更高保真的合成。

我们将论文的贡献总结如下:

Personalized Segmentation Task。从一个新的角度来看,我们研究了如何以最低的费用将细分基础模型定制到个性化场景中,即从通用到专用。

Efficient Adaption of SAM。我们首次研究仅通过微调2个参数即可将SAM适配为下游应用,并提出了两种轻量级解决方案:PerSAM和PerSAM-F

Personalization Evaluation。我们注释了一个新的分割数据集PerSeg,该数据集包含不同上下文中的各种类别。我们还在视频对象分割方面测试了我们的方法,并取得了有竞争力的结果。

Better Personalization of Stable Diffusion。通过在少量拍摄的图像中分割目标对象,我们减轻了背景的干扰,提高了DreamBooth的个性化生成。

欢迎大家加入我的这个”AIGC与GPT“知识星球,价格便宜,目前已有100+人

作为一个大厂算法工程师和机器学习技术博主,我希望这个星球可以:

  • 【最全免费资源】免费chatgpt-API,最新AIGC和GPT相关pdf报告和手册。

  • 【最专业算法知识】Transformer、RLHF方法、多模态解读及其论文分享。

  • 【最新变现姿势】如何结合ChatGPT应用落地,各种可以作为副业的AIGC变现方式,打好这个信息差。

  • 【最有趣AICG】ChatGPT+midjourney拍电影,制作壁纸,漫画等等有趣的AICG内 容分享。

6c3c5c34b27ce42700162208cdaaead0.jpeg

另外这里会保存我收集的各种关于AIGC的资源和资料,包括AI绘画-midjourney,ChatGPT, GPT-4,百度-文心一言的各种资料。会保持持续更新,欢迎大家自行拿取。(网盘地址和密码在知识星球自取!)b919bdfc4bdad7d8bc4a0360a314d994.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PerSAM!单图即可定制专属SAM模型!支持微调,甚至可增强DreamBooth 的相关文章

  • msp430看门狗定时器

    看门狗定时器用来防止程序因供电电源 空间电磁干扰或其它原因引起的强烈干扰噪声而跑飞的事故 在很多单片机中都内置了看门狗 xff0c 看门狗本身是一个定时器 xff0c 当定时器溢出时即进行系统复位 xff0c 因此需要在程序中对看门狗定时器
  • UART、SPI和IIC详解与比较(超级实用的调试经验)

    1 UART UART有4个pin xff08 VCC GND RX TX xff09 用的TTL电平 低电平为0 0V xff0c 高电平为1 xff08 3 3V或以上 xff09 UART使用的是异步串行通信 UART是两线 xff0
  • RS232、RS485和CAN协议总结与对比

    一 RS232串口是计算机上一种非常通用的设备通信协议 串口的电气特性 xff1a 1 RS 232串口通信最远距离是50英尺 xff1b 2 RS232可做到双向传输 xff0c 全双工通讯 xff0c 最高传输速率20kbps xff1
  • STM32 GPIOx_CRL/GPIOx_CRH 寄存器

    GPIOx CRL GPIOx CRH xff08 x xff1a A F xff09 寄存器用来对GPIO进行端口设置 xff0c 如 xff1a 设置GPIO为输入模式或输出模式 每个寄存器含有32位 xff0c 每4位用来设置1个GP
  • SHT10 温湿度传感器的程序以及调试总结

    没有其他东西 直接上调试注意事项和代码 xff01 xff01 调试要点 xff1a 1 DATA加10K上拉电阻 2 注意示波器观察各个信号 基础要点 xff1a 1 串行时钟输入 xff08 SCK xff09 单片机模拟时钟 2 串行
  • 晶振原理解析

    目录 01 压电效应 02 晶体振荡器的应用 03 无源晶振和有源晶振的区别 04 STM32外接晶振 下文将进一步讲解晶振的原理 xff0c 以及晶振和STM32的关系 01 压电效应 压电效应 xff1a 某些电介质在沿一定方向上受到外
  • 字符串大小的比较

    字符串大小比较的步骤 xff1a 从左至右一位一位比较 xff0c 如果相同 xff0c 则继续下一位 xff0c 如果不同 xff0c 则谁的ASCII大谁的字符串就大如果比较到其中一者已经结束了 xff0c 还没有分出大小 xff0c
  • STM32延时函数的四种方法

    目录 1 普通延时 2 定时器中断 3 查询定时器 4 汇编指令 单片机编程过程中经常用到延时函数 xff0c 最常用的莫过于微秒级延时delay us 和毫秒级delay ms 本文基于STM32F207介绍4种不同方式实现的延时函数 1
  • STM32的FSMC外设简介

    目录 01 FSMC特点 02 AHB接口 03 外部设备地址映射 04 NOR PSRAM控制器 05 外部存储器接口信号 06 NOR PSRAM控制器异步事务 07 模式1 08 模式A 09 代码说明 01 FSMC特点 Flexi
  • STM32使用DMA接收串口数据

    目录 01 概述 02 DMA接收 03 中断 04 代码 01 概述 在之前的文章里 STM32串口详解 和 STM32 DMA详解 文章中 xff0c 详细讲解了STM32的串口和DMA外设 xff0c 本篇文章将不在细述串口和DMA的
  • 指针与数组

    1 定义 指针 xff1a C语言中某种数据类型的数据存储的内存地址 xff0c 例如 xff1a 指向各种整型的指针或者指向某个结构体的指针 数组 xff1a 若干个相同C语言数据类型的元素在连续内存中储存的一种形态 数组在编译时就已经被
  • 关于软件定时器的一些讨论

    1 简介 这里先介绍下软件定时器和硬件定时器的区别 硬件定时器 xff1a CPU内部自带的定时器模块 xff0c 通过初始化 配置可以实现定时 xff0c 定时时间到以后就会执行相应的定时器中断处理函数 硬件定时器一般都带有其它功能 xf
  • 表驱动法在STM32中的应用

    1 概念 所谓表驱动法 Table Driven Approach 简而言之就是用查表的方法获取数据 此处的 表 通常为数组 xff0c 但可视为数据库的一种体现 根据字典中的部首检字表查找读音未知的汉字就是典型的表驱动法 xff0c 即以
  • 关于共享资源保护的思考

    1 引言 先聊聊分享这篇文章的原因 xff0c 在使用STM32时 xff0c 我发现对于GPIO输出操作 xff0c 可以使用GPIOx ODR寄存器 xff0c 也可以使用GPIOx BSRR寄存器 对应的标准外设库API接口有 voi
  • 预编译#error的使用

    1 引言 说到预编译 xff0c 大家立刻就能想到 define if ifdef和 ifndef等熟悉的预编译命令 其实 include xff0c 我们通常放在源文件用来包含头文件 xff0c 它也是预编译命令 当然这不是这篇文章的重点
  • STM32 IIC详解

    目录 1 IIC定义 2 IIC协议规范 2 1 SDA和SCL信号 2 2 数据有效性 2 3 开始和结束信号 2 4 字节格式 2 5 从机地址和读写位 3 计算IIC的频率 4 PCF8536 4 1 Acknowledge 4 2
  • STM32 SPI详解

    目录 1 SPI简介 2 SPI特点 2 1 SPI控制方式 2 2 SPI传输方式 2 3 SPI数据交换 2 4 SPI传输模式 3 工作机制 3 1 相关缩写 3 2 CPOL极性 3 3 CPHA相位 3 4 极性和相位图示 3 5
  • STM32移植LWIP

    目录 01 IAR工程移植 02 修改Keil工程 在上篇文章 LWIP初体验 修改ST官方demo 中我们已经在自己的开发板上实现了简单的TCPsever和TCPclient功能 验证完了硬件 xff0c 接下来的工作就是优化代码 xff
  • 树莓派4B交叉编译工具链安装

    目录 一 安装配置环境介绍 xff1a 1 宿主机环境 xff1a 2 树莓派系统 xff1a 二 获取交叉编译工具链 xff1a 1 从GitHub下载 不推荐 xff1a 1 xff09 下载必要的软件和工具 xff1a 2 xff09
  • 一种复用模块原理图的设计方法(Port)

    在看一个参考设计时 xff0c 发现一种通过使用port来进行Pin Map 从而让子模块图保持干净 xff0c 以便重复利用的方法 子模块图如下 xff1a 在该图左边 xff0c 通过Port符号 xff0c 将芯片所有的信号管脚 xf

随机推荐

  • SourceTree 设置内置对比视图 不diff大文件

    有时候会往仓库里添加pdf rar等格式的大文件 xff0c 本来diff也看不出个差别来 xff0c 但在sourceTree里面添加时 xff0c 软件会自动去做diff xff0c 如果这类文档很大 xff0c 就会导致soucetr
  • win10 docker desktop运行故障自诊断

    在docker desktop运行出错时 xff0c 程序里有一个诊断工具用于本地诊断 xff0c 使用管理员权限打开powershell xff0c 然后依次执行如下语句 xff1a cd 34 C Program Files Docke
  • STC 8051单片机扩展SRAM介绍、使用以及配置

    总述 STC8051系列单片机中很多具有内部扩展的数据存储器SRAM xff08 单片机内部的RAM一般都是SRAM xff0c 区别于SDRAM xff0c 下面叙述中的RAM xff0c 即表示SRAM xff09 xff0c 所谓的内
  • 光电传感器ST188使用总结

    ST188是我接触的第一款红外光电传感器 xff0c 并在很多场合能够很好地发挥作用 首先说一下 xff0c 光电传感器的种类很多 基本的工作原理都是利用光敏二极管接收到一定的红外光信号来实现检测的 按照光电传感器的入光方式 xff0c 可
  • STC管脚上电如何输出低电平

    最近在做一个项目 xff0c 其中电路板部分功能原理是 xff0c STC MCU直接连接ULN2003 xff0c 再驱动ULN2003控制继电器 本来一切正常的 xff0c 后面在细调的时候发现有一个问题 xff0c 就是在电路板上电瞬
  • C++ STL与文件处理操作总结

    STL 标准库 xff0c 英文为Standard Template Library 广义上讲分为三类 xff0c algorithm xff08 算法 xff09 container xff08 容器 xff09 iterator xff
  • 字节序和位序(大小端)

    Endianness 字节序大家见得比较多 xff0c 网络上论述也比较多 这里简要介绍 xff1a 书写十六进制数据时 xff0c 我们习惯上 MSB 在左 xff0c 而 LSB 在右 LSB least significant byt
  • 使用makefile替换Keil进行编译

    KEIL PATH 61 C Keil ARM ARMCC 61 KEIL PATH BIN40 armcc ARMASM 61 KEIL PATH BIN40 armasm ARMAR 61 KEIL PATH BIN40 armar A
  • [C++][原创]ubuntu上C++发送http请求get和post

    找到一个开源项目 xff1a GitHub elnormous HTTPRequest Single header C 43 43 HTTP request class 使用项目都有介绍 xff0c 很简单 xff0c 这里我在ubuntu
  • 网络通信编程(UDP和TCP协议的实现)

    网络通信 1 网络编程入门1 1网络编程概述1 2网络编程三要素第一要素第二要素第三要素 1 3IP地址 xff08 网络中设备的唯一标识 xff09 常用命令特殊IP地址 1 4InetAddress类的使用 xff08 为了方便对IP地
  • STM32F0 HAL库的串口中断调用顺序

    首先在主函数里执行发送中断或者接收中断函数 xff1a HAL UART Receive IT amp UartHandle uint8 t RxBuf 1 HAL UART Transmit IT amp UartHandle uint8
  • 最全综述 | 图像分割算法

    点击上方 AI算法与图像处理 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 图像分割是计算机视觉研究中的一个经典难题 xff0c 已经成为图像理解领域关注的一个热点 xff0c 图像分割是图像分析的第一
  • CNN的Flatten操作 | Pytorch系列(七)

    点击上方 AI算法与图像处理 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 文 AI study 欢迎回到这个关于神经网络编程的系列 在这篇文章中 xff0c 我们将可视化一个单一灰度图像的张量flat
  • PyTorch中Linear层的原理 | PyTorch系列(十六)

    点击上方 AI算法与图像处理 xff0c 选择加 34 星标 34 或 置顶 重磅干货 xff0c 第一时间送达 文 AI study 原标题 xff1a PyTorch Callable Neural Networks Deep earn
  • python-opencv报错:QObject::moveToThread: Current thread

    报错 xff1a QObject moveToThread Current thread 0x55ab2a343120 is not the object s thread 0x55ab2a4f8820 Cannot move to tar
  • 谷歌又放大招 Disco Diffusion!AI生成超高质量绘画!

    En点击下方 AI算法与图像处理 xff0c 一起进步 xff01 重磅干货 xff0c 第一时间送达 大家好 xff0c 我是 阿潘 xff5e 我在b站刷到了一个博主分享最新的算法 xff0c 用AI生成高质量的插画 本文主要是分享现在
  • ikun必学!python 画一个简单的只因

    大家好呀 xff0c 我是阿潘 现在有很多虚假的ikun 1 看似维护鸡哥 xff0c 实则想吃鸡哥下的蛋 每次看到这种网络攻击 xff0c 鼻子一酸 xff0c 泪流不止 这个世界太不友善了 xff0c 真的不知道面对那么多无端的谩骂他是
  • CVPR2023论文速递(2023.3.23)!已接入ChatGPT总结!共26篇!

    整理 xff1a AI算法与图像处理 CVPR2023论文和代码整理 xff1a https github com DWCTOD CVPR2023 Papers with Code Demo 欢迎关注公众号 AI算法与图像处理 xff0c
  • 5个python常用的装饰器!

    大家好呀 xff0c 我是阿潘 首先 xff0c 每个开发人员的目标都是让事情正常进行 慢慢地 xff0c 我们担心可读性和可扩展性 这是我们第一次开始考虑装饰器的时候 装饰器是为函数提供额外行为的绝佳方式 使用装饰器 xff0c 你会惊讶
  • PerSAM!单图即可定制专属SAM模型!支持微调,甚至可增强DreamBooth

    大家好呀 xff0c 我是阿潘 Meta 的 Segment Anything Model 着实火了一把 xff0c 今天来和大家分享一篇相关的研究成果 xff0c 论文和代码都已开源 xff1a 从标题的字面意思应该就是指仅需一个样本即可