PiCIE: Unsupervised Semantic Segmentation using Invariance and Equivariance in Clustering

摘要

​  本文提出了一种新的无注释的语义分割框架。现成的聚类方法仅限于策划的、单标签的和以对象为中心的图像,而现实世界的数据主要是未策划的、多标签的和以场景为中心的。我们将聚类从图像扩展到像素,并为每个图像中的不同实例分配单独的聚类成员关系。然而,仅仅依赖于像素级的特征相似度并不能学习高级语义概念,以及对低级视觉线索的过度拟合。
​  我们提出了一种将几何一致性作为归纳偏差的方法来学习光度和几何变化的不变性和等方差。有了我们新颖的学习目标,我们的框架可以学习高级语义概念。我们的方法,PiCIE(Pixel-level feature Clustering using Invariance and Equivariance),是第一种能够在没有任何超参数调优或任务特定的预处理的情况下同时分割事物和东西类别的方法。我们的方法在COCO [31]和城市景观[8]上大大优于现有的基线,+17.5的Acc和+4.5 mIoU。我们证明了PiCIE为标准的监督训练提供了更好的初始化。该代码可在https:// github.com/janghyuncho/PiCIE上找到。

1.介绍

​  从一组未标记的图像中进行无监督学习已经获得了广泛的欢迎,但仍然主要局限于单类的、以对象为中心的图像。请考虑到图1(上图)中所示的图像。给定这些和其他未标记图像的集合,机器能从每张图像中发现“草”、“天空”、“房子”和“树”的概念吗?更进一步说,它能否识别出每个概念在每个图像中出现的位置,并将其分割出来?
​  一个能够进行这种无监督语义分割的系统可以自动发现具有精确边界的对象类别,从而消除了收集和标记COCO等数据集的大量成本。它甚至可能发现注释者可能事先不知道的对象、材料和纹理。这对于分析新的领域特别有用:例如,在卫星图像中发现新的视觉结构。该系统发现和分割未知物体的能力也可能被证明对试图在野外操纵这些物体的机器人很有用。
​  然而,虽然无监督语义分割可能有用,但它也具有挑战性。这是因为它结合了类发现的问题和穷尽像素标记的挑战。自监督学习和无监督学习的最新进展表明,识别系统肯定可以发现图像水平的类。然而,图像级标记更容易,因为网络可以简单地依赖于一些独特的、稳定的特征,而丢弃图像的其余部分。例如,一个识别系统可以通过将图1中的所有四张图像组合在一起,只需检测每个图像中的屋顶瓦片的存在,而忽略图像中的其他一切。相比之下,在分割图像时,没有任何像素可以被忽略;无论它是一个独特的对象(东西)还是一个背景实体(东西),每个像素都必须被识别和准确地表征,尽管有潜在的较大的类内变化。因此,很少有之前的工作试图解决发现语义分割的问题,结果仅限于极其粗糙的东西分割。
​  在本文中,我们朝着一个实际有用的无监督语义分割系统迈出了一步:我们提出了一种方法,能够以比现有技术更细的粒度分割所有像素,无论是东西还是东西。我们的方法是基于一个直接的目标,它只编码了两个常识性的约束。首先,具有相似外观的像素(即,它们在一个学习到的特征空间中聚集在一起)应该被类似地标记,反之亦然。其次,像素标签应该与颜色空间变换不变,与几何变换等变。我们的结果表明,单独使用这两个目标,我们可以训练一个基于ConvNet的语义分割系统的端到端,没有任何标签。
​  我们发现,尽管它很简单,但我们的方法在这个任务上远远优于之前的工作,比现有技术的准确性提高了一倍多(图1,底部)。与之前的工作相比,我们的基于聚类的损失函数(上面的第一个目标)导致了一个更简单、更容易的学习问题,而之前的工作则试图学习参数像素分类器。但不变性和等方差目标是关键。它们允许卷积网络将跨尺度、姿态和颜色变化的像素连接在一起,而这是之前的系统无法做到的。这种对不变性的鲁棒性也允许我们的方法有效地分割对象。我们通过一项消融研究证明了这些直觉是正确的,我们发现其中每一个都有助于显著改善性能。
​  总之,我们的研究结果表明,卷积网络不仅可以学习发现图像级的概念,而且还可以在没有任何监督的情况下对图像进行语义解析。这为真正的大规模发现打开了大门,在那里,这样一个经过训练的网络可以自动地从一个未标记的、未管理的数据集中呈现出新类别的对象、材料或纹理。

