这篇论文的实验与对实验结果的分析都十分详细,实验部分不仅细节详细,而且实验考虑了多种情况进行对比,可以从实验结果中得到各种结论,
研究背景
当时语义分割最常用的网络结构是FCN的结构:编码器-解码器。用编码器学习特征表示,用解码器进行像素基级别的分类。
基于CNN的模型大多通过堆叠卷积层来构成编码器,可以学习到更加全局/抽象的特征,但有限的感受野依然会限制其在全局上下文信息的表现。
为了克服这些限制,一种方法还是通过卷积操作,例如大的卷积核、特征金字塔等等;另一种方法是在FCN中引入注意力机制,注意力机制可以对图像的全局进行建模,让模型在全局特征上有更好的表现。
但上述方法都没有摆脱FCN结构的性质:编码器不断对输入图像进行下采样,获得用于语义分割的低分辨率特征,然后解码器就将这些低分辨率特征上采样到原始分辨率的分割图中。
贡献
提出了一种encoder的替代方案,用Transformer来替代堆叠的卷积层作为encoder。将输入图像视为一组patch的序列,输入到Transformer中。输入图像在Transformer中不会降低分辨率,这与CNN是有本质不同的。利用Transformer,可以不需要像CNN那样降低分辨率就可以在每层都学习全局特征。
得到Transformer的输出后,使用解码器将分辨率恢复为原始,文中提出了三种复杂程度不同的解码器:Navie、PUP、MLA。
网络
网络的整体结构如图所示,可以看到整个网络由Transformer与Decoder构成。
下面分别介绍encoder与decoder。

Encoder
网络中使用的encoder为ViT,查看ViT来学习,这里就不过多追溯。
关键是其中的参数,在这里,作者使用的是ViT-Large/16作为编码器,参数:patch_size=16,num_layer=24,embed_dim=1024,num_head=16。
这些参数在decoder中很重要。
Decoder
作者在论文中提出了三种复杂程度不同的解码器,分别为Naive、PUP与MLA。
Naive
通过1x1卷积+ReLU+1x1卷积将通道数变为num_class,然后再通过一个线性上采样恢复为原始分辨率
PUP
首先将Transformer的输出进行reshape:HW/256 x 1024 -> H/16 x W/16 x 1024
然后使用多个卷积层与2x上采样将图像恢复为H x W x num_class

MLA (Multi-Level feature Aggregation)
①:在Transformer中,按照特定的步长提取出特定的Transformer Layer的输出
Z
Z
Z,这里以6为步长,提取了
Z
6
,
Z
12
,
Z
18
.
Z
24
Z^6,Z^{12},Z^{18}.Z^{24}
Z6,Z12,Z18.Z24,每个尺寸都为HW/256 x 1024
②:对每个
Z
Z
Z进行Reshape,变为H/16 x W/16 x 1024,然后通过一个1x1的卷积层,通道数减半,变为H/16 x W/16 x 512
③:从第二层开始,每层与上层数据进行融合。
④:首先经过一个3x3的卷积,不改变尺寸与通道数;再经过一个3x3的卷积,通道数减半,变为H/16 x W/16 x 256,最后在经过一个4x的线性上采样,每个
Z
Z
Z变为H/4 x W/4 x256
⑤:将各个
Z
Z
Z进行拼接(concat),变为H/4 x W/4 1024,然后进行一个3x3的卷积,让通道数变为类别数,1024 -> num_class;最后进行一次4x的双线性上采样,让分辨率恢复为原始图像,H x W x num_class

实验
实验细节
消融实验

通过分析Table2的数据可以得到以下观点:
- Cityscapes数据集中 SETR-PUP表现的最好,这可能是因为MLA不具有特征金字塔那样的优势
- 使用ViT-Large的效果优于使用ViT-Base
- 虽然在样本为40K时,SETR-PUP-Base的指标低于Hybrid-Base。但是达到80K时,优于Hybrid-Base,这证明了FCN中的编码器是可以被替代的
- 预训练模型是重要的。随机初始化的SETR-PUP的IoU很低,使用了预训练的ViT或DeiT,指标就高很多。

对比实验
对比不同模型在不同数据上的表现
可以得到以下结论:
- SeTR模型在不同数据集上都是优于其它的
- PUP与MLA在指标上相差,但PUP的实现更加简单,因此很多代码都是使用PuP





1305

被折叠的 条评论
为什么被折叠?



