厦大纪荣嵘团队新作|OneTeacher: 解锁 YOLOv5 的正确打开方式

Paper: https://arxiv.org/pdf/2302.11299.pdf

Code: https://github.com/luogen1996/OneTeacher

导读

大家从中也可以看到一个趋势,便是现在监督学习领域已经是非常饱和了,如果说都到 2320 年了,你还在想着如何一昧的涨点和刷榜,那可真是要好好的反思下自己了。以今天介绍的目标检测任务为例,常规的方法其实已经很难大规模提升性能了,通用的做法来来去去无非就是这些:

  • 整一些有的没的数据增强;
  • 考虑一下样本分赃的策略;
  • 换一个给力点的骨干大力出奇迹;
  • 加多几个像注意力这种闷骚点的结构;
  • 接一些解耦装置拆拆补补;
  • 改进一下损失函数加速收敛;
  • 还是搞点类似于 Rep 或者 提前多少个迭代关闭 Mosaic 的 tricks;
  • 再不济我们直接加大输入分辨率硬 train 一发行不行?

这种吃力不讨好的事情还是得留给大公司或大型科研机构去做吧,毕竟不是每个人都有那么多时间、精力和资源去做实验。此外,大家如果能从标签和资源高效的角度出发,考虑如何设计和创新已有的成熟框架,这对学术界(换个新颖点的故事包装下?)和工业界来说何尝不是一个双赢的局面。

要知道,在大多数实际应用场景中,由于涉及到任务本身数据资源的稀缺性,又或者出于隐私保护等方面的制约因素,很多情况下无法获取到大量数据的。再者说,诸如医疗影像这类数据,哪怕真能给你搞到大量样本,费时费力不说,你去哪找那么多砖家去帮你打标对吧?所以说如何在有限的资源条件下利用好已有的成熟框架去解决实际的问题这才是大多数人值得投入的方向。

动机

本文同样是围绕半监督目标检测(Semi-Supervised Object DetectionSSOD)进行展开。作者首先表明了现有的 SSOD 方法大都是基于 Faster R-CNN 等两阶段算法所设计的,这类方法通常都不够高效。而一种直白的首先替代方案必定是改换单阶段的目标检测方法,这类方法中最具代表性的网络必定是 YOLO,速度与精度的完美权衡者。

但单阶段算法应用到 SSOD 通常会引发两个关键问题,即

  • 低质量伪标签的局限性
  • 涉及多任务优化的冲突

针对以上两点,本文提出了一种名为 OneTeacher 的新型师生学习方法,它具备两种创新设计,即

  • 多视图伪标签优化 (Multi-view Pseudo-label RefinementMPR)
  • 解耦半监督优化 (Decoupled Semi-supervised OptimizationDSO)

具体地,MPR 通过增强视图细化和全局视图过滤提高了伪标签的质量,而 DSO 则通过结构调整和特定于任务的伪标签来处理联合优化冲突。此外,作者们还仔细修改了 YOLOv5 的实现,以最大限度地发挥 SSOD 的优势。最后,通过对 COCO 和 Pascal VOC 进行的大量实验,充分验证了所提方法不仅可以实现优于比较方法的性能(相对于 Unbiased Teacher 提高 15.0% 的 AP),而且可以很好地处理单阶段 SSOD 中的关键问题。下面让我们就这两个方法具体展开讲讲。

方法

Framework

上图为 OneTeacher 的整体框架图。可以看到,它是由两个具有相同配置的检测网络组成,即教师网络学生网络。其中,教师网络负责生成伪标签,而学生网络则根据伪标签与真实标签一起进行训练。为此,我们可以将学生网络的优化定义为如下形式:

其中  用于调节无监督学习占整体任务的贡献。在训练期间, 教师网络的参数  通过指数移动平均线( EMA) 从学生网络的  进行更新, 可以简单的表示为:

这里,  和  分别表示学习率和 EMA 系数。

注意,EMA 的使用是为了让教师网络在训练过程中生成稳定的伪标签,从而减轻伪标签偏差的影响。在实践中,教师网络可以看作是处于不同训练状态的学生网络的集合,也可以作为训练后的目标模型。

SSL for One-stage Object Detection

