【半监督图像分割】2021-CPS CVPR

news2025/1/16 5:40:31

文章目录

  • 【半监督图像分割】2021-CPS CVPR
    • 1. 简介
      • 1.1 简介
      • 1.2 相关工作
      • 1.3 创新
    • 2. 网络
      • 2.1 网络架构
      • 2.2 Loss
      • 2.3 实验
    • 3. 代码

【半监督图像分割】2021-CPS CVPR

论文题目:Semi-Supervised Semantic Segmentation with Cross Pseudo Supervision

中文题目:基于交叉伪监督的半监督语义分割

论文链接:https://arxiv.org/abs/2106.01226v2

论文代码:https://github.com/charlesCXK/TorchSemiSeg

发表时间:2021年6月

引用:Chen X, Yuan Y, Zeng G, et al. Semi-supervised semantic segmentation with cross pseudo supervision[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2021: 2613-2622.

引用数:157

1. 简介

1.1 简介

在这篇论文中,我们为半监督语义分割任务设计了一种非常简洁而又性能很好的算法:cross pseudo supervision (CPS)。训练时,我们使用两个相同结构、但是不同初始化的网络,添加约束使得两个网络对同一样本的输出是相似的。具体来说,当前网络产生的one-hot pseudo label,会作为另一路网络预测的目标,这个过程可以用cross entropy loss监督,就像传统的全监督语义分割任务的监督一样。我们在两个benchmark (PASCAL VOC, Cityscapes) 都取得了SOTA的结果。

1.2 相关工作

在最开始,我们先来回顾一下半监督语义分割任务的相关工作。不同于图像分类任务,数据的标注对于语义分割任务来说是比较困难而且成本高昂的。我们需要为图像的每一个像素标注一个标签,包括一些特别细节的物体,比如下图中的电线杆 (Pole)。但是,我们可以很轻松的获得RGB数据,比如摄像头拍照。那么,如何利用大量的无标注数据去提高模型的性能,成为半监督语义分割领域研究的问题。

img

我们将半监督分割的工作总结为两种:self-training和consistency learning。一般来说,self-training是离线处理的过程,而consistency learning是在线处理的。

(1)Self-training

Self-training主要分为3步。第一步,我们在有标签数据上训练一个模型。第二步,我们用预训练好的模型,为无标签数据集生成伪标签。第三步,使用有标注数据集的真值标签,和无标注数据集的伪标签,重新训练一个模型。

img

(2)Consistency learning

Consistency learning的核心idea是:鼓励模型对经过不同变换的同一样本有相似的输出。这里“变换”包括高斯噪声、随机旋转、颜色的改变等等。

Consistency learning基于两个假设:smoothness assumption 和 cluster assumption。

  • Smoothness assumption: samples close to each other are likely to have the same label.
  • Cluster assumption: Decision boundary should lie in low-density regions of the data distribution.

Smoothness assumption就是说靠的近的样本通常有相同的类别标签。比如下图里,蓝色点内部距离小于蓝色点和棕色点的距离。Cluster assumption是说,模型预测的决策边界,通常处于样本分布密度低的区域。怎么理解这个“密度低”?我们知道,类别与类别之间的区域,样本是比较稀疏的,那么一个好的决策边界应该尽可能处于这种样本稀疏的区域,这样才能更好地区分不同类别的样本。例如下图中有三条黑线,代表三个决策边界,实线的分类效果明显好于另外两条虚线,这就是处于低密度区域的决策边界。

img

那么,consistency learning是如何提高模型效果的呢?在consistency learning中,我们通过对一个样本进行扰动(添加噪声等等),即改变了它在feature space中的位置。但我们希望模型对于改变之后的样本,预测出同样的类别。这个就会导致,在模型输出的特征空间中,同类别样本的特征靠的更近,而不同类别的特征离的更远。只有这样,扰动之后才不会让当前样本超出这个类别的覆盖范围。这也就导致学习出一个更加compact的特征编码。

当前,Consistency learning主要有三类做法:mean teacher,CPC,PseudoSeg。

img

Mean teacher是17年提出的模型。给定一个输入图像X,添加不同的高斯噪声后得到X1和X2。我们将X1输入网络f(θ)中,得到预测P1;我们对f(θ)计算EMA,得到另一个网络,然后将X2输入这个EMA模型,得到另一个输出P2。最后,我们用P2作为P1的目标,用MSE loss约束。

img

PseudoSeg是google发表在ICLR 2021的工作。他们对输入的图像X做两次不同的数据增强,一种“弱增强”(random crop/resize/flip),一种“强增强”(color jittering)。他们将两个增强后图像输入同一个网络f(θ),得到两个不同的输出。因为“弱增强”下训练更加稳定,他们用“弱增强”后的图像作为target。

img

CPC是发表在ECCV 2020的工作(Guided Collaborative Training for Pixel-wise Semi-Supervised Learning)的简化版本。在这里,我只保留了他们的核心结构。他们将同一图像输入两个不同网络,然后约束两个网络的输出是相似的。这种方法虽然简单,但是效果很不错。

1.3 创新

从上面的介绍我们可以简单总结一下:

  • Self-training可以通过pseudo labelling扩充数据集。
  • CPC可以通过consistcency learning,鼓励网络学习到一个更加compact的特征编码。

大家近年来都focus在consistency learning上,而忽略了self-training。实际上,我们实验发现,self-training在数据量不那么小的时候,性能非常的强。那么我们很自然的就想到,为什么不把这两种方法结合起来呢?于是就有了我们提出的CPS:cross pseudo supervision。

2. 网络

2.1 网络架构

image-20221120194641900

  • a) 本论文网络结构图CPS,叙述如上
  • b) GCT网络结构图,和本方法相同,唯一的区别在于GCT使用confidence map作为监督信号,而CPS使用one-hot label
  • c)MeanTeacher 使用学生网络和老师网络,两个网络结构相同,参数初始化不同,学生网络用老师网络得到的confidence map作为监督信号,老师网络随着学生网络的权重变化按照指数平均不断变化
  • d)一张原图X分别经过弱数据增强和强数据增强放入同一个网络中,弱数据增强所得one hot结果作为强数据增强结果的真值,用于监督弱数据增强的结果

