PiCIE: Unsupervised Semantic Segmentation using Invariance and Equivariance in Clustering 论文解读和感想

背景和动机

本文21年上旬发表于CVPR的关于无监督语义分割的文章。我个人不是专门做语义分割领域的,感觉无监督语义分割还是一块待开垦的沃土,做语义分割的小伙伴们可以尝试这个方向。首先本文针对之前无监督语义分割存在的两个问题:
1、分割时不同class的object像素点数量的不平衡问题
语义分割是像素级的分类问题,以往的无监督语义分割使用互信息的方式进行优化,然而由于不同class的object所包含的像素点个数不同(有时甚至差距很大),因此使用互信息会发生严重的样本不平和现象,由此导致的结果就是分割大大的偏向如天空,草地等占比大的objec( leads to noisy representation as major classes)。
2、以往的无监督语义分割有一个重要的假设,即语义连贯性,然而在许多场景中,这种假设并不好,这会导致小object被忽略。

方法介绍

受到深度聚类方法(DeepCluster)的启发,本文提出了一种两阶段迭代的无监督语义分割方法:首先通过特征提取网络fθ(.)f_{\theta}(.)fθ​(.)将图像x∈R3×W×Hx \in R^{3 \times W \times H}x∈R3×W×H映射成特征图fθ(x)∈Rc×w×hf_{\theta}(x) \in R^{c \times w \times h}fθ​(x)∈Rc×w×h,并将特征图看成是whwhwh个ccc维的特征向量,之后用k-means对特征向量进行聚类,得到KKK个聚类中心和每个特征向量对应的label。当然以上过程并不是单张图像进行的,而是依batch进行的。当对所有训练图像进行完上面步骤后,所有像素都有了对应的pseudo-label,然后用pseudo-label去监督特征提取网络fθ(.)f_{\theta}(.)fθ​(.)的训练。
对于第①步k-means没有什么好说的,过程可以表示为
其中[p][p][p]代表第ppp个像素,μyip\mu_{y_{ip}}μyip​​代表第yyy类特征向量的聚类中心。对于第二步,直觉是用一个分类器来进行,即

其中gw(.)g_w(.)gw​(.)是对特征向量的分类器,是一个可训练的神经网络。然而这样做有一个非常大的问题,由于两个步骤都需要进行网络训练,就会造成训练难度大,使得最后收敛结果很差。为了避免这个问题,作者提出了一种无参数化的分类器,如下所示:

其中d(.,.)d(.,.)d(.,.)是计算两个特征向量的cosine距离。可以看到,在第①步得到聚类中心和pseudo-label后,作者直接拉近特征提取网络得到的特征向量到对应pseudo-label的聚类中心的距离。这里还有一点需要说一下,在代码实现时作者也实现的非常巧妙:作者构造了一个一层的(c×K)(c \times K)(c×K)的全连接网络,然后直接将得到的聚类中心当做网络参数,将得到的特征向量输入到这个网络中(我们暂且称之为c(.)c(.)c(.)),将得到的label和pseudo-label做交叉熵来更新fθ(.)f_{\theta}(.)fθ​(.)。当然,在整个训练过程中c(.)c(.)c(.)的参数是固定的。
到这里,回到最开始的两个问题,第一个问题我们就可以给出解决方案了:在聚类结束后,统计每个类对应的像素点的数量,之后将其当做特征提取网络计算交叉熵时的权重,来抵消不同class样本不平衡带来的问题。
那么第二个问题是如何解决的呢,作者在本文提出了一种新的优化准则,即照片变换( photometric transformations的不变性和几何变换的等变性。简单来说照片变换就是对输入图像做类似于颜色变换、明亮变换、高斯模糊等不改变像素点的语义信息(不改变得到的pseudo-label;几何变换则类似于随机翻转,随机剪切等。对图像做几何变换后再进行特征提取,等于对图像进行特征提取再做同样的几何变换。可以将以上两条准则归为以下监督损失:

其中


其中Pi(1)P_i^{(1)}Pi(1)​和Pi2P_i^{2}Pi2​是第iii张图像两种不同的图像变换,而GiG_iGi​则对应的是几何变换。通过这两种不同变换后得到的特征图其对应的pseudo-label是相同的。整个流程的伪代码如下

PiCIE: Unsupervised Semantic Segmentation using Invariance and Equivariance in Clustering 论文解读和感想相关推荐

  1. PiCIE: Unsupervised Semantic Segmentation Using Invariance and Equivariance in Clustering论文翻译

    摘要 我们提出了一个新的基于聚类的无标注语义分割框架.现成的聚类方法仅限于精选的.单标签和以对象为中心的图像,而现实世界的数据主要是非精选的.多标签和以场景为中心的.我们将聚类从图像扩展到像素,并将每 ...

  2. 一种无监督语义分割算法:Unsupervised Semantic Segmentation using Invariance and Equivariance in Clustering

    论文题目:PiCIE: Unsupervised Semantic Segmentation using Invariance and Equivariance in Clustering 1 摘要 ...

  3. 【尺度不变性】An Analysis of Scale Invariance in Object Detection – SNIP 论文解读

    [尺度不变性]An Analysis of Scale Invariance in Object Detection – SNIP 论文解读 前言 本来想按照惯例来一个overview的,结果看到1篇 ...

  4. LASS: Joint Language Semantic and Structure Embedding for Knowledge Graph Completion 论文解读

    Joint Language Semantic and Structure Embedding for Knowledge Graph Completion 代码:pkusjh/LASS: Code ...

  5. Semantic Segmentation--SegNet:A Deep Convolutional Encoder-Decoder Architecture..论文解读

    title: Semantic Segmentation–SegNet:A Deep Convolutional Encoder-Decoder Architecture-论文解读 tags: Obj ...

  6. 【论文笔记】Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspectivewith Transformers

    声明 不定期更新自己精度论文,通俗易懂,初级小白也可以理解 涉及范围:深度学习方向,包括 CV.NLP.Data Fusion.Digital Twin 论文题目: Rethinking Semant ...

  7. Fully Convolutional Adaptation Networks for Semantic Segmentation

    参考  论文解析之<Fully Convolutional Adaptation Networks for Semantic Segmentation> - 云+社区 - 腾讯云 论文网址 ...

  8. 语义分割-Unsupervised Domain Adaptation in Semantic Segmentation:a Review语义分割中的无监督领域自适应:综述

    Unsupervised Domain Adaptation in Semantic Segmentation:a Review语义分割中的无监督领域自适应:综述 0.摘要 1.介绍 1.1.语义分割 ...

  9. 目标检测经典论文——R-CNN论文翻译:Rich feature hierarchies for accurate object detection and semantic segmentation

    Rich feature hierarchies for accurate object detection and semantic segmentation--Tech report (v5) 用 ...

最新文章

  1. AndroidStudio使用第三方jar包报错(Error: duplicate files during packaging of APK)
  2. 业务系统设计之一:系统菜单设计
  3. python与php8-详解Python中Unicode和utf-8
  4. 网狐棋牌游戏平台服务器架构设计分析
  5. vue全家桶+Koa2开发笔记(3)--mongodb
  6. Timus 1015. Test the Difference!
  7. ToString yyyy-MM-dd ,MM 小写的故事。
  8. Linux突然无法使用,是内存不足的问题
  9. C/C++经典项目开发:教你破解Windows系统密码,手把手教你做解密项目
  10. Photoshop 安装 Topaz 滤镜
  11. java出现圅_java获取汉字拼音首字母A
  12. 北京理工计算机实验二报告,北京理工大学实验二实验报告表
  13. 得空写的基于web的工作流表单设计器,大家看看怎么样
  14. Ubuntu搭建socks5服务
  15. ionic4--下拉刷新(refresher)
  16. Codeforces 730A:Toda 2(multiset模拟)
  17. Ping++ 牵手招商银行,正式为商户开放一网通支付渠道
  18. PowerBuilder常用函数
  19. 单元测试的必要性?一文聊聊单元测试
  20. 宽依赖和窄依赖_Spark --【宽依赖和窄依赖】

热门文章

  1. 代理模式——虚拟代理(结构型)
  2. [勇者闯LeetCode] 112. Path Sum
  3. 十二、缓冲区溢出漏洞原理
  4. 网站交换友链能提升排名吗
  5. 催收评分卡是如何搭建的?
  6. STM32F407ZGT6+PWM控制步进电机三档速率+温感ds18b20、光感+光电开关
  7. 牵手乌金石,共创财富梦—全国市场盛大启动
  8. 2021-2012年人口数据分析(爬虫一小步)
  9. Milo源码解析(一)
  10. java的详细安装步骤讲解