社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

【深度学习】ICCV|基于扩散模型的开放词汇目标分割

机器学习初学者 • 4 月前 • 105 次点击  

论文信息

题目:Open-vocabulary Object Segmentation with Diffusion Models

基于扩散模型的开放词汇目标分割

作者:Ziyi Li, Qinye Zhou, Xiaoyun Zhang, Ya Zhang, Yanfeng Wang, Weidi Xie

论文创新点

  1. 结合稳定扩散模型与定位模块:论文作者将现有的稳定扩散模型与一个新颖的定位模块相结合。该定位模块能够通过训练,仅用少量对象类别就使扩散模型的视觉和文本嵌入空间对齐,进而从生成的图像中分割出文本提示中描述的相应视觉对象,实现开放词汇对象分割。
  2. 自动构建数据集:建立了一套自动构建数据集的流程,该数据集由{图像、分割掩码、文本提示}三元组构成。利用现成的目标检测器对稳定扩散模型生成的图像进行推理,无需额外手动注释,理论上可为现有目标检测器词汇表中的每个类别生成无限数据样本,用于训练定位模块。
  3. 构建合成语义分割数据集:采用增强扩散模型构建 合成语义分割数据集,并在该数据集上训练标准分割模型。在零样本分割(ZS3)基准测试中,该模型在未见类别上超越了先前的大多数模型,在已见类别上也具有竞争力,证明了利用生成模型构建数据集训练判别模型的有效性,为将扩散模型应用于判别任务提供了新途径 。

摘要

本文的目标是从预训练的文本到图像扩散模型中提取视觉 - 语言对应关系,以分割图的形式呈现,即同时为文本提示中描述的相应视觉实体生成图像和分割掩码。作者做出了以下贡献:(i)将现有的稳定扩散模型与一个新颖的定位模块相结合,该模块只需少量对象类别就能训练,使扩散模型的视觉和文本嵌入空间对齐;(ii)建立了一个自动构建数据集的流程,该数据集由{图像、分割掩码、文本提示}三元组组成,用于训练所提出的定位模块;(iii)评估了从文本到图像扩散模型生成的图像上开放词汇定位的性能,结果表明该模块能够很好地分割训练时未见类别的对象,如图1所示;(iv)采用增强后的扩散模型构建合成语义分割数据集,并表明在这样的数据集上训练标准分割模型,在零样本分割(ZS3)基准测试中表现出有竞争力的性能,为将强大的扩散模型应用于判别任务开辟了新的机会。

三、问题表述

在本文中,作者的目标是通过利用视觉 - 语言对应关系,增强现有的文本到图像扩散模型的开放词汇分割能力,即同时生成图像和文本提示中描述的相应对象的分割掩码,如图2(左)所示:

其中指的是一个预训练的文本到图像扩散模型,附加了一个定位模块。它以采样的噪声()和语言描述为输入,并生成一个图像()和相应的分割掩码(),用于总共个感兴趣的对象。注意,作者期望该模型是开放词汇的,这意味着它应该能够为扩散模型能够生成的任何对象输出相应的分割掩码,而不受语义类别的限制。图片

四、开放词汇定位

假设存在一个由个三元组组成的训练集,即,所有对象的预测分割掩码可以通过以下方式获得:

其中表示用于图像生成的文本提示,指的是稳定扩散模型在时的中间表示(这在补充材料中已通过实验验证)。

作者提出的定位模块由三个函数组成,即,分别表示视觉编码器、文本编码器和融合模块。表示一组模板,用于修饰文本提示中的每个视觉类别,例如“一张[类别名称]的照片”。在训练时,文本提示中总共有个对象类别,它们属于预定义的词汇集;而在推理时,作者期望该模型具有高度的泛化能力,应该同样能够分割未见类别的对象,即

在接下来的部分中,作者首先在4.1节介绍自动构建训练集的过程,然后在4.2节介绍开放词汇定位的架构设计,最后在4.3节详细介绍视觉指令调整过程,该过程仅使用少量图像 - 分割对作为视觉演示来训练模型。

4.1 数据集构建