我们可以看到,CPS的设计非常的简洁。训练时,我们使用两个网络f(θ1) 和 f(θ2)。这样对于同一个输入图像X,我们可以有两个不同的输出P1和P2。我们通过argmax操作得到对应的one-hot标签Y1和Y2。类似于self-training中的操作,我们将这两个伪标签作为监督信号。举例来说,我们用Y2作为P1的监督,Y1作为P2的监督,并用cross entropy loss约束。

对于这两个网络,我们使用相同的结构,但是不同的初始化。我们用PyTorch框架中的kaiming_normal进行两次随机初始化,而没有对初始化的分布做特定的约束。

2.2 Loss

给定有标签的数据集 D L D^L DL,大小为 N N N 。和 M M M个未标记的图像 D u D^u Du

半监督语义分割任务的目标是通过对标记图像和未标记图像来学习分割网络

P 1 = f ( X ; θ 1 ) P 2 = f ( X ; θ 2 ) \begin{array}{l} P_{1}=f\left(X ; \theta_{1}\right) \\ P_{2}=f\left(X ; \theta_{2}\right) \end{array} P1=f(X;θ1)P2=f(X;θ2)

这两个网络具有相同的结构, θ 1 \theta_{1} θ1 θ 2 \theta_{2} θ2分别表示对应的权重,初始化的方式不同。输入X具有相同的数据增强方式,P1 ,P2为分割confidence map,为softmax归一化后的网络输出。本文的主要思想通过以下的方式表达:
X → X → f ( θ 1 ) → P 1 → Y 1 X → X → f ( θ 2 ) → P 2 → Y 2 \begin{array}{l} X \rightarrow \mathbf{X} \rightarrow f\left(\theta_{1}\right) \rightarrow P_{1} \rightarrow Y_{1} \\ X \rightarrow \mathbf{X} \rightarrow f\left(\theta_{2}\right) \rightarrow P_{2} \rightarrow Y_{2} \end{array} XXf(θ1)P1Y1XXf(θ2)P2Y2
image-20221120205427625

