CVPR2023 Constant Teacher一致教师:旨在减少半监督目标检测中不一致的伪目标
一、核心问题
本文聚焦半监督目标检测SSOD中伪标签不一致问题进行深入探究,发现波动的伪目标会破坏高精度检测器的训练,向学生网络的训练过程中注入噪声,进而引发严重的过拟合问题。
- 分配不一致
静态 IoU 锚框分配对伪框噪声极敏感,微小抖动就会造成锚框错配,引发标签漂移与过拟合。 - 任务不一致
分类置信度≠回归框质量,高分预测常伴随低精度框,导致伪框抖动、监督信号不可靠。 - 阈值不一致
固定置信度阈值无法适配训练进程与类别差异,伪框数量忽多忽少,监督不稳定。
二、本文创新点
- 自适应锚点分配(ASA)
用动态成本感知锚点分配替代静态 IoU 分配,让学生网络对噪声伪框更鲁棒,从源头抑制标签漂移与过拟合。 - 三维特征对齐模块(FAM-3D)
设计空间 + 尺度三维特征对齐结构,校准分类与回归子任务,使分类置信度精准反映边界框质量,生成稳定一致的伪标签。 - 高斯混合模型(GMM)
采用高斯混合模型自适应修正类别级分数阈值,动态稳定训练全程正样本数量,解决静态阈值带来的监督信号不可靠问题。
三、具体方法

- 损失曲线对比,分别对应分类损失和回归损失,横轴是训练迭代次数,纵轴是损失值,发现本文方法在标注和无标注数据集上的损失都能持续稳定下降。说明改进后的伪标签是稳定可靠的,模型在有标注和无标注数据集上都能持续优化,没有被噪声干扰。
- 右侧是伪标签与锚框分配的可视化对比,用红框(预测框)、绿框(真实框)和红点(分配的正样本锚框),对比了不同迭代阶段(T=100/104/108K)的伪标签质量,发现Mean-Teacher方法出现了分配不一致、伪标签漂移的问题,这就是伪标签不一致的问题;而本文方法目标一致且准确,说明本文的方法确实可以做到
伪标签稳定、锚框分配一致,可以在无标注数据集上持续学习,有效抑制过拟合。
3.1 整体框架

基于经典的Mean-Teacher半监督范式:
- 无标注图片经过弱增强输入教师模型;同一张图片经过强增强输入到学生模型
- 双检测器架构
- 教师模型:只推理不训练,参数由学生模型的指数移动平均(EMA)更新,生成伪标签
- 学生模型:同时接受标注数据和无标注数据集的监督
- 教师模型生成高质量伪标签
教师模型在推理时,自带FAM-3D模块校准特征,输出预测结果后:
- 经过类别级GMM(高斯混合模型)动态阈值过滤伪标签,得到可靠的候补目标;
- 通过自适应样本分配(ASA),把伪标签匹配给学生模型的锚框,避免传统静态loU分配的标签漂移问题。
- 学生模型训练与模型更新
- 学生模型也同样自带FAM-3D模块,在强增强数据集上,同时计算标注数据损失和无标注伪标签损失,(有/无标注数据上的分类+回归损失)更新自身参数
- 教师模型则通过EMA,缓慢拷贝学生模型的参数,保证伪标签的稳定性。
3.2 一致自适应样本分配(ASA)