众所周知,单阶段目标检测相比于两阶段目标检测方法的一个特点便是能够进行端到端优化,一步到位,一次性回归出对应的边框和类别信息。以 YOLOv5 为例,我们先来看下它的损失函数定义:

大体上就包含三部分,即

  • 分类损失  :计算针框与对应的标定分类是否正确
  • 定位损失  :预测框与标定框之间的误差
  • 置信度损失  : 计算网络的置信度

这块就不具体展开讲了,相信屏幕前的各位小伙伴都比我专业。此处我想表达的便是其实这里便涉及到一个多任务的联合优化问题。另一方面,对于无监督损失来说,一个直接的解决方案是选择高于固定阈值的预测边界框作为伪标签,可以表述为:

这里表示的是伪标签。好了,此处存在的一个潜在的问题便是单阶段检测中回归和分类之间的优化冲突。这个问题在半监督学习中变得愈发严重。主要原因便是与真实标签相比,伪标签的质量要低得多。同时,分类和回归对伪标签有不同的要求,现有方法大都是采用相同的阈值来筛选伪标签。

这一点我们在阿里的那篇 Efficient Teacher 中也提到过,作者采用的解决方案是通过设计一种伪标签选择策略即 PLA 方法,它可以依据 score 将伪标签自动地划分为可靠伪标签和不确定伪标签。

Decoupled semi-supervised optimization

为了缓解多任务优化冲突,本文为 OneTeacher 提出了一种新颖的解耦半监督优化方案,该方案通过简单的分支结构和任务特定的伪标记策略来解耦联合优化问题。以下是示意图:

如上图所示,对于每幅图像,我们将预测分支分解为两个独立的分支,然后得到用于分类和回归任务的预测张量。之后,我们便可以针对无监督损失执行任务特定的伪标记。具体来说,给定教师模型对未标记图像的预测,我们使用置信概率与最大分类 score 的乘积作为指标。基于这个指标,我们进一步设置了两个不同的阈值来选择用于回归和分类的伪标签。

在这里,作者按照 Unbiased Teacher 中的设置来丢弃边界框回归的无监督优化。这种任务特定的伪标签策略可以灵活调整不同任务的噪声程度,从而提高师生学习的效率。最后,在部署期间,我们还向模型添加了一个多标签分类任务,以更好的细化伪标签。

Multi-view Pseudo-label Refinement

对于像基于 Fater-RCNN 这类的两阶段 SSOD 方法来说,教师模型的预测会依次经过 RPN 和 ROI 的筛选,得到最终的伪标签集。这种 multi-stage 的选择在一定程度上可以保证伪标签的质量,但由于预测范式不同,这并不适用于单阶段模型。简单点理解就是,我们不能直接把它套上去。另一方面,单阶段模型的折衷方案是直接采用它们的置信度分数来确定伪标签,但这并不足以评估伪标签的质量。

为了解决这个问题,本文提出了一种新颖的多视图伪标签细化方案,该方案由两个主要过程组成,即

  • 增强视图细化
  • 全局视图过滤

MPR 的处理流程如下所示:

具体来说,给定一个未标记的图像,我们首先应用增强视图细化来调整其伪标签信息。如图所示,教师网络将预测伪标签的边界框及其翻转的增强视图。之后,通过 IoU 值对两个不同的边界框进行比较,并从两个视图中选择匹配的边界框。下面给出相应的示意图:

此外,为进一步从全局视图过滤中增强 MPR,本文还引入了一个额外的多标签分类,即利用教师网络输出图像级别的多类概率分布。如果特定类别的全局概率低于设定阈值,我们将过滤此类的伪边界框。此处假设的是局部伪边界框的类别识别应该与全局一致,否则这些伪边界框往往质量较差。

总的来说,所提出的 MPR 可以过滤大量低质量的边界框,也可以大大提高伪标签的质量。MPR 之后,我们应用特定于任务的阈值来选择最终的伪标签集进行后续的分类和回归任务。

Implementation on YOLOv5

为了验证所提出的 OneTeacher 方法,作者进一步将其应用于 YOLOv5。前面我们提到,YOLOV5 和 现有的 SSOD 框架中使用的训练方法是冲突的,不像 Faster-RCNN 这样的两阶段检测网络的默认配置相对实现起来比较简单。下面我们简单分析下为什么会出现这种现象。

