WITT
在无线通信系统中,传输图像面临一个根本矛盾:无线信道是时变的、噪声的、带宽受限的,而图像本身是高维的、语义丰富的。如果沿用传统的「信源压缩 + 信道编码」分离方案——先用 BPG/JPEG 压缩图像,再用 LDPC 编码比特——整个链路在低信噪比(SNR)区域会严重退化。这是因为信源编码器完全不了解信道状态,压缩后的比特流对信道噪声毫无抵抗力。
2019 年,#Bourtsoulatze et al., 2019 提出了一个革命性思路:用深度联合信源信道编码(Deep JSCC)替代分离方案,让一个端到端神经网络同时学图像压缩和信道编码。这样做的好处是:编码器可以感知信道状态,动态调整传输策略,不需要单独的比特层面错误保护。更重要的是,端到端优化意味着网络可以在「压缩什么」和「怎么传输」之间做联合决策,而不是先后优化两个割裂的目标。
然而,早期的 Deep JSCC 构建在 CNN 架构上。CNN 的卷积核有天然的局部感受野限制:当图像分辨率从 32×32 提升到 512×768 再到 2K 时,CNN 的性能会「断崖式」退化——论文原文的说法是"degrades rapidly and falls behind separation-based schemes"。这不是信道编码本身的问题,而是图像特征提取能力到了瓶颈。一个 3×3 卷积核在同一时刻只能看到邻域像素,无论堆多少层,感受野的扩大都是渐进的、有限的。
这个瓶颈在语义通信时代变得尤为突出。语义通信的核心目标是不仅传输比特,而是传输语义——让接收端理解发送端想表达什么。对于图像,这意味着编码器需要理解图像的整体结构:主体在哪里?背景是什么?哪些区域承载了关键视觉信息?在信道条件差时,这些信息应该如何优先编码?CNN 的局部感知让它无法回答这些问题。
WIT(Wireless Image Transmission Transformer)的设计哲学是:用 Transformer 的全局注意力替代 CNN 的局部卷积,同时在信道建模上保留 JSCC 的联合优化思路。具体来说,WITT 由三大组件构成:
- 编码器:基于 Swin Transformer 的层级化编码器,将图像 patch 序列逐步下采样并提取语义特征。图像首先被切成 4×4 的不重叠 patches,每个 patch 展平为 token,组成长度为 $l_1 = H/2 \times W/2$ 的序列。
- Channel ModNet:插入在编码器中间层的插件模块,根据 SNR 标量动态生成调制向量,对特征做 element-wise 缩放。这是本文最重要的创新——它让同一个模型可以在 [1, 13] dB 的全 SNR 范围内工作,无需针对每个信道条件单独训练。
- 解码器:与编码器对称的 Swin Transformer 解码器,从被噪声污染的接收信号中恢复图像。解码器包含 FC 层、Channel ModNet、Patch Division 上采样层和 Swin Transformer blocks。
整个端到端流程用公式表达就是:
$y = f_e(x; \phi)$ → $\hat{y} = h \odot y + n$ → $\hat{x} = f_d(\hat{y}; \theta)$
其中 $f_e$ 是编码器,$h$ 是信道状态向量,$n \sim \mathcal{N}(0, \sigma_n^2 I_k)$ 是高斯噪声,$f_d$ 是解码器。训练目标是 MSE:$\mathcal{L} = \mathbb{E}_{x, SNR} \{ \| x - \hat{x} \|^2 \}$。
在功率归一化环节,传输前对信号进行归一化:$\bar{y} = \frac{y}{\sqrt{E\{y^Ty\}}}$,确保传输符号满足无线通信的平均功率约束。通道带宽比(Channel Bandwidth Ratio)定义为 $R = \frac{C}{2 \times 3 \times 2^n \times 2^n}$,$R$ 越小意味着压缩越狠。
为什么选 Swin 而非 vanilla ViT?论文的考量很实际。ViT 将图像切成 16×16 的 patches 后直接送入全局自注意力——对高分辨率图像,全局注意力的复杂度 $O(H^2W^2)$ 会让计算量爆炸。而 Swin 通过窗口分区(Window Partition)把自注意力限制在局部窗口内(默认 8×8 像素),同时用移位窗口(Shifted Windows)在相邻层的窗口之间建立跨窗口连接,既获得了远距离建模能力,又把复杂度压到 $O(HW)$。
| 维度 | ViT | Swin Transformer |
|---|---|---|
| 输出分辨率 | 单一分辨率(16×16 patch) | 层级化(4 stages,输出多尺度) |
| 计算复杂度 | $O(H^2 W^2)$(全局注意力) | $O(HW)$(窗口注意力) |
| 跨 patch 信息传递 | 直接全局 attend | 通过移位窗口间接传递 |
| 适用场景 | 分类、特征提取 | 多尺度密集预测(分割、检测、传输) |
移位窗口机制(Shifted Windows)是 Swin 的灵魂。Stage 内连续两个 Block:Block $k_i$ 使用常规窗口分区,Block $k_i+1$ 将窗口向右向上各偏移半个窗口宽度。这使得相邻层的 token 可以 attend 到对方的窗口,实现了跨窗口信息传递,同时保持线性复杂度。
$\hat{y}^{(k_i)}_i = W\text{-}MSA\big(LN(y^{(k_{i-1})}_i)\big) + y^{(k_{i-1})}_i$
$y^{(k_i)}_i = MLP\big(LN(\hat{y}^{(k_i)}_i)\big) + \hat{y}^{(k_i)}_i$
高分辨率图像(256×256 以上)需要 4 stages 配置:$[N_1, N_2, N_3, N_4] = [1, 1, 2, 6]$,$[C_1, C_2, C_3, C_4] = [128, 192, 256, 320]$,窗口大小为 8。分辨率越高,Transformer 的优势越明显——因为全局注意力可以从一开始就在高分辨率特征上建立长距离建模,而 CNN 需要堆叠很多层才能扩大感受野。
层级结构的优势
4-stage 的层级结构天然适合图像传输任务:Stage 1 保持高分辨率但通道少(128),Stage 4 分辨率最低但通道最多(320),包含最强的语义信息。解码器逆向操作,让最终重建同时受益于精细空间信息和高层语义特征。
这是 WITT 最重要的创新。传统的 Deep JSCC 在训练时固定 SNR,部署时如果信道条件变了,就需要重新训练或微调。Channel ModNet 解决的是这个问题:让同一个模型自适应任意 SNR 条件,训练范围 [1, 13] dB,部署时任何中间值都行。
ModNet 的输入只有一个标量:当前 SNR 值。它的输出是一个 $M$ 维调制向量 $sm_j$,对中间特征做 element-wise 缩放:
$sm_j^{(1)} = ReLU\big(W^{(1)}_{sm} \cdot SNR_j + b^{(1)}_{sm}\big)$
$\vdots$
$sm_j^{(M)} = Sigmoid\big(W^{(M)}_{sm} \cdot sm_j^{(M-1)} + b^{(M)}_{sm}\big)$
$\text{output} = \text{input} \odot sm_j$
直觉解释:在低 SNR(信道噪声强)时,ModNet 学习生成什么样的调制向量,使编码器把更多「能量」分配给语义上更重要的特征,使解码器更关注这些特征——相当于让模型在资源受限条件下学会「优先级调度」。
两阶段训练策略
Stage 1:冻结 ModNet(设为恒等映射 $sm_j=1$),训练 Swin backbone 学图像编解码基础能力。Stage 2:解冻 ModNet,联合训练全部模块。这避免了 ModNet 初始阶段「破坏」已学到的特征表示。
论文在三个数据集上验证:CIFAR10(32×32)、Kodak(512×768)、CLIC2021(2K)。核心结论就一句话——分辨率越高,WITT 相对 CNN-JSCC 的优势越明显。
| 指标 | WITT(本文) | ADJSCC(CNN+Attention) | 改善幅度 |
|---|---|---|---|
| 推理时间(Kodak) | 116 ms | 155 ms | 快 25% |
| FLOPs(Kodak) | 198 G | 511 G | 降低 61% |
| 参数量 | 28.2 M | 16.2 M | +75% |
| PSNR(Kodak, SNR=10dB) | ~29 dB | ~27 dB | +2 dB |
值得注意的是:参数量更大的模型反而 FLOPs 更低。原因在于 Swin 的窗口注意力比 CNN 的密集卷积更高效——即使参数矩阵更大,每次前向传播的实际运算量也少得多。这在计算资源受限的边缘设备上是关键优势。
从图 4 可以看到,在 Kodak(高分辨率)上:WITT 在所有 CBR 下系统性超越 CNN-JSCC,与 BPG+LDPC 方案相当。但论文坦诚承认——在高 SNR + 高 CBR 区域,WITT 的性能曲线斜率放缓,与「BPG + 理想容量可达」方案存在差距。这是模拟调制(analog transmission)的理论极限,不是架构问题。
视觉上,WITT 避免了传统压缩方案的块效应(block artifacts),重建出纹理和细节更丰富的高保真图像——这正是端到端联合优化带来的感知质量优势。
用 Mermaid 整理 WITT 的端到端数据流,帮助建立系统直觉:
graph LR
A["RGB 图像
x ∈ R^{H×W×3}"] --> B["Patch Embedding
l₁ = H/2 × W/2 tokens"]
B --> C["Stage 1: N₁ Swin Blocks"]
C --> D["Patch Merging"]
D --> E["Stage 2: N₂ Swin Blocks"]
E --> F["Patch Merging"]
F --> G["Stage 3: N₃ Swin Blocks"]
G --> H["Patch Merging"]
H --> I["Stage 4: N₄ Swin Blocks"]
I --> J["Channel ModNet
sm = f(SNR)"]
J --> K["FC Layer
投影至 C 维"]
K --> L["功率归一化
ȳ = y / √E{yᵀy}"]
L --> M["无线信道
ŷ = h ⊙ y + n"]
M --> N["FC Layer
接收端投影"]
N --> O["Channel ModNet
解码端调制"]
O --> P["Patch Division + Stage 4 Swin"]
P --> Q["Stage 3 Swin"]
Q --> R["Stage 2 Swin"]
R --> S["Stage 1 Swin"]
S --> T["图像重建
x̂ ∈ R^{H×W×3}"]
style A fill:#e1f5fe
style M fill:#fff3e0
style T fill:#e8f5e9
注意 decoder 侧完全对称:每个 Stage 4-3-2-1 的 Swin Block 后接 Patch Division 上采样,最后恢复原图尺寸。整个系统用 MSE 端到端训练,无需预训练 ImageNet。
要理解这个问题,需要回到感受野的本质。CNN 的卷积核在局部窗口内提取特征——一个 3×3 卷积核的感受野只有 3×3(除非叠加多层)。即使堆叠 20 层卷积,感受野也只有几十个像素量级。高分辨率图像(如 512×768)中,相隔 200 像素的两个区域在 CNN 看来毫无关系。
Swin Transformer 则不同:它的自注意力机制让每个 patch 可以直接 attend 到图像中任意其他 patch——理论上全局建模能力等价于 ViT,但通过窗口分区把复杂度从 $O(H^2W^2)$ 压到 $O(HW)$。对于无线图像传输,这意味着:
- 语义优先编码:编码器可以识别图像中的「主体」(如人脸、物体轮廓),在信道条件差时优先传输这些区域的特征
- 跨尺度特征融合:Stage 4 的特征有最强的语义信息,Stage 1 有最精细的空间信息,层级结构让解码器同时利用两者
- 自适应压缩粒度:Patch Merging 的下采样策略允许模型在高 CBR(压缩比大)时更激进地丢弃低频细节
| 参数 | CIFAR10(低分辨率) | DIV2K(高分辨率) |
|---|---|---|
| Stage 数 | 2 | 4 |
| Blocks per stage | [2, 4] | [1, 1, 2, 6] |
| Channels per stage | [128, 256] | [128, 192, 256, 320] |
| Window size | 2 | 8 |
| Batch size | 128 | 16 |
| Learning rate | $1 \times 10^{-4}$(Adam) | |
| 训练 SNR 范围 | [1 dB, 13 dB] 均匀分布 | |
| 信道模型 | AWGN / Rayleigh 快衰落 | |
训练图像预处理:对高分辨率数据集,随机裁剪为 256×256 patches。信道模拟在每个 batch 随机采样 SNR,让模型接触多样的信道条件,而非过拟合到特定 SNR 值——这是 Channel ModNet「泛化到未见 SNR」的关键。
通道带宽比(Channel Bandwidth Ratio)
$R = \frac{C}{2 \times 3 \times 2^n \times 2^n}$
其中分子 $C$ 是编码后的复数符号维度(×2 因为 I/Q 两路),分母是原始图像的采样点数(RGB 3通道,$2^n \times 2^n$ 是每 stage 下采样后的分辨率)。$R$ 越小意味着压缩越狠。
论文坦诚指出了三个主要局限:
- 高 SNR 性能放缓:在高信道质量(>13 dB)+ 高 CBR 时,性能曲线斜率降低,与「BPG + 容量可达」方案有差距。这是模拟调制的理论约束,而非架构缺陷。
- 信道模型局限:仅验证了 AWGN 和 Rayleigh 快衰落,尚未覆盖城市信道(3GPP 模型)或卫星通信场景。
- 无反馈机制:对比 #Kurka & Gündüz, 2020 的 DeepJSCC-f,WITT 没有利用信道反馈,这在时变信道中可能影响性能。
技术演进脉络
- 2018:Farsad 等首次将 DNN 用于文本 JSCC
- 2019:Bourtsoulatze 等提出 CNN-based 图像 JSCC
- 2020:Kurka 引入反馈机制(DeepJSCC-f)
- 2021:Xu 等提出 Attention JSCC(ADJSCC),支持多 SNR
- 2021:Liu 等提出 Swin Transformer(ICCV Best Paper)
- 2022:WIT = Swin + JSCC + ModNet(本文)
后续研究方向包括:用扩散模型(Diffusion)替代 MSE 损失提升感知质量、引入信道反馈的 attention 机制、面向下游机器视觉任务的语义通信,以及将框架扩展到视频传输。
WITT 的核心贡献是三件事:用 Swin Transformer 替代 CNN backbone、用 Channel ModNet 实现单模型多信道适应、用两阶段训练避免特征破坏。最终结果是在高分辨率图像上比 CNN-JSCC 高 3-5 dB PSNR,同时 FLOPs 降低 61%、推理速度快 25%。这个「更大参数、更高效率」的悖论,正是 Transformer 架构带来的计算密度优势。
对于实际应用,WITT 特别适合:高分辨率图像(256×256 以上)的无线传输、移动终端等多变信道条件、带宽受限的 XR 和自动驾驶场景。代码已在 GitHub 开源:KeYang8/WITT。
参考来源
- WITT: A Wireless Image Transmission Transformer for Semantic Communications — Ke Yang et al., arXiv 2211.00937 (2022)
- Swin Transformer: Hierarchical Vision Transformer Using Shifted Windows — Liu et al., ICCV 2021
- GitHub: KeYang8/WITT — 官方开源代码
- An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale — Dosovitskiy et al., ViT (2020)
- Deep Joint Source-Channel Coding for Wireless Image Transmission — Bourtsoulatze et al., IEEE TCCN 2019