论文:PseCo: Pseudo Labeling and Consistency Training for Semi-Supervised Object Detection
代码:https://github.com/ligang-cs/PseCo
出处:ECCV 2022 | 南京科技大学 商汤
现阶段图像分类、目标检测等任务的效果都取得了很大的进展,这很大程度上依赖于大量标注好的数据。
但是大量的数据标注非常耗时且昂贵,尤其是目标检测任务,需要很严格精细的标注。
所以,使用未标注的数据来提升模型效果的半监督学习就被提出来,可以同时使用标注数据和未标注数据来进行模型训练。
半监督图像分类(Semi-Supervised for Image Classification,SSIC),对未标记数据的学习可以分为两类:
还有一些方法如 FixMatch [19],FlexMatch [28] 试图将这两种技术结合到一个框架中来提升效果
半监督目标检测( Semi-Supervised Object DetectionS,SOD)中,一些工作借鉴了 SSIC 的关键技术(如伪标记、一致性训练),并将其直接应用于SSOD,但效果不尽如意。原因主要有两点:
本文的贡献:
PseCo 的整体架构如图 2 所示,在未标记的数据中,PseCo 由以下两部分构成:
本文使用 Faster RCNN 作为基础检测框架
使用 Teacher-student 训练模式,教师模型是通过对学生模型进行指数移动平均(Exponential Moving Average,EMA)得到的,教师网络和学生网络的结构完全相同。学生网络使用梯度更新来训练,教师网络根据学生网络来更新且无需参与训练。
整体过程如下:
每次训练根据抽取比例进行随机抽取标注数据和未标注数据:
对标注数据:
对未标注数据:
弱数据增强后送入教师模型生成伪标签,强数据增强后送入学生网络学习伪标签,且由于作者认为分类和回归没有强联系,即分类好不一定回归好,则对未标注数据舍弃了回归 loss,只使用分类 focal loss: Lu=LclsuL^u = L^u_{cls}Lu=Lclsu
首先,使用弱数据增强(水平翻转、随机调整大小等),然后输入教师模型进行伪标签生成(也就是让教师模型输出预测结果,毕竟教师模型是比较大的,能力较强,对学生网络有很大的指导作用的)。此外,考虑到在使用了 NMS 后的伪标签(检测框)也会很密集,故此又设置了一个分数阈值 τ\tauτ,只保留分数高于阈值的框作为伪标签
之后,对输入训练数据进行强增强(如切割、旋转、亮度抖动等),生成学生模型的训练样本,对学习模型进行训练
最后,由于好的分类和好的定位没有强关联,所以作者不对未标记数据进行位置回归,而且实验也能证明对未标记的数据进行位置回归的话也会导致训练不稳定,所以作者对无标签数据没有使用回归 loss,只使用了分类 Focal loss
前景和背景的数量不平衡问题:
如何解决前景和背景的数量不平衡问题:
对未标记的数据,分类 loss 使用类似于 Unbiased Teacher[14] 中的方法,将 CE loss 替换成 Focal loss,且 αt\alpha_tαt 和 γ\gammaγ 和原始论文中一样
标记数据和未标记数据的总体 loss 为 L=Ll+βLuL = L^l+\beta L^uL=Ll+βLu,其中 β\betaβ 被用于控制未标记数据的权重
Noisy Pseudo Box Learning
在 SSOD 中,伪标签包含类别和位置两种信息
伪标签的类别得分只能表示其类别的置信度,无法保证框位置的质量,如果伪标签的框位置不精确的话就会拉低模型的效果,所以本文使用下面两种方法来减少位置对 label assign 和回归任务的损害:
1、Prediction-guided Label Assignment
Faster RCNN 中的 label assignment 是基于 IoU 的方法,将和 gt 的 IoU 大于阈值(0.7)的 box 置位正样本。
在半监督学习中,gt 就是生成的伪标签。
该做法的前提是假设 gt 的框位置非常的准确,所以方法不适合于未标记的数据,可能会导致一些低质量的 proposal 被分配为正样本。
一个示例如图 1c 所示,一个和真实 gt 的 IoU 为 0.39 的 proposal 被分配为正样本了。
为了解决这个问题,作者提出了 PLA(Prediction-guided Label Assignment):
如何在未标记数据上使用呢:
PLA 的优势:
2、Positive-proposal Consistency Voting
由于分类得分不能很好的表示定位的质量,所以作者还提测了一个方法来衡量定位质量——PCV
基于 CNN 的模板检测器一般都是会将多个 proposal 分配给一个 gt(或 pseudo box),这些 proposal 回归结果的一致性能反映其对应的这个伪边界框的质量。
则第 j 个伪边界框的回归一致性 σi\sigma_iσi 表示为:
得到了 σi\sigma_iσi 后,使用 instance-wise 的回归:
如图 1b 所示,其中描述了伪边界框的预测一致性和其真实 IoU 之间的关系散点图,可以看出:
如图 5,展示了伪边界框也可以准确的指导模型预测
不同于图像分类,目标检测中的目标尺度变化较大,故难以在每个尺度上都表现较好。
所以,从未标记数据中学习尺度不变的表示对 SSOD 相当重要。
在一致性训练中,强数据增强为提高模型性能起到了很重要的作用。
通过在输入图像中注入强扰动,能使模型对各种变化都保持鲁棒性。
标签级一致性:
从尺度不变性角度来看,将常见的数据增强(如随机调整大小)看做标签级一致性,因为其能根据输入图像尺度的变化来调整标签的大小。
特征级一致性:
由于检测网络通常有丰富的特征金字塔设计,因此特征级的一致性也很容易在配对输入之间实现。
所以,本文中提测了多视图尺度不变学习,将标签级和特征级的一致性组合到一个框架中,特征一致性通过对齐两个内容相同但尺度不同的图像之间的金字塔特征来实现的。
过程:
1、数据集
使用 MS COCO,包括两个训练集:
Partially Labeled Data:
Fully Labeled Data:
使用 Faster RCNN with FPN 作为检测框架,backbone 为 Res50
伪标签分类阈值为 0.5
伪标签 loss 权重 β=4.0\beta=4.0β=4.0
Partially Labeled Data:
Fully Labeled Data:
3、和 SOTA 的对比(COCO val2017)
Partially Labeled Data:
Fully Labeled Data:
4、消融实验