【半监督学习】4、Dense Teacher

2023-10-27

在这里插入图片描述

论文:Dense Teacher: Dense Pseudo-Labels for Semi-supervised Object Detection

代码:https://github.com/Megvii-BaseDetection/DenseTeacher

出处:ECCV2022 | 旷视

一、背景

目前在半监督目标检测任务中表现较好的方法是:

  • 对输入图像进行弱数据增强并输入 teacher 模型,得到预测的伪边界框
  • 对输入图像经过强数据增强后输入 student 模型,student 模型学习的真值是伪边界框。

但这种直接从半监督分类任务中迁移过来的方法对目标检测可能不是非常合适,如图 1 所示。

使用生成的伪边界框当做 student 模型的真值来监督模型训练需要几个额外的步骤,从而引入很多超参数,如果参数选择不到位,则会影响半监督检测模型的效果,如:

  • NMS
  • 分类得分阈值过滤
  • 正负标签分配等

本文的贡献点:提出了 Dense Teacher,也提出了伪标签的统一形式——Dense Pseudo-Label(DPL)

  • DPL 表示完整的标签,是网络的密集输出,没有经过后处理,能够使得教师模型和学生模型之间进行更有效的知识传递
  • 对每个训练 iter,随机选择一定数量的标签数据和无标签数据作为训练样本
  • Teacher model 是 Student model 经过 EMA 后得到的,Teacher model 用于生成 DPL
  • Student model 是学习标签数据的 label 和无标签数据的伪真值

二、方法

Dense Teacher 的整个过程如图 1 所示:

在这里插入图片描述

2.1 框架结构

Dense Teacher 的框架结构如图 1 所示,在每个 iter:

  • 对 labeled data 和 unlabeled data 进行随机采样,得到一个 data batch
  • teacher model:通过 student 的 EMA 得到,用于接收弱数据增强后的数据作为输入,并输出预测的结果作为伪标签
  • student model:使用有标签的数据进行有监督学习,并得到有监督的 loss L s L_s Ls,使用有伪标签的数据进行无监督训练,得到无监督 loss L u L_u Lu
  • 只有 student model 需要计算 loss,teacher 模型不需要计算 loss,故整体的 loss 为 L = L s + w u L u L=L_s+w_uL_u L=Ls+wuLu w u w_u wu 是无监督 loss 的权重

2.2 伪标签的缺陷

在这里插入图片描述

下文主要会探索伪标签在 COCO 和 CrowdHuman 上的效果,因为 NMS 阈值在密集场景会更凸显问题。

也是由于现存方法有如下 3 个问题,作者提出了一种新的无后处理的密集标签指导的无监督学习

1、阈值选择的问题

在半监督目标检测任务中,teacher 模型的输出会作为伪标签供 student 模型学习

所以,如何使用阈值来过滤分类得分低的预测框是很关键的一步

如图 2 所示,作者给出了 Unbiased Teacher 在不同阈值下的训练结果:

  • 随着阈值的变化,两个数据集的检测性能波动很大
  • 当阈值较高时(如 0.7 和 0.9),训练过程可能会无法收敛,这可能是由于教师模型的预测中存在大量的 FN,如图 2c 和 2d 所示。这也说明使用阈值操作会消除很多高质量的预测,导致 student 模型学习效果变差
  • 当阈值较低时(如 0.3),由于 FP 较多,性能表现也会下降,如图 2c 和 2d
  • 综上,很难选择一个合适的阈值来保证保留下来的伪边界框的质量

2、NMS 的问题

NMS 使用阈值来控制预测框的去留

通过实验发现,NMS 的阈值对 SSOD 的效果也有很大的影响

如图 2b,展示了 NMS 的阈值和 Unbiased Teacher 效果的关系:

  • 不同的 NMS 阈值会导致检测效果的波动,尤其是在 CrowdHuman 这种密集场景的数据下尤为明显
  • 不同数据集的最优 NMS 阈值是不同的,COCO 为 0.7,CrowdHuman 为 0.8,所以 NMS 阈值的选择也需要一定的调试才能选择到最优的阈值
  • 使用了 NMS 后,会进一步增加伪边界框的不可靠性

3、正负样本分配中的不一致问题

我们已知目标检测中的正负样本分配是非常重要的,但在半监督目标检测中可能会有问题,因为伪标签的定位可能不是很准确,这就会导致标签的正负样本分配和真实的标签不一致。

