端到端的半监督目标检测

论文:https://arxiv.org/pdf/2106.09018v3.pdf
代码地址:https://github.com/microsoft/SoftTeacher

整体框架

student model 的训练:
标注数据的检测损失
未标记数据通过伪标签生成的检测损失

teacher model :
由student model 的指数移动平均线(EMA)演变而来

损失函数

所以在训练的时候,主要训练student model
其损失函数重新定义分为了有标签部分和无标签部分


其中 Ls​代表有标签图片的损失值,Lu代表伪标签(利用teacher model 生成的)的损失值
再相加之前二者都需要进行归一化即以下步骤(求均值)

初始化

student model 和 teacher model 都是随机初始化的。
其中student model 随着损失函数做SGD的迭代,
teacher model 则根据student model 进行 EMA 迭代

困难点

  • 伪标签生成困难
    如何利用teacher model 生成的伪标签既包含位置信息也包含类别信息

流程

  • 伪标签由teacher model 生成
  • 伪标签通过非极大值抑制(NMS)和前景得分高于阈值(提前设定)才能作为伪标签用于建模
  • 使用 FixMatch
    即使用弱增强作为伪标签,求强增强预测值和弱增强的伪标签之间的一致性

阈值选择

高阈值会有高精确率但是会导致低召回率。
直接使用IOU进行代替(使用一般目标检测的方法),则因为一些本来是真实的框被当做背景加入了训练成为噪声是的模型效果下降。
针对这一问题,本文提出了一种叫做 soft teacher的方法。

这里重新定义了伪标签的类别部分的损失函数

即前景类别损失为算数平均
背景损失为加权平均
权重为背景框的可靠性得分
teacher model 根据弱增强图片生成的背景得分作为这里的 rr

其他的测试方案:

学生背景得分

可靠性分数使用另一个背景得分,即 rr 换成使用 student model的得分

预测差异

可靠性分数使用 teacher model 和 student model 之间差别来认定

即预测概率值之差的绝对值来判断。

IOU

前提 一个候选框与真实框之间IOU小于某一个阈值

  • 假设1
    这时候IOU较大的那个框作为背景框。这里称为 IOU
  • 假设2
    这时候IOU较小的框更可能是背景框。这里称为 Reverse-IoU

抖动框(Box Jittering)

IOU的问题

高IOU和高精确度的相关性不高,所以高IOU不能保证精确度很高。

抖动框方案

于是将预测的伪框进行抖动,代替生成的bbox进入模型作为proposal进行预测将得到的框求标准差等计算,算出定义的回归方差进入损失函数。

整体论文的思考路径:

  1. 想建立一个可以使用半监督学习方式来增加整体目标检测mAP的模型。

  2. 发现有个半监督算法叫 FixMatch。 核心思想是利用弱增强的结果作为伪标签,使用强增强的结果进行训练,保证二者结果的一致性。

  3. 思考如何将FixMatch这种半监督思路用在自己这里。于是提出了以下框架。

  4. 现在有了整体框架后,我们有两个模型,一个是 student model 一个是 teacher model 。 一般的来讲,半监督是在一个已有的模型框架下面做出的优化,那么我们的基础模型这里就选择使用Faster RCNN。注意我们训练的时候 student model,下面的损失函数的讨论也是 student model 而 teacher model 是由student model 进行 EMA 平滑的得到的。

  5. 初始化怎么办呢? 选择随机初始化吧,更具有一般性。注意,这里的随机初始化指的是student。至于teacher的初始化则和student保持一致。

    相当于每轮teacher的参数更新为:

    这同样解释了teacher model 更新的方式。

  6. 现在初始化搞定了,那如何将我们的半监督的图片信息加入到损失函数中呢? 我们使用加权吧。

  7. 对了,有监督和半监督之间如果差别有点大怎么办? 两边分别归一化吧,归一化之后相加才不会导致一方被忽略了。

  8. 现在可以加权了,有监督部分我们直接使用正常FasterRCNN的逻辑就好了,那有监督这里怎么办呢? 这里肯定需要建立伪标签来使得建模成立,那伪标签在目标检测里面包含了框的位置信息和类别信息两个。我们分着来看看下。

  9. 类别来说,分为前景类别和背景类别,前景的重要性是一样的,就用算数平均吧。但是背景的重要性可不同,而且背景有点太多了,我们得根据重要性排一下大小。这里就用加权平均吧。

    • 其中背景的权重怎么定呢?

      • 思考有几种定义的方案。

        • 根据 teacher model生成的背景得分来加权(最后使用方案)
        • 根据 student model生成的背景得分来加权
        • 根据student model 和 teacher model 两者的预测差异来定。
        • 根据IOU确定。但是IOU一般使用思路又有两种。
          前提 一个候选框与真实框之间IOU小于某一个阈值

          • 假设1
            这时候IOU较大的那个框作为背景框。这里称为 IOU
          • 假设2
            这时候IOU较小的框更可能是背景框。这里称为 Reverse-IoU
  10. 思考完类别的定义,剩下就是回归如何确定伪标签了。

    • 凭借一般认识认为高的前景得分那么这个框作为前景的可能性就很大,那这个框的位置就应该比较准,于是想能不能直接用前景得分高的框作为我们伪标签的框进行回归
    • 发现 前景得分 与 预测框和真实框之间的IOU 这两者之间并没有一个很好的正相关关系。