首先,YOLOv5 在训练时默认都会开启 Mosaic 和 Mixup 等增强,大家都知道这些均属于 strong 级别的增强,如果去掉的掉点会很严重,特别是针对从头训练一个预训练权重来说。既然如此,一个直接的想法就是保持原有的数据增强策略不变,并为学生网络也配置同等的数据扩充。那么问题来了,当我们把具备强扰动增强后的图像硬塞给教师模型时,不可避免地会产生较低质量的标签,换句话说便是不利于一致性学习。

因此,为了解决这个问题,作者将数据增强分为两组,即与边框相关和与边框无关的增强,如下表所示。

其中,box-relevant 的增强例如 Flip-lrMosaicScale Jitter 均可以有效增强边界框信息,同时对图像表示的影响较小。相反,box-inrelevant 的方法则不会影响到 GT,但会强烈扰乱图像内容,例如颜色变换和高斯模糊。

综合上述考虑,我们可以将保留框相关的方法作为教师的弱数据增强,同时使用框相关和框无关方法作为学生的强数据增强。这种策略可以最大限度地减少对教师网络的扰动,同时保留 YOLOv5 的原始设置。

与此同时,作者还为 YOLOv5 调整了一些师生学习中常见的超参数。比如,将伪标记的阈值降低到 0.4,这在两阶段 SSOD 方法中通常设置为高分值,例如达到 0.7。这种变化归因于单阶段检测中的噪声伪标签问题,其中模型通常无法在初始阶段提供高置信度的伪标签。

上图显示了对应的伪标签分布,结果表明 0.4 的阈值可以在伪标签的质量和数量之间实现良好的权衡(看红色部分)。同时,其他超参数如 Focal Loss 的权重 也将根据一阶段 SSOD 的训练状态设置。

实验

可以看到,对于 COCO 数据集来说,在仅用 1% 标注数据的前提下,有监督学习直接降低到 8.4% mAP,直白点就是基本学不到有用的知识。反观半监督学习的范式,本文方法比经典方法 UbTeacher 高出了几个点。另一方面,从 VOC 数据上的表现也不难看出,哪怕是应用全量数据,这一结论同样成立。

此表展示了不同容量下的模型表现。可以看出,增大网络规模对于本文所提方法同样适用,性能也会随之增长,尤其是规模越大,增益越显著。

表6展示了关于本文所提出的两个方法的相关消融实验,可以看到,MPR 和 DSO 并不是互斥的,可以有机的结合到现有的框架,帮助网络提升性能。

表7主要对控制分类和回归分支的两个超参数做了相应的消融。通过实验结果我们发现让分类分支占比较大整体的性能会更好。

表8为大家展示了 YOLOv5 的两种不同的数据增强设置。可以发现,与 UbTeacher 等双阶段 SSOD 方法中使用的默认增强方案相比,本文针对 YOLOv5 的新策略大大提高了模型性能,竟然提升了将近 13.5 mAP!

上图可视化了 OneTeacher 使用和不使用 MPR 生成的伪标签。从这些示例中,我们首先观察到 MPR 可以有效地过滤不正确的检测,例如 Exp.(b) 中的“餐桌”。同时,类别预测错误的伪边框也可以通过 MPR 进行细化,例如 Exp.(a) 中“时钟”的错误预测。总的来说,这些结果均很好地证实了 MPR 对低质量伪标签问题的有效性。

总结

针对双阶段 SSOD 方法效率过低的问题,本文提出了一种用于单阶段检测网络的新型师生学习范例——OneTeacher。同时,考虑到单阶段 SSOD 方法中存在的两个关键挑战,即低质量伪标记和多任务优化冲突,本文提出了相应的解决方案。

首先,针对第一个问题,OneTeacher 应用了一种称为多视图伪标签优化的新颖设计,以提高从微观到宏观视图的伪标签质量。其次,OneTeacher 采用解耦半监督优化方案,通过分支结构和特定于任务的伪标记来解决多任务优化冲突。最后,通过对 YOLOv5 的一系列改进策略,充分发挥了 OneTeacher 的性能。实验结果表明,OneTeacher 在不同设置下大大优于传统监督和半监督方法,也证实了其对上述单阶段 SSOD 关键问题的有效性。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平