前言 本文结合相关论文介绍了一些半监督方针检测算法,即怎么运用很多的 unlabeled data 提升模型的检测功能。

本文转载自极市平台

作者丨kinredon

欢迎重视大众号CV技能攻略,专注于核算机视觉的技能总结、最新技能盯梢、经典论文解读、CV招聘信息。

核算机视觉入门1v3辅导班

什么是半监督方针检测?

传统机器学习依据练习数据集中的标示状况,有着不同的场景,首要包括:监督学习、弱监督学习、弱半监督学习、半监督学习。因为方针检测任务的特殊性,在介绍半监督方针检测办法之前,咱们检查一下方针检测在这四个方向下的具体设定,如下图所示(不包括无监督学习):

半监督目标检测相关方法总结

图一 方针检测的不同的 setting

总而言之,咱们可以讲方针检测的 setting 分为四个部分:

  • 有监督方针检测: 具有大规模带标签的数据,包括完整的实例等级的标示,即包括坐标和类别信息;

  • 弱监督方针检测: 数据集中的标示仅包括类别信息,不包括坐标信息,如图一 b 所示;

  • 弱半监督方针检测: 数据集中具有部分实例等级的标示,很多弱标示数据,模型希望运用大规模的弱标示数据提升模型的检测才能;

  • 半监督方针检测: 数据集中具有部分实例等级的标示,很多未标示数据,模型希望运用大规模的无标示的数据提升模型的检测才能;

半监督方针检测办法的核心在于,怎么充分运用很多未标示、多样性的数据提升模型在测试集上的功能,现在的半监督方针检测办法首要有两个方向:

  1. 一致性学习(Consistency based Learning)

  2. 伪标签(Pseudo-label based Learning)

前者运用两个深度卷积神经网络学习同一张 unlabeled 图画不同扰动(比如水平翻转,不同的对比度,亮度等)之间的一致性,充分运用 unlabeled data的信息。后者运用在 labeled data 上学习的预练习模型对 unlabeled data 进行推理,经过 NMS 后减少很多冗余框后,运用一个阈值去选择伪标签,最后运用伪标签练习模型。个人认为这两种办法没有实质的差异,自身都是伪标签技能,一致性学习可以认为是一种 soft pseudo label,而后者是一种 hard pseudo label。

接下来我讲介绍几篇近期半监督方针检测文章,首要宣布在 ICLR, NeurIPS, CVPR等会议。

Consistency-based Semi-supervised Learning for Object Detection, NeurIPS 19

CSD 这篇文章是比较早期的半监督方针检测办法,非常简略,该文章提出了一个 Consistency-based 半监督方针检测算法,可以一起在单阶段和双阶段检测器上作业。

半监督目标检测相关方法总结

图二 CSD 半监督方针检测算法结构图

CSD 的结构如图二所示,以单阶段方针检测器为例,练习的丢失函数首要包括两个部分,labeled sample 的监督丢失和 unlabeled samples 的 Consistency loss。针对 unlabeled samples,首要将图画水平翻转,然后别离送入网络傍边,得到对应的 Feature map,因为两张翻转的图画的空间方位是可以一一对应的,因而可以在对应的方位核算一致性丢失。分类部分,运用 JS 散度作为 consistency loss;定位部分,运用 L2 loss 作为 consistency loss。

双阶段检测器的部分与单阶段检测器类似,不同首要在于 RPN(Region Proposal Network) 对于不同的输入可能产生不同的 proposals,因而在核算 consistency loss 时无法一一对应。解决此问题也很简略,两张图画运用同一个 RPN 生成同一组 RoI (Region of Interest) 来提取特征得到 proposals。

作者还提出了一个 Background elimination 办法来消除很多布景部分的丢失主导练习进程的问题,因而作者定义了一个 mask 来过滤很多的布景样本。

其中,当该实例的类别不等于布景类时等于1,否则为 0。

A Simple Semi-Supervised Learning Framework for Object Detection