P 1 , P 2 P_1,P_2 P1,P2表示预测结果。 Y 1 , Y 2 Y_1,Y_2 Y1,Y2伪分割图

流程上图所示。训练过程包括两个损失监督损失 L s L_s Ls,交叉伪监督损失 L c p s L_{cps} Lcps

监督损失使用Cross entropy。

L s L_s Ls是两个模型的有监督损失
L s = 1 ∣ D l ∣ ∑ X ∈ D l 1 W × H ∑ i = 0 W × H ( ℓ c e ( p 1 i , y 1 i ∗ ) + ℓ c e ( p 2 i , y 2 i ∗ ) ) , \begin{array}{r} \mathcal{L}_{s}=\frac{1}{\left|\mathcal{D}^{l}\right|} \sum_{\mathbf{X} \in \mathcal{D}^{l}} \frac{1}{W \times H} \sum_{i=0}^{W \times H}\left(\ell_{c e}\left(\mathbf{p}_{1 i}, \mathbf{y}_{1 i}^{*}\right)\right. \left.+\ell_{c e}\left(\mathbf{p}_{2 i}, \mathbf{y}_{2 i}^{*}\right)\right), \end{array} Ls=Dl1XDlW×H1i=0W×H(ce(p1i,y1i)+ce(p2i,y2i)),


交叉伪监督损失是双向的:一个是从 f ( θ 1 ) f(\theta_1) f(θ1) f ( θ 2 ) f(\theta_2) f(θ2),使用 Y 1 Y_1 Y1来监督 P 2 P_2 P2,另一个是使用 Y 2 Y_2 Y2监督 P 1 P_1 P1。损失表示为
L c p s u = 1 ∣ D u ∣ ∑ X ∈ D u 1 W × H ∑ i = 0 W × H ( ℓ c e ( p 1 i , y 2 i ) + ℓ c e ( p 2 i , y 1 i ) ) . \begin{array}{l} \mathcal{L}_{c p s}^{u}=\frac{1}{\left|\mathcal{D}^{u}\right|} \sum_{\mathbf{X} \in \mathcal{D}^{u}} \frac{1}{W \times H} \sum_{i=0}^{W \times H}\left(\ell_{c e}\left(\mathbf{p}_{1 i}, \mathbf{y}_{2 i}\right)\right. \left.+\ell_{c e}\left(\mathbf{p}_{2 i}, \mathbf{y}_{1 i}\right)\right) . \\ \end{array} Lcpsu=Du1XDuW×H1i=0W×H(ce(p1i,y2i)+ce(p2i,y1i)).
以同样的方式定义了有标记数据上的交叉伪监督损失. L c p s l , L c p s = L c p s l + L c p s u L_{cps}^l,L_{cps}=L_{cps}^l+L_{cps}^u Lcpsl,Lcps=Lcpsl+Lcpsu

最后损失为 L = L s + L c p s L=L_s+L_{cps} L=Ls+Lcps

应用CutMix augmentation图像增强方法来进行数据增强。

2.3 实验

a,b图分别使用ResNet50,ResNet101作为backbone
蓝:baseline(不加入cutmix数据增强):只使用有标签的数据
红:使用两个网络,半监督学习,不加入cutmix数据增强
绿:使用两个网络,半监督学习,加入cutmix数据增强

image-20221120194524728

首先是有标签数据比较少的情况。

