锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

CVPR 2022|U2PL:使用不可靠伪标签的半监督语义分割

时间:2022-12-12 12:00:00 v3接近传感器

本文转自商汤学术

5f20dc96422ae8860fca413582bed104.gif

导读

半监督任务的关键是充分利用上海交通大学和香港中文大学的无标签数据。「 Every Pixel Matters」有效利用所有无标签数据,包括不可靠样本,大大提高了算法精度。目前 U2PL 已被 CVPR 2022 接收,相关代码已开源,欢迎有任何问题 GitHub 提出。

论文标题:Semi-Supervised Semantic Segmentation Using Unreliable Pseudo-Labels

01

Self-training: 样本筛选导致训练不足

半监督学习的核心问题是有效利用无标记样本作为标签样本的补充,提高模型性能。

经典的 self-training 大多数方法都遵循 supervised learning → pseudo labeling → re-training 然而,学生网络将从错误的伪标签中学习错误的信息,因此存在 performance degradation 的问题。

传统的做法是通过样本筛选只留下高信誉预测结果,但这将排除大量的无标签数据,导致模型训练不足。此外,如果模型不能更好地预测某些数据 hard class,因此,很难准确分配这类无标签像素的假标签,从而进入恶性循环。

我们认为「 Every Pixel Matters」,即使是低质量的伪标签也应该合理使用,过去的方法并没有充分挖掘它们的价值。

02

Motivation: Every Pixel Matters

具体来说,我们可以通过熵来预测结果是否可靠 (per-pixel entropy) 来衡量,低熵表示预测结果可靠,高熵表示预测结果不可靠。我们通过 Figure 2 观察一个具体的例子,Figure 2(a) 是一张蒙有 entropy map 对于无标签图片,高熵的不可靠像素很难贴上确定的伪标签,因此不参与 re-training 过程,在 Figure 2(b) 我们用白色表示。

Figure 2. Illustration on unreliable pseudo-labels.

在 Figure 2(c) 和 Figure 2(d) 中将它们的 category-wise probability 以柱状图的形式绘制。黄色十字叉所表示的像素在 person 类上的预测概率接近 1.这个预测结果模型非常确定,低熵的像素点是典型的 reliable prediction。白十字叉所表示的像素点是 motorbike 和 person 两类预测概率不低,值相对接近,模型无法给出一个确定的预测结果,符合我们的定义 unralibale prediction。虽然模型不确定白色十字叉表示的像素点属于哪个类别,但模型在 car 和 train 这两类预测概率极低,显然确信不属于这些类别。

因此,我们认为,即使是不可靠的预测结果,虽然不能标记确定的伪标签,但它仍然可以作为一些类别的负样本,以参与模型的培训,这样所有的无标签样本都可以在培训过程中发挥作用。

03

Method

●Overview

Figure 3. An overview of our proposed U2PL method

