DAFormer 图像语义分割域自适应泛化网络及训练策略
#Domain Adaptive and Generalizable NetworkArchitectures and Training Strategies forSemantic lmage Segmentation#
一、研究动机
GAP
- 过时的网络架构:之前的无监督领域自适应(UDA)和领域泛化(DG)语义分割方法大多基于较旧的网络架构,未能充分利用最新的模型设计,尤其是近年来表现突出的Transformer结构。
- GPU内存占用问题:由于UDA和DG通常对GPU内存需求较高,现有方法通常通过下采样或裁剪图像来减小输入图像的分辨率。然而,低分辨率会导致细节丢失,裁剪也无法有效捕捉到跨域的全局上下文信息,影响模型的泛化能力。
Motivation
- 探索Transformer潜力:本文旨在揭示Transformers在UDA和DG任务中的潜力,并为这类任务设计专门的网络结构,即DAFormer,以提升模型在目标域上的表现。
- 克服域偏差和提升特征迁移:为避免模型对源域的过拟合,本文提出了三种训练策略(稀有类采样、ImageNet特征距离和学习率预热),以减少常见类别的偏差,并促进从ImageNet的特征迁移。
- 提高分辨率与上下文捕捉能力:为解决低分辨率和裁剪图像的不足,本文提出了HRDA多分辨率框架,通过融合小尺寸高分辨率和大尺寸低分辨率的图像裁剪,实现了对细节和长程上下文依赖的同时捕获。
二、论文主要贡献
领域自适应(UDA)是指在已知目标领域的情况下,通过训练模型使其适应源领域和目标领域的分布差异;而领域泛化(DG)则要求模型在未明确知道目标领域的情况下保持稳健,即模型需在多个未知的领域中表现良好。
-
域泛化(Domain Generalization, DG):在语义分割任务中,域泛化的目标是在没有目标域数据的情况下,使模型能够在未见过的域(数据分布)上表现良好。这种方法假设在训练时模型只接触源域数据,而测试时需要直接泛化到目标域。DG的难点在于模型无法访问目标域的任何数据,只能通过源域数据的多样性或增强策略,来提升其泛化能力。
-
无监督域适应(Unsupervised Domain Adaptation, UDA):与DG不同,无监督域适应可以在训练时访问未标注的目标域数据。模型通过联合训练源域的有标签数据和目标域的无标签数据,来缩小源域和目标域之间的差距,从而在目标域上实现更好的性能。
A. DAFormer 和 HRDA 的扩展到领域泛化(DG)
通过一系列消融实验(即分离并测试各个模块的独立影响),研究发现 DAFormer 和 HRDA 对于 DG 的性能提升显著。这意味着它们不仅在 UDA 中有效,在 DG 中同样能带来显著改进。
B. 白天到夜晚、晴天到恶劣天气的转化有较强的泛化性能
研究还测试了 DAFormer 和 HRDA 在白天到夜晚和晴天到恶劣天气这两种 UDA 场景中的表现。这些场景对自动驾驶至关重要,因为实际应用中可能经常遇到类似的天气和光照条件转换。
测试结果表明,DAFormer 和 HRDA 在这些特定应用场景下也有较强的表现优势。
C. 适用单GPU训练
研究团队将 DAFormer 和 HRDA 统一成一个完整的 UDA 和 DG 框架,并提供开源工具包,便于研究人员在此基础上进一步开发。
该框架支持单个 GPU 训练,大大简化了模型的使用。相比之下,先前的方法(如 ProDA)则需要多个 GPU 和更长的训练时间。
D. 在多个基准数据集性能显著提升
DAFormer 和 HRDA 在多个 UDA 和 DG 基准数据集上的表现均大幅超过了现有方法。例如,在 GTA → Cityscapes 任务中,相比先前的方法提升了 16.3 个 mIoU,在 Cityscapes → DarkZurich 上提升了 11.6 个 mIoU 等。这表明模型的架构设计、适当的训练策略和多分辨率训练对 UDA 和 DG 的性能都有着重要影响。
三、主要创新点
A.DG风格多样化
提升模型域泛化(Domain Generalization,DG)能力的方法,具体涉及两种策略:去除特征中的风格信息和增加训练数据的风格多样性。作者选择了后者,即通过引入不同的风格来丰富源域的数据,以提高模型在新域上的泛化能力。以下是详细解释:
-
去除风格信息与增加风格多样性:一般来说,为了增强模型的域泛化能力,有两种典型的做法:
-
去除风格信息:一些方法通过去掉特征中的风格信息,使模型更加关注内容信息,而不是风格细节。这样可以降低模型对特定风格的依赖,从而在新的风格或域中表现更好。
-
增加风格多样性:另一种方法是通过增加源域数据中的风格多样性,使模型在训练中接触到更多不同的风格,以便更好地适应新的风格。这种方法不会改变网络结构,因此便于在不同的网络架构上进行基准测试。
-
-
选择增加风格多样性:作者选择了增加风格多样性的方法,因为它可以在不修改网络结构的情况下提升泛化性能。这种方法更适合基准测试不同的网络架构,具有较好的通用性。
-
简单的DG基线:作者从一个简单的DG基线方法开始,即通过常见的光度畸变(photometric distortion)来随机调整图像的亮度、对比度、饱和度和色调。这些随机增强操作为源域数据增加了一些基本的风格多样性,从而帮助模型适应不同的风格。
-
更高级的DG方法:SHADE和AdaIN:对于更复杂的DG方法,作者借鉴了SHADE【40】的思路,使用AdaIN(自适应实例归一化)对编码器的特征进行风格多样化。具体步骤包括:
-
基于风格插值生成新风格:首先,从源域中的不同风格中选取一组“基础风格”(basis styles),这些风格通过最远点采样(farthest point sampling)获得,以确保基础风格之间的差异最大。然后,通过插值这些基础风格,生成新的风格。
-
使用AdaIN调整风格:通过AdaIN,将这些插值后的新风格应用到编码器特征上,从而生成不同风格的特征表示,增加源域的风格多样性。
-
-
风格一致性损失(style consistency loss):为了确保原始源域图像与其风格化版本在特征分布上保持一致,作者引入了一种风格一致性损失。该损失通过最小化原始图像和其风格化版本之间的后验概率的Jensen-Shannon散度,使得两者在分类结果上更加一致,从而避免风格变换导致的语义信息丢失。
-
SHADE:SHADE 是一种方法,通过多样化特征的风格来增加模型的泛化能力。这种方法通常用于域泛化任务,以帮助模型在不同风格的数据中表现得更加稳定。
-
编码器特征的风格多样化:在模型中,编码器(通常是CNN或Transformer的某一部分)提取输入图像的特征表示,这些特征的“风格”可以影响模型的泛化能力。通过改变特征的风格,可以帮助模型学习到更具鲁棒性、对不同域更不敏感的表示。
-
AdaIN(自适应实例归一化):AdaIN是一种用于图像风格转换的技术,它通过调整特征图的均值和方差来控制风格。具体来说,AdaIN使用给定的风格特征调整输入特征图,使其更接近目标风格的统计分布(即均值和方差)。在这里,AdaIN被用来将不同的风格引入编码器特征。
B.UDA的自我训练