2.相关工作

​  学习聚类。利用深度神经网络来学习聚类友好的嵌入空间,[4,5,58,57,51,14,54]已经得到了广泛的研究。DEC [51]和IDEC [14]训练嵌入函数通过训练自动编码器(AE)[49]与重建损失。深度聚类及其变体[4,5,57]使用k-means [38]对整个数据集的特征向量进行了明确的聚类,以便为每个数据点分配伪标签,然后训练一个编码器网络。所有这些方法都有一个共同的理念,即聚类损失的迭代优化改进了特征空间,以考虑高级视觉相似性。
​  除了从表示学习的角度来看,最近有一些工作通过聚类数据点[51,18,17,23,48,55]来处理没有标签的分类问题。IIC [23],SeLa [55]和其他工作的[48,34,60,16]最大化了从单个图像的两个版本的软集群分配之间的互信息。最大化互信息可以防止网络陷入退化解,但有效地加强了集群上的均匀分布。因此,无监督聚类预计只适用于良好平衡的数据集,如MNIST [28]和CIFAR [26]。最近在ImageNet等大规模数据集如ImageNet [9]上进行了测试,仍然假设了一组平衡的单类、以对象为中心的图像。由于这些方法不显式地对数据进行聚类,因此它们被称为隐式聚类方法,这与显式聚类[51,14,4,5,57,52,56,42,29]相反。

​  没有标签的分割。

​  等效学习。

#3.PiCIE

​  我们得到了一个未经管理的、未经标记的图像数据集 D. 在这个数据集上,我们想要发现一组视觉类C并学习一个语义分割函数fθ。当提供来自D的一个看不见的图像时,fθ应该能够从类集合中为每个像素分配一个标签 C。
​  我们将无监督图像分割的任务表示为像素级聚类,其中每个像素都被分配给一个聚类。聚类通常需要一个好的特征空间,但没有预先存在这样的特征表示。因此,我们提出了一种与聚类联合学习特征表示的方法。PiCIE(Pixel-level feature Clustering using Invariance and Equivariance)的整体架构,即使用不变性和等方差的像素级特征聚类,如图2所示。我们将在下面描述我们的方法。

image-20250108110707600

3.1.一种聚类基线方法

​  我们从之前的工作开始,学习端到端神经网络,将未标记图像聚类到图像级类[4,5,51,14,53]。本文所解决的关键问题是,将图像聚类为类需要强特征表示,而对于训练强特征表示,则需要类标签。为了解决这个鸡和蛋问题,最简单的解决方案是深度集群[4]确定的:交替使用当前的特征表示进行聚类,并使用聚类标签作为伪标签来训练特征表示。对于无监督的语义分割任务,人们也可以遵循类似的策略。唯一的区别是,我们需要使用一个嵌入函数fθ来生成一个特征映射,为每个像素生成一个特征向量。分类器还必须对单个像素进行操作。然后,我们可以交替聚类像素特征向量来得到像素伪标签,并使用这些伪标签来训练像素特征表示。
​  具体地说,假设我们有一组未标记的图像\(x_{i},i=1,\cdot\cdot\cdot,n\)。假设我们的嵌入用fθ表示,产生了一个特征张量fθ(x)。这将为图像x中的每个像素p产生一个特征表示。用fθ(x)[p]表示这个像素级的特征表示。用gw(·)表示一个处理这些像素特征向量的分类器。然后,我们的基线方法在两个步骤之间交替进行:

  1. 使用当前的嵌入和k-means来聚类数据集中的像素。

\[\operatorname*{min}_{N,\mu}\sum_{i,p}||f_{\theta}(x_{i})[p]-\mu_{y_{i p}}||^{2}\]

