Test-Time Domain Generalization for Image Super-Resolution¶
会议: ICLR 2026
OpenReview: https://openreview.net/forum?id=jBuMH3DOPQ
代码: https://github.com/ZaizuoTang/MC-TTDG
领域: 图像超分辨率 / 测试时域泛化 / 底层视觉
关键词: 测试时域泛化, 图像超分, 多码本, 像素级特征迁移, 投票选择
一句话总结¶
针对超分这类像素级任务,本文提出 MC-TTDG:在源域上学一组「域不变码本 + 多个域专属码本」,测试时把目标域特征逐像素最近邻替换成码字来完成细粒度迁移,并用投票策略选出最合适的域专属码本,从而无需在目标域微调就显著提升了超分网络的跨域性能。
研究背景与动机¶
领域现状:测试时域泛化(TTDG)是应对域偏移的一类轻量方案。它在源域训练时记住源域分布的「质心」,测试时不微调网络,而是对目标域样本做风格迁移(style transfer),把目标域特征的均值/方差对齐到源域质心上,从而让源域训练好的模型在目标域上也能用。相比传统域泛化只在多源域上学不变表示、完全忽略目标域信息,TTDG 的好处是在推理时也利用了目标域样本,且省去了昂贵的目标域微调。
现有痛点:现有 TTDG 几乎都建立在风格迁移之上,而风格迁移是一种全局、粗粒度的操作——它只调整整张特征图的均值和方差。这对图像分类这种依赖整图抽象表示的高层视觉任务有效,但对超分(SR)这种像素级预测任务几乎失灵:作者用 t-SNE 可视化发现,风格迁移后的目标域样本和迁移前的样本几乎完全重叠,根本没把分布拉到源域去(图 2)。
核心矛盾:高层任务靠「整图全局风格」做决策,所以调全局统计量就够;而底层任务(超分)每个像素都要独立预测,需要的是逐像素的细粒度对齐。全局风格迁移在粒度上天然对不上底层视觉的需求。此外,现有方法用单个 backbone 或单个码本去表示多个分布迥异的源域,会把这些源域压进一个狭窄的特征空间,导致域专属信息丢失(图 3a)。
本文目标:把 TTDG 从高层视觉搬到底层视觉(超分),需要解决三件事——(1) 怎么做到像素级细粒度迁移;(2) 怎么在表示多源域时不丢域专属信息;(3) 测试时怎么为目标域选对域专属码本。
切入角度:作者引入码本(codebook)。码本由一组离散码字组成,天然适合做「逐像素最近邻替换」这种局部、离散的迁移,正好补上风格迁移缺失的细粒度。这也是据作者所知第一次把码本用进 TTDG、也是第一个为底层视觉设计的 TTDG 方法。
核心 idea:用「域不变码本 + 多个域专属码本」在源域学细粒度表示,测试时对目标域特征做逐像素最近邻码字替换来迁移,再用投票挑出最优域专属码本。
方法详解¶
整体框架¶
MC-TTDG 把整套流程拆成「服务器端训练 + 边缘端测试」两个阶段。训练阶段加载并冻结一个预训练超分网络(Conv1 + Backbone + Decoder),只训练新增的码本与解耦模块,让它们学会用「域不变 + 域专属」两套码本来重建源域特征(这一阶段的主优化目标就是赋予码本重建源域特征的能力)。测试阶段则不碰网络权重:把目标域 LR 图过同样的浅层特征提取与解耦,用域不变码本迁移域不变特征、用投票选出的域专属码本迁移域专属特征,两路相加后送回冻结网络生成 SR 图。
整体可以看成一条「浅层特征 → 解耦成两路 → 各自码本迁移 → 相加 → 解码」的流水线,训练与测试共享同一套解耦和迁移算子,区别只在于训练阶段在所有源域码本上学重建,测试阶段对单张目标图做最近邻替换 + 投票选码本。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["输入 LR 图像<br/>(源域训练 / 目标域测试)"] --> B["Conv1 浅层特征 fi"]
B --> C["多码本表示学习 RLMC<br/>Conv2 解耦出域不变 f_Base + 域专属 f_Spe"]
C -->|域不变特征| D["像素级最近邻码本迁移<br/>逐像素替换为最相似码字"]
C -->|域专属特征·测试时| E["投票式域专属码本选择<br/>多码本预迁移 + 多数投票"]
D --> F["两路特征相加<br/>送回冻结 Backbone+Decoder"]
E --> F
F --> G["输出 SR 图像"]
关键设计¶
1. 多码本表示学习 RLMC:用「不变码本 + 专属码本」把源域细粒度地拆开
这一设计针对「单码本压缩多源域、丢失域专属信息」的痛点。作者不再用一个码本硬塞所有源域,而是给每个源域配一个域专属码本 \(\text{Codebook}^{Spe}_i\),再额外引入一个所有源域共享的域不变码本 \(\text{Codebook}^{Base}\)。具体地,第 \(i\) 个源域的 LR 图先过浅层提取 \(f_i = \text{Conv1}(LR^S_i)\),再用一次卷积解耦:\(f^{Base}_i = \text{Conv2}(f_i)\) 当作域不变部分,残差 \(f^{Spe}_i = f_i - f^{Base}_i\) 当作域专属部分。两路分别用对应码本迁移得到 \(f^{BQ}_i\) 和 \(f^{SQ}_i\),相加后送进冻结的 backbone/decoder 生成 \(SR^S_i\)。
这种「域不变码本作基底、域专属码本作偏移」的分工,让每个源域既共享跨域通用结构、又保留自己的独特细节,t-SNE 可视化里多码本能给每个源域分配独立的特征空间(图 3b),而单码本会把它们挤成一团。训练目标由四项组成:超分重建损失 \(Loss_{SR}=|SR^S_i - HR^S_i|\)、训练码字的量化损失 \(Loss_{Vq}\)、约束网络层向码字靠拢的承诺损失 \(Loss_{Comm}\),以及一个辅助分类损失 \(Loss_{Cls}=\text{CrossEntropy}(Pre, i)\),合成 \(Loss_{All}=Loss_{SR}+\lambda Loss_{Vq}+\beta Loss_{Comm}+\gamma Loss_{Cls}\)。其中量化/承诺损失沿用 VQ 的梯度停止技巧 \(sg(\cdot)\) 分别更新码字和网络层;分类分支只用 \(f^{Spe}_i\) 预测当前域类别,但其预测在训练阶段并不参与迁移,只是为测试时的投票准备好一个判别器。
2. 像素级最近邻码本迁移:把全局风格迁移换成逐像素码字替换
这一设计直击「风格迁移粒度太粗、对超分无效」的核心矛盾。作者把迁移定义成一个逐像素的最近邻检索:对特征图上位置 \((x,y)\) 的像素特征 \(f_{x,y}\),在码本里找欧氏距离最近的码字并直接替换,
测试时目标域域不变特征用域不变码本迁移 \(f^{BQ}_{Target} = \text{Transfer}(f^{Base}_{Target}, \text{Codebook}^{Base})\),域专属特征用选中的专属码本迁移,最后 \(SR^T = \text{Decoder}(\text{Backbone}(f^{BQ}_{Target} + f^{SQ}_{Target}))\)。和风格迁移只改整图均值/方差不同,这里每个像素都被独立地拉到源域码字上,迁移粒度精确到像素,从而真正把目标域分布对齐到源域(图 2 的 t-SNE 显示码本迁移后的分布确实落到了源域簇里,而风格迁移几乎不动)。消融里风格迁移(单中心/多中心)相对 baseline 几乎零提升,而码本迁移在三个目标分支上都明显涨点,印证了「粒度」才是底层视觉迁移的胜负手。
3. 投票式域专属码本选择:用多码本预迁移 + 多数投票纠正分类网络的偏差
有了多个域专属码本,测试时必须为目标域挑一个最合适的。最直接的做法是像 MoE 那样用一个分类网络打分、选置信度最高的专家——但分类网络是在源域上训练的,面对有域偏移的目标域样本预测会严重出错(表 3 中直接用最大预测分数的 Top-1 准确率低至 0.06~0.29)。作者的洞察是:与其相信分类网络对原始目标特征的一次判断,不如先用每个域专属码本各自对目标特征做一次预迁移,得到多份「已经被拉向某源域」的特征,再把它们分别送进分类网络统计票数,得票最高的域专属码本即为最终选择;若出现平票,则回退到用未迁移原始特征的投票结果。这相当于让多个码本「各执一词、多方会诊」,用集成的方式稳定了分类网络在分布偏移下的预测——表 3 中投票把 Top-1 准确率提升到 0.35~0.49、Top-2 普遍接近 0.78~0.88,比直接打分大幅更可靠。
实验关键数据¶
数据集用 DRealSR(含 P / IMG / Canon / Pan / Sony / DSC 多个不同相机拍摄的数据分支,分布各异)以及 Set5/Set14/B100/Urban/Manga109/DIV2K,指标为 PSNR / SSIM / LPIPS。源域取 P、IMG、Canon 三个分支训练,在 Pan、Sony、DSC 三个目标分支上测试。骨干网络验证了 AdaCode、HAT、MambaIR 等多种架构,下面消融以 MambaIR 为例。
主实验¶
| 数据集(目标域) | 指标 | MC-TTDG(本文) | 之前最好(TTMG) | 提升 |
|---|---|---|---|---|
| Pan | PSNR↑ | 31.15 | 30.26 | +0.89 dB |
| Pan | LPIPS↓ | 0.3593 | 0.4523 | 更优 |
| Sony | PSNR↑ | 31.29 | 30.56 | +0.73 dB |
| Sony | LPIPS↓ | 0.3157 | 0.4069 | 更优 |
| DSC | PSNR↑ | 31.21 | 30.70 | +0.51 dB |
| DSC | LPIPS↓ | 0.3583 | 0.4128 | 更优 |
对比的 TF-Cal、TSB、DG-PIC、TTDG、TTMG 都基于粗粒度风格迁移,MC-TTDG 在三个目标分支上 PSNR、SSIM、LPIPS 三项指标全面领先。
消融实验¶
| 配置 | Pan PSNR | Sony PSNR | DSC PSNR | 说明 |
|---|---|---|---|---|
| Baseline | 31.0263 | 30.7220 | 30.9117 | 冻结网络,不迁移 |
| One codebook | 31.1111 | 31.1411 | 30.9640 | 单码本:有提升但丢域专属信息 |
| w/o 域不变码本 | 30.9097 | 31.0144 | 30.9043 | 只用域专属码本,反而掉点 |
| 域专属+域不变码本(Full) | 31.1571 | 31.2937 | 31.2118 | 完整 RLMC,三分支全涨 |
| 特征迁移方法 | Pan PSNR | Sony PSNR | DSC PSNR | 说明 |
|---|---|---|---|---|
| Baseline | 31.0263 | 30.7220 | 30.9117 | — |
| 单中心风格迁移 | 31.0262 | 30.7171 | 30.9131 | 几乎零提升 |
| 多中心风格迁移 | 31.0261 | 30.7166 | 30.9118 | 几乎零提升 |
| 码本迁移(本文) | 31.1571 | 31.2937 | 31.2118 | 明显领先 |
| 码本选择方法 | Pan Top1 | Sony Top1 | DSC Top1 | 说明 |
|---|---|---|---|---|
| 最大预测分数 | 0.2907 | 0.0596 | 0.1660 | 分类网络直接打分,偏移下很差 |
| 投票选择(本文) | 0.3726 | 0.3545 | 0.4922 | 多数投票,准确率大幅提升 |
关键发现¶
- 粒度是底层视觉迁移的胜负手:风格迁移(无论单中心还是多中心)相对 baseline 提升几乎为零,而逐像素码本迁移在三个分支上把 PSNR 拉高 0.13~0.57 dB,说明对超分而言「像素级 vs 全局」的粒度差异比「迁移与否」更关键。
- 域不变码本不可或缺:去掉域不变码本只留域专属码本后,多个分支甚至掉到 baseline 以下(Pan 30.91 < 31.03),说明跨域共享基底对解耦学习是必要的,缺了它网络反而分不清域不变与域专属特征。
- 投票显著纠偏:在分布偏移下,分类网络直接打分的 Top-1 最低只有 0.06(Sony),投票把它提到 0.35,Top-2 更是普遍接近 0.78~0.88,证明「预迁移 + 多方投票」能有效抵消源域分类器在目标域上的失准。
亮点与洞察¶
- 把码本当作「迁移算子」而非「生成先验」:以往码本(VQ-VAE / VQGAN)多用于离散表示或生成,这里被巧妙复用为「逐像素最近邻替换」的迁移工具,天然提供了风格迁移给不了的细粒度。
- 基底 + 偏移的解耦很优雅:域不变码本作公共基底、域专属码本作偏移,用一次卷积残差 \(f^{Spe}=f_i-f^{Base}\) 就把两类特征解耦开,结构简单却能在 t-SNE 上看到清晰的域分离。
- 投票纠偏思路可迁移:「源域分类器在目标域不可信,于是先各专家预迁移再投票」这一招,本质是用集成对抗分布偏移,可迁移到任何「测试时选专家/选模块」且存在域偏移的场景(如 MoE 路由、测试时适配)。
- 冻结网络 + 外挂码本:整套迁移完全外挂在冻结的预训练超分网络之外,不动原网络权重,适合「服务器训练码本、边缘端即插即用」的部署形态。
局限与展望¶
- 依赖明确的源域划分:方法需要多个有标注域标签的源域来分别建专属码本,源域数量与划分质量直接影响码本质量;当源域只有一个或域边界模糊时,多码本的优势难以体现。
- 码本数随源域线性增长:每个源域一个专属码本,源域多时码本与投票时的预迁移次数都会增加,测试开销随源域数上升。
- 提升幅度偏小:虽然相对风格迁移类方法领先,但绝对 PSNR 提升多在 0.1~0.9 dB 量级,且评估集中在 DRealSR 多相机分支,对更剧烈的退化/跨域(如真实模糊、压缩伪影)泛化性还需更多验证。
- 投票的计算冗余:投票需要用所有域专属码本各做一次预迁移再过分类网络,源域多时这部分是额外开销,论文未深入讨论其与精度的权衡。
相关工作与启发¶
- vs 传统域泛化(DomainDrop 等): 传统 DG 只在多源域上学不变表示、优化源域网络,完全忽略测试时目标域信息;本文属于 TTDG,测试时直接对目标域样本做迁移,利用了目标域分布。
- vs 基于风格迁移的 TTDG(TTMG / TTDG / TF-Cal 等): 它们用全局均值/方差对齐做粗粒度迁移,适合高层视觉;本文用码本做逐像素最近邻替换,针对超分这类底层视觉的像素级需求,实验上全面领先。
- vs MoE 门控选择: MoE 用分类网络(门控)选专家,但在域偏移下源域分类器失准;本文用「多码本预迁移 + 投票」替代单次门控打分,显著提升了目标域上的选择准确率。
评分¶
- 新颖性: ⭐⭐⭐⭐ 首个面向底层视觉的 TTDG,也是首次把码本引入 TTDG,切入角度新。
- 实验充分度: ⭐⭐⭐⭐ 多架构(AdaCode/HAT/MambaIR)多分支验证,消融覆盖码本配置/迁移方式/选择策略;但绝对增益偏小、跨退化类型验证有限。
- 写作质量: ⭐⭐⭐⭐ 三 challenge–solution 对应清晰,图(t-SNE/框架图)辅助到位。
- 价值: ⭐⭐⭐⭐ 给底层视觉的测试时域泛化提供了细粒度迁移的新范式,投票纠偏思路有迁移价值。