AI 模型与平台

DiffSeg :一种增强的零样本分割算法

mm
将 Unite.AI 添加到您在 Google 上的首选来源

计算机视觉模型中的一个核心挑战是生成高质量的分割掩码。最近在大规模监督训练方面的进展使得零样本分割在各种图像风格中成为可能。另外,非监督训练简化了分割过程,无需大量注释。尽管如此,构建一个能够在零样本设置中无需注释分割任何内容的计算机视觉框架仍然是一个复杂的任务。语义分割是计算机视觉模型中的一个基本概念,它涉及将图像划分为具有统一语义的较小区域。这项技术为许多下游任务奠定了基础,例如医学成像、图像编辑、自动驾驶等。

为了推进计算机视觉模型的发展,图像分割不应局限于一个具有有限类别的固定数据集,而应作为各种其他应用的通用基础任务。然而,收集每像素标签的高成本提出了一个重大挑战,限制了零样本和监督分割方法的进展,这些方法需要无注释和无先验知识。 本文将讨论如何使用稳定扩散模型中的自注意层来创建一个能够在零样本设置中无需适当注释分割任何输入的模型。这些自注意层内在地理解了预训练的稳定扩散模型所学到的对象概念。

DiffSeg :一种增强的零样本分割算法

语义分割是一种将图像划分为具有统一语义的区域的过程。这项技术为许多下游任务奠定了基础。传统上,零样本计算机视觉任务依赖于监督语义分割,使用具有注释和标记类别的大型数据集。然而,在零样本设置中实现非监督语义分割仍然是一个挑战。虽然传统的监督方法是有效的,但其每像素标签成本往往是禁止性的,突出了开发非监督分割方法在更不受限制的零样本设置中的必要性,在这种设置中,模型既不需要注释数据也不需要对数据有先验知识。

为了解决这个限制,DiffSeg 引入了一种新颖的后处理策略,利用稳定扩散框架来构建一个可以在任何图像上实现零样本转移的通用分割模型。稳定扩散框架已被证明能够根据提示条件生成高分辨率图像。对于生成的图像,这些框架可以使用相应的文本提示生成分割掩码,通常仅包括主导的前景对象。

相比之下,DiffSeg 是一种创新性的后处理方法,通过利用扩散模型中的自注意层的注意力张量来创建分割掩码。DiffSeg 算法由三个关键组件组成:迭代注意力合并、注意力聚合和非最大抑制,如下图所示。

DiffSeg 算法通过聚合具有空间一致性的 4D 注意力张量来保留多个分辨率的视觉信息,并利用迭代合并过程通过采样锚点。这些锚点作为合并具有相同对象锚点的注意力掩码的起点。DiffSeg 框架使用 KL 散度方法来控制合并过程,测量两个注意力图之间的相似性。

与基于聚类的非监督分割方法相比,DiffSeg 算法不需要事先指定聚类数量,即使没有任何先验知识,DiffSeg 算法也可以生成分割掩码,而无需使用额外的资源。总的来说,DiffSeg 算法是一种“新颖的非监督和零样本分割方法,利用预训练的稳定扩散模型,可以在没有任何额外资源或先验知识的情况下分割图像。”

DiffSeg :基础概念

DiffSeg 是一种新颖的算法,建立在扩散模型、非监督分割和零样本分割的基础上。

扩散模型

DiffSeg 算法建立在预训练的扩散模型的基础上。扩散模型是计算机视觉模型中最流行的生成框架之一,它学习从采样的等方差高斯噪声图像到生成图像的正向和反向扩散过程。稳定扩散是扩散模型中最流行的变体,它用于执行各种任务,包括监督分割、零样本分类、语义对应匹配、标签高效分割和开放词汇分割。然而,扩散模型的一个问题是,它们依赖于高维视觉特征来执行这些任务,并且通常需要额外的训练来充分利用这些特征。

非监督分割