如图 3 所示,虽然预测的伪框和真实的框可能满足 IoU>0.5:

  • 3b 中的绿框是真实标注的 gt,假设 gt 中心的 3x3 区域的 anchor point 被分为正样本(绿色实心圆)
  • 3c 中的预测的伪框的 3x3 中心区域的 anchor point 是三个实心红圆和六个实心绿圆,这样就会导致将一些错误的 anchor point 误分为正样本
  • 这种与真值不一致的问题会导致模型性能降低。

在这里插入图片描述

2.3 Dense Peseudo-Label

1、DPL 的具体过程如下:

  • 期望的密集伪标签是由训练的模型预测的 post-sigmoid logits 得到的,如图 1 绿色框所示
  • 经过对比后可以明确的发现,DPL 比其他的伪标签具有更详细的信息

在这里插入图片描述

2、DPL 的分类损失:QFL

  • 由于 DPL 的表示是连续值(0~1),标准的 Focal loss 只能处理离散值,所以使用 QFL 在密集的伪标签和学生模型的预测结果间进行学习

QFL 公式如下, p i s p_i^s pis 表示学生网络对第 i 个 anchor 的预测结果, y i y_i yi 表示 DPL, γ \gamma γ 是抑制因子:

在这里插入图片描述

3、使用特征丰富程度评分来划分学习区域,提高模型对有效区域的利用率

  • 虽然 DPL 包含丰富的信息,但由于没有阈值的过滤,保留了很多低得分的预测结果,而这些结果包含很多背景区域,包含的有用信息很少。

  • 在下面也会证明,如果学生网络学习这些背景区域的特征,就会影响 SSOD 算法的性能

  • 因此,作者提出基于【教师特征的丰富程度评分,Feature Richness Score,FRS】来讲整幅图像划分为学习区域和抑制区域。

如何使用 FRS 来划分像素呢:

  • 选择 top-k% 得分的像素作为学习区域
  • 其他区域抑制为 0

基于 FRS 划分后的 DPL 如下, p i , c t p_{i,c}^t pi,ct 为教师网络在第 c 个类别的第 i 个样本的得分预测,C 是总类别数:

在这里插入图片描述

经过上面的设计,有如下的好处:

  • 通过修改学习区域,可以通过选择额外的样本来实现难负例挖掘,如图 4 所示
  • 通过选择学习区域,可以很容易的实现对回归分支的无监督学习,作者使用 IoU loss 来监督无标签数据的回归

在这里插入图片描述

难负例样本挖掘带来的提升:

在 Dense Teacher 网络中,分别探索了“抑制”、“忽略”、“选择” 三种不同策略对难负例区域的影响,结果如表 5 所示。

  • 抑制难负例为 0:分类和回归分支的性能都有下降
  • 忽略难负例:在计算损失时忽略难负例,结果表明这种方式比抑制难负例得到的效果更好,但仍比“选择”难负例用于训练效果要差一些
  • 这表明如何处理难负例对模型性能有影响

回归分支带来的效果提升:

  • 如表 1 所示,使用回归分支可以提升

在这里插入图片描述

在这里插入图片描述

三、效果

3.1 数据和实验设置

数据使用 COCO 和 Pascal VOC:

  • COCO 的 train2017 包含 118k 标签数据,123k 无标签数据,在 val2017 上进行测试

  • Pascal VOC 的训练集使用 VOC07 train 和 VOC12 train,测试集使用 VOC07 test

  • COCO-Standard:使用 1%、2%、5%、10% 的采样率对 train2017 进行有标签数据的采样,其他数据当做无标签数据训练

  • COCO-Full:使用 train2017 有标签数据和 unlabeled2017 无标签数据的所有

  • VOC Mixture:将 VOC07 train 作为有标签数据,VOC12 train & COCO20cls 作为无标签数据

实验设置:

  • 使用 FCOS 作为基准检测器,在 ImageNet 上预训练的 ResNet50 作为 backbone
  • batch-size=16,基础学习率为 0.01,QFL 的参数 γ = 2 \gamma=2 γ=2
  • COCO 数据集的 loss weight w u = 4 w_u=4 wu=4,其他数据集为 2

3.2 主要的结果对比

