Vision Transformers for Dense Prediction 论文阅读
刚入行的小白一枚,在OpenCV领域初学Transformers模型时非常感兴趣
Background
在阅读论文之前我们需要提前了解Dense prediction的概念
针对图像分块任务:通过像素和超像素块周围的小邻域实现独立分类功能(该方法依赖于全连接层结构因此决定了固定的图像分割粒度)
采用全卷积网络架构:实现逐像素级别的精确分割目标该方案能够灵活地输出不同尺寸图形的分割结果无需单独处理每个图像块区域运行速度显著优于传统方法
在Transformer真正应用于Dense predicition之前,在Dense predicition领域内全卷积网络已经被广泛采用。然而由于卷积神经网络本身的局限性,在这一过程中也暴露出了诸多不足之处。
当选择卷须作为主干模块时,在图像处理过程中需要通过多级降噪来提取不同尺度的空间信息,并通过逐层抽象的方式构建高层次的表征空间。这一过程虽然有助于增强模型对复杂模式的学习能力但它同时也带来了计算资源方面的限制即所谓的显存瓶颈问题。
然而这一降噪过程存在明显的局限性特别是在密集预测任务中表现得尤为突出经过降噪处理后的图像其空间分辨率和细节粒度都会发生显著下降这种信息损失在后续解码过程中难以得到有效的恢复。
粗粒度图像分类:类别之间差异大,比如人、汽车、树
细粒度图像分类:类别之间差异小,比如200种鸟的分类、100种花的分类
为了解决特征粒度损失提出了各种技术。
dialated convolutions 结构


空洞卷积能够实现感受野扩大这一目标的同时,在特征空间维度上无需进行任何改变。然而,在实际应用中我们发现这些操作均会带来显著的计算开销提升。
跳跃连接 建构编码模块与解码模块之间的关联通道,在图中展示了U-Net网络架构的具体设计,在此架构中未经历下采样处理的特征图直接传输至解码模块进行融合处理。

Multiscale feature representations across different layers are connected in parallel through the network architecture. During the encoding stage, we ensure the preservation of high-resolution features. As shown in Figure, HRNet demonstrates this capability by maintaining high-resolution information across downsampling stages, effectively minimizing granularity loss.

在介绍完背景之后,我们了解到了卷积运算处理特征图会存在一些不可避免的缺陷,并且这些缺陷成为作者考虑使用其他替代架构来取代卷积 convolution的原因。
motivation
本节将阐述作者出于何种考虑转用Transformer取代卷积层,并探讨其相较于传统卷积层的优势所在。尽管前文所提及的三层关键组件已初步构建了模型的基本框架与功能基础,但这些技术体系的主干部分仍未能实现根本性创新,在设计架构上仍然受限于传统的卷积操作:要实现一个较大的感受野范围,则必须通过叠加多层网络来逐步扩展空间信息捕捉能力;而这种不断叠加的操作所带来的计算复杂度却呈指数级上升趋势,在实际应用中往往难以满足实时性需求与内存占用限制的要求。为此,《Vision Transformer》一文提出了基于 Vision Tokenizer(VIT)的新架构设计方案作为研究基准。

该架构基于Transformer编码器机制,在编码过程中确保Token数量保持恒定。其中Token与图像块之间存在一一对应的关系,因此输入到Transformer中的图像块数量保持不变。即特征图的空间分辨率保持不变,并且在整个编码过程中始终保持着全局感受域的特点。值得注意的是无需通过叠加多层Transformer以扩大感受野范围。
Architecture

在输入Transformer编码之前,在Dense prediction Transformer(DPT)中对图像的处理方式与Vision Transformer(VIT)一致。具体来说,在此过程中会将图片分割成小块,并将其展平成向量序列。随后作者会在此基础上添加一个类token(但在深度估计任务中无需使用此功能)。为了更好地捕捉图像的空间信息,在完成上述步骤后会加入位置编码信息,并将这些编码后的向量输入到Transformer编码器中进行特征提取。
Transformer Encoder
作者采用了三种不同的模型架构:包括基于12层Transformer编码器构建的DPT-Base型、基于24层Transformer构建的DPT-Large型以及一种结合了ResNet50用于图像切分前特征提取的独特设计组成的DPT-Hybrid型。无论采用哪种模型架构,在四个层级中提取特征,并针对不同层级的选择进行了消融研究。

(使用的评判指标应该都是Absrel ,HRWSI,BlendedMVS,ReDWeb代表的应该是不同的数据集)
3,6,9,12等等数字代表的是使用第几层Transformer 处理后的特征图,R0,R1代表的是ResNet block
作者发现高层和底层的特征都提取效果比只提取高层表现要好。
Convolutional decoder
在Transformer 提取的特征是(N+1)xD,要先对这些特征进行一些处理
N = (H*W)/ p*p p:切块之后图像的大小


Read
首先,在数据切分阶段我们将原始文本均匀地分割为N个片段然而由于编码器在输入前会添加一个特殊标记即class token因此实际导入到系统中的却获得了N+1个块这是因为系统在处理过程中多引入了一个不需要的标记点为了确保数据完整性需要在后续处理流程中先去除这些多余的class tokens作者详细介绍了三种不同的策略来应对这一问题

Ignore
直接忽略掉添加的那个class token

add
将class token 和其他的相加

proj
将class token 和其他的concatenate,然后使用mlp处理。

作者在这也做了一下对比实验

直接忽略掉效果没有比proj差多少,为什么不能直接不加Class token呢
Concatenate
处理掉class token后,特征维度为NxD,需要进行拼接

Resample
获得特征图之后,需要对其进行处理,获取多尺度的特征图。

Fusion
在多尺度信息提取的基础上进行特征图整合,在论文中采用了RefineNet模块作为主要的技术手段

ReFineNet 结构图

融合之后的特征图,针对不同的任务使用不同的head 进行处理。
解码环节描述不够完善。随后我会更加细致地复查一遍,并补充完善相关内容。如有不足之处,请各位专家多多指导批评。