DiffSeg 算法与非监督分割密切相关,非监督分割是一种现代 AI 实践,旨在生成密集的分割掩码,而无需使用任何注释。然而,要实现良好的性能,非监督分割模型需要在目标数据集上进行一些非监督训练。基于非监督的 AI 框架可以分为两类:使用预训练模型的聚类和基于不变性的聚类。在第一类中,框架使用预训练模型学习的判别特征来生成分割掩码,而第二类框架使用一种通用的聚类算法,通过优化两个图像之间的互信息来分割图像为语义聚类,并避免退化分割。

零样本分割

DiffSeg 算法与零样本分割框架密切相关,零样本分割框架是一种方法,能够在没有任何先验训练或数据知识的情况下分割任何内容。零样本分割模型已展示出在最近的时间内具有卓越的零样本转移能力,尽管它们需要一些文本输入和提示。相比之下,DiffSeg 算法使用扩散模型来生成分割掩码,而无需查询和合成多个图像,也无需知道对象的内容。

DiffSeg :方法和架构

DiffSeg 算法使用预训练的稳定扩散模型中的自注意层来生成高质量的分割任务。

稳定扩散模型

稳定扩散是 DiffSeg 框架中的一个基本概念。稳定扩散是一种生成 AI 框架,也是扩散模型中最流行的变体之一。扩散模型的一个主要特征是正向和反向传递。在正向传递中,图像在每个时间步骤中添加少量高斯噪声,直到图像成为等方差高斯噪声图像。在反向传递中,扩散模型迭代地从等方差高斯噪声图像中去除噪声,以恢复原始图像,而无需任何高斯噪声。

稳定扩散框架使用编码器-解码器和 U-Net 设计,其中包含注意力层。它使用编码器将图像压缩到latent空间中,然后使用解码器将图像解压缩。U-Net架构由一堆模块块组成,每个块由以下两种组件之一组成:变换器层或ResNet层。

组件和架构

扩散模型中的自注意层以空间注意力图的形式对对象的固有信息进行分组。DiffSeg 是一种新颖的后处理方法,用于将注意力张量合并为有效的分割掩码,其管道由三个主要组件组成:注意力聚合、非最大抑制和迭代注意力合并。

注意力聚合

当输入图像通过 U-Net 层和编码器传递时,稳定扩散模型会生成总共 16 个注意力张量,每个维度有 5 个张量。生成 16 个张量的主要目标是将具有不同分辨率的这些注意力张量聚合为一个具有最高可能分辨率的张量。为了实现这一点,DiffSeg 算法将 4 个维度中的每一个都视为不同的维度。

在四个维度中,最后两个维度的注意力张量具有不同的分辨率,但它们在空间上是一致的,因为 DiffSeg 框架的 2D 空间图对应于位置和空间位置之间的相关性。因此,DiffSeg 框架对所有注意力图的最后两个维度进行采样,以达到最高的分辨率,即 64 x 64。另一方面,前两个维度指示注意力图的位置参考,如下图所示。

由于这些维度指的是注意力图的位置,因此需要相应地聚合注意力图。另外,为了确保聚合的注意力图具有有效的分布,框架在聚合后对分布进行归一化,每个注意力图都被赋予一个与其分辨率成比例的权重。

迭代注意力合并

虽然注意力聚合的主要目标是计算注意力张量,但主要目标是将注意力图合并为一个对象提议栈,每个提议包含一个类别或单个对象的激活。为了实现这一点,提出的解决方案是对张量的有效分布实现 K-Means 算法,以找到对象的聚类。然而,使用 K-Means 并不是最优的解决方案,因为 K-Means 聚类需要用户事先指定聚类数量。此外,实现 K-Means 算法可能会为同一图像产生不同的结果,因为它在初始化时是随机的。为了克服这个障碍,DiffSeg 框架提议生成一个采样网格来创建提议,通过迭代合并注意力图。

非最大抑制

迭代注意力合并的前一步骤产生了一个对象提议列表,以注意力图的形式表示,其中每个对象提议包含一个对象的激活。框架使用非最大抑制将对象提议列表转换为有效的分割掩码,这是一个有效的方法,因为列表中的每个元素已经是一个概率分布的图。对于所有图中的每个空间位置,算法取最大概率的索引,并根据对应图的索引分配成员资格。

