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

2023-11-02

本文转自商汤学术

5f20dc96422ae8860fca413582bed104.gif

fc72489d31610af40268f5787c3487a3.gif

导读

794d9a29b7baf5c583f488b2fb79cb53.gif

23774f1bd4537dcebed96c4fccba0579.gif

半监督任务的关键在于充分利用无标签数据,商汤科技联合上海交通大学、香港中文大学,基于「 Every Pixel Matters」的理念,有效利用了包括不可靠样本在内的全部无标签数据,大幅提升了算法精度。目前 U2PL 已被 CVPR 2022 接收,相关代码已开源,有任何问题欢迎在 GitHub 提出。

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

eabbd93c27ddbe36278dcc2efc640a9a.png

01

1321554fe84067078a9d152c1aa646f5.gif

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

半监督学习的核心问题在于有效利用无标注样本,作为有标签样本的补充,以提升模型性能。

经典的 self-training 方法大多遵循着 supervised learning → pseudo labeling → re-training 的基本流程,但学生网络会从不正确的伪标签中学习到错误的信息,因而存在 performance degradation 的问题。

常规作法是通过样本筛选的方式只留下高置信度预测结果,但这会将大量的无标签数据排除在训练过程外,导致模型训练不充分。此外,如果模型不能较好地预测某些 hard class,那么就很难为该类别的无标签像素分配准确的伪标签,从而进入恶性循环。

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

02

bcba568444fde1ccedeaf4db0d1a4105.gif

Motivation: Every Pixel Matters

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

dfb21708150a16dc176b611dcae2a7c4.png

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

91380fa81d9d3d92139795c2256de3e1.gif

   Method    

● Overview

a37ee5f2af6d3a1af8381ff8c8e681d1.png

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 有所体现),最后分别基于  和  进行优化。

f0d38f9ab15e35249750ab988b45f2bf.png

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

● Pseudo-Labeling

本节主要探讨无标签样本中可靠预测结果的利用方式,即损失函数中的  部分。

我们通过熵:

4b025d9d44a4bc0ab2df5dbde0619287.png

对预测结果的可靠性进行衡量,将最可靠的部分筛选出来,再通过常规方式打上伪标签:

0f285199a9ea629e62813a6b152ac601.png

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

35bdbeb49e1bf1c05d23657792eda0f6.png

需要注意的是,由于并非所有的无标签像素都会参与这部分的计算,因此需要计算一个权重对这部分损失进行调节。

● Using Unreliable Pseudo-Labes

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

U2PL 以对比学习为例介绍了如何将不可靠伪标签用于提升模型精度。既然是对比学习,那不可避免的问题就是讨论如何构建正负样本对。接下来的有关对比学习内容的实现细节大量参考了 ReCo[1],因此如果要深入了解 U2PL,建议可以先看下这篇论文。

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

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

1d7337d7df1916091f4d475ff6389704.png

最后是构建 anchor pixel 的 negative sampe,同样的也需要分成有标签样本和无标签样本两个部分去讨论。对于有标签样本,我们明确知道其所属的类别,因此除真值标签外的所有类别都可以作为该像素的负样本类别;而对于无标签样本,由于伪标签可能存在错误,因此我们并不完全却行确信标签的正确性,因而我们需要将预测概率最高的几个类别过滤掉,将该像素认作为剩下几个类别的负样本。这部分对应的是论文中公式 13-16,但说实话这一段内容用公式去描述还是比较晦涩的。

df9b2e637476436b4cca7802443cde22.png

Algorithm 1: Using Unreliable Pseudo-Labels

由于数据集中存在长尾问题,如果只使用一个 batch 的样本作为对比学习的负样本可能会非常受限,因此我们采用 MemoryBank 来维护一个类别相关的负样本库,存入的是由 teacher 生成的断梯度特征,以先进先出的队列结构维护。

04

07c1926465bdcac9e4c2890f2b7019f2.gif

Comparison with Existing Alternatives    

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