我们的方法在VOC和Cityscapes两个数据集的几种不同的数据量情况下都达到了SOTA。表格中 1/16, 1/4等表示用原始训练集的 1/16, 1/4作为labeled set,剩余的 15/16, 3/4作为unlabeled set。

Table1:在Pascal VOC上使用不同backbone和不同有标签数据比例得到结果和其他SOTA方法对比

image-20221120194549071

Table2:在Cityscapes上使用不同backbone和不同有标签数据比例得到结果和其他SOTA方法对比

image-20221120194609128

在跟PseudoSeg的对比中,和他们同样的数据划分list,我们也超越了他们的性能:

img

这是我们的方法跟self-training进行比较的结果。可以看到,我们的方法由于鼓励模型学习一个更加compact的特征编码,显著地优于self-training。

img

对于这两个网络,我们使用相同的结构,但是不同的初始化。我们用PyTorch框架中的kaiming_normal进行两次随机初始化,而没有对初始化的分布做特定的约束。

img

3. 代码


参考资料

[CVPR 2021] CPS: 基于交叉伪监督的半监督语义分割 - 知乎 (zhihu.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/24128.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【第四部分 | JavaScript 基础】3:函数、作用域与预解析、对象

目录 | 函数 声明与调用 参数 返回值 arguments(JS特有知识点) 命名函数 和 匿名函数 | 作用域 全局和局部、JS5没有块级作用域 就近原则:作用域链 | 预解析(重要) 导论:四种语句位置导致的现象 …

安装TPDSS

TPDSS使用前电脑必须安装jdk。如若jdk安装完毕,则忽略第一步 第一步:jdk jdk安装完毕后控制面板会出现java字样 jdk安装完毕后,配置环境变量进行生效 1、进入到刚才安装时选择的文件夹,选中上方文件的路径,鼠标右键&…

全国各省产业结构协调-高级化、合理化指标(2000-2020年)

全国各省产业结构协调-高级化、合理化指标(2000-2020年) 1、时间:2000-2020年 2、包括:30个省份不含西藏 3、来源:统计NJ和国家统计J 4、指标包括: 原始数据:地区生产总值(亿元)、就业人员…

【软件测试】资深测试是如何火速入坑的?测试任务艰巨无从下手?

目录:导读一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)如何快速融入项目团队? 熟悉…

leetcode 1926. Nearest Exit from Entrance in Maze(迷宫最近的出口)

Input: maze [[“”,“”,“.”,“”],[“.”,“.”,“.”,“”],[“”,“”,“”,“.”]], entrance [1,2] Output: 1 Explanation: There are 3 exits in this maze at [1,0], [0,2], and [2,3]. Initially, you are at the entrance cell [1,2]. You can reach [1,0] by …

大模型产业化有四个关键,昇腾AI推动“AI+遥感”打了个样

