CA-SSL:用于检测和分割未知类的半监督学习

news2024/11/25 12:45:43

论文作者 | Lu Qi, Jason Kuen , Zhe Lin, and etal

论文来源 | CVPR2022

文章解读 | William


1、摘要

为了提高检测/分割的性能,现有的自监督和半监督方法从未标记的数据中提取任务相关或任务特定的训练标签,但这两种方法对于任务性能都是次优的,使用过少的特定任务训练标签会导致下游任务的ground-truth标签欠拟合,反之则会导致对ground-truth标签过拟合。

为此,本文提出了一种新的未知类的半监督学习(Class-Agnostic Semi-Supervised Learning,CA-SSL)框架,以便于在从无标记数据中提取训练标签时实现更有利的任务特异性平衡。CA-SSL有三个训练阶段,分别作用于真实标签(标记数据)或伪标签(未标记数据)。这种解耦策略避免了传统SSL方法中平衡两种数据类型贡献的复杂方案。此外,还引入了一个预训练阶段,通过忽略伪标签中的类信息,在保留本地化训练标签的同时实现更优的任务特异性平衡。因此,在检测和分割任务中对ground-truth标签进行微调时,预训练模型可以更好地避免欠拟合/过拟合。,在FCOS对象检测上使用360万未标记数据进行训练,可以实现比imagenet预训练基线模型高4.7%的显著性能增益。此外,预训练模型展示了对其他检测和分割框架的良好可移植性

2、主要贡献

①提出了一种新的未知类的半监督学习框架,用于实例级检测/分割任务。通过利用级联训练阶段和未知类的伪标签,能够从无标签数据中提取的训练标签来保证更优的任务特异性。

②对目标检测进行了广泛的消融和对比实验,证明了该方法的有效性。目前,这是第一个以3.6M无标记数据规模进行半监督对象检测的框架。

③经过预训练的未知类预训练模型可以显著提高其他实例级检测/分割任务和框架的性能

3、方法

该框架包括三个阶段,包括伪标签训练、预训练和微调。在第一阶段,使用标记的数据,但只使用未知类的注释来训练伪标签器,然后在未标记的图像上预测未知类的伪标签。在预训练中,这些大量未标记的图像及其伪标签被用来训练目标检测器,这里只使用基于本地化的伪标签作为训练数据,而忽略类标签。最后,使用特定类的注释对标记数据集上的预训练目标检测器进行微调。

图1 CA-SSL框架

通常,给定来自手工标记的训练数据集Dt的输入图像I及其ground-truth注释Y,用于复合检测损失(分类损失和定位损失)训练记为h *的检测模型。检测模型h *是通过函数H(*)来学习,它决定了神经网络的假设空间。

3.1 伪标签训练

这个阶段的目标是在Dt上训练一个伪标签器,从未标记的数据集Du中分割生成高质量未知类的伪标签Dp。为了保持训练和推理的一致性,使用从Dt中获得的未知类来注释和训练伪标签器。使用未知类转换函数α(·)直接从Dt中的注释中删除类信息,并将每个标签视为无类的对象。为了训练伪标签器,使用特定于类的检测框架,并用二进制分类器替换其多类分类器。给定标签数据集Dt,伪标签器训练如下:

(1)

其中表示Ldet的未知类标签,H(L)表示以标记检测任务为条件的神经网络假设。

训练完成后,将伪标签器应用于未标记的图像,然后使用单个评分阈值δ对预测结果进行过滤。未知类的伪标签在预测结果中没有语义类标签,避免了类特定预测中存在的长尾问题。给定伪标签器和得分阈值δ,可以获得伪标签Y p和伪标签数据集Dp得知未知类伪标签过程:

(2)

(3)

其中“p”表示与伪标签的关联,score(·)返回任何预测的客观性得分。

3.2 预训练

这里只在伪标签数据集Dp上进行目标检测器的预训练,且不使用任何ground-truth数据集。为了得到预训练目标“T”得检测模型hT,进行了如下训练:

(4)

其中[·]是将转换为二进制训练目标。这里的预训练与自监督学习的前训练步骤有关,对于模型的权重也进行了初始化,这样可以提供相对更丰富的信息和特定于任务的监督信号。

3.3 微调

得到预训练模型hT后,使用Dt特定类的ground-truth标注对其进行微调,以用于下游任务。目标检测器的语义分类器输出通道应适应当前下游任务的预定义类的数量。多类别分类初始化有随机初始化和分类层的输出通道初始化两种方式。获得最终下游任务模型hF的微调过程表示为:

(5)

H (F;hT)表示同时以任务“F”和预训练模型hT为条件的神经网络假设。由于只使用了未标记的数据来训练目标检测器,保证了它不太容易过度拟合下游任务的图像和ground-truth标签。

4、实验结果与分析

4.1 预训练数据

其结果如表1所示。前两行可以观察到ImageNet预训练模型和未知类别的ground-truth标签上预训练模型的下游性能最差。然而,在最后三行中,利用伪标签进行训练的模型始终能够获得更强的下游性能。