- 在传统检测器里,锚框的正负样本是固定规则分配的:只要锚框和真实框的交并比loU大于某个阈值,就会被记为正样本;否则为负样本。这是一种静态的、和模型预测无关的分配方式。
- 然而在半监督检测原则里,伪标签要和模型自己的预测保持一致。这就造成传统检测器的静态的分配方式会打破这个原则,最终导致伪标签漂移的结果。
- c^=argmincL(ft(xu),c) \hat{c} = \arg\min_c \mathcal{L}(f_t(\mathbf{x}^u), c) c^=argcminL(ft(xu),c)
伪标签一致性原则
伪标签c^\hat{c}c^应该是能让当前模型对无标注样本xu\mathbf{x}^uxu的损失最小的标签。
4.mina1,⋯ ,aN∑n=1N[Lcls(fs(xu)n,y^anu)+Lreg(fs(xu)n,y^anu)] \min_{a_1,\cdots,a_N} \sum_{n=1}^N \left[ \mathcal{L}_{cls}\left(f_s(\mathbf{x}^u)_n, \hat{y}_{a_n}^u\right) + \mathcal{L}_{reg}\left(f_s(\mathbf{x}^u)_n, \hat{y}_{a_n}^u\right) \right] a1,⋯,aNminn=1∑N[Lcls(fs(xu)n,y^anu)+Lreg(fs(xu)n,y^anu)]
本文提出的自适应分配目标:让模型自己决定锚框与伪框的对应关系
- n: 锚框索引,一共N个锚框
- ana_nan: 从模型预测出的L个伪框选择一个,代表锚框n分配到的伪框索引
- 分类/回归损失
目标: 给每个锚框分配伪框,使得所有锚框的总损失最小
Cnl=Lcls(pn,yl)+λregLreg(pn,yl)+λdistCdist C_{nl} = \mathcal{L}_{\text{cls}}(p_n, y_l) + \lambda_{\text{reg}} \mathcal{L}_{\text{reg}}(p_n, y_l) + \lambda_{\text{dist}} C_{\text{dist}} Cnl=Lcls(pn,yl)+λregLreg(pn,yl)+λdistCdist
匹配成本计算:计算锚框和伪框之间的匹配成本CnlC_{nl}Cnl,成本越低,越适合作为正样本。
- 分类损失Lcls\mathcal{L}_{\text{cls}}Lcls:锚框预测的类别和伪框真实类别的损失
- 回归损失Lreg\mathcal{L}_{\text{reg}}Lreg:锚框预测的位置和伪框位置的损失,用λreg\lambda_{\text{reg}}λreg进行加权
- 中心距离成本CdistC_{\text{dist}}Cdist:锚框中心和伪框中心的距离,用很小的权重(λdist≈0.001\lambda_{\text{dist}} \approx 0.001λdist≈0.001)加权,作为中心先验,防止分配完全混乱,稳定训练。
分配规则: 对于每一个伪框,选择成本最低的前K个锚框作为正样本。
3.3 3D特征对齐模块(FAM-3D)
- 在常规半监督目标检测里,伪框只靠分类置信度来筛选,但高分预测的框定位往往不准确,这将会导致两个问题:
- 分类和回归任务的特征没对齐,导致“置信度高不等价于框位置准确”
- 伪框里混入大量噪声,进一步使得伪标签不一致
- 所以FAM-3D模块的作用就是让分类特征和回归特征精准对齐,让置信度真实反映框的质量,从而生成更加可靠的伪标签。
- 整体流程