C.DAFormer网络架构
描述了DAFormer网络架构在实现域泛化(Domain Generalization,DG)和无监督域适应(Unsupervised Domain Adaptation,UDA)方面的设计思路及其具体实现。以下是逐点解释:
-
目标和背景:
DAFormer的设计目标是为了在域泛化和域适应中获得良好的性能,这意味着它不仅要在训练数据上表现优异,还需要能够适应未见过的目标域(即具有较强的泛化能力)。 -
编码器的选择 - Transformer的优势:
- 选择Transformer的原因:Transformer的自注意力机制被认为适合于DG和UDA任务,因为它能促进学习域不变的特征,从而增强模型的鲁棒性。这是因为与传统的卷积神经网络(CNN)不同,Transformer中的权重是在每对位置之间的相似性基础上动态计算的。这种动态权重赋予了自注意力机制更强的自适应性和通用性。
- Mix Transformer (MiT):DAFormer的编码器采用了MiT的设计。MiT是一种专为语义分割任务设计的Transformer结构,它将图像划分为4×4像素块(而不是ViT的16×16像素块)以保留细节信息。此举使得模型能够更好地捕捉图像中的细微特征。
-
特征图的降采样:
- MiT编码器中的特征图通过重叠块合并(overlapping patch merging)进行降采样,以保留局部信息。这样可以保持图像的局部连续性,从而在降采样过程中尽量减少信息丢失。
-
解码器设计 - 增强上下文信息:
- 传统的基于Transformer的语义分割方法通常只在解码器中使用局部信息,而DAFormer设计中加入了额外的上下文信息。这是因为上下文信息已被证明能够增强模型的泛化能力,从而更适合DG和UDA任务。
- DAFormer不仅利用了最深层的特征(即瓶颈特征)中的上下文信息,还从不同编码器层级的特征中提取上下文信息。较浅层的特征包含低级别的细节信息,在高分辨率的语义分割中尤为重要,这些特征也可以作为上下文信息的一部分。
-
解码器中的特征融合:
- 在特征融合之前,每个编码器层的特征
通过1×1卷积被嵌入到相同的通道数,并通过双线性插值上采样至与浅层特征
相同的大小,最后进行拼接。
- 为实现上下文感知的特征融合,DAFormer在解码器中使用了多路并行的3×3深度可分离卷积(带有不同膨胀率),以及1×1卷积来融合它们。这类似于空洞空间金字塔池化(ASPP),但没有使用全局平均池化。
- 在特征融合之前,每个编码器层的特征
-
深度可分离卷积的优势:
- 深度可分离卷积比常规卷积的参数更少,从而有助于减少模型对源域的过拟合。这种设计既能有效融合多层特征,又能增强模型的泛化能力。
D.Domain-Robust训练策略
1、稀疏采样的具体设计