DiffSeg :实验和结果

在非监督分割方面工作的框架使用两个分割基准:Cityscapes 和 COCO-stuff-27。Cityscapes 基准是一个自动驾驶数据集,包含 27 个中级类别,而 COCO-stuff-27 基准是原始 COCO-stuff 数据集的精心策划版本,它将 80 个事物和 91 个类别合并为 27 个类别。此外,为了分析分割性能,DiffSeg 框架使用平均交并比(mIoU)和像素准确率(ACC),由于 DiffSeg 算法无法提供语义标签,因此它使用匈牙利匹配算法将每个预测掩码分配给一个真实掩码。如果预测掩码的数量超过真实掩码的数量,框架将未匹配的预测任务视为假负例。

另外,DiffSeg 框架还强调了以下三个工作来运行干扰:语言依赖(LD)、非监督适应(UA)和辅助图像(AX)。语言依赖意味着该方法需要描述性文本输入来促进图像的分割,而非监督适应指的是该方法需要在目标数据集上进行非监督训练。辅助图像指的是该方法需要额外的输入,既可以是合成图像,也可以是参考图像池。

结果

在 COCO 基准上,DiffSeg 框架包括两个 K-Means 基准:K-Means-S 和 K-Means-C。K-Means-C 基准包括 6 个聚类,通过对评估图像中的对象数量进行平均计算得出,而 K-Means-S 基准使用每个图像的特定聚类数量,基于图像中的对象数量,并在以下图像中展示结果。

如图所示,K-Means 基准优于现有方法,展示了使用自注意力张量的好处。有趣的是,K-Means-S 基准优于 K-Means-C 基准,表明聚类数量是基本的超参数,并且对于每个图像来说,调整它是重要的。此外,即使依赖于相同的注意力张量,DiffSeg 框架也优于 K-Means 基准,证明了 DiffSeg 框架不仅能够提供更好的分割,还能够避免使用 K-Means 基准的缺点。

在 Cityscapes 数据集上,DiffSeg 框架在 320 分辨率输入上实现了与使用更高 512 分辨率输入的框架类似的结果,同时在准确率和 mIoU 上优于使用更高分辨率输入的框架。

如前所述,DiffSeg 框架使用几个超参数,如下图所示。

注意力聚合是 DiffSeg 框架中使用的基本概念,使用不同聚合权重的效果如以下图所示,图像的分辨率保持不变。

如图所示,高分辨率图(b)具有 64 x 64 张量,产生最详细的分割,尽管分割中有一些可见的裂缝,而低分辨率 32 x 32 图倾向于过度分割细节,尽管它会产生更好的连贯分割。在图 (d) 中,低分辨率图在现有的超参数设置下无法生成任何分割,因为整个图像被合并为一个单独的对象。最后,图 (a) 使用比例聚合策略,产生更好的细节和平衡的一致性。

最后的思考

零样本非监督分割仍然是计算机视觉框架面临的最大挑战之一,现有的模型要么依赖非零样本的非监督适应,要么依赖外部资源。为了克服这个挑战,我们讨论了如何使用稳定扩散模型中的自注意层来创建一个能够在零样本设置中无需适当注释分割任何输入的模型。这些自注意层内在地理解了预训练的稳定扩散模型所学到的对象概念。我们还讨论了 DiffSeg,一种新颖的后处理策略,旨在利用稳定扩散框架来构建一个可以在任何图像上实现零样本转移的通用分割模型。该算法依赖于相互注意力相似性和内部注意力相似性来迭代合并注意力图为有效的分割掩码,以在流行的基准上实现最先进的性能。

Kunal Kejriwal 是一名专注于 Python、PostgreSQL、Redis 以及 GCP 和 AWS 上云基础设施的后端工程师。拥有三年构建和扩展生产系统的经验,他撰写关于 AI 基础设施、分布式系统以及部署机器学习工作负载背后架构的文章。