-
输入:特征金字塔(多尺度特征图)
-
预测3D偏移量
用一个额外的卷积分支,为每个预测点生成一个三维偏移向量 d=(d0,d1,d2)\mathbf{d}=(d_0, d_1, d_2)d=(d0,d1,d2): -
d0,d1d_0, d_1d0,d1:二维空间的偏移
-
d2d_2d2:尺度(金字塔层级)方向的偏移
-
箭头:每个点的偏移方向及大小
-
特征重排
用预测的3D偏移,把原始特征重采样、重排,得到新的特征图:
P′(i,j,l)←P(i+d0,j+d1,l) P'(i, j, l) \leftarrow P\left(i+d_0, j+d_1, l\right) P′(i,j,l)←P(i+d0,j+d1,l)
第一步:空间偏移,2D层面挪动
- P′(i,j,l)P'(i, j, l)P′(i,j,l):原来的特征,在第lll层,位置是 (i,j)(i,j)(i,j)
- 在同一层里,把特征挪到更适合画框的位置。
P′(i,j,l)←P′(i′,j′,l+d2) P'(i, j, l) \leftarrow P'\left(i', j', l+d_2\right) P′(i,j,l)←P′(i′,j′,l+d2)
第二步:尺度偏移,跨层跳转
让模型自动跳到框最准的那一层
- 输出:对齐后的特征
重排后的特征,专门用于回归分支(Reg);原始特征则用于分类分支(Cls)。这样一来,每个分类特征都能自适应找到最适合回归的特征位置,实现任务对齐。
3.4 基于高斯混合模型(GMM)的阈值设定
- 传统半监督检测里,伪框过滤都用一个固定阈值过滤,但是有两个问题:
- 不同类别、不同训练阶段,模型的置信度分布不一样:比如猫的置信度普遍高,而少见的类置信度低,固定阈值会把少见类的有效伪框全筛掉;
- 手动调阈值很麻烦:换个数据集就要重新调,而且调不好就会引入大量噪声伪框,导致训练不稳定。
- 核心思路:把置信度分成两部分:正样本(真目标,通常置信度较高)负样本(背景或噪声,通常置信度不高),GMM的作用就是用两个高斯分布,把这两组数据拟合出来,找到分界线,即为自适应阈值。
- 核心公式
P(sc)=wncN(sc∣μnc,(σnc)2)+wpcN(sc∣μpc,(σpc)2) \mathcal{P}(s^{c}) = w_n^{c} \mathcal{N}\left(s^{c} \mid \mu_n^{c}, (\sigma_n^{c})^2\right) + w_p^{c} \mathcal{N}\left(s^{c} \mid \mu_p^{c}, (\sigma_p^{c})^2\right) P(sc)=wncN(sc∣μnc,(σnc)2)+wpcN(sc∣μpc,(σpc)2)
置信度混合分布
- P(sc)\mathcal{P}(s^{c})P(sc):类别ccc的置信度scs^csc的分布,由两个高斯分布混合而成
- wnc, μnc, (σnc)2w_n^{c},\ \mu_n^{c},\ (\sigma_n^{c})^2wnc, μnc, (σnc)2:负样本高斯分布的权重、均值、方差
- wpc, μpc, (σpc)2w_p^{c},\ \mu_p^{c},\ (\sigma_p^{c})^2wpc, μpc, (σpc)2:正样本高斯分布的权重、均值、方差
τc=arg maxsc P(pos∣sc, μpc,(σpc)2) \tau^{c} = \underset{s^{c}}{\argmax}\ \mathcal{P}\left( \text{pos} \mid s^{c},\ \mu_p^{c}, (\sigma_p^{c})^2 \right) τc=scargmax P(pos∣sc, μpc,(σpc)2)
找自适应阈值
- P(pos∣sc)\mathcal{P}\left( \text{pos} \mid s^{c} \right)P(pos∣sc):给定置信度,它属于正样本的概率
- τc\tau^{c}τc:类别ccc的自适应阈值,取的是正样本概率最大的那个置信度
- 为了减少计算量,只缓存前 KKK 个高分预测来拟合 GMM,训练时间只增加约 10%;
四、实验

做了一个对比实验
红色:伪标签不一致性,数据越大代表噪声越大
结论
- 本文方法在无标注数据集上的学习能力更强,精度上限更高
- 大幅降低了伪标签的不一致性,训练过程更稳定,噪声更少

热力图,证明本文对“置信度和框质量不匹配”的问题的解决
横轴:置信度
纵轴:和真实框的交并比
颜色:表示数据点的密度,颜色越黄/亮,说明这里的预测越多
本文方法:更亮的区域明显集中在右上角,也就是置信度高,交并比的区域
Mean-Teacher基线方法:黄色区域更散,高分区域也靠下
说明 :Consistent Teacher 通过 FAM-3D 等模块,实现了 “置信度与框质量强相关”:模型越确定的目标,框画得越准,伪标签质量大幅提升。
对比了固定阈值(τ)和本文提出的GMM 动态阈值,在训练过程中,每张图产生的伪标签数量变化
横轴:训练迭代次数
纵轴:每张图片的伪标签数量
在固定阈值的情况下,阈值越低,输出的伪标签越多,后期引入的噪声越大;阈值越高,筛出的伪标签越少,后期有效监督不足;所有阈值下,曲线都在上升且后期波动很大,说明随着模型越来越成熟,伪标签数量会失控导致监督信号不稳定
在GMM动态阈值下,伪标签数量稳定且波动稳定。
结论:
- GMM动态阈值能在训练全程稳定控制伪标签数量,既不会因为噪声过多导致过拟合,也不会因为信号不足导致模型学不到东西,解决了固定阈值带来的 “监督信号不一致” 问题。

