文章信息
论文题目为《To Adapt or Not to Adapt? Real-Time Adaptation for Semantic Segmentation》,该文于2023年发表于IEEE/CVF International Conference on Computer Vision (ICCV)会议上。文章提出一种用于实时域自适应的硬件感知模块化最便宜的训练框架,能够主动控制模型的自适应。
摘要
在线域自适应方法的目标是应对在实际生活中出现的无法预见的领域变化,比如突发的天气变化。然而,采用蛮力适应方法会带来高昂的计算成本,不切实际。本文提出了HAMLET框架,这是一种基于硬件感知的模块化、成本最低的实时域适应训练方法。该方法包括了一个硬件感知的反向传播协调代理(HAMT)和一个专门的领域漂移检测器,它能主动控制模型何时以及如何进行适应(LT)。由于这些创新,我们的方法能够在一台普通的GPU上以每秒29帧以上的速度执行语义分割任务。实验结果表明该框架在OnDA和SHIFT基准测试上能较好的权衡准确性和速度。
引言
语义分割旨在基于局部和全局上下文在像素级别对图像进行分类,以便对所描述的内容进行更高层次的理解。近年来,通过使用各种卷积神经网络(CNNs)或最近的transformers模型能有效解决这一任务,但是需要对图像进行像素标记,这非常耗时且昂贵。利用模拟和图形引擎生成带标注的帧可以显著减少收集标记数据所需的时间和成本。但由图形引擎生成的模拟数据与真实世界图像之间存在实质性差异,因此将这些数据进行实际应用需要适应大幅度的领域变化。
为解锁这一廉价且丰富的训练数据资源的潜力,许多无监督领域自适应(Unsupervised Domain Adaptation,UDA)技术应运而生,这些技术通过在带标注的合成帧(源域)上训练语义分割网络,然后将网络适应到真实图像(目标域)上,而无需人工标注。但是,从合成数据到真实数据的领域变化只是众多领域变化的一种。在实际部署中,领域变化可以由多种原因引起,例如不同的相机位置、不同的光照、天气条件、城市场景等,甚至各种因素相互组合,所以不可能在数据集中均匀地代表所有可能的部署领域,这就导致了性能的不稳定性。
在线领域自适应的概念使得我们在部署时,面对连续和不可预测的领域变化,无需事先具有与这些领域变化相关的数据。然而,它仍然存在一些不足,比如逐帧调度上连续执行反向传播,计算成本高导致对网络的性能产生负面影响,从而降低其整体帧率以满足连续适应的要求。作者指出,参数数量越多,自适应过程越复杂,逐帧优化是自适应本身的过度过程,网络可能只需要更少的优化步骤来有效对抗领域变化,而这种强烈的自适应可能会导致对以前的领域出现灾难性遗忘。为了解决在线领域自适应中存在的问题,从而实现实时在线领域自适应。作者提出了一个新颖的框架,主要贡献如下:
自适应训练机制:为解决在线训练的问题,作者设计了一个轻量级的自动机制,能够显著减少反向传播的复杂性。他们充分利用模型的模块性,自动选择训练网络子集,以获得分配的优化时间内产生最大改进的子集。这一方法降低了反向传播的浮点运算次数(FLOPS)达34%,同时最小化对准确性的影响。
轻量级领域检测器:与前述方法互补,作者引入了一种轻量级的领域检测器。仅在真正需要时激活训练,并设置超参数以最大化自适应速度。其更够将速度提高了5倍以上,而mIoU的牺牲不到2.6%。
作者在多个在线领域自适应基准上进行了评估,包括全合成数据集和半合成的CityScapes领域序列。实验结果表明,与其他测试时间自适应策略相比,其方法在准确性和速度方面表现更好。图1展示了与CoTTA等较慢的方法相比,HAMLET具有优越的实时自适应性能。CoTTA等较慢的方法在被迫每50帧只适应一次以保持相似的帧率时,性能会显著下降。相比之下,HAMLET在保持高精度的情况下达到了令人印象深刻的29 FPS。此外,图2展示了HAMLET在风暴增加情况下的表现,进一步突出了其良好的准确性和速度权衡。
图 1 HAMLET与其他方法的对比效果展示
图 2 各自适应方法在风暴增加情况下的表现
方法
作者引入了一个硬件感知的模块化训练(HAMT)代理,能够在线优化模型准确性和适应时间之间的权衡。HAMT能够显著减少在线训练时间和GFLOPS(浮点运算每秒次数)。然而,最经济的训练其实是不训练。因此,第二个策略是引入了一种形式化的几何模型,用于在线领域变化的可靠检测和领域估计信号,这些信号可以轻松集成,只在特定时刻激活自适应过程,以尽可能少地进行适应。此外,再引入主动训练调制,其可以通过设计自适应训练策略,动态调整与领域相关的超参数,更进一步利用这些信号。
模型设置
HAMLET应用于无监督域自适应和分割网络,以DAFormer模型为例,采用SegFormer作为分割主干网络。使用三个骨干实例,它们都基于SegFormer在源域上进行了预训练分别是:一个学生、一个教师和一个静态(即冻结)教师。在训练过程中,学生接收到目标图像和源图像的混合图像,并受到混合样本交叉熵损失(图3中由绿色、蓝色和红色虚线表示)的监督。这种损失是通过混合教师的伪标签和源注释来计算的。
为了提高训练的稳定性,老师以学生的指数移动平均值(EMA)进行更新。为了进一步正则化学生,我们使用存储在回放缓冲区中的源样本,并应用两个额外的损失(图3中的蓝线)。首先,我们最小化学生和静态教师编码器之间的特征距离,然后,采用监督交叉熵任务损失。完整的目标损失函数是,其中是一个权重因子。在目标域上进行预测时,只使用学生(图3中的红线)。
图 3 HAMLET流程
硬件感知模块化训练(HAMT):
在线自适应在部署时需要更新模型参数,但反向传播在计算上代价高昂,因此在部署的代理中连续应用起来太慢。作者提出可以选择进行部分权重更新,例如通过微调网络的最后模块,以提高训练效率。然而,领域漂移可能会表现为数据输入分布的变化(例如图像属性,比如白天/夜晚),以及输出分布的变化(例如类别先验概率)。这些信息可能被编码在网络的不同部分,因此仅仅更新最后一部分网络可能不足以应对领域漂移。
作者提出可以对训练过程进行编排,以确保充分的训练同时尽量减小计算负担。作者引入了一个编排代理,通过权衡伪损失最小化速率和计算时间来决定网络应该进行多深的微调。与以前的高效反向传播方法不同,因模型在任务上进行了预训练,所以只需要更小的更新来适应。
建模如下:
模型骨干表示为f,由四个不同的模块组成:f = m4◦m3◦m2◦m1。
定义一个行动空间A 和连续状态空间S。
行动空间 A = {T1, T2, T3, T4}:其中 T4 对应于仅训练网络的最后一个模块 m4;T3 对应于训练最后两个模块,即 m4 ◦ m3;T2 对应于训练最后三个模块,即 m4◦m3◦m2;T1 对应于训练整个网络 f。
连续状态空间 S = {R, V}:其中 R 表示随时间变化的EMA教师伪损失的二阶导数,表示模型性能的变化速度,因此,,其离散形式计算为,而 V 表示一个累积向量与动作空间 A 具有相同的维度,初始化为0,它是一个记录了不同动作对模型性能改进的估计向量,每个元素表示动作对性能改进的估计。在每个时间步t,检查向量V中各元素,每个元素对应A中的每个动作,然后选择具有最大V值的动作,其索引为j,并执行动作。在训练步骤t中,更新为:
其中 α 是平滑因子,例如 0.1。该策略可以看作是一种贪婪的模块选择策略,基于线性近似的最高期望损失改进。然而,有一个明显缺点是,它可能会选择更具回报但更昂贵的动作,如 T1 和 T2,而不是更高效但潜在效果较差的动作,如 T3 和 T4。这反映了在训练时间和性能之间的权衡关系。
作者指出,他们不仅关注性能改进的速度,还关注实际训练过程中的时间间隔。他们的目标不是仅仅最大化损失函数二阶导数,其中 ∆t 表示更新的次数,而是还要最大化,其中 ∆τ 是实时间隔,即考虑了时间因素。为了考虑实际训练成本,作者测量了与每个动作 A 相关的训练时间,得到了向量,表示了每个训练模块的实际训练时间。
作者还引入了时间条件向量 γ,用于在优化策略中考虑训练成本。这个时间条件向量通过将每个动作的训练时间考虑在内,来调整模型的选择。
其中,β 是 softmax 温度, K 是动作的数量,在文中为4。所以,修改的策略如下:
该策略使得代价更大的动作会得到更小的奖励和更大的惩罚。平均反向传播β的浮点运算次数FLOPS显着降低,即β = 2.75时- 30%,β = 1时- 43%。文中最后选择β = 1.75,获得−34%的FLOPS降低。
主动训练调制:
连续和测试时间适应方法将在线学习视为在数据流上进行的连续和恒定的过程。然而,当涉及到实际部署时,这种方法存在几个缺点。在部署域不变的情况下执行适配不会对当前域的性能有进一步改进;相反它可能会导致对先前领域灾难性遗忘,从而阻碍模型泛化。即使有了HAMT的缓解,在线训练仍然是一个计算成本很高的过程,这是因为几个教师必要的前向传播过程。作者指出,知道什么时候需要什么样的适应是很重要的,故引入自适应域检测机制来解决这个问题,然后引入一组策略来减少训练时间,同时相应地优化学习率。
在线适应系统的一个关键要素是获取学生模型在部署期间所经过的数据分布空间(即域)中的轨迹的感知。我们可以通过在源域中设置轨迹原点来对问题建模。对于高维数据,数据分布难以处理,因此不能用封闭形式描述轨迹。因此,作者添加了一个轻量级分割头,并将其连接在第一个编码器模块之后,用来修改用于特征距离损失的静态教师的主干:。
作者在源数据上离线训练这个轻量级分割头,而不会在模型的主干结构上传播梯度(即,被冻结)。这个轻量级分割头会生成目标领域数据的预测。在目标预测时,对于给定的目标样本,作者提出计算学生模型预测与轻量级分割头的预测之间的交叉熵,公式如下:
由于学生模型具有更高的泛化能力(因为更多的参数和无监督的自适应过程),它将始终优于轻量级解码器头。然而,由于现在距离是在预测空间中测量的,不会受到模型误校准的影响。此外,由于学生模型处于不断的适应中,域距离精度实际上会随着时间的推移而提高,从而导致更好的结果。
接下来使用使用分箱平均和信号离散化来检测领域的变化,使用了分箱平均的方法。定义了一个经过降噪的信号:
其中,表示某个特定时刻 j 的信号值,m表示分箱的大小或数量。
领域被建模为的离散步骤。通过该方法,将连续的数据分成离散的部分,每个状态代表一个不同的领域,以便更容易进行建模和分析。引入了一个新的信号B,用来表示离散化后的信号:
当 大于给定的阈值z时,将等于,否则它将等于上一个信号。这个步骤用来将连续的信号分成不同的领域。
最后,引入了一个有符号的域变化幅度,用来表示领域的变化,每当 |∆Bi| 大于给定的阈值 z 时,就会检测到领域的变化。
最小训练和自适应学习率:
作者指出,通过B 就可以自定义训练过程,作者采用了一种最小训练(LT)的策略,只有在面对新的领域时(即|∆Bi| > z)才触发适应过程。在线学习性能的有效性在很大程度上取决于一些超参数的选择,如学习率 η 和学习率衰减率。因此,我们可以根据遇到的领域转变的性质和强度来调整这些参数,以便促进适应性,作者将这种协调称为“自适应学习率 (ALR)”。例如,领域转变非常大,即 |∆Bi| 较大,那么需要更多的适应来抵消其影响。适应方法是可以通过增加优化迭代次数或者在适应期间使用更高的学习速率。
当检测到领域转变时,根据 |∆Bi| 相对于设定的阈值 z 的大小,计算所需的适应迭代次数:
其中是一个乘法因子,代表了最小的适应迭代次数。这样,适应迭代次数与领域转变的幅度成比例。积累适应步骤:如果在适应过程完成之前发生新的领域转变,那么需要累积所需的优化步骤。这确保了模型可以适应连续的领域变化,而不仅仅是应对单次变化。然后,我们可以使用两个进一步的参数:和学习率计划。用于调整适应过程中的迭代次数,该数的设置根据领域转变的性质和强度来调整,以确保适应过程更平滑。学习率 η 是一个关键的超参数,它会在适应过程中逐渐减小。这个减小的速度是根据领域转变的大小来调整的。如果领域转变较小,学习率会以较快的速度下降,以更快地完成适应。如果领域转变较大,学习率下降的速度会相对较慢,以确保适应过程更充分。初始学习率也会根据领域转变的位置和距离源领域的远近进行调整,以确保模型在不同领域转变情况下都有合适的学习率。
其中,和是对领域转变信号 B 的估计,分别表示模型接近源领域和远离源领域时的领域转变信号。和是学习率的最小值和最大值。
假设,向源移动比向更难的领域移动需要更少的适应:由于采用了正则化策略,该模型对先前探索的领域显示出良好的回忆。根据模型当前位置与源领域的距离来调整表示如下:
其中,∆Bi 表示当前领域转变的信号,表示适应迭代次数的参数。
实验
实验是在(a) OnDA基准和(b) SHIFT数据集上进行的。(a)是半合成基准,因为它适用于4种不同强度剖面的合成雨和雾。主要基准Increasing Storm呈现出金字塔型的风暴强度剖面;见图4。相比之下,(b)是一个纯合成数据集,其中底层图像和天气都是合成生成的,因此区域变化是完全可控的。所有模型都使用mIoU进行评估,展示了域上的谐波平均值,以呈现整体自适应性能。
图 4 HAMLET在风暴数据上的表现
消融实验:
在表1中,作者从准确性和效率两方面研究了各贡献对适应性能的影响。对于每种配置,我们报告序列不同部分的mIoU,帧率和GFLOPS的数量-分别为:总的,前向和后向传播,以及仅专用的适应也分为前向(Fwd)和后向(Bwd)。表1 (a)显示了增大风暴情景的结果。在这里,展示了200mm领域的mIoU,即序列中最困难的领域,以及从前向适应到200mm雨和反向适应的mIoU平均值。结果是根据不同的种子平均值计算的,同时报告了标准偏差。
(A) 展示了通过简单地对模型进行完全适应性训练所实现的结果。HAMT可以通过减少34%的后向传递GFLOPS的代价,将帧率提高约15%,但平均mIoU减少了0.7,即在200mm领域大约下降了2个点。在速度方面,主要的提升显然来自LT(C),它阻止了在检测到领域漂移时进行训练。LT通过减少总GFLOPS而增加帧率,但不影响适应性的后向传递GFLOPS。然而,这也以mIoU方面的代价为代价,平均下降了约4个点,而在200mm领域下降了超过10个点,这已经不是一个轻微的下降了。LT的影响高度依赖于部署过程中经历的领域序列:频繁的领域变化可能会阻止训练的抑制,从而忽略了LT在效率方面的收益,后文将进一步讨论。通过添加ALR(D),逐渐恢复了准确性,进一步的改进由DCM(E)和RCS(F)之一或两者一起(G)产生,从而导致完整的HAMLET配置。这三者共同使mIoU的差距缩小到2.5个点 - 在200mm领域下是4个点 - 而不牺牲任何效率。
表1(b)展示了更多的结果。作者展示了单个领域的mIoU,以及源领域和目标领域以及所有帧的调和平均值。在这个基准测试中,仅LT(C)的效果明显较之前差,FPS和GFLOPS增幅更低。在这里,HAMT、LT和其他组件(G)之间的协同作用允许获得最佳准确性和速度提升,甚至胜过完整训练变体(A),突出它们的互补性。
表 1 消融实验结果
风暴增加的实验结果:
表格2中是HAMLET与其他相关方法的直接比较,特别是与TENT和CoTTA这两种测试时自适应策略进行了比较。公平起见,所有方法都使用相同的初始权重,其中HAMLET需要额外的轻量级解码器。他们都使用了SegFormer MiT-B1作为主干网络。
表 2 风暴增加情况下各方法对比
其结果如下:
A. DeepLabv2仅在源数据上进行训练。
B. 使用全监督的Oracle模型进行训练。
C. OnDA作为参考。
D和E. SegFormer模型仅在源领域上进行训练。
F. 使用全监督的Oracle SegFormer模型进行训练。
G和H. TENT模型在测试时自适应,分别使用和不使用帧缓冲。
I. CoTTA模型在测试时自适应。
J. 强制CoTTA以接近30FPS的实时速度运行时的性能。
K. HAMLET模型的性能。
对于SegFormer模型,结果显示其在面对领域变化时比DeepLabv2更加稳健。同时优于OnDA(C)。更快的SegFormer变体(D)在速度和准确性方面都优于OnDA,达到48 FPS。然而,领域变化仍然限制了SegFormer的潜力。TENT模型在测试时自适应,前向适应性表现略逊于预训练模型(D),但在后向适应方面表现更好。尽管TENT优于SegFormer MiT-B1,但它在速度和准确性方面都不如没有任何自适应的SegFormer MiT-B5,这进一步表明了后者的稳健性,使TENT不适用于实际部署。
相反,CoTTA模型在测试时自适应,虽然性能优于仅在源数据上训练的SegFormer模型,但帧率下降到1FPS以下。需要注意的是,这些指标是在每个模型单独完成每个领域后收集的。在一个规定了共享时间框架的评估设置中,较慢的模型会呈现更低的指标,因为它们的自适应过程将不断滞后。实际上,将CoTTA强制运行在接近30FPS的实时速度时,即每50帧进行一次训练,会显著降低自适应过程的有效性,导致在最困难的领域中性能急剧下降。
最后,HAMLET在各方面都取得了成功,将基准(D)的性能提高了约10个点,只以25%的速度代价,同时在准确性(+2.5 mIoU)和速度(3倍更快)上优于SegFormer MiT-B5(E)。这是唯一一个能够实现这一点的方法,因此也是适用于实时应用的唯一选择。图4展示了HAMLET在"增加的风暴"情景中适应的整体行为。图中展示了雨强度以及在每个领域上实现的mIoU(活跃为粗体,非活跃为虚线),即部署时当前面对的领域的mIoU,以及当前自适应如何影响其他领域的性能以突出对遗忘的稳健性。
其他实验结果:雾和SHIFT:
作者使用了与之前的"增加的风暴"情景相同的超参数,因为在这两种情况下,最开始的SegFormer模型都是在相同的源领域上进行训练的。作者使用"增加的雾气"作为测试集,结果如表3,与在源领域上训练的SegFormer模型(不进行自适应)和通过全面的在线训练优化进行自适应的模型进行比较(即表1中的配置(A))。结果显示,HAMLET几乎可以像全面的在线训练模型一样进行自适应,只有不到3个mIoU的差距,同时以近5倍的速度进行实时自适应,使用了40%的FLOPS。这表明HAMLET在应对不同类型的领域变化时具有较好的泛化能力。
表 3 雾天的实验结果
在SHIFT数据集上进一步测试了HAMLET。表4收集了在Clear、Cloudy、Overcast、Small rain、Mid rain和Heavy rain领域上,分别由SegFormer在源领域上训练、进行全面在线训练和使用HAMLET进行前向和后向自适应所实现的结果。在这里,HAMLET的结果与全面的训练模式竞争力很强,只有平均mIoU下降了0.5个点,同时速度快了5倍以上。图5从上到下依次描述了SHIFT数据集上每个领域的雨强度、在当前领域(粗体)和非当前领域(虚线)上实现的mIoU、基于领域漂移检测的学习率变化以及在任何步骤中实现的帧率。
表 4 在SHIFT数据集上的结果
图 5 HAMLET在SHIFT数据上的表现
图6显示了来自CityScapes数据集的一些定性示例。可以看到,在强降雨条件下,SegFormer的准确性下降(第二行),而HAMLET(第三行)能够在风暴中保持相同的分割质量。这进一步证明了HAMLET在处理不同天气条件下的语义分割任务时的优越性。
图 6 HAMLET的定性结果
结论
作者提出了HAMLET,这是一个实时适应语义分割的框架,可以在具有连续域变化的既定基准上实现最先进的性能。该方法结合了硬件感知的反向传播编排器和专门的域移位检测器,以实现对模型适应的主动控制,从而在消费级GPU上实现高帧率。这些进步使HAMLET成为野外部署的有前途的解决方案,使其成为在面对不可预见的域变化时需要健壮性能的应用程序的有价值的工具。