基于Transformer的图像语义分割算法:Lawin Transformer
题目描述
Lawin Transformer是一个用于高效语义分割的视觉Transformer架构。语义分割旨在为图像中的每个像素分配一个语义类别标签,是自动驾驶、医学图像分析等应用的关键技术。然而,现有基于Transformer的分割模型(如SETR)通常计算复杂度高,难以处理高分辨率图像。Lawin Transformer的核心目标是在保持高性能的同时,显著降低计算成本。它通过引入大窗口注意力(Large Window Attention) 和分层聚合(Hierarchical Aggregation) 机制,在局部大窗口内捕获长距离上下文信息,并高效地融合多尺度特征,从而实现准确且高效的语义分割。
解题过程循序渐进讲解
我将Lawin Transformer的核心思想和实现步骤分解为几个关键阶段,逐步讲解。
第一步:问题分析与核心挑战
-
背景:视觉Transformer(ViT)将图像分割为固定大小的图像块(patch),并通过多头自注意力(MHSA)建模全局关系,在图像分类上表现出色。然而,直接将ViT用于密集预测任务(如语义分割)时,面临两个主要挑战:
- 计算复杂度:标准自注意力机制的计算成本与输入序列长度(即图像块数量)的平方成正比。对于高分辨率分割图像,这会带来巨大的计算和内存开销。
- 多尺度特征表示:语义分割需要融合来自不同尺度的特征,以同时理解精细的局部细节和广泛的场景上下文。标准的ViT结构是单一尺度的。
-
Lawin的应对思路:
- 为了解决计算复杂度问题,Lawin Transformer不直接进行全局自注意力计算,而是将注意力计算限制在局部的大窗口内。这大大减少了参与计算的序列长度。
- 为了捕获多尺度信息,它设计了一个分层结构,在不同阶段生成不同分辨率的特征图,并通过精心设计的聚合机制将它们融合。
第二步:Lawin Transformer的总体架构
Lawin Transformer的模型结构可以看作一个编码器-解码器框架。
-
编码器:
- 输入一张高分辨率图像(例如,1024x2048)。
- 首先,使用一个重叠的图像块嵌入层(Overlapped Patch Embedding) 将图像下采样4倍,得到一个初始的特征图
F0(H/4 x W/4 x C)。 - 然后,
F0依次通过 3个Lawin Transformer Block 组成的阶段。每个阶段都会对特征图进行2倍下采样,并增加通道数。因此,我们得到三个不同尺度的特征图:F1(H/8 x W/8 x C1),F2(H/16 x W/16 x C2),F3(H/32 x W/32 x C3)。 - 关键:每个Lawin Transformer Block的核心是大窗口注意力(LWA) 模块,这是模型高效的关键。
-
解码器:
- 编码器输出的多尺度特征(
F1,F2,F3)被送入一个分层聚合模块(Hierarchical Aggregation Module, HAM)。 - HAM负责以渐进的方式融合这些多尺度特征,生成一个富含上下文信息且空间细节丰富的最终特征表示。
- 最后,一个简单的分割头(通常是1x1卷积 + 上采样)将这个最终特征映射到与输入图像同分辨率的语义分割预测图上。
- 编码器输出的多尺度特征(
第三步:核心模块详解 - 大窗口注意力
这是Lawin Transformer的核心创新点。其目标是在局部区域内模拟全局上下文的捕获能力,但计算成本更低。
-
窗口划分:对于一个输入特征图(例如,H/16 x W/16),标准ViT会计算所有图像块之间的注意力。LWA则不同:
- 它将特征图均匀地划分为若干个不重叠的大窗口。每个窗口的大小是预设的,比如 32x32 像素(对应到特征图上的一个区域)。这比Swin Transformer中的小窗口(如7x7)大得多。
-
窗口内自注意力:在每个大窗口内部,模型计算标准的多头自注意力。因为窗口是局部的,所以计算复杂度只与窗口内的像素数量有关,是线性的。例如,一个32x32的窗口内有1024个像素,其自注意力复杂度是O(1024^2),这比对整个特征图(可能包含数千个像素)计算注意力O(N^2)要小得多。
-
大窗口的意义:
- 虽然注意力是局部的,但由于窗口很大(例如覆盖了图像1/8的面积),它仍然能够在相当大的区域内捕获长距离的依赖关系,这对于理解物体部件之间的关系或场景布局至关重要。
- 与使用小窗口相比,大窗口减少了需要跨窗口交互(如Swin Transformer中的移位窗口)的依赖,简化了结构。
第四步:核心模块详解 - 分层聚合模块
这个模块负责融合编码器产生的多尺度特征 {F1, F2, F3}。其设计遵循了从深层(语义强、分辨率低)到浅层(细节多、分辨率高)的渐进融合思想。
-
输入处理:
- 对最深层的特征
F3(分辨率最低,语义信息最丰富)先进行上采样,使其空间尺寸与F2对齐。 - 然后,将上采样后的
F3与F2拼接(Concatenate) 起来。
- 对最深层的特征
-
注意力融合:简单的拼接或相加可能不是最优的。HAM使用了一个空间注意力模块。
- 对拼接后的特征,通过卷积层生成一个空间注意力权重图。这个权重图会学习在空间每个位置上,应该更侧重于来自深层特征的语义信息,还是中层特征的边界/形状信息。
- 用这个权重图对特征进行加权,实现自适应的特征选择与融合。这生成了一个融合了中、深层特征的新特征
F23。
-
迭代融合:
- 接着,将
F23上采样,使其与最浅层的特征F1尺寸对齐,然后再次进行拼接和注意力融合。 - 最终,输出一个融合了高、中、低三个层次信息的强大特征表示
F_fused。F_fused具有较高的空间分辨率(与F1相同,即H/8 x W/8)和丰富的语义。
- 接着,将
第五步:训练与预测流程
-
训练:
- 输入图像和对应的像素级标签图。
- 图像经过Lawin编码器得到多尺度特征。
- 特征经过HAM解码器得到最终融合特征
F_fused。 F_fused通过一个分割头(通常是一个或多个1x1卷积层,将通道数映射为类别数K,然后进行4倍或8倍双线性上采样,恢复到输入尺寸)得到预测分割图。- 计算预测图与真实标签图之间的损失(常用交叉熵损失),并通过反向传播优化整个模型的参数。
-
预测:
- 输入一张测试图像,经过相同的前向传播过程,得到每个像素属于各类别的概率。
- 对每个像素,取概率最大的类别作为其预测标签,生成最终的语义分割图。
总结
Lawin Transformer巧妙地解决了Transformer在密集预测任务中的两大痛点。它利用大窗口注意力,在局部区域内高效地建模长距离依赖,避免了全局注意力的平方复杂度。同时,它通过分层聚合模块,以注意力引导的方式融合编码器不同阶段的多尺度特征,确保了最终特征兼具丰富的语义和精确的空间细节。这种设计使得Lawin Transformer在多个公开语义分割数据集(如Cityscapes, ADE20K)上,实现了在精度、速度和内存消耗之间的出色平衡。