
SegFormer避免了使用显式位置编码,所以在处理不同分辨率的图像时,不需要进行复杂的插值操作,原因主要是它通过卷积操作和层次结构来隐式地捕捉位置信息,而不是依赖于固定的、与图像分辨率相关的位置编码。
在传统的Transformer模型(例如ViT)中,位置编码是为每个输入特征(如图像的每个patch)明确指定的位置信息。当分辨率改变时,patch的数量也会随之变化,模型无法直接理解新分辨率下的位置信息,因此需要对位置编码进行插值,让它适应新的patch数量和图像分辨率。这是一个复杂的过程,容易引入误差。
而SegFormer通过以下方式避免了这一问题:
卷积的局部感知特性:SegFormer在编码阶段使用了卷积来生成Overlap Patch Embeddings。卷积操作自带局部的空间感知能力,因此它能在不同分辨率下自动调整,依旧保持对邻近像素关系的理解,不需要显式位置编码来帮助模型识别位置。
层次化的特征提取:SegFormer通过层次结构逐级缩减特征图,提取不同分辨率的特征,从而保留了多尺度的空间信息。这种方式让模型在不依赖固定位置编码的情况下,也能从全局和局部两个层面理解图像的空间结构。
因此,当图像的分辨率改变时,SegFormer可以自适应地调整,而不用像ViT那样需要重新插值位置编码。