网络结构,U2PL 采用 self-training 常见的技术路线 momentum teahcer 结构,由 teacher 和 student 网络组成两个结构完全相同,teacher 通过 EMA 接受形式来自 student 参数更新。参考单个网络的具体组成 ReCo (ICLR'22)[1],包括三个部分: encoder , decoder , 表征头。

在损失函数优化方面,标签数据直接基于标准的交叉熵损失函数进行优化。先依靠无标签数据 teacher 给出预测结果,然后根据 pixel-level entropy 分成预测结果 reliable pixels 和 unreliable pixels 两大部分 (分流过程在 Figure 2 所有体现),最后分别基于和进行优化。

构成了上述三个部分 U2PL 所有损失函数,熟悉 self-training 的话就只需要关注对比学习部分是经典的 InfoNCE Loss[2]后续将讨论细节。

●Pseudo-Labeling

本节主要讨论了无标签样本中可靠预测结果的使用,即损失函数中部分。

我们通过熵:

衡量预测结果的可靠性,筛选出最可靠的部分,然后用传统的方式贴上伪标签:

随着训练过程的推进,我们认为模型的性能在上升,不可靠预测结果的比例也在下降。因此,我们对可靠部分的定义在不同的训练时刻不断变化。在这里,我们简单地采用了线性变化策略,没有进行太多的探索:

需要注意的是,并不是所有的无标签像素都会参与这部分的计算,所以需要计算一个权重来调整这部分的损失。

●Using Unreliable Pseudo-Labes

本节主要讨论了无标签样本中不可靠预测结果的使用,即损失函数中部分。

U2PL 以比较学习为例,介绍了如何使用不可靠的伪标签来提高模型的准确性。由于这是一种比较学习,不可避免的问题是讨论如何构建正负样本对。下一个关于比较学习内容实现细节的大量参考 ReCo[1]如果要深入了解[1] U2PL,建议先看这篇论文。

首先是 anchor pixels (queries) ,我们将在训练过程中出现 mini-batch 每个类别都采样一系列 anchor pixel 对比学习。

然后是构建 anchor pixel 的 positive sample,我们会给每一个类别都算一个特征中心,同一类的 anchor pixel 会 share 作为共同的特征中心 postive sample。具体来说,我们先从 mini-batch 分类筛选出可用于计算特征中心的像素点。对于标签样本和无标签样本,筛选标准相同,即样本在真实标签类别或伪标签类别上的预测概率大于阈值,筛选出的像素点的表征的集合寻求一个平均值作为各种特征中心。参见以下公式:

最后是构建 anchor pixel 的 negative sampe,还需要分为两部分:标签样本和无标签样本。对于标签样本,我们清楚地知道它的类别,所以除真实值标签外的所有类别都可以作为像素的负样本类别;对于无标签样本,我们不完全确定标签的正确性,因为伪标签可能是错误的,所以我们需要过滤掉预测概率最高的类别,并将其视为剩余类别的负样本。这部分对应于论文中的公式 13-16,但说实话,用公式描述这段内容还是比较晦涩的。

Algorithm 1: Using Unreliable Pseudo-Labels

如果只使用一个数据集中的长尾问题 batch 对比学习的负样本可能非常有限,所以我们使用 MemoryBank 为了维护与类别相关的负样本库,存储由 teacher 以先进先出的队列结构维护生成的断梯度特征。

04

Comparison with Existing Alternatives

本文的所有实验结果都是基于 ResNet-101 Deeplab v3 如果网络结构完成,请参考论文描述所采用的数据集构成和评估方法。

我们在 Classic VOC, Blender VOC, Cityscapes 三种数据集都与现有方法进行了比较,全部有两种 PASCAL VOC 我们都在数据集中获得了最佳精度。在 Cityscapes 在数据集中,由于长尾问题很好地解决长尾问题,我们落后于致力于解决类别不平衡的问题 AEL (NeurIPS但是,我们会 U2PL 叠加在 AEL 超越 AEL 侧面也证明了精度 U2PL 的通用性。值得一提的是,U2PL 在标签数据较少的划分下,精度性能尤为优异。

05

    

● Effectiveness of Using Unreliable Pseudo-Labels

我们在 PSACAL VOC 和 CItyscapes 等多个数据集的多个划分上验证了使用不可靠伪标签的价值。

● Alternative of Contrastive Learning

我们增加了通过二分类去利用不可靠样本的对比实验,证明利用低质量伪标签并不是只能通过对比学习去实现,只要利用好低质量样本,即使是二分类方法也能取得不错的精度提升。

06

 附录   

● U2PL 与 negative learning 的区别

这里需要着重强调下我们的工作和 negative learning 的区别, negative learning 选用的负样本依旧是高置信度的可靠样本[4],相比之下,我们则提倡充分利用不可靠样本而不是把它们过滤掉。

比如说预测结果  由于其不确定性会被 negative learning 方法丢弃,但在 U2PL 中却可以被作为多个 unlikely class 的负样本,实验结果也发现 negative learning 方法的精度不如 U2PL。

● U2PL 技术蓝图

这里贴出技术蓝图,便于大家更好地理解论文的核心 story 和实验设计:


U2PL 技术蓝图

  传送门  

U2PL 的相关代码目前已经开源,欢迎各位同学使用和交流。

论文地址

https://haochen-wang409.github.io/U2PL/resources/U2PL_CVPR_2022.pdf

项目地址

https://haochen-wang409.github.io/U2PL/

代码地址

https://github.com/Haochen-Wang409/U2PL

References

[1] Bootstrapping Semantic Segmentation with Regional Contrast https://arxiv.org/abs/2104.04465

[2] Representation Learning with Contrastive Predictive Coding https://arxiv.org/abs/1807.03748

[3] Semi-Supervised Semantic Segmentation via Adaptive Equalization Learning https://arxiv.org/abs/2110.05474

[4] In Defense of Pseudo-Labeling: An Uncertainty-Aware Pseudo-label Selection Framework for Semi-Supervised Learning https://openreview.net/pdf/c979bcaed90f2b14dbf27b5e90fdbb74407f161b.pdf

本文仅做学术分享,如有侵权,请联系删文。

干货下载与学习

后台回复:巴塞罗自治大学课件,即可下载国外大学沉淀数年3D Vison精品课件

后台回复:计算机视觉书籍,即可下载3D视觉领域经典书籍pdf

后台回复:3D视觉课程,即可学习3D视觉领域精品课程

计算机视觉工坊精品课程官网:3dcver.com

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

13.重磅!四旋翼飞行器:算法与实战

14.ROS2从入门到精通:理论与实战

15.国内首个3D缺陷检测教程:理论、源码与实战

重磅!计算机视觉工坊-学习交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列三维点云系列结构光系列手眼标定相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章