文|智能相对论 作者|夜远风 农业卫星在太空“拍下”地面这张“照片”,地面根据这些图像数据,结合气象情况等,通过AI算法就准确地“算”出了农作物的长势状况,给地方政府、种地农民以参考。 (图:农业用地的…

uni-app入门:页面布局之window和tabbar

1.window 2.tabbar 3.全局配置与局部页面配置 前言 每个页面按照结构可以分成三部分:window page tabbar.其中window和tabbar一般比较固定,page是平常业务开展的主要载体,根据业务需求进行页面配置。下面主要讲一下window和tabbar。 1.window…

【苹果相册】苹果推从新建的私钥CSR文件Profile还分为开发和分发

推荐内容IMESSGAE相关 作者推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者推荐内容3.日历推 *** 点击即可查看作者要求内容信息作者推荐…

A-Level经济例题解析及练习

今日知识点: Externality and Government Intervention 例题 Externality and Government Intervention Acme and US Electric run coal-burning power plants. Each emits 40 tons of sulphur dioxide per month, total emissions 80 tons/month. Goal: Redu…

EXCEL函数

1.文本函数 1.2 LEFT() 概念:从文本字符串的第一个字符开始返回指定个数的字符。 例子:编辑此文本:忍一时风平浪静,退一步越想越气。 此处的H1即代表该文本,下面函数举例同样如此: 操作:LEFT(…

Magisk搞机器记录(小米Mix3)

背景 最近咸鱼入手了一块8256的小米Mix3手机,于是开始进行愉快的搞机之旅。笔者也是第一次玩,查阅了很多资料,如有错误的地方,还请大佬们指出来。 调研 经过大概的了解,大概就是解锁,获取Root权限&#…

机器学习笔记之高斯分布(五)推断任务之边缘概率分布与条件概率分布

机器学习笔记之高斯分布——推断任务之边缘概率分布与条件概率分布引言回顾:卡尔曼滤波高斯分布与线性计算的相关定理任务目标与推导过程任务目标求解边缘概率分布求解条件概率分布引言 上一节介绍了高斯分布概率模型相关的推断问题,并详细介绍了给定联…

RabbitMQ系列【12】惰性队列

有道无术,术尚可求,有术无道,止于术。 文章目录前言设置为惰性队列内存开销对比前言 默认情况下,当生产者将消息发送到 RabbitMQ 的时候,队列中的消息会尽可能的存储在内存之中,这样可以更加快速的将消息发…

CTFHub技能树 Web-SQL注入详解

文章目录0x01 整数型注入0x02 字符型注入0x03 报错注入0x04 布尔盲注0x05 时间盲注0x06 MySql结构0x07 Cookie注入0x08 空格绕过0x09 UA注入0x10 Refer注入总结摘抄0x01 整数型注入 解题WP 第一步 尝试闭合点 第二步 判断列数 id1 order by 2 页面正常 id1 order by 3 页面…

C语言中的文件操作

在今天的文章中,我将要讲解C语言里的文件操作的详细知识。 目录1.为什么使用文件2.什么是文件2.1程序文件2.2数据文件2.3文件名3.文件的打开和关闭3.1文件指针3.2文件的打开和关闭3.2.1 fopen函数3.2.2 fclose函数3.2.3 文件的打开方式4.文件的顺序读写4.1 文件输入…

高通量筛选——离子化合物

上线离子通道筛选平台,提供形式多样的高表达细胞系的离子通道检测及新药临床前离子通道作用评价服务。 离子通道离子通道 (Ion Channel) 是一类跨膜的大分子孔道蛋白,可允许特定类型离子在电化学梯度驱动下穿过细胞膜,从而完成信号传导、细…

罗丹明PEG巯基,Rhodamine PEG Thiol,RB-PEG-SH

产品名称:罗丹明PEG巯基 英文名称:Rhodamine PEG Thiol,RB-PEG-SH 罗丹明B-PEG巯基(RB-PEG-SH)可以用来修饰蛋白质、多肽以及其他材料或者小分子。马来酰亚胺和巯基(-SH)在PH6.5-7.5很容易形成…

JAVA maven

Maven基础 Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM) POM(Project Object Model):项目对象模型。 项目对象模型(POM)需要加载pom.xml来确定项目&#x…

【SpringBoot笔记27】SpringBoot集成ES数据库之操作index索引(创建、删除、获取)

这篇文章,主要介绍SpringBoot如何操作ES数据库中的index索引(创建、删除、获取)。 目录 一、SpringBoot操作ES索引 1.1、创建索引 1.2、删除索引 1.3、获取索引 1.4、判断索引是否存在 一、SpringBoot操作ES索引 ES的高级客户端中&…

一、数据库查询语句(单表查询篇)

一、数据库查询语句(单表查询篇) 单表查询&#xff1a;SELECT 语句仅从一个表/视图中检索数据&#xff0c;称单表查询。即其中的<普通表> 使用的是[<模式名>.]<基表名|视图名>。 该查询的语句所依赖的表是创建数据库实例默认勾选的两个实例&#xff1a;BOOKS…