STAC 提出了一个根据 hard pseudo label 的半监督方针检测算法,如图三所示,该办法包括四个步骤:

  1. 首要运用 labeled data 练习一个 Teacher 模型;

  2. 生成 pseudo label, 将 unlabeled data 输入进 Teacher 网络中,得到很多的方针框猜测成果,运用 NMS 消除很多的冗余框,最后运用阈值来选择高置信度的 pseudo label;

  3. 运用 strong data augmentation。得到 pseudo label 后与 unlabeled image 图画相结合,包括图画等级的色彩抖动、geometric transformation(平移、旋转、剪切)、box-level transformation(小幅度的平移、旋转、剪切);

  4. 核算无监督 loss (pseudo label)和监督学习 loss;

半监督目标检测相关方法总结

图三 STAC 半监督方针检测算法示意图

Instant-Teaching: An End-to-End Semi-Supervised Object Detection Framework

Instant-Teaching 首要的 motivation 在于 STAC 仅生成一次的 pseudo label,即离线生成,在练习的进程中不会更新。这样的方式存在一个问题是,当练习的模型精度逐步提升,超越本来的模型,持续运用原来模型生成的 pseudo label 会限制模型精度进一步提升。因而作者提出 Instant-Teaching,以及 Instant-Teaching*。

半监督目标检测相关方法总结

图四 Instant-Teaching 和 Instant-Teaching* 示意图

Instant-Teaching 选用即时生成 pseudo label 的方式,在每一个迭代中,包括两个步骤:

  1. 生成 pseudo label: 对 unlabeled image 进行 weak augmentation,送入模型中得到 hard label;

  2. 运用生成的 pseudo label 进行 strong augmentation,除了 在 STAC 中的数据增强,还包括了 Mixup 和 Mosaic,运用增强后的数据练习模型;

Instant-Teaching 首要提出了一个 co-rectify scheme 来解决 pseudo label 的 confirmation bias 的问题(噪声 pseudo label 的过错累计效应)。因而,作者运用两个模型,给予不同的初始化参数,输入不同的数据增强的样本,别离互相纠正和检测对方生成的 pseudo label,方式如图四右半部分。

Data-Uncertainty Guided Multi-Phase Learning for Semi-Supervised Object Detection

这篇作业提出一个多阶段的学习半监督方针检测学习算法,前面的办法基本在伪标签生成后,直接拟合生成的伪标签,这样将会引发 label noise overfitting 问题,即因为深度网络较强的拟合才能,即时过错的标签模型也可以拟合。因而作者运用图画等级 uncertainty 来进行多阶段学习,思维类似于课程学习(curriculum learning),先学习 easy 样本再学习 difficult data。具体来说,作者运用 RPN 出来的 proposal 的均匀分数作为 uncertainty 的方针。均匀分数越高,uncertainty 越小,视为 easy sample,反之为 difficult sample。

半监督目标检测相关方法总结

图五 DUGMPL示意图

在区域等级,作者提出 RoI 的 re-weighting 操作,作者从 Soft sampling for robust object detection 得到启示,对于具有噪声的数据(伪标签),在练习时,不同的 RoI 应该给予不同的权重,作者提出了几个的简略但有效的战略来解决这个问题,受限于篇幅,这里不再具体介绍,感兴趣可以去阅览原文的 Section 3.3.2.

Unbiased Teacher for Semi-Supervised Object Detection

这篇文章宣布在 ICLR 2021, 首要思维还是说现在的半监督方针检测算法生成的标签具有 bias,这里作者首要 argue 的点在于方针检测中存在天然的类别不平衡问题,包括 RPN 远景和布景的分类,ROIHead 的多类别分类,因而作者提出了一个 Unbiased Teacher 办法,来解决此问题。

半监督目标检测相关方法总结

图六 Unbiased Teacher 示意图

从办法上来说,非常的简略,首要是 Burn-IN stage,即在 labeled data 上练习一个预练习模型,然后运用 Mean Teacher 的结构,Teacher 生成 Pseudo label 来一起监督 RPN 和 ROIHead。不同的点在于,作者只运用 pseudo label 更新 RPN 和 ROIHead 的 classification 分支,首要原因在于由 confidence score 生成的 pseudo label 与 bounding box 方位的质量关系不大。除此之外,作者将本来的 cross entropy loss 替换为 Focal loss 来解决 pseudo label bias 问题,即 class imbalance 。

Interactive Self-Training with Mean Teachers for Semi-supervised Object Detection

这篇文章提醒了之前运用 pseudo label 的办法忽略了同一张图片在不同的迭代的检测成果之间的差异性,并且不同的模型对同一张图画的检测成果也有差异。