2、物类图像网络特征距离(FD)具体设计

3、Learning Rate 升温

E.Domain-Robust Multi-Resolution Training (HRDA)
a. 分辨率与适应性:
- 高分辨率(HR)输入更适合于检测小物体和细节分割,这有助于模型泛化和适应这些细节。
- 低分辨率(LR)输入则更适合于处理大范围的背景区域(即“stuff”类,如道路、天空),可以捕捉长距离的上下文依赖关系。
b. 内存管理与分辨率裁剪:
- 为了在GPU内存限制下实现高效的DG和UDA,框架将LR和HR结合起来:采用一个大的LR裁剪来捕获长距离的上下文信息,以及一个小的HR裁剪以保留分割的细节。
- 这种裁剪方式确保模型在处理大面积的上下文和小物体细节时都能获得较好的结果,同时降低了显存消耗。
c. 多尺度融合:
- 模型将LR和HR的预测结果进行融合。融合时采用了一种学习到的“尺度注意力”(scale attention)机制,这种机制可以根据输入的不同尺度来动态地赋予合适的权重,从而有效地整合不同分辨率的预测结果。
d. 滑动推理与伪标签的鲁棒性:
- 在UDA中,为了生成更鲁棒的伪标签,框架还使用了重叠滑动推理(overlapping slide inference),即通过重叠的方式滑动推理区域,以融合不同上下文的预测。
- 这样不仅可以增强预测的稳定性,也能提高伪标签a
1、Context and Detail Crop(上下文和细节裁剪)


2、多分辨率融合

3、Pseudo-Labels with Overlapping Sliding Window(具有重叠滑动窗口的伪标签)