在这里插入图片描述

  • DPL 带来了较好的提升,但如果没有区域划分策略的话,只能从 31.52% 提升到 32%,提升的很小,所以区域划分非常重要
  • 区域划分测量能有效利用难负例区域来加强训练效果,使用 COCO 的 gt 对 FCOS 进行正负样本分配时,在 train2017 上只有约 0.4% 的正样本。通过指定 k=1,能够挖掘更多的难负例来知道无监督训练
  • 图 4 中可以看出难负例分布在一些有意义的像素上(坐垫处、柜子上、小狗身上的其他部位等),教师模型这样的响应可以帮助学生模型提高效果

3.3 和 SOTA 的对比

在这里插入图片描述
在这里插入图片描述
箭头的意思:baseline → result
在这里插入图片描述

表 7 对比了选择不同的比例 k 对对性能的影响,选择 1% 时得到了最好的效果

在这里插入图片描述

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

【半监督学习】4、Dense Teacher 的相关文章

  • CGAL的使用

    1 C 类的知识 因为CGAL是用C 实现的 所以需要先了解一下C 编程 C 是面向对象的编程 这也是C 对C语言改进的最重要的部分 C 也被叫做是 带类的 C 简单讲一下类的构成 成员函数以及对象的定义和使用 1 1 C 类的构成 首先从
  • godaddy服务器内网站转移,2021年Godaddy最新域名转出教程

    因为之前Goddady登录界面修改的原因 导致部分新手不知道Godaddy域名转出步骤 笔者特此做了一个简单的教程 供大家学习和参考 第一步 打开Godaddy官网 登录Godaddy账户 然后点击页面右侧的My Account 进入账号管
  • xmlns:android="http://schemas.android.com/apk/res/android"详解

    在Android的layout文件夹下的 xml文件中 开头有一条配置语句 xmlns android http schemas android com apk res android 1 整句话的作用是声明命名空间的引用 2 xmlns是
  • AI+无线通信

    1 赛题与数据 官方介绍已经比较清楚了 按照需要下载对应的文件 博主使用的是pytorch版本 2 代码的本地部署 2 1 文件列表 示例程序文件有以下几个文件 Model define pytorch py 在这个文件设计网络结构 设计
  • 独家

    作者 Faizan Shaikh 翻译 季洋 校对 王雨桐 本文约2700字 建议阅读10 分钟 本文将展示如何使用开源工具完成一个人脸识别的算法 引言 计算机视觉和机器学习已经开始腾飞 但是大多数人并不清楚计算机在识别一张图片的时候 它到

