PiCIE: Unsupervised Semantic Segmentation using Invariance and Equivariance in Clustering 论文解读和感想
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 论文解读和感想相关推荐
- PiCIE: Unsupervised Semantic Segmentation Using Invariance and Equivariance in Clustering论文翻译
摘要 我们提出了一个新的基于聚类的无标注语义分割框架.现成的聚类方法仅限于精选的.单标签和以对象为中心的图像,而现实世界的数据主要是非精选的.多标签和以场景为中心的.我们将聚类从图像扩展到像素,并将每 ...
- 一种无监督语义分割算法:Unsupervised Semantic Segmentation using Invariance and Equivariance in Clustering
论文题目:PiCIE: Unsupervised Semantic Segmentation using Invariance and Equivariance in Clustering 1 摘要 ...
- 【尺度不变性】An Analysis of Scale Invariance in Object Detection – SNIP 论文解读
[尺度不变性]An Analysis of Scale Invariance in Object Detection – SNIP 论文解读 前言 本来想按照惯例来一个overview的,结果看到1篇 ...
- LASS: Joint Language Semantic and Structure Embedding for Knowledge Graph Completion 论文解读
Joint Language Semantic and Structure Embedding for Knowledge Graph Completion 代码:pkusjh/LASS: Code ...
- Semantic Segmentation--SegNet:A Deep Convolutional Encoder-Decoder Architecture..论文解读
title: Semantic Segmentation–SegNet:A Deep Convolutional Encoder-Decoder Architecture-论文解读 tags: Obj ...
- 【论文笔记】Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspectivewith Transformers
声明 不定期更新自己精度论文,通俗易懂,初级小白也可以理解 涉及范围:深度学习方向,包括 CV.NLP.Data Fusion.Digital Twin 论文题目: Rethinking Semant ...
- Fully Convolutional Adaptation Networks for Semantic Segmentation
参考 论文解析之<Fully Convolutional Adaptation Networks for Semantic Segmentation> - 云+社区 - 腾讯云 论文网址 ...
- 语义分割-Unsupervised Domain Adaptation in Semantic Segmentation:a Review语义分割中的无监督领域自适应:综述
Unsupervised Domain Adaptation in Semantic Segmentation:a Review语义分割中的无监督领域自适应:综述 0.摘要 1.介绍 1.1.语义分割 ...
- 目标检测经典论文——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) 用 ...
最新文章
- AndroidStudio使用第三方jar包报错(Error: duplicate files during packaging of APK)
- 业务系统设计之一:系统菜单设计
- python与php8-详解Python中Unicode和utf-8
- 网狐棋牌游戏平台服务器架构设计分析
- vue全家桶+Koa2开发笔记(3)--mongodb
- Timus 1015. Test the Difference!
- ToString yyyy-MM-dd ,MM 小写的故事。
- Linux突然无法使用,是内存不足的问题
- C/C++经典项目开发:教你破解Windows系统密码,手把手教你做解密项目
- Photoshop 安装 Topaz 滤镜
- java出现圅_java获取汉字拼音首字母A
- 北京理工计算机实验二报告,北京理工大学实验二实验报告表
- 得空写的基于web的工作流表单设计器,大家看看怎么样
- Ubuntu搭建socks5服务
- ionic4--下拉刷新(refresher)
- Codeforces 730A:Toda 2(multiset模拟)
- Ping++ 牵手招商银行,正式为商户开放一网通支付渠道
- PowerBuilder常用函数
- 单元测试的必要性?一文聊聊单元测试
- 宽依赖和窄依赖_Spark --【宽依赖和窄依赖】