如图:

11. 到这里发现假设不成立,那就不能直接用前景得分高的框作为我们的回归使用的框了。思考其他路径。

12. 考虑使用框的抖动生成回归方差,判断方差越小的框IOU越大则可以作为我们伪框的判断依据。根据下图:

从图中能看到使用回归方差的整体效果要优于使用前景得分(因为看起来相关性更强)
所以我们考虑抖动框的生成逻辑。

13.

​​​​​

16. 但是在这套定义伪框的位置信息的时候我们会生成太多的框需要进行这一套计算。消耗太大了。所以进行一轮筛选,选择在teacher model 中前景得分大于0.5的框进行这个回归方差考虑。这样,每张图片由上百张的框需要判断减少到平均每张图片有17个框需要考虑。

17. 设定回归方差的阈值,回归方差小于阈值的情况下我们才将teacher model 预测得到的框作为伪框。
这时候我们定义半监督部分的回归损失为:

18. 将上面这个带入整体损失函数公式(公式3)得到了整体的损失函数为:

以上为整体损失函数定义的逻辑。
论文后续为在实验过程中,体现整体算法效果不错。

后面还有一系列效果的对比,有兴趣可以直接去看论文。

End-to-End Semi-Supervised Object Detection with Soft Teacher 解读相关推荐

  1. ICCV2021-Soft Teacher-End-to-End Semi-Supervised Object Detection with Soft Teacher

    前言: 论文地址:https://arxiv.org/pdf/2106.09018.pdf Github地址:https://github.com/microsoft/SoftTeacher SSL( ...

  2. 论文笔记 Object-Aware Instance Labeling for Weakly Supervised Object Detection - ICCV 2019

    Object-Aware Instance Labeling for Weakly Supervised Object Detection Kosugi ICCV, 2019 (PDF) (Citat ...

  3. 论文报告笔记(四) Towards Precise End-to-end Weakly Supervised Object Detection Network

    文章目录 论文报告笔记(四) Towards Precise End-to-end Weakly Supervised Object Detection Network 弱监督学习 WSDDN OIC ...

  4. Utilizing the Instability in Weakly Supervised Object Detection (CVPR2019) 解读

    论文链接:Utilizing the Instability in Weakly Supervised Object Detection 本文主要贡献: 通过分析检测器多示例学习(MIL)的不稳定性, ...

  5. EGNet: Edge Guidance Network for Salient Object Detection 论文及代码解读

    EGNet: Edge Guidance Network for Salient Object Detection 论文及代码解读 注:本文原创作者为Jia-Xing Zhao, Jiang-Jian ...

  6. OTA: Optimal Transport Assignment for Object Detection 原理与代码解读

    paper:OTA: Optimal Transport Assignment for Object Detection code:https://github.com/Megvii-BaseDete ...

  7. CVPR 2018 paper ---object detection

    转载:https://blog.csdn.net/qq_34848537/article/details/82968217 参考链接 CVPR 2018 论文解读集锦(9月27日更新) CVPR 20 ...

  8. object detection

    原地址:https://handong1587.github.io/deep_learning/2015/10/09/object-detection.html Object Detection Pu ...

  9. Object Detection(目标检测神文)

    目标检测神文,非常全而且持续在更新.转发自:https://handong1587.github.io/deep_learning/2015/10/09/object-detection.html,如 ...

最新文章

  1. 公示 | 首届中国智能心电大赛初赛结果
  2. hexo的next主题个性化教程 打造炫酷网站
  3. 脑机接口成唯一沟通方式,渐冻症晚期父亲终向4岁儿子表达爱意
  4. 在Eclipse中打开Hadoop工程
  5. 如何实现把固定内容自动写入excel_Odoo如何实现基于关联数据自动写入本表数据项的实施技巧分享...
  6. 基于小波shint/DCT编码压缩解压缩的FPGA实现
  7. 服务器 ha linux,Linux 高可用(HA)集群之Heartbeat详解
  8. 前端学习(2217):react元素渲染之时钟
  9. CWNP认证和Cisco无线认证区别
  10. Android Support Annotation Library使用详解
  11. 两个好用的eclipse js编辑器插件
  12. HTML Javascript CGI
  13. 伪装学渣未删减部分_慎重勇者:破坏神和圣哉做了什么?第9话战帝被删减剧情补充...
  14. xcode8 上传app到appStore 遇到 error ITMS90096
  15. VB中传值(ByVal)和传地址(ByRef)的区别
  16. 转:什么是 CRA ?
  17. Sun公司,Oracle公司(10.8)
  18. Call Indels/SV常用软件-搬运工
  19. python第二周基本图形绘制
  20. 可口可乐为何如此成功?

热门文章

  1. 宅家36天咸鱼翻身入职腾讯,系列篇
  2. SQL进阶之关联子查询练习
  3. HDU - 5338 ZZX and Permutations 线段树 + set
  4. There is no getter for property named 'avater' in 'class com.blog.pojo.User
  5. 【推荐】pairwise、pointwise 、 listwise算法是什么?怎么理解?主要区别是什么?
  6. 基于深度学习的植物虫害检测
  7. 华为OD机试 - 员工出勤(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】
  8. 处理JDBC requires that the JdbcType must be specified for all nullable parameters.问题
  9. 芯片老化验证流程_一种芯片测试及老化测试装置的制作方法
  10. mysql-8.0-大小写敏感