令 Ds = (Xs, Ys) 表示源域中的标记数据,其中 Xs = {xis}Nsi=1 表示源域的图像集,Ys = {yis}Nsi=1 是相应的标签集,包含每个图像的目标位置和类别分配的集合。 Ns 表示源图像的总数。Dt = (Xt) 表示目标域中的未标记数据,Xt = {xit}Nti=1 表示该域的 Nt 个图像。在SFDA中,源预训练模型表示为hs: Xs→Ys,最初可用于对未标记的目标域进行自适应。然而考虑到源域和目标域之间的域转移,当源预训练模型hs直接应用于目标域时,映射会降低性能。因此,SFDA的主要目标是通过仅使用未标记的目标数据Xt来适应预训练的源模型hs,从而学习新的映射ht: Xt→Yt。
使用 mean-teacher 范式,教师(定义为hθ)和学生(定义为hϕ)模型都是从源模型(一个预训练的YOLOv5架构)实例化的。训练损失如下表示:
其中,Lbox和Lcls分别表示分类和边界框回归的损失,而Lobj对应客观性损失,与目标存在的置信度有关。λb、λc、λd 项是加权超参数,用于控制总体检测损失中每个损失分量的相对重要性。
我们的框架分为两个步骤。首先,训练目标增强模块学习针对目标域的特定领域的数据增强。然后,使用已增强的图像来训练具有平均教师范式的学生模型。学生模型 hφ 逐渐将其获得的知识提炼给教师模型 hθ,教师模型 hθ 通过指数移动平均线(EMA)进行学习。我们还引入了学生稳定模块(SSM),可以有效稳定训练过程,从而提高整体表现。该框架不会增加基本检测器在推理过程中的复杂性,这对于许多实时应用程序来说是一个重要因素。整个 SF-YOLO 训练架构如2.3节中的图 1 所示,并在算法 1 中详细说明。
4.1、Target Augmentation Module(目标增强模块)
在经典的师生框架自我训练中,教师和学生模型将不同的图像视图作为输入,以一种不平凡的方式最大化相互信息。具体来说,教师模型接收弱增强图像作为输入,而学生模型则输入强增强图像。在这里,我们不是生成随机的强弱增强图像对,而是使用一个名为“目标增强模块”(TAM)的网络来学习适当的增强。这个增强模块与LODS方法中的风格增强模块类似,主要区别在于动机。我们使用增强模块来丰富目标域,而在LODS中使用样式增强模块来学习忽略目标域的样式。这里我们简要概述TAM的主要体系结构。
假设我们有来自目标域的图像(用 x 表示)和风格图像 y,它可以是目标域所有图像的平均值(如果背景相似),或者是目标域中的一张随即图像。
TAM的作用是将目标域图像 x 根据风格图像 y 的统计特征进行转换,以生成新的增强图像。风格迁移公式如下:
其中,ex和ey分别是图像 x 和 y 通过VGG-16网络编码得到的特征。µ(ex)和σ(ex)表示ex的通道均值和通道方差,ey也是如此。F1 和 F2 是两个神经网络,它们结合了 x 和 y 的均值和方差信息。TAM通过最小化风格一致性和重建损失来进行训练,以确保转换后的图像既保持了原始图像的内容,又融入了风格图像 y 的风格特征。
4.2、Consistency Learning With Teacher Knowledge(教师知识的一致性学习)
对于目标域 Dt 中的每个数据点 x,我们从教师模型中获取目标分类分数 hclsθ(x)、边界框回归 hboxθ(x) 和是否存在目标的置信度 hobjθ(x),并将其用作伪标签通过反向传播训练学生模型。然而,直接从 hθ(x) 学习可能会导致对教师模型的过度拟合。为了解决这个问题,我们引入了由三个步骤组成的一致性损失。首先,我们通过设置分类置信度阈值δ来过滤掉教师模型的低置信度预测,这样可以防止后续过程受到噪声标签的干扰。接下来,我们使用 TAM 增强目标域图像 x 并训练学生模型,使其与增强样本的硬标签 p(由教师模型生成的伪标签)一致。第三,学生逐渐将其获得的知识提炼到教师模型中,教师模型通过指数移动平均线(EMA)进行学习:
其中,θ 表示教师模型的参数,ϕ 表示学生模型的参数,α 是EMA动量参数,它控制着教师模型参数更新的速度。
4.3、Student Stabilisation Module(学生稳定模块)
请注意,教师从不直接观察增强图像,它只处理真实的目标图像。到目前为止,我们的方法类似于Mean Teacher and Noisy Student 范式。然而,由于学生模型学习速度更快,因此更容易出错。学生更新教师后,这些错误又会反映在教师模型的伪标签生成中,导致伪标签噪音更大,从而降低之后训练的性能。为了减轻这些错误的影响,引入了学生稳定模块 (SSM)。正如我们在下图2中使用TAM模块的mean-teacher框架初始实验所示,尽管EMA和学习增强有助于提高学生模型的性能,但结果迅速恶化,以至于在epoch 60时,学生模型的性能几乎就像一个随机检测器。可以发现,SSM可以有效防止MT快速恶化并达到更好的最终性能。
图2:使用 YOLOv5l 在不同学习率的 C2F 场景上使用和不使用 SSM 的目标增强平均教师的训练曲线。
我们假设,由于学生模型在每批之后使用SGD快速更新,因此更有可能出错。虽然一位更新了ema的教师最初可以防止学生过度拟合,但这可能不足以稳定训练。于是作为在每个epoch结束时的补救措施,我们还使用教师模型的EMA更新学生权重,使用以下公式:
其中,其中γ为SSM动量参数。这种方法将学生模型限制在接近教师模型的范围内,保持了伪标签的质量,并防止有过多的偏差。
4.4、Training and Inference(训练与推理)
SF-YOLO的整体学习过程如图1所示。经过调整优化的教师模型hθ用于推理,教师模型学习到的特征表示比学生模型(hϕ)更为鲁棒,这是因为学生模型在训练过程中没有直接接触到未经修改的目标域图像(原始目标域图像),而教师模型则通过指数移动平均(EMA)和学生模型的更新来不断调整自己的参数,以更好地适应目标域数据。 最终模型保持了原始YOLO架构的速度和兼容性优势。
4.5、训练流程
输入:目标域 Dt、教师模型 hθ、学生模型 hϕ、目标增强模块 TAM、EMA 动量 α、SSM 动量 γ、置信度阈值 δ、学习率 η、总迭代次数 E。
输出:训练完成的教师模型 hθ,用于目标域的推理。
一、外层循环:遍历所有的训练周期(从 t=0 到 E-1),对于每个周期,执行以下步骤:
二、内层循环:遍历目标域数据集 Dt 中的每个小批量数据 x,对 Dt 中的每个小批量 x
1)p = hobjθ(x) ≥ δ,计算教师模型对当前小批量数据 x 的置信度 hobjθ(x),并与阈值 δ 比较,生成过滤后的伪标签 p。
2)xˆ = TAM(x),使用目标增强模块 TAM 对当前小批量数据 x 进行增强,得到增强后的图像xˆ;。
3)ϕ ← ϕ − η∇ϕLdet(xˆ, p, ϕ),使用增强后的图像xˆ 和伪标签 p 训练学生模型 hϕ,通过反向传播更新学生模型的参数 ϕ;。
4)θ ← αθ + (1 − α)ϕ,结合当前教师模型的参数和学生模型的参数,使用EMA更新教师模型的参数 θ。
三、ϕ ← γϕ + (1 - γ)θ,处理完一个周期内所有小批量数据后,使用学生模型稳定模块(SSM)来更新学生模型的参数 ϕ,以保持学生模型和教师模型之间的一致性。