表1 微调后预训练数据的选择对下游任务的影响

4.2 上限性能

这里研究在预训练和微调阶段实现上限性能所需的训练轮数。表2显示了不同预训练次数下未知类的性能。当epoch数从12增加到48时,训练后的模型在未知类的APe方面的性能从38.4提高到40.2,但在40轮数后达到饱和。

表2 不同预训练次数下的未知类性能

表3显示了不同预训练和微调时间组合下对下游特定对象类的检测性能。在预训练中60 epoch (5×),在微调阶段中36 epoch (3×),可以获得48.2的最佳性能。

表3不同预训练和微调组合下的检测性能

4.3 最优性能对比

表4中比较了CA-SSL在下游检测任务上的性能与数据增强中最先进的方法性能对比,该方法取得了最显著的性能提升,即使模型是基于Swin-Tiny骨干网络。使用1.74M未标记图像,能够获得50.8 APdet,比ImageNet预训练的基线提高4.0%。此外,通过将未标记图像的数量增加到3.66M,性能增益可以提高4.7%。由于没有明显的性能饱和迹象,因此可以认为使用超大规模的无标记数据集(大于3.66M的数据集或更大)会潜在地显著提高模型性能。

表4 与最先进方法性能对比

4.4 泛化性

表5显示了在各种实例级检测和分割任务上,使用CA-SSL预训练的单个模型在初始化下游模型所带来的性能改进。比如仅使用FPN骨干预训练权重来初始化Mask R-CNN,最终在实例分割和关键点检测方面实现了2.7 APseg和1.0 APpoint改进。这说明该半监督学习方法具有较强的泛化性。

表5 不同实例级任务下的性能改进

5、结论

提出了一种未知类的半监督学习框架,以提高实例级检测/分割的无标签数据性能。该框架采用不确定类别的伪标签,并包括三个级联训练阶段,其中每个阶段使用特定类型的数据。通过对未标记数据上的大量未知类伪标签进行预训练,未知类模型具有较强的泛化能力,并具备适量的任务特定知识。

当针对不同的下游任务进行微调时,该模型可以更好地避免对ground-truth标签的过拟合,从而获得更好的下游性能。最后,广泛的实验证明了框架对不同的未标记分割的目标检测的有效性。此外,预训练类的未知模型展示了对其他实例级检测框架和任务的出色可移植性。

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

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

相关文章

【JeecgBoot-Vue3】第1节 源码下载和环境安装与启动

目录 一. 资料 1. 源码下载 2. 官网启动文档 二、 前端开发环境安装 2.1 开发工具 2.2 前后端代码下载 2.3 前端启动 Step 1:安装nodejs npm Step 2:配置国内镜像(这里选阿里) Step 3:安装yarn Step 4&…

python的 ping 网络状态监测方法(含多IP)