半监督目标检测相关方法总结

图七 不同迭代的模型对同一张图画的猜测成果(a)(b),不同 ROIHead 的检测成果

因而作者提出一个根据 Mean Teacher 的 Interactive form of self-training 的半监督方针检测算法:

  1. 解决不同练习迭代检测成果的不稳定问题,作者运用 NMS 将不同迭代的检测成果进行交融。

  2. 一起运用两个检测头部 ROIHead 生成 pseudo label,两个检测头部可以彼此供给有用的互补信息。

半监督目标检测相关方法总结

图八 Interactive Self-Training 的算法步骤

IST 算法的首要步骤如图八所示:

  1. 运用 labeled data 练习一个具有两个 ROIHead 的预练习模型

  2. 运用预练习模型生成两个对应的伪标签

  3. 运用 labeled data 和 unlabeled data 进行监督学习,图八中 Pseudo Labels Memory 用来运用 NMS 交融不同迭代的检测成果。该步骤概况如图九所示,运用 Mean Teacher 的结构,teacher 生成 pseudo label 并与 Memory 中的 pseudo label 进行交融,并更新 Memory。作者运用 Dropblock 模块确保不同的 ROIHead 可以独立收敛,并供给互补的信息,即图九中的 D。

半监督目标检测相关方法总结

图九 Illustration of interactive self-training with mean teachers.

总结

本文介绍了一些半监督方针检测算法,即怎么运用很多的 unlabeled data 提升模型的检测功能,当前首要的办法包括 consistency based 以及 pseudo label based 两类。consistency based 办法首要学习模型在 unlabeled data 上的一致性,pseudo label 则运用在 unlabeled data 上生成 pseudo label 进而监督模型练习,首要的方向即为怎么生成高质量的伪标签以及模型怎么对立在 unlabeled data 上的 noise label。本文介绍了的半监督方针检测办法不多,关于办法的介绍较为抽象,如有谬误,烦请指正,其中细节,还需细心阅览文章,欢迎评论。

欢迎重视大众号CV技能攻略,专注于核算机视觉的技能总结、最新技能盯梢、经典论文解读、CV招聘信息。

核算机视觉入门1v3辅导班

【技能文档】《从零搭建pytorch模型教程》122页PDF下载

QQ沟通群:444129970。群内有大佬负责回答咱们的日常学习、科研、代码问题。

其它文章

深度理解变分自编码器(VAE) | 从入门到精通

核算机视觉入门1v3辅导班

核算机视觉沟通群

用于超大图画的练习战略:Patch Gradient Descent

CV小知识评论与剖析(5)究竟什么是Latent Space?

【免费送书活动】关于语义切割的亿点考虑

新方案:从过错中学习,点云切割中的自我规范化层次语义表示

经典文章:Transformer是怎么进军点云学习领域的?

CVPR 2023 Workshop | 首个大规模视频全景切割比赛

怎么更好地应对下流小样本图画数据?不平衡数据集的建模的技巧和策

U-Net在2022年相关研讨的论文引荐

用少于256KB内存完成边际练习,开支不到PyTorch千分之一

PyTorch 2.0 重磅发布:一行代码提速 30%

Hinton 最新研讨:神经网络的未来是前向-前向算法

聊聊核算机视觉入门

FRNet:上下文感知的特征强化模块

DAMO-YOLO | 超越所有YOLO,统筹模型速度与精度

《医学图画切割》综述,胪陈六大类100多个算法

怎么高效完成矩阵乘?万文长字带你从CUDA初学者的角度入门

近似乘法对卷积神经网络的影响

BT-Unet:医学图画切割的自监督学习结构

语义切割该怎么走下去?

轻量级模型设计与布置总结

从CVPR22出发,聊聊CAM是怎么激活咱们文章的热度!

入门必读系列(十六)经典CNN设计演变的要害总结:从VGGNet到EfficientNet

入门必读系列(十五)神经网络不work的原因总结

入门必读系列(十四)CV论文常见英语单词总结

入门必读系列(十三)高效阅览论文的办法

入门必读系列(十二)池化各要点与各办法总结

TensorRT教程(三)TensorRT的装置教程

TensorRT教程(一)初度介绍TensorRT

TensorRT教程(二)TensorRT进阶介绍