展示了GMM 动态阈值随训练进程和标注数据量的变化规律,核心是证明它能自适应调整
纵轴:τ_GMM(GMM 生成的平均阈值),阈值越高,说明模型越严格,只保留置信度高的伪标签
只用1/5/10%的标注数据训练
发现:阈值随训练迭代上升;标注数据越少,阈值越高
结论: - GMM阈值会随训练自适应提升
- GMM能根据标注数据量自动调整策略

半监督目标检测(SSOD)在 COCO 数据集上的对比实验结果表
- Consistent-Teacher 全面领先所有对比方法
- 半监督方法的效果远超纯监督基线
- 对标注数据的依赖更低,伪标签质量更高,在低标注率下也能稳定学习。

在全标注 COCO 数据集上,加入额外无标注数据后,不同半监督方法的性能提升效果括号里的×表示训练的迭代轮数(如8×代表 8 个 epoch 的训练计划)。
箭头左侧:纯监督基线的性能(只用标注数据训练)。
箭头右侧:加入无标注数据后的半监督性能。
中间的数字:加入无标注数据后带来的性能提升幅度,绿色代表提升,红色代表下降。
本文方法的提升幅度遥遥领先,其他方法的提升幅度大多在 + 1~+5 之间,而 Consistent-Teacher 能把无标注数据的价值最大化,带来了远超其他方法的增益,证明了其伪标签的高质量和稳定性。

VOC 数据集上的半监督目标检测对比结果表
AP 50:在 IOU 阈值为 0.5 时的平均精度,衡量目标 “有没有被找到” 的整体召回与分类能力。
AP 50:95:在 IOU 阈值从 0.5 到 0.95 之间的平均精度(即常规的 mAP),更严格地衡量框的定位精度。
说明:
- 本文方法在定位精度上的优势非常明显
- 半监督方法的性能提升显著
- 本文方法不仅在 COCO 上表现优异,在 VOC 数据集上同样大幅领先基线 Mean-Teacher,证明了其不是针对单一数据集的过拟合改进,而是通用有效的半监督检测方案。
五、消融实验

证明GMM动态阈值的优势
横轴:置信度阈值
结论:
- 固定阈值存在峰值:阈值过低时,噪声伪标签太多,mAP太低;阈值过高时,有效伪标签太少,监督信号不足,指标过低
- GMM动态阈值解决了这个问题,且不需要手动调参

Ours w/o FAM:不使用任何特征对齐模块(基线)
Ours w FAM-2D:仅使用 2D 空间对齐(不做跨尺度偏移)
Ours w FAM-3D:完整的 3D 特征对齐模块(本文方法)
FLOPs (G):模型的计算量(单位:十亿次浮点运算),数值越大,计算成本越高
AP 50:951×:全监督设置下的 mAP
AP 50:9510%:半监督设置(10% COCO 标注数据)下的 mAP
结论: - FAM-3D 带来的性能增益是最高的
- 计算量增加极少,性能收益极高
- 在全监督和半监督场景下都有效

横轴(Data Ratio):不同的标注数据比例,从 1%、2%、5%、10% 一直到全量标注(FULL)。
纵轴(mAP):模型的检测性能,越高越好。
灰色柱(Ours w/o GMM):去掉 GMM 模块,改用固定阈值的模型。
红色柱(Ours Full):完整模型,使用 GMM 动态阈值。
绿色数字:加入 GMM 后带来的性能提升幅度(红色柱 - 灰色柱)。
结论:
- GMM 在所有标注率下都能稳定提升性能
- 标注数据越少,GMM 的增益越大,是提升半监督检测性能的关键模块。
更多推荐



所有评论(0)