​  其中,\(y_{ip}\)为第\(i\)幅图像中第p个像素的聚类标签,\(\mu_k\)为第k个聚类质心。(我们使用小批量k-means [39])。

  1. 使用聚类标签使用标准交叉熵损失训练像素分类器。

\[\operatorname*{min}_{\theta,{\bf w}}\sum_{i,p}\mathcal{L}_{C E}(g_{\bf w}(f_{\theta}(x_{i})[p]),y_{i p})\]

\[\mathcal{L}_{C E}(g_{\mathrm{w}}(f_{\theta}(x_{i})[p]),y_{i p})=-1\mathrm{og}\,\frac{e^{s_{y_{i p}}}}{\sum_{k}e^{s_{k}}}\]

​  其中sk是分类器\(g_{\mathrm{w}}(f_{\theta}(x_{i})[p])\)输出的第k类分数。

3.2.基于非参数原型的分类器

​  上面的深度聚类启发框架使用了一个单独的、已学习的分类器。然而,在不断变化的伪标签的无监督设置中,联合训练分类器是具有挑战性的。一个训练不足的分类器可以将噪声梯度输入到特征提取器中,导致下一轮训练的噪声聚类。
​  因此,我们建议完全抛弃参数化像素分类器gw。相反,我们根据像素到kmeans估计的质心(“原型”[41])的距离来标记像素。这就导致了以下目标的改变。 \[\operatorname*{min}_{\theta}\sum_{i,p}\mathcal{L}_{c l u s t}(f_{\theta}(x_{i})[p],y_{i p},\mu)\]

\[\mathcal{L}_{c l u s t}(f_{\theta}(x_{i})[p],y_{i p},\mu)=-log\left(\frac{e^{-d(f_{\theta}(x_{i})[p],\mu_{y_{i p})}}}{\sum_{l}e^{-d(f_{\theta}(x_{i})[p],\mu_{l})}}\right)\]

​  其中,\(d(\cdot,\cdot)\)为余弦距离。

3.3.不变性和等效性

​  将上述特征表示与聚类联合学习肯定会产生在特征空间中紧凑的集群,但没有理由说这些集群必须是语义的。为了得到像素的语义分组,我们需要引入一个额外的归纳偏差。如果我们没有标签,这种归纳偏差又会是什么呢?
​  我们引入的归纳偏差是光度变换的不变性和几何变换的等方差:如果像素颜色轻微抖动,标记不应该改变,当图像被几何扭曲时,标记应该是类似的扭曲。具体地说,如果Y是图像x的输出语义标记,如果P和G分别是光度变换和几何变换,则变换后的图像G(P(x))的输出语义标记应该是G(Y)。
​  在联合聚类和学习框架中实现这个约束是很棘手的,因为每个图像都没有ground-truth标签。伪ground-truth标记本身来自于聚类,而聚类本身是由特征映射产生的,因此它本身对输入转换很敏感。因此,在这种情况下,不变性/等方差意味着两件事:第一,我们应该产生相同的簇,而不考虑转换,第二,预测的像素标签应该显示所期望的等或不等方差。

3.3.1对光度变换的不变性

​  我们首先讨论不变性的问题。对于数据集中的每一个图像\(x_i\),我们随机抽取两个光度变换,\(P_i^{(1)}\)\(P_i^{(2)}\)。这将为每个图像xi中的每个像素p产生两个特征向量: \[z_{i p}^{(1)}=f_{\theta}(P_{i}^{(1)}(x_{i}))[p]\]

\[z_{i p}^{(2)}=f_{\theta}(P_{i}^{(2)}(x_{i}))[p]\]

​  然后,我们分别在两个“视图”中进行聚类,得到两组伪标签和质心: \[\mathbf{y}^{(1)},\mu^{(1)}={\mathrm{arg\,min}}\sum_{i,p}\left|\left|z_{i p}^{(1)}-\mu_{y i p}\right|\right|^{2}\]

\[\mathbf{y}^{(2)},\mu^{(2)}={\mathrm{arg\,min}}\sum_{i,p}\left|\left|z_{i p}^{(2)}-\mu_{y i p}\right|\right|^{2}\]