在这里,作者介绍了一种新颖的想法,用于自动构建视觉特征、分割、文本提示}三元组,这些三元组用于训练作者提出的定位模块。在实践中,作者首先准备一个包含常见对象类别的词汇表,例如PASCAL VOC中的类可以形成一个类别集‘狗’,‘猫’,...,$C_{pascal| = 20 F$)和文本提示对。为了获取分割掩码,作者采用一个现成的对象检测器,例如预训练的Mask R - CNN,然后对生成的图像进行推理:

其中指的是在生成的图像中总共个对象的预测掩码,以文本提示为条件。

为了评估作者提出的开放词汇定位归纳过程的有效性,作者将词汇表分为见过的类别()和未见的类别(),训练集()仅包含见过类别的图像,而测试集()包含见过和未见类别的图像。注意,除了使用现成的检测器生成Oracle掩码并构建数据集外,作者还探索利用真实的公共数据集,例如PASCAL VOC,通过DDIM逆过程来训练作者的定位模块。作者将在后续章节中详细介绍。

4.2 架构

给定一个特定的训练三元组,作者现在详细介绍所提出的定位模块中的三个组件:视觉编码器、文本编码器和融合模块。

视觉编码器

给定来自稳定扩散模型的视觉表示,即潜特征,作者将具有相同空间分辨率的特征(来自U - Net的编码和解码路径)连接起来,以获得,其中表示U - Net的层索引,指的是特征维度。

接下来,作者将输入到视觉编码器中,以生成融合后的视觉特征。如图3所示,视觉编码器由4种类型的块组成:(1)1×1卷积,用于降低特征维度;(2)上采样,用于将特征上采样到更高的空间分辨率;(3)拼接,用于连接特征;(4)混合卷积,用于混合来自不同空间分辨率的特征,包括两个3×3卷积操作,带有残差连接和条件批量归一化操作,类似于相关文献。

图片

文本编码器

作者采用预训练的稳定扩散模型中的语言模型。具体来说,给定文本提示,文本编码器输出所有视觉对象的相应嵌入:

融合模块

融合模块计算视觉和文本嵌入之间的交互,然后输出所有视觉对象的分割掩码。具体来说,作者使用一个三层的标准Transformer解码器,将文本嵌入视为查询,迭代地关注视觉特征以进行更新,并通过多层感知器(MLP)进一步转换为每个分割的嵌入。对象分割掩码可以通过将视觉特征与每个分割的嵌入进行点积得到。形式上,该过程可以表示为:

其中Transformer解码器为文本提示中描述的所有视觉对象生成每个分割的嵌入指的是查询、键和值投影的可学习参数。

五、实验

图片

可视化

作者在图4中展示了可视化结果。在见过和未见的类别上,作者的模型都可以成功地根据分割掩码定位对象。令人印象深刻的是,如图1所示,作者的定位模块甚至可以分割任何现成检测器无法处理的对象,显示了作者模型强大的开放词汇定位能力。

图片
图片

5.2 协议二:开放词汇分割

在之前的协议中,作者已经验证了在合成生成的图像上进行开放词汇定位的能力。在这里,作者考虑采用图像和定位掩码来解决判别任务。具体来说,作者首先使用稳定扩散模型和定位模块构建合成图像 - 分割数据集,然后在这样的合成数据集上训练标准语义分割模型,并在公共图像分割基准上进行评估。

合成数据集

为了训练语义分割模型,除了公共基准提供的数据集外,作者还包括两个合成生成的数据集:(i)PASCAL VOC中20个类别的10k个图像 - 分割对;(ii)COCO中80个类别的110k个对,如图5所示。所有的图像 - 分割对都是由稳定扩散模型和作者提出的定位模块生成的,该模块仅在相应的见过类别上进行了训练(PASCAL VOC中的15个见过类别和COCO中的65个见过类别)。也就是说,生成这两个数据集不需要任何额外的手动标注。图片

图片图片

声明

本文内容为论文学习收获分享,受限于知识能力,本文对原文的理解可能存在偏差,最终内容以原论文为准。本文信息旨在传播和学术交流,其内容由作者负责,不代表本号观点。文中作品文字、图片等如涉及内容、版权和其他问题,请及时与我们联系,我们将在第一时间回复并处理。


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/181476
 
105 次点击