我们在 Classic VOC, Blender VOC, Cityscapes 三种数据集上均和现存方法进行了对比,在全部两个 PASCAL VOC 数据集上我们均取得了最佳精度。在 Cityscapes 数据集上,由于我们没能很好地解决长尾问题,落后于致力解决类别不平衡问题的 AEL (NeurIPS'21)[3],但我们将 U2PL 叠加在 AEL 上能够取得超越 AEL 的精度,也侧面证明了 U2PL 的通用性。值得一提的是,U2PL 在有标签数据较少的划分下,精度表现尤为优异。

b23902471dab2fc1b3c335277bff5f84.png

da1a87edd0831dc534f11fc1266303ff.png

b4762c0fb2bcee28e2eac7d0bb5d3a18.png

05

e1ff867b670257b93aeec261da568bfd.gif

Ablation Studies    

● Effectiveness of Using Unreliable Pseudo-Labels

d408adb4dd1a92f3afa8fabcc1473109.png

3e9e4531ae1a2182b9e6382c28ccce07.png

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

● Alternative of Contrastive Learning

940afa421992c921cd7f895b1312a1f6.png

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

06

cd2887af503a31e940280d333fad54ec.gif

 附录   

● U2PL 与 negative learning 的区别

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

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

● U2PL 技术蓝图

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

24aac284eb8568272864b3344cf6518d.png

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视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

2e9827e5ac1d02e1c61d654dfffd225f.png

▲长按加微信群或投稿

4447e5b424daf605d645b4e2e259b7a2.png

▲长按关注公众号

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

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

60101b577ebec505c69c01d3e1bbb4b8.png

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 方法的定义和格式

    方法 什么是方法 方法是程序中最小的执行单元 定义 把一些代码打包在一起 该过程称为方法 实际开发过程中 什么时候用到方法 重复的代码 具有独立功能的代码可以抽取到方法中 实际开发中 方法的好处 提高代码的复用性 提高代码的可维护性 方法的
  • C++内存泄漏和内存碎片的产生及避免策略

    1 内存泄漏的定义 一般我们常说的内存泄漏是指堆内存的泄漏 堆内存是指程序从堆中分配的 大小任意的 内存块的大小可以在程序运行期决定 使用完后必须显示释放的内存 应用程序一般使用malloc realloc new等函数从堆中分配到一块内存
  • AirTest自动化测试

    目录 一 AirTest简介 二 AirTest与模拟器进行连接 三 图像库 touch 运行 报告 一 AirTest简介 AirTest是一个基于图像识别原理的跨平台UI自动化测试框架 适用于游戏和应用程序 1 特点 a 跨平台 Air
  • windows10(1903) VMware(虚拟机)不能正常安装操作系统

    win10虚拟机不能正常安装操作系统 前言 一 问题现象 二 解决方案 1 停止hv主机服务 2 重启计算机 3 开启虚拟机的全局虚拟打印功能 4 正常工作了 参考 前言 最近公司搬家 重新搭环境 事儿有点多哈 我们win10 操作系统被运
  • vue-router基本使用方法

    声明 本人的所有博客皆为个人笔记 作为个人知识索引使用 因此在叙述上存在逻辑不通顺 跨度大等问题 希望理解 分享出来仅供大家学习翻阅 若有错误希望指出 感谢 动态路由匹配 我们可以在 vue router 的路由路径中使用 动态路径参数 d
  • EMC-MLCC电容反谐振点引起的RE辐射超标

    MLCC电容反谐振点引起的RE辐射超标 对待RE辐射问题 可以按照干扰源 干扰路径 被干扰源 入手较多的是干扰源和干扰路径 解决干扰源可以从展频 调频 屏蔽干扰源 增加RC snabber吸收干扰源等方向入手 解决干扰路径的 可以分为差模干
  • 网络互连基础的实验

    拓扑 需求 某网络整体结构如图所示 根据如图的IP规划 为设备配置IP地址 在各路由器上配置静态路由 要求实现全网互联 在DNS服务器上增加一条域名解析记录 域名可自定义 当通过PC端用域名访问Web服务器时 PC端浏览器能够返回web服务
  • Python使用免费天气API,获取全球任意地区的天气情况

    需求背景 公司是做外贸服装的 在亚马逊平台上有多个地区店铺运营 运营人员需要参考地区的天气情况 上新的服装 所以需要能够获取全球任意地区的天气情况 还需要预测未来10 15天的天气情况 选型API 天气API中有大把免费的api 如 国内的
  • 基于元学习的红外弱小点状目标跟踪算法

    基于元学习的红外弱小点状目标跟踪算法 人工智能技术与咨询 昨天 本文来自 激光技术 作者热孜亚 艾沙等 引言 红外点状目标的跟踪是红外搜索和跟踪 infrared search and track IRST 系统中的关键技术之一 1 在红外
  • vue手机端的调试神器eruda

    前言 分享一款神奇 可以在手机上实现 跟pc端f12打开调试一样的效果 官方地址 入口 实现效果 实现步骤 1 cdn使用 打开public index html加入 2 node使用 cnpm install eruda save
  • 配置Apache2.4.46

    解压后打开 Apache24 conf 的httpd conf 定位Define SRVROOT并将后面的 SRVROOT 改为自己解压后的Apache24文件夹路径 下一行ServerRoot后面的 SRVROOT 相同操作 在cmd输入
  • SpringBoot整合AMQP

    SpringBoot整合AMQP 文章目录 SpringBoot整合AMQP 前言 一 JMS AMQP概念以及区别 二 RabbitMQ简介 三 互联网大厂为什么选择RabbitMQ 四 RabbitMQ的一些核心概念 五 RabbitM
  • 推荐系统系列——推荐算法评价指标

    文章目录 同步读书之 菜根谭 9 静坐观心 真妄毕现 10 得意早回头 拂心莫停手 推荐算法评价指标 1 评分预测指标 1 1 符号定义 1 2 平均绝对误差 1 3 均方根误差 1 4 覆盖率 2 集合推荐指标 2 1 混淆矩阵 2 2
  • 微信小程序事件传参

    微信小程序事件传参 微信小程序怎么事件传参 dataset 对象 事件对象 目标对象 总结 两步骤 微信小程序怎么事件传参 dataset 对象 每个虚拟dom身上都拥有一个dataset对象 给虚拟 dom 绑定上 data 自定义键 值
  • Docker服务的重启服务命令(systemctl restart docker)

    重启Docker服务 重启docker服务 systemctl restart docker 非root用户使用 重启docker服务 sudo systemctl restart docker
  • 两年外包生涯做完,感觉自己废了一半....

    先说一下自己的情况 大专生 17年通过校招进入湖南某软件公司 干了接近2年的点点点 今年年上旬 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了五年的功能测试 已经让我变得不思进取 谈了1年的女朋友
  • nginx配置域名访问

    1 本地开发好的demo程序 target目录下 把META INF WEB INF index jsp 所有文件打成zip包 如下图 2 Linux服务器下 部署到Tomcat下 清空ROOT目录下所有文件 把1中nginx zip文件放
  • 点云TXT与PCD格式之间的转换

    开发环境为win10 vstudio2019 注 txt形式的点云文件没有header 存储的全是xyz数据 如下图 这个点云数据中不仅包含有x y z的位置信息 还包含其他的位置信息 因此我们只需要提取前三列的信息 并忽略前两行 提取后的
  • 消息中间件篇

    消息中间件篇 RabbitMQ 如何保证消息不丢失 面试官 RabbitMQ如何保证消息不丢失 候选人 嗯 我们当时MYSQL和Redis的数据双写一致性就是采用RabbitMQ实现同步的 这里面就要求了消息的高可用性 我们要保证消息的不丢
  • CVPR 2022|U2PL:使用不可靠伪标签的半监督语义分割

    本文转自商汤学术 导读 半监督任务的关键在于充分利用无标签数据 商汤科技联合上海交通大学 香港中文大学 基于 Every Pixel Matters 的理念 有效利用了包括不可靠样本在内的全部无标签数据 大幅提升了算法精度 目前 U2PL