ping 基本概念 ping (Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序。Ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Messag…

九、Bean的循环依赖问题

1 什么是Bean的循环依赖 A对象中有B属性。B对象中有A属性。这就是循环依赖。我依赖你,你也依赖我。 比如:丈夫类Husband,妻子类Wife。Husband中有Wife的引用。Wife中有Husband的引用。 2 singleton下的set注入产生的循环依赖 丈夫类 pac…

RabbitMQ的使用

1.初识MQ1.1.同步和异步通讯微服务间通讯有同步和异步两种方式:同步通讯:就像打电话,需要实时响应。异步通讯:就像发邮件,不需要马上回复。两种方式各有优劣,打电话可以立即得到响应,但是你却不…

Python3,好看的外(shen)表(cai)千篇一律,炫彩的日志万里挑一。

炫彩日志输出1、引言2、代码实战2.1 库介绍2.2 库安装2.3 代码示例2.3.1 demo2.3.2 实战3、总结1、引言 小屌丝:鱼哥, 我今天被炫到了。 小鱼:怎么了,你还能被旋到了? 小屌丝对啊, 被炫到了,很…

python SDK打包

什么是SDK 先放一段专业性的文字来解释: SDK即“软体开发工具包”,一般是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。通俗点是指由第三方服务商提供的实现软件产品某项功能的工具包。 开发者不…

【PyTorch】教程:torch.nn.ELU

torch.nn.ELU CLASS torch.nn.ELU(alpha1.0, inplaceFalse) paper: Fast and Accurate Deep Network Learning by Exponential Linear Units (ELUs). 参数 alpha ([float]) – α\alphaα 默认为1.0inplace ([bool] ) – 内部做, 默认为 False ELU 定义 ELU(x){x,if x>0α…

与流程挖掘布道者熵评科技孙一鸣博士共话流程挖掘市场的起源与前景 | 爱分析访谈

调研:李进宝 陈元新 撰写:李进宝 陈元新 随着数字化转型持续深入,国内企业流程挖掘需求初露端倪。流程挖掘是指通过采集和分析企业数据,以可视化流程图还原企业实际发生的业务流程,进而评估流程运行状况、诊断流程运…

Spring 6 and JUnit 5 组合

Spring 6 and JUnit 5 组合 Spring 6 and JUnit 5 只需引入相关的包&#xff0c;不过偶尔可能会出现 no tests were found&#xff0c;最后有解决方案。 引入相关依赖包 <dependencies><dependency><groupId>jakarta.annotation</groupId><artif…

边界无限入选首届“网络安全高成长性企业”并荣获“勇创之星”

近日&#xff0c;由工业和信息化部、四川省人民政府主办的“2023年中国网络和数据安全产业高峰论坛网络安全产融合作分论坛”在成都举行&#xff0c;论坛上公布了“2022年度网络安全高成长性企业”名单。云原生安全、应用安全“灵动智御”理念创领者北京边界无限科技有限公司&a…

密码算法(SM1、SM2、SM3、SM4、同态加密、密态计算、隐私计算和安全多方计算)

文章目录SM1 对称密码SM2 椭圆曲线公钥密码算法SM3 杂凑算法SM4 对称算法同态加密密态计算和隐私计算安全多方计算技术安全多方计算的应用场景对称加密算法非对称加密算法&#xff08;公钥加密&#xff09;参考文章SM1、SM2、SM3和SM4 为了保障商用密码的安全性&#xff0c;国家…

HTTP#1 请求数据格式和响应数据格式

一. 简介概念Hyper Text Transfer Protocol (HTTP), 超文本传输协议, 规定了浏览器和服务器之间数据传输的规则HTTP协议特点1.基于TCP协议:面向连接&#xff0c;安全2.基于请求-响应模型的:一次请求对应一次响应3. HTTP协议是无状态的协议: 对于事务处理没有记忆能力, 每次请求…

JAVA中公平锁和非公平锁有什么区别?

从公平的角度来说,Java 中的锁总共可分为两类:公平锁和非公平锁。但公平锁和非公平锁有哪些区别? 正文 公平锁:每个线程获取锁的顺序是按照线程访问锁的先后顺序获取的,最前面的线程总是最先获取到锁。非公平锁:每个线程获取锁的顺序是随机的,并不会遵循先来先得的规则…

深眸科技|机器视觉提升制造性能,焕发传统企业智造新活力!

随着机器视觉技术的成熟与发展&#xff0c;其在工业制造中得到越来越广泛的应用。机器视觉在工业制造领域的应用朝着智能识别、智能检测、智能测量以及智能互联的完整智能体系方向发展。此外&#xff0c;快速变化的市场需求&#xff0c;不断涌入行业的竞争对手&#xff0c;让传…

操作系统真相还原_第8章:内存管理系统

文章目录8.1 Makefile 简介makefile基本语法make参数伪目标自定义变量与系统变量隐含规则自动化变量与模式规则8.2 实现assert断言操作系统代码编译、链接并写入磁盘启动bochs执行物理内存使用情况8.3 实现字符串操作函数操作系统代码编译、链接并写入磁盘启动bochs执行物理内存…

C++基础(一)—— C++概述、C++对C的扩展(作用域、struct类型、引用、内联函数、函数默认参数、函数占位参数、函数重载)

1. C概述1.1 c简介“c”中的来自于c语言中的递增运算符&#xff0c;该运算符将变量加1。c起初也叫”c withclsss”.通过名称表明&#xff0c;c是对C的扩展&#xff0c;因此c是c语言的超集&#xff0c;这意味着任何有效的c程序都是有效的c程序。c程序可以使用已有的c程序库。为什…

Halcon数据结构

1.HTuple类型 1、既可以表示的类型有int&#xff0c;double、float、string&#xff0c;既可以表示单个值&#xff1b; 2、可以是容器&#xff1b; 3、可以是数组&#xff0c;数组遍历时需要有下标&#xff0c;如&#xff1a;变量名称[下标] 图像数据类型 Byte&#xff1a;8…

药房管理系统;药库管理系统

第一&#xff0c;主要功能&#xff1a;  本系统集日常销售、药品进销存、会员积分、GSP管理等药店所需的所有功能于一体&#xff0c;实现店铺管理的全部自动化。第二、新功能&#xff1a;  增加了“按功能查询药品”的功能&#xff0c;使软件用户可以根据客户的症状推荐合适…

【进阶】2、搭建K8s集群【v1.23】

[toc] 一、安装要求 在开始之前&#xff0c;部署Kubernetes集群机器需要满足以下几个条件&#xff1a; 一台或多台机器&#xff0c;操作系统 CentOS7.x-86_x64硬件配置&#xff1a;2GB或更多RAM&#xff0c;2个CPU或更多CPU&#xff0c;硬盘30GB或更多集群中所有机器之间网络…

编写SPI_Master驱动程序_老方法

编写SPI_Master驱动程序 文章目录编写SPI_Master驱动程序参考资料&#xff1a;一、 SPI驱动框架1.1 总体框架1.2 怎么编写SPI_Master驱动1.2.1 编写设备树1.2.2 编写驱动程序二、 编写程序2.1 数据传输流程2.2 写代码致谢参考资料&#xff1a; 内核头文件&#xff1a;include\…