https://arxiv.org/abs/2302.07577
https://github.com/AlibabaResearch/efficientteacher
半监督目标检测(SSOD)在改善R-CNN系列和无锚点检测器的性能方面取得了成功。然而,一阶段基于锚点的检测器缺乏生成高质量或灵活伪标签的结构,导致SSOD存在严重的一致性问题。本文提出了Efficient Teacher框架,用于可扩展和有效的一阶段基于锚点的SSOD训练,包括Dense Detector(密集检测器)、Pseudo Label Assigner(伪标签分配器)和Epoch Adaptor(时代适配器)。Dense Detector是一种基准模型,通过受到YOLOv5启发的密集采样技术扩展了RetinaNet。Efficient Teacher框架引入了一种名为Pseudo Label Assigner的新颖伪标签分配机制,它更精细地利用了Dense Detector生成的伪标签。Epoch Adaptor是一种方法,为Dense Detector实现了稳定且高效的端到端SSOD训练计划。Pseudo Label Assigner可以防止在学生-教师相互学习机制中由大量低质量伪标签引起的偏差,并且Epoch Adaptor利用领域和分布适应使Dense Detector能够学习全局分布一致的特征,使训练不依赖于标记数据的比例。我们的实验证明,Efficient Teacher框架在VOC、COCO-standard和COCO-additional数据集上取得了比先前方法更好的结果,并且使用的FLOPs更少。据我们所知,这是首次将SSOD应用于YOLOv5。
目标检测[3, 19, 24, 31]在近年来取得了显著进展,采用传统的监督训练方法,并依赖于昂贵的手动注释工作。为了缓解这个问题,许多半监督技术[1, 26]被提出,通过自动生成伪标签来利用大量未标记数据,而无需手动注释。尽管SSOD[4, 5, 21, 35]取得了很大进展,但仍然存在三个关键问题具有挑战性:首先,关于一阶段基于锚点的SSOD的研究较少。尽管无锚点检测器[12,16, 31]最近在目标检测领域受到更多关注,但一阶段基于锚点的检测器[2,14,16,23,33]由于具有高召回率、高数值稳定性和快速训练速度的优势,在对召回率要求极高的场景中被广泛使用。然而,大多数SSOD方法是基于两阶段的基于锚点的检测器(如Faster R-CNN[24])或基于一阶段的基于无锚点的检测器(如FCOS[31])实现的,由于多阶段的粗到精预测机制或无锚点设计的检测头部,这些方法输出相对稀疏的边界框预测。相反,经典的一阶段基于锚点的检测器由于其多锚点机制生成了更密集的预测,这导致在监督训练[36]和半监督训练过程中正负样本不平衡和伪标签质量较差。
其次,当前主流的SSOD方法按照学生-教师互学习的方式进行训练[21, 35],但对于一阶段基于锚点的检测器来说,训练十分困难,因为存在严重的伪标签不一致问题,即在训练过程中,教师模型生成的伪标签数量和质量波动较大,不合格的伪标签可能会误导模型更新。为了缓解这个问题,两阶段方法[4] [21]对伪标签进行了多次精炼,而无锚点方法[39]采用特征图作为软伪标签,以避免非极大值抑制引起的偏倚。由于上述的多锚点机制,一阶段基于锚点的检测器中的伪标签不一致性问题更为严重。研究[37]报告了RetinaNet的SSOD实验结果不如Faster R-CNN和FCOS的结果。
第三,如何训练具有更高准确性和更好效率的SSOD模型成为限制SSOD在广泛场景应用的关键问题。之前的SSOD方法[4, 17, 21, 35, 40]通常需要很大的计算量、时间和记忆消耗,阻碍了其在实际应用中的推广。为了解决以上问题,我们提出了Efficient Teacher框架。
主要追求更好的准确性,但通常会牺牲训练效率。此外,大多数之前的研究只关注特定的检测器结构,然而真实世界应用的多样性要求更快速、计算资源更低且准确性更高的迭代式检测器设计。
在本文中,我们追求设计一个可扩展且有效的一阶段基于锚点的SSOD框架,同时考虑推理和训练效率。我们将YOLO系列中使用的有效技术添加到经典的RetinaNet中,设计了一个新的代表性的一阶段基于锚点的检测器基线,称为Dense Detector。我们尝试将成熟的SSOD方案(即无偏教师[21])应用到Dense Detector上,但与监督方法相比,仅获得1.65 AP50:95的改进(如表5所示),这证实了上述的第二个问题。根据Dense Detector的设计范例,我们提出了Efficient Teacher框架来克服SSOD中的这些挑战。我们引入伪标签分配器(PLA),通过在目标性分支设计中利用细粒度的伪标签分配策略,减轻了伪标签不一致性。通过将伪标签区分为可靠区域和不确定区域,分别使用不同的损失计算方法。此外,我们提出了时代适配器(EA),分别利用领域适应和分布适应来优化Burn-In阶段和SSOD训练阶段的训练过程。
具体而言,在Burn-In阶段,EA利用领域适应技术对学生模型的输出特征图进行对抗学习。在SSOD训练阶段,EA通过在线统计标记数据中每个类别标签的比例,动态估计伪标签的阈值,以优化学生模型所见的伪标签的质量和分布。本文的主要贡献如下:
• 我们设计Dense Detector作为基准模型,比较YOLOv5和RetinaNet之间的差异,通过利用密集采样,性能提升了5.36 AP50:95。
• 我们提出了一种有效的SSOD训练框架,称为Efficient Teacher,其中包括一种新颖的伪标签分配机制(Pseudo Label Assigner),减少了伪标签的不一致性,并且引入了Epoch Adaptor,实现快速高效的端到端SSOD训练计划。
• 我们的实验结果表明,在YOLOv5上使用Efficient Teacher能够在VOC、COCO-standard和COCO-additional数据集上实现最先进的结果,同时消耗的计算资源明显少于以前的方法。
半监督目标检测。继承于半监督图像分类方法的半监督目标检测[1, 25, 26, 30, 34]分为基于一致性的方案[13, 28]和基于伪标签的方案[21, 27, 35, 40]。后者已成为当前主流方法。STAC[27]利用弱和强数据增强分别处理未标记的数据。Unbiased Teacher[21]采用学生-教师相互学习的方法生成更准确的伪标签。为平衡伪标签的影响,Soft Teacher[35]使用伪标签的得分作为损失计算的权重。DSL[5]是首次尝试在无锚定检测器(FCOS)[31]上进行半监督训练。为解决不一致性问题,LabelMatch[4]利用标签分布动态确定不同类别伪标签的过滤阈值。上述方法在两阶段和无锚定检测器上表现出色,但在单阶段锚定检测器上效果不佳。我们提出了高效教师来弥合半监督训练和单阶段锚定检测器之间的差距。
标签分配。标签分配是决定目标检测器性能的关键组成部分。许多研究已经提出改进标签分配机制的方法,如ATSS[36],PAA[15],AutoAssign[41]和OTA[11]。一些研究[4][22]注意到,在监督目标检测中使用的默认标签分配机制不能直接应用于半监督目标检测,从而导致性能下降。在本文中,我们提出了一种新颖的伪标签分配方法,可以适应单阶段锚定检测器的半监督训练。
目标检测中的域自适应。域自适应目标检测的任务[6, 8, 18, 32]旨在解决域偏移问题[7]。工作[10]通过训练带有梯度反转层(GRL)的判别器来利用对抗学习生成域不变特征。工作[8]引入了在Mean Teacher中使用的半监督技术来缓解域偏差,并揭示了域偏移与半监督任务的不一致性之间的内在关系。这启发了高效教师在域自适应中引入对抗学习,以缓解半监督目标检测训练中伪标签的不一致性。
Efficient Teacher是一种新颖高效的半监督目标检测框架,显著提升了单阶段锚定检测器的性能。该框架基于学生-教师相互学习方法,如图1所示,受到之前工作[4, 5, 21, 35]的启发。我们提出的Pseudo Label Assigner方法根据伪标签的得分将其分为可靠和不确定两类,可靠的伪标签用于默认的监督训练,不确定的伪标签用于通过软损失指导学生模型的训练。Epoch Adaptor方法通过在已标记和未标记数据之间进行域自适应,并在每个时期计算伪标签的阈值,加快了收敛速度。在整个训练过程中,教师模型采用指数移动平均(EMA)技术进行更新。
YOLOv5 [14]是一个广泛应用的单阶段锚定检测器,由于其友好的部署支持和快速的训练速度在工业界得到广泛使用。为了对YOLOv5进行半监督实验,需要对YOLOv5检测器与其他先进检测器(如RetinaNet)的改进进行全面分析。表1中的结果显示,相比于RetinaNet,YOLOv5 w/o 在性能和计算方面取得了更好的表现。此外,通过Mosaic增强后的密集图像输入,YOLOv5的AP50:95可以从41.2提升至49.0。基于密集输入,YOLOv7在信息流密集和梯度密集的基础上进一步将AP50:95提高至51.5。根据以上比较,我们推测增加输入密度可以有效提升单阶段锚定检测器的性能。为验证这个假设,我们构建了一个名为Dense Detector的新型检测器,以定量评估YOLOv5所采用的技术。
Dense Detector是基于RetinaNet修改而来,使用ResNet-50-FPN骨干网络,同时将FPN输出层数从5改为3,消除了检测头之间的权重共享,并将训练和推断的输入分辨率从1333降低到640。此外,Dense Detector具有三个输出分支:分类得分、边界框偏移和目标性得分。
与RetinaNet相比,Dense Detector在表1中的报道中提高了5.36%的AP50:95,并且推断速度提高了30%。具体地,Dense Detector通过计算预测框和GT框之间的Complete Intersection over Union(CIoU) [38]来获得目标性得分。目标性得分表示预测框的位置质量,并作为改进检测性能的附加信息来源。如图1所示,在SSOD中,伪标签是未标记数据的预测框,其目标性得分表示了伪标签的位置质量。因此,与仅具有分类分支的RetinaNet相比,Dense Detector具有额外的目标性分支,可以在SSOD的训练过程中指示伪标签的位置质量,如图2所示。
为验证Dense Detector在SSOD中的性能,我们将经典的SSOD方法(Unbiased Teacher [21])应用于Dense Detector,其中包括标记和未标记数据、教师模型和学生模型,以及一个伪标签过滤器来选择伪标签。此外,标记和未标记数据分支都采用了方程式2中定义的损失。
然而,与表2中Faster R-CNN上的Unbiased Teacher相比,Unbiased Teacher在Dense Detector上的AP50:95改进从7.64降至4.3。这激发了我们开发下面的伪标签分配器,该分配器在伪标签分配中起着关键作用。