Unsupervised Semantic Segmentation by Contrasting Object Mask Proposals

2102.06191.pdf

Unsupervised Semantic Segmentation by Contrasting Object Mask Proposals-ReadPaper论文阅读平台

GitHub - wvangansbeke/Unsupervised-Semantic-Segmentation: Unsupervised Semantic Segmentation by Contrasting Object Mask Proposals. [ICCV 2021]

<aside> 💡 有/无监督SOD方法进行一阶段检测,对同一mask进行像素级对比学习,对正负例进行图像级对比学习。

在 LUSS 所述,使用ImageNet数据集进行测试的时候,如果不使用 MoCo 的预训练模型,以及额外的 SOD 训练监督,性能下降会很严重。

Untitled

</aside>

初识

在无监督设置下,学习密集语义表征(dense semantic representations)是一个非常重要的问题,这引导网络学习像素级的语义表征/嵌入,这对无监督语义分割非常重要。如果解决了这个问题,那么后续直接使用K-Means聚类将每个像素聚集到对应的sematic groups就可以执行语义分割。

目前采用的无监督表征学习(自监督学习)通常学习到的是图像级的表征【比如进行实例判别的对比学习】,无法表征其具有像素判别性。而一个好的像素级表征应该是具有判别性的,即具有语义判别性,同类物体像素聚集较近,异类像素特征距离较远(对于语义分割任务来说)

无监督语义分割通常是一个端到端的形式【直接学习聚类函数】,而本文将表征学习和聚类的过程进行解耦,如下图所示,先进行像素级表征学习(两阶段-I和II):采用无监督显著性检测得到物体掩码区域object mask proposals,以此作为先验去引导网络学习像素表征;然后再进行聚类/微调进行语义分割。

Untitled

<aside> 💡 本文提出的方法能够在具有挑战性的数据集上得到应用(比如PASCAL VOC),而之前的方法仅应用于一些小规模数据集。

</aside>

相知

整体框架:首先进行两阶段的像素级表征学习,再进行微调聚类。为什么需要两阶段?因为直接进行端到端像素聚类是非常难的,容易只关注低级图像特征,比如颜色,对比度等,丧失特征的语义判别性。而查找一块像素可能聚集在一起的图像区域是比较容易的(利用显著性检测),虽然不能直接进行语义分割,但能够为像素级标注学习提供一个很好的先验。

因此本文提出一个名叫MaskContrast两阶段进行像素表征学习:第一步先获取Mid-level visual gropus,也就是显著性检测的结果(mask)作为先验;第二步采用对比学习学习像素级表征,如图2所示,将相似对象的像素特征在特征空间中靠拢,不同对象的像素特征进行推远。

<aside> 💡 这个先验也称为shared pixel ownership:如果一对像素点属于同一个mask区域,那么它们应该聚在一起,即最大化它们之间的一致性。

</aside>

Untitled

关于为什么要使用mid-level visual gropus作为先验,作者解释了两点好处:① 使用这类mid-level visual gropus,如对象信息,约束了表征(一种regularization方式)。这迫使网络不依赖低级图像信息进行聚类,而学习语义判别性特征。② 提供的物体线索(cue)对语义分割任务具有很高的信息量。

目标掩码区域生成:使用显著性检测生成mask区域,并使其作为mid-level visual gropus,下图展示了两种方法在PASCAL上的预测结果(一个为监督学习训练,一个为非监督训练)。

Untitled