四、算法理解
A. 稀有类别采样与特征对齐框架
1.数据准备与稀有类采样:
- Source Data(源数据):框图左侧的源数据经过“Rare Class Sampling”,对不同类别数据进行采样。
- Rare Class Sampling(稀有类采样):由于不同类别在数据集中可能存在不平衡情况(例如一些类较为稀有),框架通过稀有类采样方法提高稀有类的采样概率,使其在训练中能够得到更多关注。图中的柱状图表示不同类别的采样概率。
2. 源域数据的预处理:
- 经过稀有类采样后,生成了特征
和标签
。
- 这些特征
和标签
输入到学生网络(Student Net)中进行进一步处理。
3. 目标域数据:
- Target Data(目标数据):目标域数据直接输入到教师网络(Teacher Net)和学生网络(Student Net),目标数据并没有标签,这正是无监督域适应的核心挑战之一。
- 目标数据
通过绿色线条表示,意味着只在无监督域适应(UDA)时使用,而在域泛化(DG)中没有目标域数据。
4. 图像编码与特征分离:
- 源域和目标域的特征
和
输入到 ImageNet Encoder 中,这个编码器基于 ImageNet 的特征编码能力,帮助分离不同类别的特征。
- 编码后的特征通过“Thing-Class Feature Distance”模块,计算物体类特征之间的距离。这一模块通过特征距离来增强不同类别特征的分离效果,从而提高在目标域的泛化能力。
5. 教师-学生网络结构:
- 学生网络(Student Net):学生网络直接接收来自源域的特征
和目标域特征
,并且在源域上计算源域损失
。
- 数据增强(Augmentation):学生网络对目标域数据进行数据增强,增强的目标域数据将进一步输入到教师网络中,帮助模型适应目标域的变化。
- 教师网络(Teacher Net):教师网络负责生成目标域的伪标签,并通过 EMA(指数滑动平均)从学生网络更新权重,以保持教师网络的稳定性。目标域的损失
仅用于指导学生网络更新,而教师网络并不直接参与目标域梯度的更新。
6. 损失计算与梯度更新:
- 源域损失
:在源域上计算源域损失
,该损失用于优化学生网络的参数,使其在源域上达到更好的性能。
- 目标域损失
:在目标域上计算目标域损失
,该损失不直接影响教师网络的权重更新。通过“Stop Gradient”控制目标域损失的梯度流向,确保伪标签的稳定性。
7. 整体流程:
- 源域数据经过稀有类采样、编码器和学生网络,生成损失
进行参数优化。
- 目标域数据通过数据增强和教师网络生成伪标签,学生网络在目标域上计算损失
,通过无监督方式在目标域上优化。
- 教师网络作为指导者,通过EMA更新学生网络的权重,从而在无监督条件下实现目标域的适应。
B. 分层特征融

1. Hierarchical Transformer(分层Transformer)
- 分层Transformer用于提取输入数据的多尺度特征,输出不同层次的特征图:F1、F2、F3和F4。
- 每个特征图对应不同的分辨率和语义层次,通常较低层的特征具有较高的空间分辨率,但语义信息较弱;而较高层的特征则具有较低的分辨率,但语义信息更强。
2. Size & Channel Alignment(尺寸和通道对齐)
- 为了将不同层次的特征图进行有效融合,需要对它们的尺寸和通道进行对齐处理。
- 这一模块接收来自分层Transformer的多尺度特征F1、F2、F3和F4,通过插值或卷积等操作,将这些特征图调整到相同的尺寸和通道数。
- 对齐后的特征图可以方便地进行后续的融合处理。
3. Stack(特征堆叠)
- 在尺寸和通道对齐之后,将这些对齐后的特征图进行堆叠。
- 堆叠操作将多个尺度的特征整合在一起,形成一个更高维度的特征表示。
- 这个堆叠的特征表示包含了来自不同层次的信息,为后续的上下文感知融合提供了丰富的输入。
4. Context-Aware Fusion(上下文感知融合)
- 该模块的目标是进一步整合堆叠后的多尺度特征,从而生成一个包含全局和局部上下文信息的融合特征。
- 上下文感知融合模块由多个子模块组成,包含特征图的上下采样和卷积操作:
- 第一个卷积层:对堆叠特征进行卷积操作,以捕获不同特征之间的关联性。
- 上下采样模块:在融合过程中通过上下采样操作,将特征图进行不同的缩放,以适应全局和局部的上下文需求。
- 第二个卷积层:进一步处理上下采样后的特征图,完成最终的上下文融合。
- 最终输出的特征图包含了丰富的上下文信息,有助于提升模型在不同场景中的泛化能力。
五、实验结果分析






更多推荐



所有评论(0)