​  给定这两组质心和这两组伪标签,我们使用了两组损失函数:

  1. 与前面一样,我们希望特征向量坚持聚类标签。现在我们有了两个视图,我们希望在每个视图中都是如此:

\[\mathcal{L}_{w i t h i n}=\sum_{i,p}\mathcal{L}_{c l u s t}(z_{i p}^{(1)},y_{i p}^{(1)},\mu^{(1)})+\mathcal{L}_{c l u s t}(z_{i p}^{(2)},y_{i p}^{(2)},\mu^{(2)})\]

  1. 因为我们假设聚类应该对光度转换是不变的,所以我们也希望来自一个视图的特征向量来匹配另一个视图的聚类标签和质心:

\[\mathcal{L}_{c r o s s}=\sum_{i,p}\mathcal{L}_{c l u s t}(z_{i p}^{(1)},y_{i p}^{(2)},\mu^{(2)})+\mathcal{L}_{c l u s t}(z_{i p}^{(2)},y_{i p}^{(1)},\mu^{(1)})\]

​  这个多视图框架和交叉视图损失实现了两件事。首先,通过强制来自一个转换的特征向量坚持由另一个转换产生的标签,它鼓励网络学习特征表示,这将被相同地标记,而不考虑任何光度变换。其次,通过强制相同的特征表示与两种不同的聚类解决方案保持一致,它鼓励了对这两种解决方案本身进行匹配,从而确保通过聚类发现的概念集对光度变换是不变的。

3.3.2 与几何变换的等效方差

​  房子和放大的房子应该贴上类似的标签,但可能产生截然不同的特征。更准确地说,放大内部的分割应该是原始分割的放大版本。这是几何变换(如随机作物)的等方差的概念,我们在接下来添加它。
​  为了学习关于几何变换的等方差,我们对每幅图像采样一个几何变换(具体来说,随机裁剪和水平翻转)Gi。然后,在上述框架中,一个视图使用转换后的图像的特征向量,而另一个视图使用原始图像的转换后的特征向量: \[z_{i p}^{(1)}=f_{\theta}(G_{i}(P_{i}^{(1)}(x_{i})))[p]\]

\[z_{i p}^{(2)}=G_{i}(f_{\theta}(P_{i}^{(2)}(x_{i})))[p]\]

​  其他的步骤也是完全相同的。这两个视图分别聚类,最终的训练目标是视图内目标和交叉视图目标的组合: \[\mathcal{L}_{t o t a l}=\mathcal{L}_{w i t h i n}+\mathcal{L}_{c r o s s}\]

4.实验

4.1.训练详细信息

4.2.基线

​  我们描述了我们比较PiCIE与: IIC [23]和改进深度聚类[4]方法。它们是最先进的隐式和显式的基于聚类的学习方法。

​  IIC。IIC [23]是一种隐式聚类方法,其中网络直接预测每个像素级特征向量的(软)聚类分配。主要目标是最大化一个像素和相邻像素(s)的预测之间的相互信息。对于控制实验,我们使用与PiCIE相同的ResNet-18的FPN,以及ResNet-18的前两个残差块(IIC-res12),类似于原始的浅层VGG-like [40]模型(细节见补充)。在原始论文[23]之后,我们使用了K = 45的辅助过聚类损失。

​  改进深度聚类。深度聚类是一种显式的聚类方法,其中网络对给定图像的特征向量进行聚类,并使用聚类分配作为标签来训练网络。为了适应我们的问题设置,我们修改了原始的深度集群,以在最终池化层之前集群像素级的特征向量。这允许网络为每个像素分配一个标签。然而,由于图像的大小爆炸了要聚类的特征向量的数量,我们应用小批k-means [39]首先计算聚类质心,分配标签,并训练网络。

4.3.数据集

4.4.结果

4.5.消融研究

4.6.分析

5.结论

​  本文介绍了一种基于聚类的无监督语义分割框架。我们的主要贡献是将几何一致性作为归纳偏差,以学习光度和几何变化的不变性和等方差。我们的新交叉视图丢失是简单但非常有效的学习高级视觉概念必要的分割事物的类别。我们的方法是第一个无监督的语义分割,它既适用于东西和事物类别,又没有严格的超参数调整或特定于任务的预处理。