随机推荐

  • 分库表数据倾斜的处理让我联想到了AKF模型

    1 背景 最近在做需求的时候需要在一张表中增加一个字段 这张表情况如下 1 拆分了多个库多张表 2 库表拆分按表中商户编码字段hash之后取模进行拆分 由于库表拆分按照商户编码 有些大商家的单子数量远远要高于其他普通商家 这样就造成了严重的
  • Visual Studio中的Class Designer设计工具需要您的建议!

    2007年07月30日 23 01 00 帮同事Post一下相关调查 有兴趣的朋友可以参加一下 谈谈自己对Class Designer工具的看法 大家好 Class Designer是Visual Studio里的一个工具 可以将类之间的结
  • 7月7日下午!GLM大模型技术前沿与应用探索

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入 随着AIGC时代的到来 大型语言模型逐渐成为学术界和工业界的关注焦点 近期 各种大语言模型的涌现给自然语言处理领域的研究带来了诸多挑战 也逐渐对计算机视觉和计算机生物等领域产生了
  • STM32 Keil:warning: #223-D: function "LED_Init" declared implicitly

    include stm32f10x h include led h int main LED Init while 1 GPIO SetBits GPIOD GPIO Pin 6 运行时警告 warning 223 D function L
  • 代码随想录训练营第十一天

    1 有效的括号 LeetCode 题20 https programmercarl com 0020 E6 9C 89 E6 95 88 E7 9A 84 E6 8B AC E5 8F B7 html E8 BF 9B E5 85 A5 E
  • day15

    LeetCode102 层序遍历二叉树 package algor trainingcamp import algor junior algor tree TreeNode import java util ArrayList import
  • 高清变脸更快更逼真!比GAN更具潜力的可逆生成模型来了

    昨天上市即破发的小米 今天上午股价大涨近10 这下雷军要笑了 而且可以笑得更灿烂 更灿烂是什么样 来 我们用OpenAI刚刚发布的人工智能技术 给大家展示一下 当然这个最新的技术 不止这点本事 它的 想象力 很强大的说 比如 留胡子的硬汉版
  • Unity 2022 (Windows 10) 每次打开项目都会弹出"Unity is running as administrator"

    1 Win R 输入 control 打开控制面板 2 找到 用户账户 gt 更改用户账户控制设置 3 将滑块调用中间 仅当应用尝试更改我的计算机时通知我 默认 4 重启电脑
  • 关键帧动画html例子,关键帧

    关键帧 keyframes 在CSS中 keyframes根据你定义的样式规则来更有效的控制动画队列中的每一个中间步骤 或者每一个路径点 用 keyframes来制定动画规则会比使用transition 过渡 来获得更细腻更全面的动画效果
  • 【姿态估计】

    https arxiv org pdf 1910 06278 pdf 关键点标签编码 encoding 训练人体姿态估计网络时 考虑到训练代价 通常会将将输入图片做降采样 在降采样后的分辨率上进行训练 为了网络能够以热度图为标签进行训练 需
  • 【深度学习】一分钟速学

    非极大抑制 NMS的英文是Non maximum suppression的缩写 简单的说 就是模型给出了多个重叠在一起的候选框 我们只需要保留一个就可以了 其他的重叠的候选框就删掉了 效果可见下图 交并比 IoU的英文全称Interp ov
  • 超详细

    早在去年的十二月份 也就是2020年12月 CentOS 官方发文宣称 CentOS项目的未来是 CentOS Stream 明年我们会将重点从CentOS Linux 转移到CentOS Stream 它紧随当前 RHEL 版本之前 Ce
  • matlab和stata,Stata和Matlab联合处理金融数据

    Stata是统计学专业软件 可以很方便的对数据处理 但几乎只能按照整行整列进行 而且每次只能加载一个矩阵 dta文件 如果要用到多个矩阵数据进行操作或进行复杂的循环控制 就力不从心了 而Matlab工业界广泛使用的数据分析处理工具 对矩阵支
  • 在eclipse中调试时,怎样查看一个变量的值?

    在要查看的变量前先设置断点 然后选中变量 右键选debug as gt Java Application 打开debug 透视图 这时在Variables 窗口中可以看到变量当前的值 如果是局部变量 也可以在局部变量窗口中查看 要知道一个方
  • Redis系列一

    1 1 Nosql 1 1 1 概述 单机mysql时代 90年代 一个基本的网站访问量不会太大 单个数据库足够 更多的使用静态网页html 网站瓶颈 数据量太大 一个机器放不下 数据的索引 一个机器的内存也放不下 访问量太大 读写混合 性
  • 病毒分析系列2

    前言 接上篇 进行病毒分析时 在进行具体的病毒行为分析前 需要或许可疑文件的基本信息 此时可以使用pe工具进行分析和获取 基本静态信息获取 一般需要获取的信息包括但不限于 程序哈希值 导入函数表 导出函数表 是否有壳 程序的位数 字符串 具
  • excel中如何将3'30"格式的分秒转换成以秒为单位的数字?

    在excel中 如记录比赛成绩的格式为3 30 要转换成以秒为单位的数字 如210秒的方式 请问该如何操作 假设你的数据在A列 A1 A100 在B1输入下面的公式 然后向下填充 TEXT 00 SUBSTITUTE LEFT A1 LEN
  • 科普篇

    开发者是开源社区生生不息的源动力 为了汇聚开发者力量 共建开源生态 FISCO BCOS智能合约编译技术专项兴趣小组 Compiling Technology of Smart Contract Special Interest Group
  • 链游

    一 前言 身为一名从事移动互联网App开发多年的从业人员 一直在关注前沿的技术方向 以免被时代的列车遗落 从18年底开始关注DApp技术的发展 COCOS发起的COCOS BCX以区块链为底层技术 专注区块链游戏领域的DApp游戏开发框架自
  • 【半监督学习】4、Dense Teacher

    文章目录 一 背景 二 方法 2 1 框架结构 2 2 伪标签的缺陷 2 3 Dense Peseudo Label 三 效果 3 1 数据和实验设置 3 2 主要的结果对比 3 3 和 SOTA 的对比 论文 Dense Teacher